NEWS
node-red-contrib-amazon-echo und History Json
-
Hallo,
ich nutze aktuell Node-Red, um Alexa Befehle per Raum auszuführen. Das klappt bei mir nicht so gut, da ich 6 Alexa habe und per Node -Red nur den Triggerpunkt für ein Javascript dient. Dies ist nicht sehr komplex, aber es gibt da einige Falscherkennungen.
Ich habe schon den Tip erhalten, dass ich von dem Alexa History Eintrag besser das Json verarbeiten soll, da hier immer alle Daten enthalten sind und diese wirklich zu einander gehören. Da ein Java-Script asynchron läuft, sollte dies meine Situation schon verbessern
Selbst habe ich mir überlegt, dass die Information möglichst früh, also schon im Node-Red ausgelesen werden sollte.
Jetzt zu meiner Frage:
-
Hat der node-red-contrib-amazon-echo vielleicht schon die nötigen Informationen, sprich History (woher kommt der Befehl, etc)
-
Wenn er diese noch nicht hat, wie lese ich den JSon History Datenpunkt per Node-Red aus und schreibe ihn dann zur Analyse in einen neuen Datenpunkt.
Gruss,
mitch -
-
@mitch sagte in node-red-contrib-amazon-echo und History Json:
Wenn er diese noch nicht hat, wie lese ich den JSon History Datenpunkt per Node-Red aus und schreibe ihn dann zur Analyse in einen neuen Datenpunkt.
Ich benutze keine Alexa - deshalb kann ich Dir beim ersten Teil Deiner Frage nicht helfen.
Zur Analyse eines JSON Objektes kann ich Dir helfen. Ggf. kannst Du auch alles in einzelne Datenpunkte automatisch zerlegen lassen, dafür habe ich einen Flow erstellt: https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
-
Ich versuche im 1. Schritt erstmal das JSON, welches in einem Datenpunkt liegt in einen anderen zu schreiben. Hintergrund ist, dass sich der original Datenpunkt oft ändert und ich nur in bestimmten Aktionen die Aktion ausführen will. Aber Schritt für Schritt.
Im Screenshot sieht man timestamp, was ich nur zum auslösen benutzen will. Dann soll der Daten json ausgelesen werden und nach dp_json übetragen werden. Das klappt schonmal!
Im nächsten Schritt will ich noch den Alexa Aufruf Fernseher damit koppeln, d.h. am besten soll bevor der Switch auslöst, oder zur Not auch parallel zur Switch-Schaltung (also so früh wie möglich) json nach dp_json übertragen werden. Allerdings nur, wenn Fernseher aufgerufen wird.
-
@mitch na dann verbindest halt das Ereignis bei dem ausgelesen werden soll mit der get Node. Und wie gesagt, wenn du einzelne Datenpunkte aus dem JSON haben willst nutzt halt meinen Flow.
-
@mickym sagte in node-red-contrib-amazon-echo und History Json:
@mitch na dann verbindest halt das Ereignis bei dem ausgelesen werden soll mit der get Node.
Du bist ja schnell!
Kann ich auch dafür sorgen, das die Übertragung vor dem Switch und nicht parallel durchgeführt wird? Ich möchte natürlich dass on und Off trotzdem bei der Schaltung ankommt. Wenn nicht, dann einfach parallel. Was meinst du?
-
@mitch sagte in node-red-contrib-amazon-echo und History Json:
@mickym sagte in node-red-contrib-amazon-echo und History Json:
@mitch na dann verbindest halt das Ereignis bei dem ausgelesen werden soll mit der get Node.
Du bist ja schnell!
Kann ich auch dafür sorgen, das die Übertragung vor dem Switch und nicht parallel durchgeführt wird? Ich möchte natürlich dass on und Off trotzdem bei der Schaltung ankommt. Wenn nicht, dann einfach parallel. Was meinst du?
Dann hängst halt die get Node an die Alexa Node und die Switch Node parallel zur iobroker out Node. Wenn dir das immer noch zu schnell ist, dann machst halt noch eine Delay Node dazwischen. Musst halt nur schauen, dass du dir die payload nicht überschreibst und ggf, in einer anderen Eigenschaft des Nachrichtenobjektes speichern.
-
Danke, Das mit dem Delay Node ist super! Das werde ich probieren!
-
@mitch
Komm noch nicht ganz klar, was du mit der History anfangen willst, aber ich steure zumindest meinen Fernseher über "node-red-contrib-amazon-echo"Schalte den Fernsehen an/aus und über die Helligkeit steuere ich die Lautstärke.
-
@kla960 sagte in node-red-contrib-amazon-echo und History Json:
@mitch
Komm noch nicht ganz klar, was du mit der History anfangen willst, aber ich steure zumindest meinen Fernseher über "node-red-contrib-amazon-echo"Schalte den Fernsehen an/aus und über die Helligkeit steuere ich die Lautstärke.
Ich möchte ein Skript für alle 4 Fernseher haben. Das Skript erkennt, über History woher der Befehlt kommt und liest über Räume aus, welche schalbare Steckdose am Fernseher hängt.
-
@mitch sagte in node-red-contrib-amazon-echo und History Json:
Ich möchte ein Skript für alle 4 Fernseher haben. Das Skript erkennt, über History woher der Befehlt kommt und liest über Räume aus, welche schalbare Steckdose am Fernseher hängt.
Aber die History Daten werden doch nur alle 60 s aktualisiert.
Würde das erst mal prüfen, bevor du hier weiter Zeit rein steckst.
Kann man nicht besser in der Alexa App Räume als Gruppen definieren und dann z.B. mit Schalte ... in Wohnen an sagen?
Ansonsten schau mal ob du hier Alexa History Blocky ob dir das hilft.
-
Ich hatte dort noch 300 drin stehen. Ich habe jetzt 60s eingetragen, weil geringer ist nicht so gut. Bei 0 werden die History Daten glaube ich nicht mehr aktualisiert.
Bedeutet das, das ich nur alle 60s ein Gerät schalten kann, wenn ich rausfinden möchte, woher ein Alexa Befehl kommt. Das wäre ja komisch und das sagen auch nicht meine Beobachtungen, oder habe ich was falsch verstanden?
-
@mitch Hi, wenn im Alexa Adapter Push Verbindung aktiviert ist und die Push Verbindung steht (kann man im Log sehen) werden die History Daten in Echtzeit aktualisiert und das Intervall nicht verwendet.
alexa2.0 2022-12-09 04:38:16.204 info Alexa-Push-Connection (macDms = true) established. Disable Polling
-
@frankyboy73 Also ich habe Push aktiviert. Die History Werte werden aber bei mir definitiv alle 300 s wie gesetzt aktualisiert. Bei 0 kommen keine Daten an. Habe es gerade mal beobachtet.
creationTime
Fri Dec 09 2022 08:28:18 GMT+0100 (Central European Standard Time)Zeitstempel ist 08:32:53. Also fast 5 min später.
Logisch da ich die Alexa kurz nach der letzten Änderung angesprochen habe.So kann man die History Daten nicht nutzen. Selbst bei 60 s.
-
@kla960 Hi, also bei mir kommen sie sofort an ohne irgendeine Verzögerung.
Habe das mal kurz mitgeloggt:2022-12-11 08:44:36.995 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:44:36 - [info] [debug:sum] schalte strahler ein 2022-12-11 08:44:49.475 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:44:49 - [info] [debug:sum] schalte strahler aus 2022-12-11 08:44:54.695 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:44:54 - [info] [debug:sum] schalte lichterkette ein 2022-12-11 08:44:59.135 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:44:59 - [info] [debug:sum] schalte lichterkette aus 2022-12-11 08:45:05.696 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:45:05 - [info] [debug:sum] wie ist die temperatur im schuppen 2022-12-11 08:45:07.935 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:45:07 - [info] [debug:sum] 2022-12-11 08:45:14.091 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:45:14 - [info] [debug:sum] 2022-12-11 08:45:16.109 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:45:16 - [info] [debug:sum] wie ist die temperatur im schlafzimmer 2022-12-11 08:45:18.145 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:45:18 - [info] [debug:sum] 2022-12-11 08:45:24.335 - [32minfo[39m: node-red.0 (1585) 11 Dec 08:45:24 - [info] [debug:sum] wie ist die temperatur im wohnzimmer
Hast du denn mal im Log geschaut ob deine Push Verbindung überhaupt zustande kommt?
-
Scheinbar will push bei mir nicht gehen.
022-12-12 09:41:06.129 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 10s 2022-12-12 09:41:16.590 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 15s 2022-12-12 09:41:28.831 - info: alexa2.0 (15319) Initialization Done ... 2022-12-12 09:41:32.046 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 20s 2022-12-12 09:41:52.500 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 25s 2022-12-12 09:42:18.688 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 30s 2022-12-12 09:42:49.147 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 35s 2022-12-12 09:43:25.260 - info: alexa2.0 (15319) Alexa-Push-Connection disconnected - retry: Retry Connection in 40s
Habe den Adapter wie auf GIT beschrieben mal neu installiert. Jetzt geht Push wieder und ja, die Daten kommen auch immer aktuell an.