Neues Release V1.1a!
Am 20.09.2019 wurde die V1.1a mit kleineren Fehlerbehebungen veröffentlicht:
viewtopic.php?f=39&t=2865

Amazon Alexa Skill (Michael Eckel)

Verbinde Robonect mit einem Alexa-Skill!
Erfahrungsaustausch von Anwendern.
bezibaerchen
Beiträge: 87
Registriert: Mi 4. Mai 2016, 14:57
Mäher: Gardena R40Li
Firmware des Mähers (MSW): MSW 5.xx.xx
Herstellungsjahr: 2015
Robonect-Modul: Robonect Hx (Rev.2)
Robonect Firmware: 0.9e

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von bezibaerchen » Mi 9. Aug 2017, 08:09

Be my guest :)
MSW-Software: R40Li
MSW-Version: 5.01.00
MSW-Datum: 2014-10-10 13:44:38
SUB-Version: 5.00.00

Ben
Beiträge: 5
Registriert: Mo 24. Jul 2017, 14:50
Mäher: Flymo Robotic 1200R
Herstellungsjahr: 2015
Robonect-Modul: noch kein Robonect verbaut
Robonect Firmware: -n/a

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von Ben » Di 15. Aug 2017, 12:43

Great to see you got the English Skills online!

Most of the text there seems fine, though a couple of the status descriptions don't sound quite right in English:

"has been parking" => "is parked"
"has been mowing" => "is mowing"
"has been looking for the charge base" => "is searching for the charging base" (or station)
"has been charging" => "is charging"
"has had an error" => "has detected an error"

"has been searching in manual mode" - not sure what this one is actually... when does it occur?

Is this open source by the way? I'm not terribly keen on opening up my mower's Web UI to the world, password or not.

eckelmi
Beiträge: 57
Registriert: Mo 24. Apr 2017, 08:17
Wohnort: Lindau
Mäher: Gardena R40Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.3)
Robonect Firmware: 1.0a

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von eckelmi » Di 15. Aug 2017, 13:51

Ben hat geschrieben:
Di 15. Aug 2017, 12:43
Most of the text there seems fine, though a couple of the status descriptions don't sound quite right in English:

"has been parking" => "is parked"
"has been mowing" => "is mowing"
"has been looking for the charge base" => "is searching for the charging base" (or station)
"has been charging" => "is charging"
"has had an error" => "has detected an error"

"has been searching in manual mode" - not sure what this one is actually... when does it occur?
The status descriptions are used in the following way (the underlined part can be either one of the status descriptions):
=> "The lawn mower demo is in auto mode and has been mowing for one hour and 5 minutes. Battery status: 25%"
Since the status is always followed by "for xxx hour(s) and xxx minute(s)" the present perfect tense has to be used ;)
To be honest, I do not know when the last mentioned status actually can occur, I have just copied the available status IDs and their German descriptions from the API description (and now have translated them into English).
Ben hat geschrieben:
Di 15. Aug 2017, 12:43
Is this open source by the way? I'm not terribly keen on opening up my mower's Web UI to the world, password or not.
I have made a first prototype available here for download back in April. But that one required the user to open up a developer account with Amazon and also open an account at Amazon Web Services and then (in a quite complicated process) upload files and adjust settings. It had the Robonect-URL hard-coded in a config file, so it would be able to control exactly that one Robonect module.

Since I have had the idea of linking the Robonect-URL to the Alexa-ID that is not necessary anymore. However the downside is that the Robonect-URL has to be stored somewhere else. I do that in a mysql database using AES encryption. Of course, I would be able to decode the data (since I have to know the key in the Alexa skill to be able to decode the URL to be able to use it; I am using a mixture of preshared-key and parts of each datasets Alexa-ID). But in order to use the skill, you will just have to trust me that I will not do that and use the URLs for :evil:. I am not so fond of having to do it this way myself, but I do not see a better way at the moment. Even if you were able to look in any of the files, that would not give you any assurance about whether that is the code that's actually used in AWS and on my webserver.

It works as follows:
When the Alexa skill is started, it connects to REST service on my web-server to check whether the own Alexa-ID is registered and linked to a Robonect-URL
> if REST service responds with "yes": that URL is contacted with the command to either check current status or set mode (depending on Alexa command)
--> According to the response of the Robonect-API call the Alexa skill will (when checking status) output either a status message or an error message; (when setting mode) output either "OK." or an error message.
> if REST service responds with "no" the Alexa skill will output "please visit linking Website and enter your Alexa-ID XXX and your Robonect-URL"

Ben
Beiträge: 5
Registriert: Mo 24. Jul 2017, 14:50
Mäher: Flymo Robotic 1200R
Herstellungsjahr: 2015
Robonect-Modul: noch kein Robonect verbaut
Robonect Firmware: -n/a

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von Ben » Fr 18. Aug 2017, 11:41

eckelmi hat geschrieben:
Di 15. Aug 2017, 13:51
The status descriptions are used in the following way (the underlined part can be either one of the status descriptions):
=> "The lawn mower demo is in auto mode and has been mowing for one hour and 5 minutes. Battery status: 25%"
Since the status is always followed by "for xxx hour(s) and xxx minute(s)" the present perfect tense has to be used ;)
To be honest, I do not know when the last mentioned status actually can occur, I have just copied the available status IDs and their German descriptions from the API description (and now have translated them into English).
Got it, makes sense in context!
eckelmi hat geschrieben:
Di 15. Aug 2017, 13:51
Since I have had the idea of linking the Robonect-URL to the Alexa-ID that is not necessary anymore. However the downside is that the Robonect-URL has to be stored somewhere else. I do that in a mysql database using AES encryption. Of course, I would be able to decode the data (since I have to know the key in the Alexa skill to be able to decode the URL to be able to use it; I am using a mixture of preshared-key and parts of each datasets Alexa-ID). But in order to use the skill, you will just have to trust me that I will not do that and use the URLs for :evil:. I am not so fond of having to do it this way myself, but I do not see a better way at the moment. Even if you were able to look in any of the files, that would not give you any assurance about whether that is the code that's actually used in AWS and on my webserver.
It's not you I'm worried about really, it's the general idea of opening up my lawnmower's web UI to the internet, even with a password.

Butsche
Beiträge: 47
Registriert: Di 26. Jan 2016, 10:55
Wohnort: Brunsbüttel
Mäher: Gardena R70Li
Firmware des Mähers (MSW): MSW 5.xx.xx
Herstellungsjahr: 2015
Robonect-Modul: Robonect H30x (Rev.0)
Robonect Firmware: 1.0bets1

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von Butsche » Fr 18. Aug 2017, 11:59

Kann mir wer helfen bei der Portweiterleitung beim Telekom Hybrid Router?!
Alexa Dot ist vorhanden


Gesendet von iPhone mit Tapatalk
Automower: R70Li MSW-Version: 5.01.00 Sub-Version: 5.00.00 MMI-Version: 5.05.00 MSW-Datum: 10-10-2014 Produktion: 07-05-2015 Robonect H30x: Version: V0.9 (25.03.2017)

eckelmi
Beiträge: 57
Registriert: Mo 24. Apr 2017, 08:17
Wohnort: Lindau
Mäher: Gardena R40Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.3)
Robonect Firmware: 1.0a

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von eckelmi » Fr 18. Aug 2017, 14:18

Butsche hat geschrieben:
Fr 18. Aug 2017, 11:59
Kann mir wer helfen bei der Portweiterleitung beim Telekom Hybrid Router?!
Alexa Dot ist vorhanden
Zum Telekom-Router speziell kann ich dir leider nicht weiterhelfen. Grundsätzlich funktioniert Portweiterleitung aber so, dass du dem Router sagst, er soll Verbindungen auf dem externen Port A (oder einer Portrange A-B) entgegen nehmen und auf den Port X (oder die Portrange X-Y) an die interne IP im LAN xxx.xxx.xxx.xxx weiterleiten.

Beispiel:
Externer Port: 8080 (falls nur eine Range möglich ist, würde ich 8080-8080 verwenden), natürlich kannst du auch einen anderen Port benutzen
Interne IP Adresse: Deine Robonect IP im LAN (z.B. 192.168.1.99)
Interner Port: 80 (das Robonect-Modul hört standardmäßig am Port 80)

Testen ob es funktioniert kannst du dann wie folgt.
1. Du musst wissen, wie deine externe IP-Adresse ist (z.B. mittels https://www.wieistmeineip.de herausfinden, Ergebnis z.B. 11.22.33.44)
2. Dann gibst du deine externe IP-Adresse mit dem für's Portforwarding im Router konfigurierten Port (durch Doppelpunkt an die IP-Adresse angehängt) in einem beliebigen Browser ein, z.B. http://11.22.33.44:8080, ggf. auch vom Handybrowser aus testen, während du nicht im eigenen WLAN bist.
3. Erscheint dann das Robonect-Webinterface (mit Passwortabfrage), funktioniert das Portforwarding
Es ist allerdings noch zu beachten, dass du im LAN, falls du DHCP verwendet, deinem Robonect-Modul immer dieselbe IP Adresse zuweist. Nicht dass nach dem nächsten Neustart deines Router das Robonect-Modul anstatt 192.168.1.99 z.B. die 192.168.1.100 erhält, und das Portforwarding dann ins Leere oder an ein falsches Gerät läuft. Dies kannst du vermutlich in der Geräteliste bei den Details des Geräts angeben (so ist es zumindest bei der Fritzbox).

Nächster Punkt wäre dann die Einrichtung eines DynDNS Dienstes (sofern du keine feste IP Adresse hast; was vermutlich nicht der Fall sein dürfte). Kann der Telekom-Router so etwas auch verwalten? Dann sagt der Router bei jeder neu aufgebauten Internetverbindung (z.B. nach der 24h Zwangstrennung) dem DynDNS Dienst, was seine aktuell zugewiesene IP-Adresse ist. Und du kannst dann über einen Domainnamen zugreifen, welcher immer auf deine jeweils aktuelle IP-Adresse verweist.

Butsche
Beiträge: 47
Registriert: Di 26. Jan 2016, 10:55
Wohnort: Brunsbüttel
Mäher: Gardena R70Li
Firmware des Mähers (MSW): MSW 5.xx.xx
Herstellungsjahr: 2015
Robonect-Modul: Robonect H30x (Rev.0)
Robonect Firmware: 1.0bets1

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von Butsche » Fr 18. Aug 2017, 23:19

Danke für deine Anleitung werde morgen mal testen :-)


Gesendet von iPhone mit Tapatalk
Automower: R70Li MSW-Version: 5.01.00 Sub-Version: 5.00.00 MMI-Version: 5.05.00 MSW-Datum: 10-10-2014 Produktion: 07-05-2015 Robonect H30x: Version: V0.9 (25.03.2017)

Chrischon
Beiträge: 6
Registriert: Mo 18. Sep 2017, 22:30
Mäher: Gardena R40Li
Herstellungsjahr: 2017
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 0.9e

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von Chrischon » Fr 22. Sep 2017, 08:55

Hallo Michael,

wenn ich meine Adresse im Browser eingebe, kommt das Authentifizierungsfenster (Nutzung von Fritzbox). Gebe ich die gleiche Adresse auf Deiner Webseite ein, wird gemeldet, dass kein Mähroboter zu finden sei.
Woran kann das liegen?

Grüße
Chrischon

eckelmi
Beiträge: 57
Registriert: Mo 24. Apr 2017, 08:17
Wohnort: Lindau
Mäher: Gardena R40Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.3)
Robonect Firmware: 1.0a

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von eckelmi » Fr 22. Sep 2017, 09:07

@Chrischon

aufgrund deiner Beschreibung kommen mir folgende potentiellen Probleme in den Sinn:
1. Die URL muss extern erreichbar sein (i.d.R. über einen DynDNS Dienst). Falls nicht sicher, am besten den Zugriff auf die Robonect-URL mal über's Smartphone probieren, während dies nicht im eigenen WLAN ist.
2. Die bei der Verknüpfungswebsite angegebene URL muss Benutzername und Passwort mitenthalten in der Form: http://benutzer:passwort@domain.tld
3. Es gab m.E. auch schon vereinzelt Probleme mit Sonderzeichen oder besonders langen Benutzernamen/Passwörtern. Im Zweifel mal mit 6-8 Zeichen ohne fiese Sonderzeichen probieren.

Falls du nicht weiterkommst, kannst du mir deine URL mit Benutzername/Passwort auch mal per PN durchgeben (solltest du dann halt entweder vorher vorübergehend für mich ändern oder dann nachdem ich mir das -hoffentlich erfolgreich- angeschaut habe).

Chrischon
Beiträge: 6
Registriert: Mo 18. Sep 2017, 22:30
Mäher: Gardena R40Li
Herstellungsjahr: 2017
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 0.9e

Re: Amazon Alexa Skill (Michael Eckel)

Beitrag von Chrischon » Fr 22. Sep 2017, 11:04

Fehler gefunden!
Beim Kopieren der Adresse aus der FritzBox werden komische Sonderzeichen eingebaut, welche vom Browser nicht jedoch von Michaels Webseite ignoriert werden.
Erstmal ins Notepad, dann registrieren hat funktioniert!

Antworten

Zurück zu „Amazon Alexa Skill“