HOMBOT: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
K (Plenk / Klemp bereinigt und kleinere Korrekturen / Formatierungsänderungen)
 
(11 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
|ModPurpose=Steuern von LG Hombot Staubsaugerrobotern und Anzeige von Status Informationen
|ModPurpose=Steuern von LG Hombot Staubsaugerrobotern und Anzeige von Status Informationen
|ModType=d
|ModType=d
|ModForumArea=Unterstützende Dienste
|ModForumArea=Sonstige Systeme
|ModTechName=74_HOMBOT.pm
|ModTechName=74_HOMBOT.pm
|ModOwner=CoolTux <br />([http://forum.fhem.de/index.php/topic,44923.0.html Forum] / [[Benutzer:CoolTux|Wiki]])
|ModOwner=CoolTux <br />({{Link2Forum|Topic=44923|LinkText=Forum}} / [[Benutzer:CoolTux|Wiki]])
}}
}}


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:
Dieses Modul gibt Euch die Möglichkeit Euren Hombot [http://www.roboter-forum.com/showthread.php?10009-LG-Hombot-3-0-WLAN-amp-Kamera-Steuerung-per-Weboberfl%E4che nach erfolgreichen Hack] in FHEM einzubinden. 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:




Zeile 21: Zeile 21:
* Kamerabild
* 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 Passphrase 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. Nachfolgend ist der Prozess beschrieben.


==Definition==
Per Putty vom FHEM Server aus mittels ssh folgenden Befehl ausführen (die IP entspricht der des Hom-Bots):
<code>define <name> HOMBOT <IP-ADRESSE></code>
:<code>ssh root@192.168.x.y</code>


Sollte zusätzlich zur Passwort Abfrage eine weitere Abfrage auftauchen, diese mit '''yes''' bestätigen. Anschließend kann die Session mit '''exit''' wieder geschlossen werden.


'''Beispiel:'''
Anschließend kopiert man die known_hosts Datei vom '''~/.ssh''' Ordner in den Ordner '''/opt/fhem/.ssh/''' mittels:
:<code>sudo cp ~/.ssh/known_hosts /opt/fhem/.ssh/known_hosts</code>


<code>define Roberta HOMBOT 192.168.0.23</code>
Sollte eine Fehlermeldung erscheinen, könnte dies daran liegen, dass der Ordner '''.ssh''' nicht vorhanden ist. Diesen dann mittels folgendem Code erstellen:
:<code>sudo mkdir /opt/fhem/.ssh</code>


Anschließend, falls noch nicht vorhanden, auf dem FHEM Server mittels folgendem Code '''sshpass''' installieren:
:<code>sudo apt-get install sshpass</code>


Diese Anweisung erstellt ein neues HOMBOT-Device im Raum HOMBOT. Der Parameter <IP-ADRESSE> legt die IP Adresse des LG Hombot fest.
Nun geht es mit der Definition weiter.
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.  


== Definition ==
<code>define <name> HOMBOT <IP-ADRESSE></code>


==readings==
'''Beispiel:'''
:<code>define Roberta HOMBOT 192.168.0.23</code>
 
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
* at_* - Reading für das Wochenprogramm. Startzeit für den jeweiligen Tag
* batteryPercent - Status der Batterie in %
* batteryPercent - Status der Batterie in %
Zeile 56: Zeile 70:




==Befehle==
== Befehle ==


===set===
=== set ===
* cleanMode - setzen des Reinigungsmodus (ZZ-ZickZack / SB-Cell by Cell / SPOT-Spiralreinigung
* cleanMode - setzen des Reinigungsmodus (ZZ-ZickZack / SB-Cell by Cell / SPOT-Spiralreinigung
* cleanStart - Reinigung starten
* cleanStart - Reinigung starten
Zeile 70: Zeile 84:




==STATE==
== STATE ==
* initialized - Ist der Status kurz nach einem define..
* initialized - Ist der Status kurz nach einem define..
* active - die Geräteinstanz ist im aktiven Status.
* active - die Geräteinstanz ist im aktiven Status.
Zeile 83: Zeile 97:
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.
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.
[http://www.roboter-forum.com/showthread.php?6415-Hom-Bot-3-0-Hacking&p=138428&viewfull=1#post138428 Ab Version v2.34 des Hombot Hacking Packetes ist der Kamera Support integriert.]
 
Kopiere die Daten lg.srv und pedropatch.ko auf den Bot in folgende Verzeichnisse
<code>
/usr/etc/modules/pedropatch.ko
/usr/bin/lg.srv
</code>
 
Dann öffne die Datei /ust/etc/rc.local und schreibe nach dem letzten IF folgendes rein und speicher die Datei dann ab.
<code>
if [ -r /usr/etc/modules/pedropatch.ko ]
then
        insmod /usr/etc/modules/pedropatch.ko
        mknod /dev/camclone c 222 0
fi
</code>
 
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 ===
=== Einbindung ins TabletUI ===
Zeile 128: Zeile 124:
Fertig das wares, nun sollte auf Euer TabletUI Oberfläche das Kamerabild zu sehen sein.
Fertig das wares, nun sollte auf Euer TabletUI Oberfläche das Kamerabild zu sehen sein.


 
Link zum [https://drive.google.com/file/d/0B9QFkuMrbcG_VkQ5aW84UGo0Uk0/view?usp=sharing 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''

Aktuelle Version vom 28. Juni 2017, 15:09 Uhr

HOMBOT
Zweck / Funktion
Steuern von LG Hombot Staubsaugerrobotern und Anzeige von Status Informationen
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Sonstige Systeme
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 einzubinden. 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 Passphrase 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. Nachfolgend ist der Prozess beschrieben.

Per Putty vom FHEM Server aus mittels ssh folgenden Befehl ausführen (die IP entspricht der des Hom-Bots):

ssh root@192.168.x.y

Sollte zusätzlich zur Passwort Abfrage eine weitere Abfrage auftauchen, diese mit yes bestätigen. Anschließend kann die Session mit exit wieder geschlossen werden.

Anschließend kopiert man die known_hosts Datei vom ~/.ssh Ordner in den Ordner /opt/fhem/.ssh/ mittels:

sudo cp ~/.ssh/known_hosts /opt/fhem/.ssh/known_hosts

Sollte eine Fehlermeldung erscheinen, könnte dies daran liegen, dass der Ordner .ssh nicht vorhanden ist. Diesen dann mittels folgendem Code erstellen:

sudo mkdir /opt/fhem/.ssh

Anschließend, falls noch nicht vorhanden, auf dem FHEM Server mittels folgendem Code sshpass installieren:

sudo apt-get install sshpass

Nun geht es mit der Definition weiter.

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.

Ab Version v2.34 des Hombot Hacking Packetes ist der Kamera Support integriert.

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