Voraussetzungen
- ein Robonect-kompatibler Rasenmäherroboter von Husqvarna / Gardena / Flymo / McCulloch mit Robonect Modul
- ein Gerät mit Amazon Alexa, wie z.B. den Amazon Echo
- eine durch Portforwarding am Router öffentlich aus dem Internet erreichbare Robonect-Oberfläche:
Anleitung für die FRITZ!Box- sicherstellen, dass bei Verwendung vom DHCP im Heimnetz das Robonect-Modul immer dieselbe IP zugewiesen bekommt (damit das Portforwarding auch nach etlichen An-/Abmeldungen des Robonect-Moduls im WLAN noch richtig funktionieren wird)
- eine Portfreigabe eines gewünschten Ports von außen (z.B. 8080) auf den Port 80 an die interne IP-Adresse des Robonect-Moduls einrichten
- ggf. einen DynDNS-Dienst nutzen und idealerweise ebenfalls im Router hinterlegen, wenn Sie keine feste IP-Adresse haben (damit das Heimnetz dynamisch zugewiesenen IP-Adressen über einen festen Domainnamen ständig erreichbar ist)
- das Robonect-Oberfläche mit einem Passwort versehen, sonst kann jeder aus dem Internet darauf zugreifen
Aktivieren des Skills
Der Skill "Robonect Mähroboter" muss über den Amazon Store lediglich aktiviert werden: entweder über die App oder die Anweisung "Alexa, aktiviere Mähroboter" (so wie jeder andere Skill auch, den man neu aktivieren möchte). Beim ersten Start wird eine Alexa-ID und die URL für die Verknüpfungswebsite https://robonect.michael-eckel.de ausgeben (auch textuell auf die Alexa-App).
Sollte man die Alexa-ID später noch einmal benötigen (z.B. um die Verknüpfung zu ändern oder zu löschen, wird diese auch mittels "Alexa, frage Mähroboter nach Hilfe" ausgeben).
Alexa-ID mit eigener Robonect-URL verknüpfen
Die Verknüpfungswebsite https://robonect.michael-eckel.de im Browser aufrufen, und die über den Skill ausgegebene Alexa-ID sowie die öffentliche Robonect-URL eingeben. Mit Abschicken des Formulars wird dann direkt versucht, auf die Robonect-URL zuzugreifen, und im Fehlerfall eine entsprechende Meldung ausgegeben. Wichtig ist, Benutzername/Passwort in der angegebenen Form in die URL zu integrieren: http://robonectuser:robonectpass@host:port
Diese Verknüpfung ist nötig, weil ja jeder Nutzer seinen eigenen Mähroboter steuern möchte, und nicht alle denselben. Deshalb frägt der Skill dann bei jedem Aufruf bei der Verknüpfungswebsite ab, ob eine (und wenn ja, welche) verknüpfte Robonect-URL zur eigenen Alexa-ID vorhanden ist. Danach wird auf die API der verknüpften Robonect-URL zugegriffen.
Diese etwas sonderbare Vorgehensweise erspart das Amazon-eigene Account-Linking, für welches eine Accountverwaltung umgesetzt werden müsste, und sich jeder noch einen Benutzernamen und ein Passwort merken müsste, mit welchem dann die Robonect-URL verwaltet werden würde.
Das Löschen oder Ändern einer Verknüpfung ist hier ebenso möglich: einfach die eigene Alexa-ID und die neue Robonect-URL eingeben, oder zum Löschen das Robonect-URL Feld leer lassen. Die Verknüpfungen werden in einer MySQL-Tabelle mit folgenden Spalten abgelegt: ALEXA_ID, URL(AES_VERSCHLÜSSELT), LETZTE_AENDERUNG
Verwenden des Skills
Wenn beim Start des Alexa-Skills dann nicht mehr die Meldung kommt, dass verknüpft werden muss, hat die Verküpfung auch funktioniert (sonst wurde vermutlich die Alexa-ID falsch eingetragen).
Folgende Befehle werden aktuell unterstützt (teilweise auch in zusätzlichen Variationen):
- "Alexa, starte Mähroboter" oder "Alexa, frage Mähroboter nach dem Status" fragt den aktuellen Status ab
- "Alexa, sage Mähroboter dass er den Modus auf Auto|manuell|home|Feierabend setzen soll" setzt den Modus auf Auto|manuell|home|Feierabend
- "Alexa, sage Mähroboter dass er Feierabend machen soll" setzt den Modus auf Feierabend
- "Alexa, sage Mähroboter dass er mähen soll" setzt einen Mähauftrag und macht anschließend Feierabend
- "Alexa, frage Mähroboter nach Hilfe" schickt eine Liste der Befehle auf die Alexa App
Troubleshooting
Falls jemand mit dem Portforwarding Probleme hat, dann empfehle ich folgendes Vorgehen:
- Ist das Robonect-Modul lokal im LAN erreichbar? Wenn nein, Robonect WLAN-Problem.
=> Im Browser http://robbi (d.h. lokaler robonect-Name) bzw. http://192.168.1.XX (d.h. lokale IP-Adresse von Robonect) aufrufen - Ist das Robonect-Modul außerhalb vom eigenen LAN über deine öffentliche IP-Adresse erreichbar? Wenn nein, Portforwarding-Problem.
=> Im Browser http://1.2.3.4:8080 (öffentliche IP, ermittelbar über www.wieistmeineip.de) aufrufen, wobei 8080 dem externen Port entsprechen sollte, über den am Router das Portforwarding zum Robonect-Modul eingestellt wurde - Ist das Robonect-Modul außerhalb vom eigenen LAN über die eigene DynDNS-Domain erreichbar? Wenn nein, DynDNS-Problem.
=> Im Browser http://meindyndnsname.net:8080 aufrufen, wobei meindyndnsname.net der (Sub-)Domain des eigenen DynDNS-Anbieters und 8080 dem externen Port der Portfreigabe entspricht, über den du am Router das Portforwarding zum Robonect-Modul eingestellt wurde