NEWS
Alexa-Anbindung eines Dimmers mit Node-RED
- 
					
					
					
					
 Aus irgendeinem Grund schaffe ich es nicht, die Dimmfunktion meiner Spots im Wohnzimmer über Alexa mit Node-RED zu realisieren.  Wo liegt der Fehler? 
- 
					
					
					
					
 @schnipsel71 
 leider verrätst Du ja nicht viel wie weit du kommst, oder wo es hakt.
 Man sieht ja den bewährten Skill "Node-RED Contrib Amazon Echo module", aber auch den Nachfolger "dulonode".
 Wird denn dein Smart-Gerät (Spots) überhaupt bei einer Alexa Suche gefunden? Das wäre ja der erste Schritt. Ich hatte immer Schwierigkeiten (nach jedem iobroker Neustart) das ganze funktionabel zu halten, solange Port 80 benutzt wurde. es musste immer auf der Konsole "erlaubt" werden unterhalb von Port 1000 was zu machen.sudo setcap ‚cap_net_bind_service=+ep‘ which nodeLeider keine Lösung die "Bootsicher" ist 
 Nutze seither einen anderen Port und "biege" mir den Port 80 dahin um.
 Damit Alexa dein Gerät(e) findet, müsste so ein Aufruf funktionieren:http://youraddr:80/description.xml 
 und so ein Ergebnis liefern: Solange das nicht funktioniert, brauchst du gar nicht weiter machen. 
 Hier mal meine alten Notizen, die ich mir mal gemacht hatte:
 Deshalb „biegen wir den Port um“ und zwar von Port 80 auf Port 8095. So schickt das Echo Device die Befehle an Port 80, diese „landen“ aber auf Port 8095. Der hier gezeigte Weg scheint kompliziert und aufwendig, aber nur auf den ersten Blick und ist eigentlich einfach und schnell in 4 Schritten erledigt. Als root User per SSH auf der Iobroker Maschine wird festgestellt wie die Netzwerkkarte heißt: ifconfig gibt ifconfig eine Fehlermeldung aus, ist es noch nicht installiert, das holt man nach mit: apt-get install net-tools und versucht es nochmal mit dem Befehl ifconfig. Die Ausgabe sieht dann ungefähr so aus:  Von dieser Ausgabe brauchen wir nur den Namen der Netzwerkkarte z.B ETH0, oder wie in diesem Fall ens18. Zuerst „befehlen“ wir, dass unsere „Portumbiegung“ akzeptiert werden soll: iptables -I INPUT 1 -p tcp –dport 80 -j ACCEPT Dann kommt die eigentliche „Umbiegung“ von Port80 auf Port 8095: iptables -A PREROUTING -t nat -i ens18 -p tcp –dport 80 -j REDIRECT –to-port 8095 Wobei für ens18 evtl. der eigene Name der Netzwerkkarte eingesetzt werden muss (zB. ETH0). Mit diesen 3 schritten wäre die Umbiegung bereits fertig, allerdings nur bis zum nächsten Neustart der Maschine. Deswegen müssen wir das ganze noch „permanent“ machen: apt install iptables-persistent Damit ist die Port Einrichtung auch schon beendet und wir kommen zu den einfacheren Schritten. Zuerst installieren wir unter Adapter node-red und fügen eine Instanz hinzu.... 
 In der Konfiguration vom Echo-Hub in Node-Red wird dann der port 8095 eingetragen, durch die "Umbiegung" findet Alexa den Hub aber trotzdem auf Port 80 (siehe Link von oben)  Auseinander getüddelt hatte ich mir das Ganze von hier (Solution 2) https://github.com/datech/node-red-contrib-amazon-echo/wiki/Troubleshooting Wenn Du bis da gekommen bist und es dann bei den weiteren Schritten klemmt, sag Bescheid. Es ist extrem entspannend unbeteiligt die Diskussionen rund um IOT, Matter, Alexa Skills (v2, v3) mit zu verfolgen und gleichzeitig zu wissen, dass alles weiter funktioniert und weiter funktionieren wird, ohne Gedöns.  KISS. Was man nicht benutzt, kann auch nicht kaputt gehen. 
- 
					
					
					
					
 @j_paul Ja, du hast Recht - ich muss noch nachtragen: Die Spots kann ich über Alexa erreichen, indem ich beispielsweise sage "Spots aus" oder "Spots an". Aber das Dimmen mit "Spots dimmen auf 30%" funktioniert leider nicht. Vielen Dank für den Tipp mit dem Port, aber an dem hängt es anscheinend nicht. Hast du noch eine andere Idee? 
- 
					
					
					
					
  Die Funktion fürs dimmen: msg.payload = parseInt(msg.bri / 254 * 100); return msg;zum (sicheren) Auschalten hatte ich noch den Switch  Mit der angehängten Funktion msg.payload = 0; return msg;Sag mal bitte, ob das so klappt. 
- 
					
					
					
					
 @j_paul Leider funktioniert das auch nicht. Die Spots schalten immer grundsätzlich auf 50%, gleich welche Zahl ich sage zwischen 1% und 100%. Nur bei 0% schalten die Spots komplett aus. Genauso, wie wenn ich sage "Spots aus". 
- 
					
					
					
					
 @schnipsel71 
 Könntest du mal (um das Problem einzukreisen) auf einen anderen Datenpunkt lenken? Irgend ein State im 0_User Verzeichnis vom Typ Number würde ja reichen.
 Nur zum Testen mal….
- 
					
					
					
					
 @j_paul Alexa kennt den aktuellen Wert nicht. Der wird auf der linken Seite mit Angabe der Node-ID an Alexa gemeldet. Da kommen alle Istwerte hin, damit Alexa weiß, dass der letzte Befehl auch eingetrudelt ist. Die Hilfe zu dem Node gibt da Details zu preis. 
  Ansosnten sollte man auch alle angelernten Geräte in der Alexa-App sehen und steuern können, wenn die Anbindung in Ordnung ist. 
- 
					
					
					
					
 @peterfido 
 Weiß jetzt nicht, ob Du den Beitrag nicht richtig gelesen hast, oder wo das Missverständnis herrührt.Es geht darum, dass bei @schnipsel71 das Dimmen über die (siehe oben) "Dimm Funktion" nicht funktioniert, bei mir aber schon: 
 "Alexa, schalte Kronleuchter auf 18 Prozent"
 wird im Datenpunkt über das "Iobroker-Node-Out" 18 geschrieben, siehe:
  
 Um auszuschließen, dass etwas externes (Das Gerät von Schnipsel, oder ein Skript o.ä.) den Datenpunkt mit 50 beschreibt, war mein Vorschlag es mal mit einem frisch angelegtem Datenpunkt im 0_Userverzeichnis zu probieren, zum testen/ausschließen.
 @peterfido, zumindest kann ich nicht erkennen, wie Deine Antwort zur Fragestellung passen könnte.
 @schnipsel71 Konntest Du das mal testen?
 und bist du sicher, dass dies in der Dimmer Funktion steht?msg.payload = parseInt(msg.bri / 254 * 100); return msg;
- 
					
					
					
					
 @j_paul Zumindest mein Hinweis und der App. Da kann man dann sehen, was tatsächlich bei Alexa ankommt. Zum Testen würde ich einfach ein oder mehrere Inject nehmen, und den Wert manuell vorgeben. Mit einem Debug-Node kann man schauen, was Alexa da sendet. Dafür das komplette Nachrichtenobjekt ausgeben. Wenn das klappt, dann weiterschauen. Ich kann mich erinnern, dass anfangs immer 50% an Alexa gesendet wurden, um den Befehl heller oder dunkler mit fixen Werten zu erkennen. Evtl. nehmen die Spots auch Werte bei bri bis 255 direkt an. Das Zurückmelden des Ist-Zustands an Alexa ist auch notwendig, um die Schalterpositionen in der Alexa App korrekt vorzugeben und einem "reagiert nicht" vorzubeugen. 
- 
					
					
					
					
 @j_paul Leider wird meinem, zu Testzwecken definierten Datenpunkt "Probewert" auch nur 0 oder 50 übergeben.  
- 
					
					
					
					
 @schnipsel71 Häng mal hinter Spots ein Debug-Node mit der Konfig komplettes Nachrichtenobjekt. Dann Alexa bitten, die Helligkeit auf 33 Prozent zu setzen. Die Ausgabe des Debug-Nodes hier posten. Beispiel: Wenn ich sage, Alexa, Gartenlicht 30 Prozent, kommt Folgendes raus:  Meine Rückmeldung an Alexa sieht so aus:  
 
		
	