NEWS
2 Bewegungsmelder (Aqara) sollen einen Lampe schalten
-
@mickym
Ich sagte ja fehler hab ich gefunden.
Die Steuerung läuft
Bis auf das wenn man den Schalter betätigt und in der BWM läuft geht die Timeout Node auch an und Licht schaltet nach 2 min ab als ob die node bwm nicht aussen vor ist sondern immer funktioniert -
@aphofis sagte in 2 Bewegungsmelder (Aqara) sollen einen Lampe schalten:
Bis auf das wenn man den Schalter betätigt und in der BWM läuft geht die Timeout Node auch an und Licht schaltet nach 2 min ab als ob die node bwm nicht aussen vor ist sondern immer funktioniert
Dann könnte es daran liegen, dass wenn der Schalter eingeschaltet wird, kurz vorher aber noch der BWM getriggert hat (z. Bsp. weil der Schalter in dem entsprechenden Raum ist) und in der Triggernode schon der Timer läuft. Dann würde ich vom Schalter noch ein msg.reset = true in die Triggernode schicken.
-
@mickym
Hab den letzten Fehler gefunden.
Falsche Verknüpfung, jetzt gehts.
-
@aphofis Na das macht keinen Sinn, aber musst Du wissen.
-
@mickym Ne klappt auch nicht wirklich!
Ein Inject Node ist auch nicht das selbe wie ein echter BWM -
@aphofis sagte in 2 Bewegungsmelder (Aqara) sollen einen Lampe schalten:
@mickym Ne klappt auch nicht wirklich!
Ein Inject Node ist auch nicht das selbe wie ein echter BWMEin Inject Node macht das, was der iobroker-In Node auch macht. Eine Nachricht erzeugen, die auf die Reise geschickt wird. Ich habe Dir ja meine Vermutung in dem unteren Post geschildert. Aber das was Du da machst entbehrt halt jeder Logik.
Entweder lässt man den BWM ausschalten oder den Trigger. Wie gesagt, unten habe ich Dir ja die Lösung insoweit aufgeschrieben, wenn der BWM kurz vor dem Betätigen des Schalters triggert (also innerhalb der 3 Minuten).
-
So funktioniert alles wie es soll.
Wenn BWM Signal hat geht licht für 2 min an. wenn roboter sauger nihct beim laden ist. bleibt BWM inaktiv.
Schaltet man den Lichtschalter geht nur der 45 min trigger an. auch wenn man in den BWM läuft bleibt 2 min trigger inaktiv. Ist der 45 min trigger abgelaufen geht der BWM ganz normal wieder außer natürlich der Roboter ist unterwegs.
Für meine Zwecke ist das alles was ich wollte. -
@aphofis Ich habe Dir doch gesagt, wie es geht. Geh halt nochmal auf den Flow zurück, den Du gehabt hast und resette die Trigger Node.
Sowas ist doch NUR Unsinn, sorry - aber da verstehst Du einfach nichts. Was macht ein switch für einen Sinn, wenn Du mit einem Kabel den switch ad absurdum führst und mit einer 2. Nachricht den switch umgehen kannst.
AUch das letzte funktioniert nicht wie es soll, weil Du mit dem Schalter nicht ausschalten kannst.
Warum analysierst Du nicht, wie ich es gesagt habe. So wie es jetzt ist, kannst Du mt dem Schalter nicht ausschalten. Die Ursache, dass trotzdem Du den Schalter betätigt hast, liegt daran, dass wahrscheinlich der BWM bereits getriggert hat. Und das musst Du halt über einen msg.reset verhindern.Anonsten mische ich mich aber nicht mehr ein, wenn Du zufrieden bist. Jedenfalls wirst Du so mit dem Schalter das Licht nicht mehr ausschalten kannst und das Licht IMMER 45 min brennen, falls Du den Schalter betätigst.
Geh auf diesen Flow zurück: https://forum.iobroker.net/post/1194557
Und anschliessend setzt Du mit msg.reset die trigger Node des BWM zurück, wenn der Schalter betätigt wird. Wobei das obere Käse ist.Nee das ist ja auch verkehrt - du hast den Flow so verhunagelt. Du hast ja die beiden Äste auch verändert. Das ist echt schwierig, wenn Du einfach darauf los machst ohne halt den Nachrichtenflow nachzuvollziehen und warum was wie gemacht wurde.
-
So probiere das nochmal:
Du musst allerdings die iobroker-IN und iobroker-OUT Nodes überprüfen, weil ich Deine Hardwarepunkte nicht habe.
Und falls Du jetzt neue Kabel ziehst oder die Logik veränderst, dann überleg Dir VORHER was das für Konsequenzen hat und was jetzt genau passiert.
Beschreibe jedes Szenario mit Worten und mach nicht einfach.
Ach und bitte DEAKTIVIERE Deine jetzigen Flows und Blocklies, damit die nicht dazwischen funken, sonst wird das nichts. Und wenn Du hier nicht exakt arbeitest - dann bin ich ziemlich machtlos.
-
@mickym
Das sehr nett das du die Schaltung überarbeitet hast! Nein ich ändere da nichts dran.
Nur nach einer Zeit auch wenn man nichts schaltet und auch nichts im BWM sich bewegt drehen die lampen durch und werden wie verrückt geschaltet.
Wenn ich die komplette Node deaktiviere dann ist wieder alles normal.
Kann das irgendwie sein, weil ja schalter küche so zu sagen in der Iobroker In node ist und in der schaltung alle drei geschaltet werden. da ja ganz oben habe ich ja eine schaltung die mit dem lichtschalter alle lampen zusammen ein und aus schaltet !?
Ich habe jetzt an die schaltung mit dem Robo und BWM nur den lichtschalter als out node gelassen. da ja in der ersten schaltung schon alle drei lampen zusammen gefasst sind. vllt kommt die Rückkopplung daher.
Weil der Lichschalter schaltet so zu sagen ja nur die Decke an/aus und die beiden LEd Stripes vom Sonoff und vom Tuya Gerät werden ja mit geschaltet durch die normale In/Out node geschichte.
-
@mickym Ja habe ich überprüft! Sehr Lieb! der Datenpunkt weiß .ich.nicht ist toll.
Den lege ich mit auch an! Echt toll ich denke ich habe jetzt auch alles geprüft es funktioniert.
Jetzt muss nur noch die Aquarium Wasser ausgleichssteuerung laufen mit wasser verbrauchs daten in die datenpunkte schreiben dann bin ich auch erstnmal glücklich. -
@aphofis Na ja - wenn es am Node Red Flow liegen würde, dann würde es eine Endlosschleife geben. Also achte erst mal darauf, dass in keiner iobroker-OUT Node der gleiche Datenpunkt wie in einer iobroker-IN Node steht.
Und Du auch sonst nirgends weder in Blockly noch in einem anderen Flow die Datenpunkte schaltest, die in den iobroker-IN Nodes einliest.
Ausserdem kannst Du noch direkt an eine iobroker-In NOde direkt eine Debug Node machen. Wenn das ganze Dein Debug Fenster flutet, dann weisst Du dass da ein Datenpunkt verrückt spielt.
Kann das irgendwie sein, weil ja schalter küche so zu sagen in der Iobroker In node ist und in der schaltung alle drei geschaltet werden. da ja ganz oben habe ich ja eine schaltung die mit dem lichtschalter alle lampen zusammen ein und aus schaltet !?
Ich gehe davon aus, dass die Schaltung die ich gemacht habe, die EINZIGE Schaltung ist. Alle anderen Schaltungen deaktivieren.
Außerdem wie gesagt, alle Datenpunkte in iobroker-IN und iobroker-Out überprüfen und wie gesagt alle anderen Schaltungen deaktiveren.Ich habe mir dafür 2 Tastaturmakros erstellst, mit dem Du über ALT+e markierte Knoten aktivierst bzw. mit ALT+d markierte Knoten deaktivierst.
-
@mickym Das ja cool!
Hab mir die Tasetnkobi auch eingerichtet. Vielen dank dafür.
Also es funktioniert alles. -
Sag mal nur für mein Verständnis.
Wenn ich eine In node nehme die liefert true/false als value und ich dann eine Change node dran hänge und als msg.topic und value zb robo nehme kann ich das dann weiter verarbeiten also überall wo dann das topic robo eingebunden wird kann man das dann dort verarbeiten !?
sprich das dann auch nur robo topic dort ankommt wo man es auch haben will. -
@aphofis sagte in 2 Bewegungsmelder (Aqara) sollen einen Lampe schalten:
Sag mal nur für mein Verständnis.
Wenn ich eine In node nehme die liefert true/false als value und ich dann eine Change node dran hänge und als msg.topic und value zb robo nehme kann ich das dann weiter verarbeiten also überall wo dann das topic robo eingebunden wird kann man das dann dort verarbeiten !?
sprich das dann auch nur robo topic dort ankommt wo man es auch haben will.Na ich verstehe zwar glaub nur halb was Du willst. Grundsätzlich laufen die Nachrichten durch die Kabel bzw. über Link Knoten auch Flow übergreifend.
Das topic repräsentiert, die Art bzw. den Ursprung der payload. Was nützt Dir ein true oder false in einer payload, wenn Du nicht weißt woher es stammt.
Zum Filtern nimmst Du KEINE Change Node. Mit einer Change Node VERÄNDERST DU Nachrichten. Wenn Du Nachrichten filtern oder über Bedingungen unterschiedlich verarbeiten willst, nimmst Du eine SWITCH Node. Du musst Dir wirklich einprägen, wann welche Node benutzt wird.
- Also mit einer Change Node, wenn Du Nachrichten VERÄNDERN willst
- mit einer Switch Node, wenn Du Nachrichten filtern oder über unterschiedliche Bedingungen steuern willst.
Wenn Du mehrere iobroker-IN Knoten (warum auch immer) an eine Switch Node klemmen willst und nur die Nachrichten durchlassen möchtest, die von einem topic kommen, dass (falls Du nicht den ganzen Pfad eingeben willst) filtern willst, die den String "robo" enthalten, nimmst Du eine Switch Node und gibst:
- An welche Nachrichteneigenschaft (oder Kontextvariable) Du untersuchen willst
- Welche Bedingung die untersuchte Nachrichteneigenschaft (oder Kontextvariable) erfüllen muss.
Diese switch node untersucht also die Nachrichteneigenschaft topic und lässt alle Nachrichten durch, wenn das topic die Zeichenkette "robo" (also ohne Anführungszeichen) enthält. Die payload ist dieser switch Node völlig egal, weil die ja nicht untersucht wird. Das kann true, false, 400 oder "Wellensittich" sein.
-
@mickym sagte in 2 Bewegungsmelder (Aqara) sollen einen Lampe schalten:
ja nicht untersucht wird. Das kann true, fals
alles klar! Verstanden ich meinte auch die switch node!
Ok Dann hab ich das verstanden. -
Noch ein Wort zu Endlosschleifen, die Du Dir merken musst. Wenn Du mit einem Datenpunkt zum Beispiel im Sonoff Adapter was steuerst und gleichzeitig den Status einliest, dann musst Du darauf achten, dass Du im iobroker-OUT immer den Typ "command" nimmst, das ist dann im Blockly das steuere. Also ACK=false.
Wenn der gleiche Datenpunkt aber vom Adapter auch den "Status" wieder geben soll, dann musst Du aufpassen, dass Du nur bestätigte (vom Adapter bestätigte Nachrichten) in der iobroker-IN Node zulässt.
Das machst Du in dem Du hier in dem Filter nur bestätigte Nachrichten zulässt:
Also ACK=true.
Ansonsten passiert genau das - Du steuerst mit dem gleichen Datenpunkt ein Licht und gleichzeitig liest Du das ein und schon ist die Endlosschleife perfekt.
-
@mickym ok! ich versuche es mir zu merken.
-
@mickym
wie kann man denn den Lichtschalter zeit trigger deaktivieren bei ausschalten des Lichts !? Weil das ist das einzige was nicht will. dh. wenn man Licht per schalter einschaltet läuft der 45 min trigger wenn man das licht per schalter ausschaltet. Bleibt der trigger 45 min aktiv und BWM geht dann nicht bis der 45 min trigger abgelaufen ist. -
@aphofis sagte in 2 Bewegungsmelder (Aqara) sollen einen Lampe schalten:
@mickym
wie kann man denn den Lichtschalter zeit trigger deaktivieren bei ausschalten des Lichts !? Weil das ist das einzige was nicht will. dh. wenn man Licht per schalter einschaltet läuft der 45 min trigger wenn man das licht per schalter ausschaltet. Bleibt der trigger 45 min aktiv und BWM geht dann nicht bis der 45 min trigger abgelaufen ist.Ja das war aber Deine Logik - dass Du den Trigger laufen lassen wolltest, sobald der Lichtschalter bettätigt wurde. Wenn Du nun unterscheiden willst, ob der Lichtschalter aus- oder eingeschaltet wird, musst Du von vorne herein die Fälle unterscheiden.
Ersetzt werden müssen die markierten Nodes - überlege Dir aber warum der Flow nun wie geändert wurde.
wie kann man denn den Lichtschalter zeit trigger deaktivieren bei ausschalten des Lichts !
Wenn Du so etwas willst, musst Du also zu Beginn unterscheiden, ob der Lichtschalter aus- / oder eingeschaltet wird. Deshalb kommt nun ganz zu Anfang der switch ins Spiel, der prüft, ob der Schalter aus- oder eingeschaltet wird, also true oder false.
Die trigger Node wurde nun verändert, da sie nun true schalten kann, da sie nur noch im true Ast hängt und durch die false Nachricht zurückgesetzt wird.EDIT: Fehler wurde korrigiert (22:32 Uhr) - die Trigger Node sendet nun das false über einen 2. Ausgang, sodass die Blockade des BWM beim Senden der true Nachricht nicht aufgehoben wird.