NEWS
Blockly in Node-red umwandeln
-
@marko1974 sagte in Blockly in Node-red umwandeln:
@mickym ja genau…dass soll quasi hinter das Alexa Ding, was es schon in node-red gibt
Ich verstehe das Blockly nicht - was soll diese Abfrage.
Aus Lampe Balkon kommt true/false und das willst Du nach Lampe Balkon on schreiben. Was soll dann die Abfrage?
Du könntest Du in den steuere Block für Lampe on einfach den Wert aus Lampe schreiben?
Warum hast Du das Blockly nicht einfach so gemacht?
Der Wert ist doch der gleiche den Du dann in den anderen Datenpunkt schickst.
-
@mickym ja das meine ich ja…ich habe damals glaube ich für alles Datenpunkte angelegt. Alexa steuert also den datenpunkt….wenn der datenpunkt geändert wird greift das Blockly. Eigentlich totaler Quatsch. Kann ja einfach das Gerät als iobroker out nehmen oder?
-
@marko1974 Also wenn Du nur das was aus der Alexa Node kommt in die Schlafzimmerlampe schalten willst, dann mach das mal zwischendrin alles weg und poste lieber mal das Nachrichtenobjekt was aus der Alexa Node kommt mit der du die Schlafzimmerlampe steuern willst.
Am Besten machst Du eine Debug Node mit dem ganzen Nachrichtenobjekt dran und kopierst aus dem Debug Fenster den Wert hier in CodeTags ein.
und den Wert kopierst Du den value am Besten oben vom gesamten Objekt (copy value)
Am Besten wenn die Lampe ausschaltest und ein Objekt wenn Du sie einschaltest.
-
21.12.2024, 21:06:31node: debug 1msg.payload : string[2] "on" 21.12.2024, 21:06:35node: debug 1msg.payload : string[3] "off"
-
@marko1974 Na ist zwar nicht das was ich genau wollte. Aber sieht so aus, als ob Du nur die payload "on" und "off" in true und false ändern musst.
Um eine payload zu ÄNDERN nimmst Du eine Change = Änderungs Node und das wars schon. Die anderen Nodes kannst Du Dir sparen.
In dieser CHANGE (ÄNDERUNGSNODE) änderst Du die payload als STRING (ZEICHENKETTE) (a-z) "on" in einen Logikwert true und für "off" in false.
Diese Change Node klemmst Du zwischen die Alexa und iobroker Out Node und das wars - die switch und function NOdes sparst Du Dir.
Generell empfehle ich Dir zu ANFANG keine function Nodes zu verwenden. Du willst doch nicht Javascript programmieren oder?
Du kannst es natürlich auch so machen wie Du es im Blockly gemacht hast und mit switch Arbeiten - aber auch dann setzt Du mit einer Change Node die payload.
Das wäre dann halt auch so umständlich - du machst eine Wenn Abfrage:
payload = on an den oberen Ausgang 1
payload= off an den unteren Ausgang 2Zu setzen und somit auch ÄNDERN einer Payload auch eine CHANGE Node zum Setzen einer payload auf einen bestimmten Wert:
hier auf true.
Dazu braucht man keine function NOdes um eine payload zu setzen.
-
@mickym ja das habe ich verstanden. Momentan ist es so, dass ich mit nem neuen Zigbee Adapter arbeite. Meine Eltern haben ja deconz, also conbee.
Die Lampe habe ich hinzugefügt und versuche gerade direkt den Datenpunkt zu triggern. Das nimmt er aber nicht, obwohl er den Wert ändert. -
@marko1974 Du musst als command schicken nicht als value. command = steuere, value = aktualisiere. Das hängt wieder mit dem ack Flag zusammen,
-
@mickym hatte ich diesmal richtig gemacht. Durch das Umsetzen des Steckers in ein anderes Zimmer hat er mir das in der Alexa app deleted. Altes problem: kann es nicht neu hinzufügen. Der flow läuft!
-
@marko1974 Gut mit Alexa kenn ich mich nicht aus - da muss ich passen und ich nutze zwar auch den conbee aber mit zigbee2mqtt und mqtt und nicht mit einem zigbee adapter. Deswegen bin ich da nicht mehr ganz up to date.
-
@mickym ich hab jetzt den zigbee adapter genommen.....oder brauche ich den zigbee2mqtt?
-
@marko1974 Nein Du kannst auch nur mit zigbee adapter arbeiten. Ich hatte nur einige Probleme und habe alle Adapter rausgeschmissen, die mqtt sprechen.
-
@mickym also der datenpunkt wird in node red auf false oder true gesetzt. Das gerät selbst schaltet jedoch nicht.
State value to set for "zigbee.0.70b3d52b60123a6b.state" has to be type "boolean" but received type "string"
-
Ja dann hast Du true/false als String geschickt und nicht als boolean - zeig man Deine Change Node bzw. schau Dir meine nochmal genau an!
Ausserdem schau - dass Du in Deinem NodeRed Adapter NICHT DIESE unseelige Zeichenkonvertierung eingeschaltet hast. Die MUSS AUS sein!!!
-
@mickym ich habs gefunden. Brille hilft Funktioniert! Natürlich hatte ich es in der Change node noch auf string
-
@marko1974 sagte in Blockly in Node-red umwandeln:
@mickym ich habs gefunden. Brille hilft Funktioniert! Natürlich hatte ich es in der Change node noch auf string
ja hier hast Du eine Menge Optionen - WELCHEN Datentyp Deine payload haben soill:
-
@mickym und genau die habe ich mir mal weggedacht
Wenn ich jetzt sagen möchte:
ein kontakt löst aus, und wenn er true ist, schalte irgendwas ein ....
Dann nehme ich auch ein iobroker in...nämlich den kontakt, dann ne switch node und als iobroker out die lampe?
Oder nicmmt man da inject? -
@marko1974 Jein - hängt davon ab ist das ein Taster oder ein Schalter. Wenn ein Schalter - dann kannst ja direkt in die iobroker Out weiterleiten. Wenn es ein Taster ist, dann musst Du ja erst ermitteln, wie der aktuelle Zustand der Lampe ist. Die switch Node brauchst Du nur, wenn Du unterschiedlich agieren willst, also wenn dann, wenn dann usw.
Mit der Inject Node kannst du den Schalter simulieren bzw, den Flow initiieren. Du willst aber mit einem Schalter schalten, also brauchst Du den Zustand des Schalters aus dem iobroker und insofern eine iobrokerIN Node.
-
@mickym Verstehe...das machen wir dann morgen weiter
-
@marko1974 gut - dann schlaf gut
-
@mickym netflix