NEWS
Keine Status Mitteilung an Alexa
-
@mickym sagte in Keine Status Mitteilung an Alexa:
YAHKA Adapter Siri
Ok das ist soweit klar...
Natürlich muss darauf geachtet werden das beide Systeme sich nicht gegenseitig im Wege stehen.
Für mich war es in der Tat ein Gedanke ob das eine gute Idee ist NodeRed und Blockly zusammen zu nutzen.
Ich würde gerne nur NodeRed nehmen das es im Grunde alles wichtige bietet, allerdings ist ein für mich großes
die Spracheingabe an der Sache.Ich möchte eine große Bandbreite an Satzvarianten und Fremdsprachen verwenden und das fand ich unter NodeRed für meine Kenntnisse doch too much. Also versuche ich jetzt mein Kenntnisstand zu erweitern und hoffe das ich dann mich auf eine der beiden Logiksysteme zu beschränken.
-
@jörg-winterstein Ja kannst Du Dir überlegen. Ich mache alles mit NodeRed unter dem iobroker. Bis auf ein paar Kleinigkeiten, wenn Du Funktionen oder Räume benutzt ist NodeRed gegenüber Blockly im Nachteil, aber ansonsten bist Du mit NodeRed wesentlich flexibler - gerade was die Objektbearbeitung betrifft und Du kannst ZUSÄTZLICH auch mal Nodes nehmen, wenn der Iobroker Adapter nicht so tut, wie er soll. Ich habe deshalb meine Harmony Ansteuerung lieber in NodeRed gemacht, weil der Harmony Adapter viel zu langsam war (ändern der Lautstärke zum Beispiel). Andererseits gibts zum Beispiel für die Autoadapter im iobroker keinen adäquaten Ersatz in NodeRed, aber duch die iobroker Nodes kann ich diese Adapter im iob nutzen und die Logik trotzdem in NodeRed abbilden.
Lange Rede kurzer Sinn - ich persönlich habe kein einziges Blockly produktiv laufen, sondern steuere auch alles im iobroker mit NodeRed. Wenn Du Hilfe bei der Umstellung einzelnen Blocklys nach NodeRed brauchst, kann ich versuchen zu helfen, du solltest aber einen eigenen Thread aufmachen - sonst verwirrt die Alexa.
-
@mickym Ich habe Deinen Flow importiert...
ich versuche gerade herauszubekommen wie ich der "Change" Node erkläre das beim PAYLOAD "ON" > "true" an das Value weiter zugeben ist und bei "OFF" eben false.Ich habe für Homematic den Auszug:
{"topic":"192.XXX.XXX.XX/HmIP-RF/XXXX:2/STATE",
"payload":false,
"ccu":"192.XXX.XXX.XX",
"iface":"HmIP-RF",
"device":"XXXXX",
"deviceName":"K 0.05",
"deviceType":"HmIPW-DRS8",
"channel":"XXXXX:2",
"channelName":"Arbeitszimmer - Licht",
"channelType":"SWITCH_VIRTUAL_RECEIVER",
"channelIndex":2,
"datapoint":"STATE",
"datapointName":"HmIP-RF.XXXXX:2.STATE",
"datapointType":"BOOL",
"datapointMin":false,
"datapointMax":true,
"datapointDefault":false,
"datapointControl":"SWITCH.STATE",
"value":false,
"valuePrevious":false,
"valueStable":false,
"rooms":["Arbeitszimmer"],
"room":"Arbeitszimmer",
"functions":["Licht"],"function":"Licht","ts":1734612619797,"tsPrevious":1734612340000,"lc":1734612619797,"change":true,"cache":false,"uncertain":false,"working":false,"stable":true,"_msgid":"468dfe252095487c"}Der Wert "true" oder "false" muss für diesen Fall "datapoint" STATE geliefert werden.
Wenn ich Dein Beispiel richtig verstanden habe kann man zwar zwei "INJECTS" nutzen, benötigt aber nur eine "Change" Node um den Schaltzustand an oder aus zu realisieren.
-
@jörg-winterstein Es ist sinnvoll - dass Du so was in Codetags packst.
Du brauchst gar nichts machen - sondern kannst mit diesem Output direkt die ChangeNode füttern.
Aus dem ganzen Nachrichtenobjekt, nimmt sich deine ChangeNode
nur Deine payload raus und wenn Du diese Variante der Change Node nutzt (kannst ja kopieren) konvertiert die das automatisch in "ON" und "OFF" in das richtige Objekt.
-
@mickym Nein tut es leider nicht... die CCU Value Node braucht true oder false, alles andere geht nicht.
Das habe ich jetzt in mehreren Varianten probiert... NULL Reaktion auf ON oder OFF -
@mickym Müsste man eine IF Abfrage dafür zum ändern des Payload nehmen?
-
@jörg-winterstein Ja die brauch true oder false - aber in den State von Alexa muss ON oder OFF. Du hast mir doch gepostet, was aus der Homematic Node rauskommt. Du kannst doch einfach mal meine Change Node, die in den importieren Beispielen ist, HINTER Deine homematic Node schalten und dann über eine Debug NOde schauen, was rauskommt. Wenn das richtig ist, dann speist Du es in die Alexa state node ein.
Da hängst Du meine Change Node dran und machst dann noch eine Debug Node dran und schaust, was rauskommt, wenn Du die Lampe ein und ausschaltest:
-
@jörg-winterstein sagte in Keine Status Mitteilung an Alexa:
@mickym Müsste man eine IF Abfrage dafür zum ändern des Payload nehmen?
Nimm diese Change Node. Mit dem ? : - wird eine if else Abfrage direkt in JSONATA gemacht!!!!
-
@mickym sorry hatte vergessen zu erwähnen das ich diese FLOW deaktiviert habe und nach dem Deinem Beispiel es kurz neu angelegt habe... also zur Demoansicht für mich. Ich habe dabei die "Alexa" Nodes komplett herausgenommen und dabei reagiert die CCU Node nicht drauf.
-
@jörg-winterstein Na gut, dann solltest Du folgendes machen.
Lade mit einer InjectNode aus deinem Homematic Adapter das Objekt in einen neuen Flow - häng nach der iobroker IN Node noch eine JSON Node und ein Debug Node hinten dran und poste was rauskommt als Screenshot.
-
Wenn Du soweit bist, dass Du den Status deiner Lampe in einem Flow hast dann mach doch mal einen Screenshot - damit ich mich etwas orientieren kann.
-
@mickym ich hoffe mal das es so richtig ist
-
@mickym Ich habe jetzt mein ursprünglichen FLOW also mit Alexa und INJECT Nodes genommen.
Sorry musste noch Kosmetik betreiben.
also einmal mit inject node geschaltet
einmal mit alexa
-
@jörg-winterstein Na in debug 10 und 11 nimmst du ja die Homematic Nodes - die wolltest du ja nicht mehr verwenden.
So und in dem iobroker Adapter kommt die payload leider als String raus. Ggf. musst du da noch was anderes umstellen, aber ich empfehle Dir dringenst diese schwachsinnige Konvertierung in Strings - die aus mir unerfindlichen Gründen in den früheren Adapterversionen standardmäßig eingeschaltet war, rauszunehmen.
Also diesen Haken unbedingt raus nehmen - ggf. musst Du halt dann an Deinen bisherigen Flows was korrigieren aber besser am Anfang - als später:
Strings sind rot und in Gänsefüsschen und daran sehe ich, dass das verkehrt ist. Ich gehe mal davon aus, dass der Datenpunkt in Deinem iobroker Adapter ein Logikwert und KEINE Zeichenkette ist. Also stell mal den Adapter um und dann poste nochmal die Ausgabe von debug 12.
Am Besten gewöhnst Du Dir an, den Inhalt eines Wertes oder des gesamten Objektes in die Zwischenablage zu kopieren und dann hier in CodeTags.
und dann in codetags hier posten:
-
@jörg-winterstein sagte in Keine Status Mitteilung an Alexa:
@mickym Ich habe jetzt mein ursprünglichen FLOW also mit Alexa und INJECT Nodes genommen.
Sorry musste noch Kosmetik betreiben.
also einmal mit inject node geschaltet
einmal mit alexa
Wie gesagt, wenn Du ein Nachrichtenobjekt hast,mit der die payload als
Boolean (so wie hier), also blau und nicht rot in Gänsefüsschen kommt, dann häng da einfach meine Inject Node dran und schau was für eine payload rauskommt.
In dem Fall brauchst Du auch nur die payload in die Debug Ausgabe packen.
und nicht das gesamte Nachrichtenobjekt.
-
@mickym OK...
Nein der Haken war nicht gesetzt... das hatte ich schon in einem Video gesehen das der raus sollte.
Also weis das es einen Unterschied zwischen Logikwert und Zeichenkette gibt,
aber die kenne ich nicht und auch nicht die Problematik die daraus resultiert. -
@mickym ich bedanke mich bis dahin für Deine Geduld und Bemühungen, ich muss mich fertig machen... habe einen Termin.
Melde mich dann später. -
@jörg-winterstein ok bis dann.
-
@mickym um Missverständnissen vorzubeugen... Der Payload an STATE muss in blau sein und nicht in "" und nicht rot!?
-
@jörg-winterstein Ja hönge eine debug Node dran - die NUR den status der payload ausgibt:
und wenn da ein boolean rauskommt als Status dann in die ChangeNode und dann in den Alexa State Node.