Hallo zusammen,
zuerst einmal etwas Vorgeschichte und Hintergrundinfos, weiter unten wird es dann konkret, für alle, die keine Zeit haben ;)...
Wie schon in anderen Threads einmal erwähnt, wollte ich mich an ein Interface machen, um meinen Herkules Wiper Ciiky XH2 (baugleich mit Ambrogio L30) über WLAN zu steuern. Wie der Hersteller bei einer empfohlenen Gartengröße von über 1.000 m² darauf kommt, eine Nahdistanz-Technologie wie Bluetooth einzusetzen, ist mir ein Rätsel, denn wenn der Roboter etwa die Hälfte des Gartens durchquert hat, kann ich ihn von der Terrasse trotz direktem Sichtkontakt nicht mehr über die App steuern. Die App selber ist natürlich auch proprietär aufgebaut und lässt sich in kein anderes (Home-Automation)-System einbinden.
Also musste eine bessere Lösung her :).
Zum Glück setzt der Hersteller bei der Bluetooth-Ansteuerung auf Standardkomponenten. Das Bluetooth-Modul wird über eine serielle Schnittstelle angesteuert, die leider nicht ganz konform belegt ist (u.a. wegen der Stromversorgung des Moduls). Auch die Übertragungsgeschwindigkeit war so zuerst nicht bekannt, so dass ich mittels eines Oszilloskops und der Signaldauer die Übertragungsgeschwindigkeit herausfinden musste (38400 - ich hätte mal nicht nach den sonstigen Standards 9600, 57600 und 115200 aufgeben sollen ). Nachdem ich mich dann mit dem BT-Modul verbinden konnte (ein WRAP THOR, das sicher keine 150 Euro kostet oder was die Roboter-Hersteller auch immer dafür abrufen), war zumindest der Übertragungsweg klar. Als nächster Schritt mussten dann die übertragenen Daten mitgelesen und entschlüsselt werden. Dazu habe ich mich mit einem ESP8266 und einer Logger-Schaltung (siehe Bild) in den seriellen Busverkehr eingeklinkt und die Daten, die die App an den Roboter und umgekehrt schickt, mitgelesen. Dann musste entschlüsselt werden, was Start-, End- und Escape- sowie Kommando- und Daten-Sequenzen sind. Dazu kam die nicht gleich ersichtliche CRC8-Maxim-Prüfsumme, sowie die Neukodierung bestimmter Werte, wenn diese identisch mit den Steuer-Sequenzen waren. Und dann begann die Hauptaufgabe, nämlich zu schauen, was die einzelnen Daten bedeuten und wie man Rückgabewerte auswertet.
Aber genug der Vorgeschichte ;)...
Was gibt es schon?
Inzwischen habe ich eine Schaltung entworfen, die auf einem ESP8266 basiert und klein genug ist, dass sie an gleicher Stelle in den Roboter eingebaut werden kann. Man muss nur den Roboter öffenen (wobei wahrscheinlich trotzdem die Garantie verloren geht und dies wohl auch nur einem Fachmann vorbehalten ist), das BT-Modul abschrauben und die neue Platine aufsetzen - fertig. Man kann jederzeit wieder das BT-Modul einsetzen und die App verwenden, z.B. wenn man ein Firmware-Update machen möchte (ein Firmware-Update könnte aber zu einer Veränderung führen, die dann wiederum das WLAN-Modul außer Gefecht setzt, jenachdem, wie (un)gern Zucchetti eine solche Eigenentwicklung findet ).
Im Anschluss sucht die Software zuerst nach einem bekannten WLAN und spannt ansonsten ihr eigenes auf. Alle Kommandos werden über URLs gesteuert, so dass eine Einbindung in Home Automations Systeme wie FHEM, MQTT und andere problemlos möglich ist. Ein (rudimentäres) Webinterface ist ebenfalls vorhanden, mit dem man den Roboter schon einmal fernsteuern kann (entsprechend der Funktionen der App). Ein Update der Software ist ebenfalls über den Browser möglich, so dass man den Roboter nicht jedesmal erneut aufschrauben muss.
Welche Funktionen gehen schon?
- Anmeldung
- Links
- Rechts
- Geradeaus
- Spirale
- Home/Work
- Play/Pause
Welche Funktionen kommen noch?
Die folgenden Funktionen konnte ich durch Analyse der Rohdaten entschlüsseln und diese werden dann nach und nach in die Software aufgenommen:
- Einstellungen
-- Nebenflächen
-- Mähtage
-- Randmähen
-- Uhrzeiten
-Statusabfragen
-- Batteriespannung
-- Fehlermeldungen
Insbesondere über die letzte Funktion wird es dann möglich sein, über E-Mail oder Push-Nachrichten eine Mitteilung abzusetzen, wenn der Roboter sich festgefahren hat. Man muss also nicht mehr mit gespitzten Ohren das leise Piepsen orten, sondern bekommt dann zeitnah eine Mitteilung, welcher Fehler vorliegt und kann dann ggf. auch im Urlaub dem Nachbarn mal Bescheid sagen, dass er das Mähschaf retten möge ;).
Wie geht es weiter?
Wenn diese Variante noch weitere Menschen interessieren sollten, würde ich aus meiner Schaltung mal einen Platinenentwurf machen und dafür dann eine Sammelbestellung organisieren. Ich denke, alles in allem sollten sich die Kosten zwischen 30 und 40 Euro bewegen. Dazu am besten eine E-Mail an robotan (ät) code-it.de schicken, da ich als vollzeitarbeitender Familienvater nicht immer regelmäßig in den Foren vorbeischauen kann ;)...
Zum Schluss noch ein paar Bilder aus der Entstehung des Projekts.
Viele Grüße
F.
IMG_8853.jpgIMG_8854.jpgIMG_8860.jpgBildschirmfoto 2017-10-20 um 10.43.46.png