HOMBOT
HOMBOT | |
---|---|
Zweck / Funktion | |
Steuern von LG Hombot Staubsaugerrobotern und Anzeige von Status Informationen | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Unterstützende Dienste |
Modulname | 74_HOMBOT.pm |
Ersteller | CoolTux (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Dieses Modul gibt Euch die Möglichkeit Euren Hombot nach erfolgreichen Hack in FHEM ein zu binden. Voraussetzung ist das Ihr den Hombot Hack gemacht und einen WLAN Stick eingebaut habt. Als Schnittstelle zwischen FHEM und Bot wird der Luigi HTTP Server verwendet. Was genau könnt Ihr nun mit dem Modul machen:
Features / Funktionen
- Readings über den Status des Hombots werden angelegt
- Auswahl des Reinigungsmodus ist möglich
- Starten der Reinigung
- Beenden der Reinigung
- zurück zur Homebase schicken
- Namen vergeben
- Wochenprogramm einstellen
- Repeat und Turbo aktivieren
- Kamerabild
!!!Voraussetzungen schaffen!!!
Ihr benötigt zum verwenden des Modules die Programme ssh und sshpass. Desweiteren muß im Homeverzeichnis des fhem Users das Verzeichniss .ssh existieren und darin die Datei known_hosts. Diese sollte eine Passphrass des Bots beinhalten. Am besten Ihr macht als normaler User eine ssh Session zum Bot und kopiert danach die known_hosts Eures normalen Users in das .ssh Verzeichnis des fhem Users. Rechte anpassen nicht vergessen.
Definition
define <name> HOMBOT <IP-ADRESSE>
Beispiel:
define Roberta HOMBOT 192.168.0.23
Diese Anweisung erstellt ein neues HOMBOT-Device im Raum HOMBOT. Der Parameter <IP-ADRESSE> legt die IP Adresse des LG Hombot fest.
Das Standard Abfrageinterval ist 180 Sekunden und kann über das Attribut intervall geändert werden. Das Interval ist in Abhängigkeit des Arbeitsstatus dynamisch. Im Status WORKING beträgt es z.B. 30 Sekunden.
readings
- at_* - Reading für das Wochenprogramm. Startzeit für den jeweiligen Tag
- batteryPercent - Status der Batterie in %
- cleanMode - aktuell eingestellter Reinigungsmodus
- cpu_* - Informationen über die Prozessorauslastung
- currentBumping - Anzahl der Zusammenstöße mit Hindernissen
- firmware - aktuell installierte Firmwareversion
- hombotState - Status des Hombots
- lastClean - Datum und Uhrzeit der letzten Reinigung
- lastSetCommandError - letzte Fehlermeldung vom set Befehl
- lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet
- lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl
- lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet
- luigiSrvVersion - Version des Luigi HTTP Servers auf dem Hombot
- nickname - Name des Hombot
- num* - Bisher begonnene und beendete Reinigungen im entsprechenden Modus
- repeat - Reinigung wird wiederholt Ja/Nein
- state - Modulstatus
- turbo - Turbo aktiv Ja/Nein
Befehle
set
- cleanMode - setzen des Reinigungsmodus (ZZ-ZickZack / SB-Cell by Cell / SPOT-Spiralreinigung
- cleanStart - Reinigung starten
- homing - Beendet die Reinigung und lässt die Bot zurück zur Bases kommen
- nickname - setzt des Bot-Namens. Wird im Reading erst nach einem neustart des Luigiservers oder des Bots sichtbar
- pause - lässt den Reinigungsproßess pausieren
- repeat - Reinigung wiederholen? (true/false)
- schedule - setzen des Wochenprogrammes Bsp. set Roberta schedule Mo=13:30 Di= Mi=14:00,ZZ Do=15:20 Fr= Sa=11:20 So= Man kann also auch den Modus mitgeben!
- statusRequest - Fordert einen neuen Statusreport beim Device an
- turbo - aktivieren des Turbomodus (true/false)
STATE
- initialized - Ist der Status kurz nach einem define..
- active - die Geräteinstanz ist im aktiven Status.
- disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert
Bekannte Probleme
Keine
Kameraunterstützung experimentell
Die Unterstützung für die Kamera ist Momentan noch experimentell und ausserhalb des Modules. Es ist nicht davon aus zu gehen das die Kameraunterstützung Einzug ins Modul hält. Grund hiefür ist unter anderem das es bereits Module für Kamerasupport gibt und möglichst nichts doppelt programmiert werden soll. Daher sollte der Wunsch dahin gehen das IPCam Modul so fit zu machen das es den Bot unterstützt.
Im angehängten Zip befindet sich das Kernelmodul für die Kamera, der experimentelle lg.srv (Luigi HTTP Server) mit der Unterstützung für die Cam und auf vielfachen Wünsch eine Integrationslösung ins TabletUI.
Kopiere die Daten lg.srv und pedropatch.ko auf den Bot in folgende Verzeichnisse
/usr/etc/modules/pedropatch.ko
/usr/bin/lg.srv
Dann öffne die Datei /ust/etc/rc.local und schreibe nach dem letzten IF folgendes rein und speicher die Datei dann ab.
if [ -r /usr/etc/modules/pedropatch.ko ]
then
insmod /usr/etc/modules/pedropatch.ko
mknod /dev/camclone c 222 0
fi
Somit wird nach dem Start des Bot's das Modul automatisch geladen und die entsprechende Gerätedatei angelegt Nach dem nun der Bot neugestartet wurde kann man sich testweise mit dem Luigi Server verbinden und sollte auf der Indexseite schon das Kamerabild sehen.
Einbindung ins TabletUI
Damit wir über unser TabletUI das Kamerabild sehen können müssen wir zu erst das im Zipfile befindliche hombotCam.js ist js Verzeichnis von unserer TabletUI kopieren, danach öffnet Ihr das File und passt die IP in der Zeile
yuvUrl = 'http://192.168.240.249:6260/images/snapshot.yuv',
entsprechend der Bot IP Eures Bot's an.
Nun muß lediglich das html File in das entsprechende Verzeichnis bei Euch wo auch die anderen Tablet html Dateien liegen. In dieser html Datei sind lediglich ein paar Anpassungen gemacht worden.
..head>
...
..script type="text/javascript" src="/fhem/tablet/js/hombotCam.js"></script>
...
../head>
..body onload="drawSnapshot()" >
...
...data-type="label" class="darker">Roberta Livecam Stream
..div id="cam"><canvas id="cam_canvas" width="320" height="240"></canvas>
...
Hier musste etwas geschummelt werde, da man wohl kein HTML Code ins Wiki bekommt.
Fertig das wares, nun sollte auf Euer TabletUI Oberfläche das Kamerabild zu sehen sein.
Link zum ZipFile
Ich sage Danke
Der größte Dank geht an meinen Mentor Andre (justme1968), er hat mir mit hilfreichen Tips geholfen Perlcode zu verstehen und Spaß am programmieren zu haben.
Auch möchte ich mich bei den Jungs aus dem Roboterforum bedanken. Ohne deren super Vorarbeit wäre das Modul nicht so einfach möglich gewesen
Danke auch an VB90 und an Marie für die fleißige Mitarbeit am Modul und beim testen