Erweiterung Alexa

Moin!

ich wollte gerne in meinem Wohnwagen alles per Stimme steuern können. Hierzu habe ich eine Alexa verbaut. Ich wollte aber auf jeden Fall eine Lösung ohne der Eingabe der Zugangsdaten, Registierung etc. Der Weg hierzu ist eine Software-Simmulation z.B.: einer Hue-Bridge doer andere von Alexa bekannter Hardware. Damit diese die Geräte findet müssen dann nur noch beide in einem Netzwerk sein.
Ich bin so vorgegangen:

  1. Alexa verbauen und im gleichen Netzwerk wie den RaspPi setzen

  2. node-red-contrib-alexa-home (node) - Node-RED Erweiterung installieren

  3. Wichtig: Die Alexa sucht die anderen Geräte auf Port 80. Dieser wird aber bereits verwendet so, dass der Traffic von 80 auf 60000 umgeleitet werden muss. Das übernimmt aber die Anweisung direkt im Flow.

  4. Hier das Beispiel. Der Name kann frei gesetzt werden.

[{"id":"ebe582902f8d4ff8","type":"alexa-home","z":"b9b45e0d0190bae5","devicename":"Deckenlicht","devicetype":"Extended color light","x":370,"y":340,"wires":[["9470e78b5a8fc941","8a1ae1fdc339902c"]]},{"id":"89f22c7e7cb33064","type":"alexa-home-controller","z":"b9b45e0d0190bae5","controllername":"Alexa Controller","port":60000,"maxItems":25,"x":400,"y":160,"wires":[]},{"id":"beda377e7e0f1671","type":"inject","z":"b9b45e0d0190bae5","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payloadType":"date","x":390,"y":80,"wires":[["1b99139942b63d7b"]]},{"id":"1b99139942b63d7b","type":"delay","z":"b9b45e0d0190bae5","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"outputs":1,"x":660,"y":80,"wires":[["6e83b056d36a49f1"]]},{"id":"6e83b056d36a49f1","type":"exec","z":"b9b45e0d0190bae5","command":"sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 60000","addpay":false,"append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":1130,"y":80,"wires":[[],[],[]]},{"id":"9470e78b5a8fc941","type":"debug","z":"b9b45e0d0190bae5","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":280,"wires":[]},{"id":"3e0a47be15fd0434","type":"link out","z":"b9b45e0d0190bae5","name":"Alexa/relay1/POWER","mode":"link","links":["23311316e6f23903"],"x":895,"y":340,"wires":[]},{"id":"8a1ae1fdc339902c","type":"change","z":"b9b45e0d0190bae5","name":"Set global relay","rules":[{"t":"set","p":"one","pt":"global","to":"payload.on","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"payload.on","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":340,"wires":[["3e0a47be15fd0434"]]}]
  1. In der Alexa-App nach neuer Hardware suchen

  2. Das Beispiel setzt direkt den global “one” für das erste Relais. Das kann dann frei je nach Bedarf erweitert werden (Auch Dimmen etc. ist möglich). Die Statis der Relais-Schalter in der GUI werden alle drei Minuten aktualisiert. Um das direkter zu machen habe ich noch einen Link hinzugefügt welcher den Sync Knopf setzt. Das ist dann aber eine Modifikation im original Flow.

[{"id":"23311316e6f23903","type":"link in","z":"e2902b7e.e22d58","name":"Refresh Relais","links":["3e0a47be15fd0434"],"x":155,"y":680,"wires":[["76885cd91edacf81"]]}]

grafik

Änderung des Sync-Schalters so, dass dieser bei einer Nachricht aktualisiert.

grafik

VG

Wow! Finde ich richtig gut! Mal sehen ob ich das so hinbekomme.

LG
Mikel