NEWS
Alexa Temperaturabfrage mit Node Red
-
@frankyboy73 ja, hatte ich auch so gemacht, wie du es beschrieben hast und es funktioniert ja auch jetzt.
Mal ne andere Frage: Ich möchte in einem selbst erstelltem Datenpunkt über eine Alexaansage true oder false setzen. Der Alexa Node schreibt mir da aber jetzt "powerstate ON" oder "powerstate OFF" rein. Kann man das auch mit einem Change Node so ändern, dass da true oder false steht? -
@kymchy Hi, ja das geht. Mit der der Einstellung Ändere. Dann suche nach "powerstate ON"
ersetze durch boolean true, usw.
Kommt da wirklich "powerstate ON" und "powerstate OFF" raus?
Was aus der Alexa Node rauskommt kannst du mit ner Debug Node überprüfen. Dafür einfach ne Debug Node hinter die Alexa Node hängen, dann kannst du dir rechts im Fenster ansehen was da raus kommt. Ist oft sehr nützlich bei Fehler/Problemsuche.
In der Debug Node am besten auf Komplettes Nachrichten Objekt stellen.
Kannst du auch hinter die Change Node packen, dann kannst du testen ob danach das richtige rauskommt, wenn man mal etwas rumprobiert, was man wie ändern kann/muss, ist das sehr praktisch. Oder damit man sieht ob überhaupt ne Nachricht rauskommt. -
@frankyboy73
also, das ist das was rauskommt
-
und das beim Debug Node:
da haben wir wohl wieder das Problem Object -> Wert?
-
@kymchy Habe ich mir gedacht, was aus der Node rauskommt ist ein Objekt mit mehreren Nachrichten. Der ON / OFF Status ist in der Unternachricht msg.payload.powerState.
Da du aber an die Iobroker Out Node true/false per msg.payload senden muss, müssen wir das noch von msg.payload.powerState auf msg.payload verschieben.
Du Kannst die Debug Message auch noch aufklappen, wenn du bei der Debug Ausgabe auf den kleinen Pfeil klickst, den ich im meinem Screenshot oben markiert habe.
Da gibts auch verschiedene Möglichkeiten das umzusetzen, entweder mit ner Change Node oder man kann auch mit nem Switch die msg.payload.powerstate abfragen und danach true und false in die msg.payload setzen.
Ich würde es erst mal einfach in der Change Node so umsetzen.
Oder erst verschieben und dann die Werte ändern.
Lösung über switch würde dann eventuell so aussehen:
-
-
@frankyboy73 So funktioniert es:
Was ich bekomme ist ein String bzw. auch ein Boolean, wenn ich es dahingehend ändere.
Besten Dank! -
@kymchy Super.
Genau du musst an die Iobroker Out zum schalten ein Boolean benutzen und kein String sonst klappt das mit dem schalten nicht richtig. -
@frankyboy73 einen String könnte man auch auswerten, ist aber nicht so schön und braucht außerdem mehr Speicher. Alles gut!
-
@kymchy Ok, ich weiß ja nicht was du mit der Ausgabe machen willst. Aber wenn du über die Iobroker Out Node Geräte die du in deinem Iobroker hast Ein/Aus schalten willst, z.B. Steckdosen, Lampen usw. die in den Objekten die Rolle "switch" haben, muss du da ja auf jeden Fall ein boolean draufsenden. Das Einschalten würde ja noch mit nem String gehen, weil der ungleich 0 ist und dadurch bei jedem String eingeschaltet wird, aber das Ausschalten geht nur mit boolean false oder Number 0. Dadurch wäre es nicht sinnvoll aus der Change Node Strings auszugeben, die man eventuell danach noch mal auswerten und umwandeln muss. Das nur als Tipp und nicht als negative Kritik. Jeder darf sein System so aufbauen wie er es für sinnvoll hält. Ich habe auch Umsetzungen bei mir drin, wo andere bestimmt die Hände über dem Kopf zusammen schlagen würden. Also viel Spaß bei Node Red testen
-
@frankyboy73 nee, du hast schon recht. Ich habe es auch direkt nach Boolean geändert. Ergibt schon viel Sinn.
-
Eine Frage hätt ich dann doch noch:
Wir steuern ja jetzt unseren Datenpunkt über eine Alexa Sprachanweisung bzw. über den Schalter in der Alexa App:
Der Datenpunkt wird aber auch über ein anderes Gerät verändert. Ist es möglich, den Alexa Node über ein weiteren ioBroker In Node so zu steuern, dass er bei Änderung des DP durch ein anderes Gerät dessen Wert annimmt? -
@kymchy Ja - dazu hat die Alexa Node ja einen Eingang - letztlich ist es doch nichts anderes als bei Deinem Außensensor und der Temperatur - da hast Du den Status ja auch der Alexa Node mitgeteilt.
-
@mickym stimmt, müsste ich ja eigentlich so übernehmen können
-
@kymchy Na ja die Objekteigenschaften sind halt ggf. unterschiedlich je nachdem was Du für ein virtuelles Gerät hast, aber das siehst ja in der Hilfe zu der Node.
-
@mickym im obigen Beispiel bekomme ich vom Alexa Node ja ein Object und ändere es mit dem Change Node nach Boolean für die ioBroker Ausgabe.
Der neue zusätzliche ioBroker In Node, würde mir wieder ein Boolean liefern. Müsste ich den dann auch erst wieder in ein Object schreiben? -
@kymchy Hi, es gibt ja in der Hilfe oder in der Doku zu der Node Beispiele, wenn man sich das Beispiel switch z.B. importiert, kann man ja in die Injekt Nodes schauen was da für on und off gesendet wird. Das musst du dir so in deine change Node einbauen, damit bei false bzw. true jeweils der richtige Befehl aus der Change Node rauskommt.
Im Beispiel ist die Injekt Node für On so eingestellt.
Dann musst du in der Change Node aus dem true was dir die Iobroker In Node sendet diese Nachricht machen, das geht mit ändere. Das gleiche dann noch für false bzw. Off
Das könnte dann so in der change Node aussehen.
Edit: Ich selber hätte das wahrscheinlich so versucht.
Kann aber nicht testen, da ich die Node wie gesagt nicht verwende.
-
@frankyboy73 hi,
so hatte ich es gemacht:
und der Debug Node gibt mir nun auch powerstate "OFF" bzw. powerstate "ON" aus.Das scheint der Alexa Node aber noch nicht zu reichen...auf jeden Fall ändert sich nix in der Alexa App.
-
@kymchy Ich weiß jetzt nicht ob das einen Unterschied macht, aber eigentlich ist bei powerstate das S von State groß geschrieben, also powerState.
-
@frankyboy73 sagte in Alexa Temperaturabfrage mit Node Red:
@kymchy Ich weiß jetzt nicht ob das einen Unterschied macht, aber eigentlich ist bei powerstate das S von State groß geschrieben, also powerState.
DAs macht einen Unterschied - immer schön die Hilfe beachten: