ich habe eigentlich zwei themen die ich über Node Blue fürs erste realisieren will. Leider scheiter ich daran noch etwas. Hoffe mir kann jemand den richtigen Weg aufdeuten.
Lichttaster ausschalten wenn Licht Länger als 30min an ist.
Jeder der Kinder hat kennt das Problem. Kind war auf dem Klo und rennt raus zum spielen. Problem das licht ist an. Das bleibt dann wenn es blöd läuft über Stunden oder ganz Blöd Tage an.
Ziel wäre also erstmal die einfache Variante. Meldet der Taster 30min den Status true, soll ein aussignal an den Taster gesendet werden. Irgendwie will meine Lösung nicht. Der Plan war das Toggle modul nach Zeit X toggeln zu lassen und den eingang des delay nodes mit dem true signal zu koppeln.
Leider ergibt sich hierdurch eine Schaltung(mir ist nicht klar warum) die an und wieder ausgeht.
Klassiche Heizsteuerung
Ein Temepratur sensor gibt einen String im payload der unter anderem Die Temperatur enthält. Diese müßte man jetzt als Float konvertieren um es an den Heizregler zu überreichen.
Dafür wollte ich den finction node nutzen. PHP ist nicht ganz mein Steckenpferd aber C++ und C# etc.geht also sollte das ja kein Problem sein. Leider doch!
in der Theorie wollte ich den String zerlegen und dann den wert in float wandeln.
Aber irgendwie funktioniert das nicht. Schon beim suchen des Strings “temperature” gibt die funktion keinerlei Rückgabe.
Mach ich da was grundsätzlich falsch?
Ich will dir ja nicht zu nahe treten, aber das node blue Forum hat ca. 20 Posts, einer enthält eine Lichtsteuerung. Das ist nicht wirklich unübersichtlich. Ob ein Bewegungsmelder oder ein Taster schaltet, ist egal.
Für Dein erstes Problem sollte es doch reichen, den Aktor entsprechend zu konfigurieren, zumindest wenn es sich um ein Homematic Gerät handelt.
Beim zweiten Problem wäre der String, den Du auswerten willst recht hilfreich. Ich würde so etwas in der Art nehmen:
den bewegungsmelder habe ich natürlich gesehen, aber hier wird zum einen eine HUE Lampe gesteuert und kein Taster. Der Taster reagiert auf einen state wechsel von 1 auf 0 oder von 0 auf 1(soweit ich das verstanden habe).
Des weiteren ist mir bis jetzt nicht klar wie das mit den Inputs und outputs funktioniert die du verwendest und wo die her kommen. Solche Nodes habe ich bei mir gar nicht gefunden. Welches Zeitglied du verwendet hast ist auch nicht wirklich ersichtlich.
Und aktuell habe ich auch keine möglichkeit gefunden diese Text Datei die du verlinkt hast mal zu öffnen in Node blue und das nach zu prüfen.
Das alles wollte ich jetzt nicht in den Thread Bewegungsmelder schreiben weil es ja mit dem Projekt nichts zu tun hat und daher andere verwirrt.
Das sind die Grundprobleme. Du als alter Hase machst sowas mit links, ich brauche hier einfach ein paar hints die mich in die richtige Richtung stoßen.
Hier gibt es noch genug grundsätzlich Verständis Probleme die Parallel dazu laufen aber. Ich würde halt gern mal eine einfache Aufgabe lösen und daran dann weiter arbeiten. Ein Licht zeitbasiert auszuschalten sah ich jetzt nicht als extrem schwer an und scheitere trotzdem kläglich.
Die fehlende Doku zu den Nodes macht es nicht einfacher.
Wenn ich mir zum Beispiel den Node Variable anschaue, kommt beim hint, das die Variable gesetzt wird. Wo ist das Rücksetzen? Verständnis und das macht der gleiche Node oder gibt es da etwas anderes. Etc. alles kleine Problemchen die man sehr schnell nachlesen könnte.
So hoffe du verstehst es jetzt nicht falsch oder als Vorwurf wollte nur erläutern warum dieser Thread entstanden ist.
nein es handelt sich um ein KNX System. Das man es auch im KNX machen könnte denke ich auch aber es ist ja primär mal ein lernprojekt für mich für Node Blue und zum anderen Wenn ich mal was ändern möchte brauche ich wieder ETX Software samt elektriker und das kostet Geld.
Zu deiner Frage ja wäre clever gewesen den String mit zu posten
also der String kommt vom device:
WSDCGQ01LM von Xiaomi.
Den String habe ich grad nicht 100% parat da ich im Büro bin.
Grundsätzlich ist er 81 Zeichen lang
Er sieht vom prinzip her so aus:
[temperature: 24.36 , humidtiy: 86.54 , signal quality: 20 battery:90 Voltage:3140]
Werde heute abend aber den korrekten String nochmal dazu packen.
Das ist nicht richtig, der Subflow liefert eine bestimmte Zeitspanne nach einem True ein False. Sofern nicht zwischendurch ein weiteres True kommt, dann zählt der Timer von neuem. Zusätzlich liefert er noch weitere Werte die als Helligkeit verwendet werden können. Ich schalte damit Hue-Lampen und Sonoff-Schalter. Der Subflow hat nichts mit der Hardware zu tun.
Ich schlage vor, dass du dir mal die Subflows und Flows importierst und anschaust. So ziemlich alle deine Fragen sind darin gelöst. Sieh das als lebensnahe Doku.
Das soll jetzt nicht heissen, dass Du keine Fragen stellen sollst, nicht falsch verstehen. Mir kommt es nur komisch vor, wenn Fragen gestellt werden, die 3 Posts darunter beantwortet sind. Aber das lag ja daran, dass Du die Antworten nicht anwenden konntest.
Du solltest vielleicht auch zigbee2mqtt umstellen, dass die Attribute einzeln geliefert werden, da spart man sich einen Menge Json-Bastelei. In der configuration.yaml:
danke für die Tipps. Heute Abend werde ich mir deine Lichtsteuerung mal anschauen.
Der Tipp mit dem output ist genial, macht das ganze deutlcih einfacher.
Ich dachte auch es funktioniert jetzt so, allerdings bekomme ich keine Debug ausgabe von dem Heizregler, die kleine 86 oben drüber würde ich aber als Regelparameter U sehen oder?
Allerdings wird der Wert vom Seonsor als string an den Regler übergeben, das passt ihm wohl nicht denn er steht seit dem auf 100%. Und das obwohl die soll-Temp bei 22°C liegt.
Gibt es einen Grund warum das am Debug nicht ankommt?
Der Heating-Controller arbeitet auch vernünftig, Setpoint ist 30°, aktuelle Temperatur 27.25°, Ventilöffnung 86% ist ziemlich plausibel. (Quelle: Online-Hilfe)
dann reicht es ja, daraus einen float zu machen, das andere Beispiel würde nur den Dezimalpunkt entfernen floatval($message['payload'])
siehe PHP: floatval - Manual
Aber ich glaube, Du musst Dir erst mal ein paar Grundlagen erarbeiten