HOMBOT: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
K (Plenk / Klemp bereinigt und kleinere Korrekturen / Formatierungsänderungen)
 
(5 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 [http://www.roboter-forum.com/showthread.php?10009-LG-Hombot-3-0-WLAN-amp-Kamera-Steuerung-per-Weboberfl%E4che 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 22: Zeile 22:


== !!! Voraussetzungen schaffen !!! ==
== !!! 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.
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):
:<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.
 
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>
 
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>
 
Nun geht es mit der Definition weiter.


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


'''Beispiel:'''
'''Beispiel:'''
:<code>define Roberta HOMBOT 192.168.0.23</code>


<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.  
 
 
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.  




Zeile 113: Zeile 125:


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