NEWS
Node Red fehler bei Umstieg auf Raspi4
-
@mickym Danke, Danke, Danke, ich kann nicht genug danken es geht wie gewünscht. Es gibt nicht viel die so viel Geduld aufbringen wie Du es mit mir hattest . LG und noch einen schönen Samstag Abend.
-
@oskar sagte in Node Red fehler bei Umstieg auf Raspi4:
@mickym Danke, Danke, Danke, ich kann nicht genug danken es geht wie gewünscht. Es gibt nicht viel die so viel Geduld aufbringen wie Du es mit mir hattest . LG und noch einen schönen Samstag Abend.
Ändere vielleicht noch den kleinen Haken. Aber natürlich freut es mich, wenn alles so geht, wie Du Dir das vorstellst.
Inzwischen kann dieser Thread schon als Tutorial für Node-RED dienen. Ich hoffe Du vollziehst ein bisschen nach, was wir gemacht haben - dann wirst Du diese Logikmaschine auch immer mehr für Deine zukünftigen Ideen einsetzen.
-
ändere vielleicht noch den kleinen Haken.
was meinst Du damit? lg -
@oskar In den iobroker-In Nodes (s. roter Pfeil):
Also so, dass: "Send only on then ack==true" aktiv ist. Falls dann was nicht mehr geht - kannst den Haken immer noch raus machen. Aber eigentlich gehört er rein, da dann nur die Nachrichten durchkommen, die vom Sonoff-Adapter bestätigt wurden.
-
@Oskar
So ich habe den Flow noch etwas verbessert - damit sich die Schalter gegenseitig nicht so beeinflussen können. Kann zwar immer noch ein Fehler in der Logik drin sein. Aber Du hast ja in jedem Fall auch noch den bisherigen Flow falls der neue nicht klappt.Die wesentlich Neuerung ist, dass wenn der Schließerschalter gedrückt ist, dass der Öffneschalter ausgeschaltet wird und dass nur der Schalter ausgeschaltet werden kann, der zuletzt auch eingeschaltet war. Das Ganze wird über Flowvariablen gesteuert, die mit einer Inject Node initialisiert wird.
[ { "id": "e3c385f5.293128", "type": "ioBroker in", "z": "dce8fa20.2e93c8", "name": "Power1 = Öffnen", "topic": "sonoff.0.RollladenBuero.POWER1", "payloadType": "value", "onlyack": true, "func": "rbe", "gap": "", "fireOnStart": "false", "x": 2320, "y": 1980, "wires": [ [ "ad6542db.6fbe8" ] ] }, { "id": "8ac22f81.e7c65", "type": "ioBroker in", "z": "dce8fa20.2e93c8", "name": "Power2 = Schließen", "topic": "sonoff.0.RollladenBuero.POWER2", "payloadType": "value", "onlyack": true, "func": "rbe", "gap": "", "fireOnStart": "false", "x": 2310, "y": 2060, "wires": [ [ "23b54309.caa04c" ] ] }, { "id": "ad6542db.6fbe8", "type": "switch", "z": "dce8fa20.2e93c8", "name": "ein/aus?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" }, { "t": "eq", "v": "false", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 2480, "y": 1980, "wires": [ [ "5912ee91.5d09" ], [ "98f4dcd6.ff0a5" ] ] }, { "id": "23b54309.caa04c", "type": "switch", "z": "dce8fa20.2e93c8", "name": "ein/aus?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "false", "vt": "str" }, { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 2480, "y": 2060, "wires": [ [ "88182527.0b83f8" ], [ "6dbd3b20.9affd4" ] ] }, { "id": "e9e267a.0b20998", "type": "change", "z": "dce8fa20.2e93c8", "name": "Drücke Pause", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "topic", "pt": "msg", "to": "shelly.0.SHSW-25#BA79FE#1.Shutter.Pause", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2900, "y": 2020, "wires": [ [ "30d0b82a.7f9588" ] ] }, { "id": "5912ee91.5d09", "type": "change", "z": "dce8fa20.2e93c8", "name": "Drücke Open", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "topic", "pt": "msg", "to": "shelly.0.SHSW-25#BA79FE#1.Shutter.Open", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2770, "y": 1900, "wires": [ [ "686ad050.f9261", "30d0b82a.7f9588", "d9209e5f.878ff" ] ] }, { "id": "6dbd3b20.9affd4", "type": "change", "z": "dce8fa20.2e93c8", "name": "Drücke Close", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "topic", "pt": "msg", "to": "shelly.0.SHSW-25#BA79FE#1.Shutter.Close", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2740, "y": 2140, "wires": [ [ "30d0b82a.7f9588", "7f1f47dc.ac7f98", "8553550d.332f88" ] ] }, { "id": "30d0b82a.7f9588", "type": "ioBroker out", "z": "dce8fa20.2e93c8", "name": "Shelly betätigen", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 3140, "y": 2020, "wires": [] }, { "id": "686ad050.f9261", "type": "trigger", "z": "dce8fa20.2e93c8", "name": "Schalter ausschalten", "op1": "", "op2": "false", "op1type": "nul", "op2type": "bool", "duration": "30", "extend": true, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 3060, "y": 1900, "wires": [ [ "5d772b9c.3fbdb4" ] ] }, { "id": "7f1f47dc.ac7f98", "type": "trigger", "z": "dce8fa20.2e93c8", "name": "Schalter ausschalten", "op1": "", "op2": "false", "op1type": "nul", "op2type": "bool", "duration": "30", "extend": true, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 3060, "y": 2140, "wires": [ [ "39caf999.632c36" ] ] }, { "id": "5d772b9c.3fbdb4", "type": "change", "z": "dce8fa20.2e93c8", "name": "Ausschalten Öffnen", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "sonoff.0.RollladenBuero.POWER1", "tot": "str" }, { "t": "set", "p": "stopClose", "pt": "flow", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3290, "y": 1900, "wires": [ [ "a801e5d5.7e61a8" ] ] }, { "id": "39caf999.632c36", "type": "change", "z": "dce8fa20.2e93c8", "name": "Ausschalten Schließen", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "sonoff.0.RollladenBuero.POWER2", "tot": "str" }, { "t": "set", "p": "stopOpen", "pt": "flow", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3300, "y": 2140, "wires": [ [ "a801e5d5.7e61a8" ] ] }, { "id": "a801e5d5.7e61a8", "type": "ioBroker out", "z": "dce8fa20.2e93c8", "name": "Sonoff Schalter ausschalten", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 3580, "y": 2020, "wires": [] }, { "id": "8553550d.332f88", "type": "change", "z": "dce8fa20.2e93c8", "name": "Ausschalten Öffnen", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "sonoff.0.RollladenBuero.POWER1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" }, { "t": "set", "p": "stopOpen", "pt": "flow", "to": "true", "tot": "bool" }, { "t": "set", "p": "stopClose", "pt": "flow", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3130, "y": 2080, "wires": [ [ "a801e5d5.7e61a8" ] ] }, { "id": "98f4dcd6.ff0a5", "type": "switch", "z": "dce8fa20.2e93c8", "name": "stopOpen = false?", "property": "stopOpen", "propertyType": "flow", "rules": [ { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 2690, "y": 1980, "wires": [ [ "e9e267a.0b20998" ] ] }, { "id": "88182527.0b83f8", "type": "switch", "z": "dce8fa20.2e93c8", "name": "stopClose = false?", "property": "stopClose", "propertyType": "flow", "rules": [ { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 2690, "y": 2060, "wires": [ [ "e9e267a.0b20998" ] ] }, { "id": "d9209e5f.878ff", "type": "change", "z": "dce8fa20.2e93c8", "name": "Ausschalten Schließen", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "sonoff.0.RollladenBuero.POWER1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" }, { "t": "set", "p": "stopClose", "pt": "flow", "to": "true", "tot": "bool" }, { "t": "set", "p": "stopOpen", "pt": "flow", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3140, "y": 1960, "wires": [ [ "a801e5d5.7e61a8" ] ] }, { "id": "dff039e9.d663a8", "type": "change", "z": "dce8fa20.2e93c8", "name": "FlowVariablen initialisieren", "rules": [ { "t": "set", "p": "stopClose", "pt": "flow", "to": "false", "tot": "bool" }, { "t": "set", "p": "stopOpen", "pt": "flow", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2800, "y": 1820, "wires": [ [] ] }, { "id": "4e7b3411.f742ec", "type": "inject", "z": "dce8fa20.2e93c8", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "Init", "payload": "true", "payloadType": "bool", "x": 2590, "y": 1820, "wires": [ [ "dff039e9.d663a8" ] ] } ]
Sieht nun etwas komplexer aus .
-
@mickym Hallo, ich habe nun heute den neuen Flow ausprobiert und getestet. Ich bin der Meinung der erste Flow hat den Vorteil, wenn ich den RL stoppe und festgestellt habe daß er doch etwas zu weit gelaufen ist kann ich ihn gleich zurück fahren, was beim neuen Flow nicht geht. Ansonsten habe ich keinen Unterschied festgestellt. Ich habe mal noch eine andere Frage, ich habe eine Philips Hue Lampe, kannst Du mir sagen ob ich die ohne Bridge in IoBroker einbinden kann, wenn ja mit welchem Adapter? LG
-
@oskar Nun Du hast ja beide Flows - wobei auch bei dem Neuen müsste es einfach gehen, wenn Du feststellst, dass er zuweit gelaufen ist, indem Du einfach den anderen Schalter drückst.
In meiner Simulation geht es zumindest:
Bzgl. Deine HUE Lampe. Du brauchst ja in jedem Fall eine Hardware mit der die Lampe mit Deinem iobroker kommuniziert. Du kannst die auch ohne Bridge mit dem Zigbee Adapter betreiben, brauchst dann aber noch den entsprechenden Stick als Coordinator. Ggf. muss man auf die Reichweite achten. Hier kann Dich aber ggf. @Asgothian beraten. Mit Hardwareempfehlungen halte ich mich zurück. Ich nutze den CC2531 und der verliert auch schon mal ab und an die Verbindung zu einem Gerät.
Musst halt generell schauen, ob Deine Lampe in der Liste der unterstützten Geräte enthalten ist.
-
@mickym Ich hab´s jetzt mit beiden Flows nochmals versucht, beim ersten kann ich den Knopf daneben verwende und es geht. Dies ist beim zweiten nicht möglich, da reagiert der Schalter nicht. Hab`s ein paar mal versucht ohne Erfolg
-
@oskar Ok - dann benutze weiter den ersten Flow - ich hatte beim 2. Flow halt gedacht - dass da was durcheinander kommt, wenn beide gleichzeitig aktiv sind. Das ist aber ohne die entsprechende Hardware wahrscheinlich schwierig zu simulieren. Ich werde da jetzt erst mal nichts weiter investieren.
Ach bzgl. Deine HUE Lampen. Ein Arbeitskollege benutzt den Conbee Stick und auch diesen Adapter ist hoch zufrieden. Damit habe ich aber überhaupt keine Erfahrung. Da musst dann auch noch eine Extra-Software installieren.
-
@mickym Ich habe wieder auf den 1. Flow umgestellt. Also nochmals recht herzlichen Dank für deine Mühe, LG Oskar
-
@mickym hallo, ich benötige nochmals deine Hilfe. Nachdem alles so gut läuft habe ich vor mit einem Befehl mehrere Funktionen auf einmal zu steuern. Ich habe es versucht mit Alexa gute Nacht, dies geht nicht das ist bei Alexa schon belegt. Alexa starte gute Nacht geht und mein TV im Schlafzimmer schaltet ein. Nur das Ausschalten von meinem Sonoff Schalter geht nicht. Ich habe es versucht mit einer vorhandenen Change Node die Regel für einschalten herausgelöscht so daß nur off gehen sollte, leider geht dies nicht. Auch andere versuche sind gescheitert, deshalb wieder mal meine Bitte eine Sonoff ausschalten, lg Oskar
-
@oskar Lieber Oskar - ich helfe Dir ja gerne, aber wie immer muss ich verstehen, was Du warum versucht hast. Wo ist Dein Flow? Was willst Du erreichen.
Also Du sagst: "Alexa starte gute Nacht" - dann kommt irgendwas aus der Node heraus und das schaltet dann Dein TV im Schlafzimmer ein, aber gleichzeitig soll irgendein Sonoff-Schalter ausgeschaltet werden. Warum versuchst Du einen vorhandene Change Node, die den Schalter einschaltet zu löschen ??? - anstelle diese Change Node zu kopieren und ebenfalls an Deine Alexa Node zu hängen und statt ON einfach OFF zu setzen?
Du brauchst doch diese Change Node weiter zum Einschalten??? Also im Prinzip nur ein OFF an Deinen Sonoff Datenpunkt schicken. -
@mickym Hallo mickym, ich habe es mit verschiedenen Einstellungen versucht
Die Steckdose schaltet richtig ein aber die Sonoff s20 Steckdose schaltet nicht aus mit dieser Einstellung
Ich habe es auch immer Kopiert und nichts gelöscht, jedoch immer ohne Erfolg, was mache ich falsch?
lg Oskar -
@oskar Am Besten testet man so etwas, in dem Du wieder eine Inject Nodevor Deiner iobroker out Node - also der Steckdose verkabelst und da halt erst mal ausprobierst was wirkt. Schau Dir mal bei anderen Datenpunkten im iobroker an, was da drin stehen muss. Steht da nicht on/off statt true/false?
Im Übrigen musst Du in der Change Node auch nichts ändern. Also falls true/falls richtig sein soll - dann ist Dir doch egal was aus der Alexa Node rauskommt. Deshalb setzt Du dann in der Change Node off oder false egal was aus der Alexa-Node rauskommt. Also ändere anstelle von "Ändern" in der Change Node zu "Setze" auf false oder off.
Also Vorgehensweise:
- Mit Inject Node testen, was Deine Steckdose ausschaltet - natürlich musst Du auch sicher sein, dass das STATE ist. Normalerweise heißt der Datenpunkt POWER bei den Tasmota Dingern. Schaut beim Fernseher ja auch so aus, dann sollte der Datenpunkt bei der Steckdose doch wahrscheinlich auch POWER und nicht STATE heißen.
Aber auch das kannst Du ja mit einer Inject Node einfach testen. - Wenn Du weißt mit welchem Befehl Du dann welchen Datenpunkt ansteuern kannst, dann kannst die Inject Node wieder löschen und die Change-Node entsprechend anpassen.
- Wenn Du "gute Nacht" nicht stoppen willst, dann ist Dir egal was aus der Alexa Node rauskommt - dann nimmst Du "setze" anstelle von "ändern" sonst natürlich nicht.
Zum Schluss noch eine Ergänzung:
Nehmen wir mal an, dass alles so stimmt, wie Du es designed hast. Nehmen wir mal an, ohne das über eine Debug Node zu beweisen, dass wenn Du "starte Gute Nacht sagst", aus der Alexa Node ein "on" rauskommt.
Mit dem "on" schaltest Du einmal TV EIN (=true) und einmal willst Du die Steckdose gleichzeitig eine Steckdose mit EIN (=false) ausschalten. Das kann doch gar nicht funktionieren. Dann musst Du zumindest bei der Steckdose den Change Node (falls die Datenpunkte) stimmen umdrehen. Das heißt "on" in "false" und "off" in "true". Weil "off" bedeutet dann ja, dass Du gute Nacht stoppst.
Am Besten ist aber auch hier - wie wir es ja auch schon mal gemacht haben, Du hängst eine Debug Node - an die Alexa Node und schaust was rauskommt.
- Mit Inject Node testen, was Deine Steckdose ausschaltet - natürlich musst Du auch sicher sein, dass das STATE ist. Normalerweise heißt der Datenpunkt POWER bei den Tasmota Dingern. Schaut beim Fernseher ja auch so aus, dann sollte der Datenpunkt bei der Steckdose doch wahrscheinlich auch POWER und nicht STATE heißen.
-
@mickym also der Datenpunkt ist power
Die Steckdose State schaltet richtig ein, dies ist der TV im Schlafzimmer
beim Sonoff TV Wohnzimmer Power kommt jetzt folgendes heraus
-
@mickym hallo, die Änderung hat Erfolg gebracht
Danke für deine Hilfe, lg Oskar -
@oskar Na wird doch - ich dachte schon, dass meine Erklärungen nicht verstanden wurden.
-
@mickym Hallo mickym jetzt spinne ich mein Alexa starte gute Nacht, bis jetzt läuft TV im Wohnzimmer aus, TV im Schlafzimmer an, Wohnzimmer-Licht aus. Jetzt zu meiner Frage, kann ich über node-red eingeben, daß das Licht im Wohnzimmer nach dem Befahl noch etwas länger brennt, damit ich mit Licht das Wohnzimmer verlassen kann? Aber nur wenn es nicht zu kompliziert ist. Ich danke im voraus für deine kurze Antwort, lg Oskar
-
@oskar Das ist alles in NodeRed ziemlich easy. Du brauchst nur eine trigger oder eine delay Node in den Flow klemmen. Die Delay Node ist zwar einfacher zu konfigurieren, aber ich finde es immer praktisch, dass erst dann eine und nur die letzte Nachricht geschickt wird, wenn sich nichts mehr ändert. Dann kannst Du der Alexa 5 mal gute Nacht oder guten Tag sagen ohne, dass das Licht 5 mal an und aus geht.
Also klemm einfach eine trigger Node zwischen Deine Change Node und Deine iobroker out Node und gib die Zeitspanne nach Deinen wünschen ein.
Hier mal ein Konfigurationsbeispiel:
-
@mickym Danke, das ist ja ziemlich easy, ich kanns im Moment nicht ausprobieren erst wenn ich zu Bett gehe, melde mich morgen ob`s geklappt hat, lg Oskar