[ VERSION 0.2.4 ] 74_HOMBOT.pm, Steuerung eines LG Hombot Staubsaugerroboters

Begonnen von CoolTux, 30 November 2015, 10:45:42

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Leute,

Basierend auf Informationen aus diesem Thread http://forum.fhem.de/index.php/topic,43851.0.html habe ich ein Modul zur Steuerung von LG Hombot Staubsaugerrobotern entwickelt.
Ich möchte mich ganz herzlich bei den Entwicklern aus dem Roboterforum bedanken, welche eine tolle Vorarbeit geleistet haben, auf der ich aufbauen konnte.

Hier nun eine aller erste preAlpha.
Die Steuerbefehle werden zum jetzigen Zeitpunkt noch über den internen HTTP Server Luigi gesendet.

Also wer hat mal anwerfen und schauen was passiert.

Das Modul gibt es ab sofort über FHEM Update
Zum Wikieintrag

Letztes Changelog
Version 0.2.4

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



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VB90

Moin Leon,

Danke für deine Mühe.

Ich habe aus dem Git geladen, in FHEM hochgeladen und neu gestartet.

meine def soll so lauten:
define WZ_LuiGi HOMEBOT 192.168.0.110

leider bekomme ich folgendes zurück:

Zitattoo few parameters: define <name> HOMEBOT <HOST>

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

CoolTux

Ok ich habe eine verbesserte Version hochgeladen Lade mal bitte neu runter.
Und vielen Dank für das mega schnelle testen

Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VB90

Deine Reaktionszeiten sind auch nicht schlecht  :P

Haben Glück, durch meinen Schichtdienst hab ich heut noch bischen Tagesfreizeit ;)

nun klappt es.

was mir auffällt, nicht zwingend als Kritik verstehen, rein als Diskussionsgrundlage:

Es wird direkt ein neuer Raum angelegt.
Ist das wirklich sinnvoll? Die meisten User werden ihren Bot doch eher in einen schon bestehenden Raum integrieren?

Änderung AbfrageIntervall
Ich weiss nicht, in wieweit es gewisser Maßen Standart ist. Bei vielen anderen Modulen kann man, indem man an die def etwas anhängt, den Abfrageintervall ändern. z.B. define WZ_LuiGi HOMEBOT 192.168.0.110 60
Würde den Intervall auf 60Sek ändern.
180 Sek sind grundsätzlich sicher ausreichen, aber zum testen mir persönlich zu lang :D
Den Intervall über oben beschriebenen Weg zu ändern, ist jedoch nicht möglich.

Nach dem anlegen steht das Modul auf initialized, solange das so ist, kann ich den Bot nicht auf reisen schicken.
Zitatset command only works if state not equal initialized, please wait for next interval run
Ein "statusRequest" gibt die gleiche Rückmeldung.
Allerdings ändert sich nun auch schon 9 min der Status nicht selbständig.


soweit erstmal von mir. wenn mir noch etwas auffällt, gibt einen neuen Beitrag.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

marvin78

Das mit dem Raum ist eine Grundsatzfrage. Ich persönlich bevorzuge Module, die mir bei den Attrbuten nichts vorgeben, das nicht sein muss. Das ist, meiner Ansicht nach, FHEM-Style. Wenn neue Devices einfach im Raum Unsorted landen, ist das gut und richtig. Es gibt sogar Module, die eine Bevormundung bei den Icons bzw. devStateIcons machen. Da hört dann der Spaß auf, denn das passt dann nicht mehr zu FHEM.

CoolTux

Zitat von: VB90 am 30 November 2015, 12:12:09
Deine Reaktionszeiten sind auch nicht schlecht  :P

Haben Glück, durch meinen Schichtdienst hab ich heut noch bischen Tagesfreizeit ;)

nun klappt es.

was mir auffällt, nicht zwingend als Kritik verstehen, rein als Diskussionsgrundlage:

Es wird direkt ein neuer Raum angelegt.
Ist das wirklich sinnvoll? Die meisten User werden ihren Bot doch eher in einen schon bestehenden Raum integrieren?

Änderung AbfrageIntervall
Ich weiss nicht, in wieweit es gewisser Maßen Standart ist. Bei vielen anderen Modulen kann man, indem man an die def etwas anhängt, den Abfrageintervall ändern. z.B. define WZ_LuiGi HOMEBOT 192.168.0.110 60
Würde den Intervall auf 60Sek ändern.
180 Sek sind grundsätzlich sicher ausreichen, aber zum testen mir persönlich zu lang :D
Den Intervall über oben beschriebenen Weg zu ändern, ist jedoch nicht möglich.

Nach dem anlegen steht das Modul auf initialized, solange das so ist, kann ich den Bot nicht auf reisen schicken.Ein "statusRequest" gibt die gleiche Rückmeldung.
Allerdings ändert sich nun auch schon 9 min der Status nicht selbständig.


soweit erstmal von mir. wenn mir noch etwas auffällt, gibt einen neuen Beitrag.

vb

Hallo. Ok ich hätte einiges besser schreiben sollen. Eine Statusabfrage gibt es noch nicht. Erstmal ging es mir nur darum ob er fährt oder nicht. Das INTERVAL kannst Du über Attribut ändern. Schau mal.


Nun zum set
Mach mal ein

setreading DEVICENAME state active


Und versuche ihn dann auf reisen zu schicken.

Das mit dem Raum können wir ja noch ändern. Bin offen für Kritik und Anregungen.

Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VB90

ok, beim Intervall hab ich zu kurz gedacht, mein Fehler.
Habe ich nun für mich auf 60sek runter genommen.

"setreading DEVICENAME state active" hat funktioniert, state ist nun active.

Das setzten eines Reinigungsmodus oder das starten der Reinigung endet jedoch in:
Zitat2015-11-30 12:28:44.187 HOMEBOT WZ_LuiGi active
2015-11-30 12:29:01.937 HOMEBOT WZ_LuiGi cleanMode CLEAN_ZZ
2015-11-30 12:29:09.502 HOMEBOT WZ_LuiGi Send HTTP POST
2015-11-30 12:29:09.515 HOMEBOT WZ_LuiGi active
2015-11-30 12:29:19.540 HOMEBOT WZ_LuiGi read from to http://192.168.0.110:6260 timed out
2015-11-30 12:29:19.540 HOMEBOT WZ_LuiGi lastSetCommandState: cmd_error
2015-11-30 12:29:19.540 HOMEBOT WZ_LuiGi lastSetCommandError: connect to your device is timed out. check network
2015-11-30 12:29:44.552 HOMEBOT WZ_LuiGi cleanMode CLEAN_SB
2015-11-30 12:32:47.178 HOMEBOT WZ_LuiGi Send HTTP POST
2015-11-30 12:32:47.194 HOMEBOT WZ_LuiGi read from to http://192.168.0.110:6260 timed out
2015-11-30 12:32:57.218 HOMEBOT WZ_LuiGi read from to http://192.168.0.110:6260 timed out
2015-11-30 12:32:57.218 HOMEBOT WZ_LuiGi lastSetCommandState: cmd_error
2015-11-30 12:32:57.218 HOMEBOT WZ_LuiGi lastSetCommandError: connect to your device is timed out. check network

Der Webserver ist aber erreichbar. Über den Browser komme ich ohne Probleme auf die Seite des Bot.

vb

edit: wäre dir mit einem Zugriff auf den Bot geholfen?
Könnte dir ne Portfreigabe einrichten...
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

CoolTux

Zitat von: VB90 am 30 November 2015, 12:35:12
ok, beim Intervall hab ich zu kurz gedacht, mein Fehler.
Habe ich nun für mich auf 60sek runter genommen.

"setreading DEVICENAME state active" hat funktioniert, state ist nun active.

Das setzten eines Reinigungsmodus oder das starten der Reinigung endet jedoch in:
Der Webserver ist aber erreichbar. Über den Browser komme ich ohne Probleme auf die Seite des Bot.

vb

edit: wäre dir mit einem Zugriff auf den Bot geholfen?
Könnte dir ne Portfreigabe einrichten...

Ist ein nettes Angebot mit der Freigabe, würde mir aber erstmal nicht wirklich helfen.
Kopiere mal bitte Deine Aufruf-URL für das Webinterface hier rein.
Mein Problem ist das ich alles an Informationen aus dem Roboter-Forum zusammen getragen habe. Mein Robo kommt erst morgen.    :)



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VB90

Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

CoolTux

ok, passt.

stell mal bitte unter dem Device das Attribut verbose auf 5 und gib mir mal die gesamte Ausgabe vom Log was HOMEBOT an geht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VB90

Das habe ich schon getan.

Oben ist der Auszug aus Eventmonitor, hier nun Logfile:

Zitat2015.11.30 12:29:01.927 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanMode CLEAN_ZZ
2015.11.30 12:29:09.492 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanStart
2015.11.30 12:29:09.492 4: HOMEBOT (WZ_LuiGi) - Homebot start cleaning
2015.11.30 12:29:09.505 4: HOMEBOT (WZ_LuiGi) - Send HTTP POST with URL http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d
2015.11.30 12:29:19.523 1: PERL WARNING: Use of uninitialized value in numeric gt (>) at ./FHEM/74_HOMEBOT.pm line 477.
2015.11.30 12:29:19.525 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/74_HOMEBOT.pm line 514.
2015.11.30 12:29:19.543 5: HOMEBOT (WZ_LuiGi) - HOMEBOT_HTTP_POST: error while POST Command: read from to http://192.168.0.110:6260 timed out
2015.11.30 12:29:44.542 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanMode CLEAN_SB
2015.11.30 12:30:10.987 3: HOMEBOT (WZ_LuiGi) - set interval to 60
2015.11.30 12:32:47.163 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanStart
2015.11.30 12:32:47.164 4: HOMEBOT (WZ_LuiGi) - Homebot start cleaning
2015.11.30 12:32:47.183 4: HOMEBOT (WZ_LuiGi) - Send HTTP POST with URL http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d
2015.11.30 12:32:57.220 5: HOMEBOT (WZ_LuiGi) - HOMEBOT_HTTP_POST: error while POST Command: read from to http://192.168.0.110:6260 timed out
2015.11.30 12:36:16.555 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanStart
2015.11.30 12:36:16.555 4: HOMEBOT (WZ_LuiGi) - Homebot start cleaning
2015.11.30 12:36:16.573 4: HOMEBOT (WZ_LuiGi) - Send HTTP POST with URL http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d
2015.11.30 12:36:26.603 5: HOMEBOT (WZ_LuiGi) - HOMEBOT_HTTP_POST: error while POST Command: read from to http://192.168.0.110:6260 timed out
2015.11.30 12:51:44.210 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanMode CLEAN_SB
2015.11.30 12:52:25.762 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanMode CLEAN_ZZ
2015.11.30 12:52:42.730 5: HOMEBOT (WZ_LuiGi) - set WZ_LuiGi cleanStart
2015.11.30 12:52:42.730 4: HOMEBOT (WZ_LuiGi) - Homebot start cleaning
2015.11.30 12:52:42.744 4: HOMEBOT (WZ_LuiGi) - Send HTTP POST with URL http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d
2015.11.30 12:52:52.791 1: PERL WARNING: Use of uninitialized value in numeric gt (>) at ./FHEM/74_HOMEBOT.pm line 481.
2015.11.30 12:52:52.819 5: HOMEBOT (WZ_LuiGi) - HOMEBOT_HTTP_POST: error while POST Command: read from to http://192.168.0.110:6260 timed out

Was ich seinerzeit im Roboforum gefunden habe:
Aufruf von http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d schickt den Bot auf die Reise.
Funktioniert im Browser tadellos und ohne Verzögerung.

vb

edit: Interessant auch: setze ich ein Kommando ändert sich der state sofort!! auf "...timed out".
nach einigen Sekunden erst, werden die Readings erzeugt. Das widerum halte ich für normal, aber das der state sich umgehend ändert, erscheint mir bischen fix.

Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

CoolTux

Zitat von: VB90 am 30 November 2015, 12:57:50

Was ich seinerzeit im Roboforum gefunden habe:
Aufruf von http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d schickt den Bot auf die Reise.
Funktioniert im Browser tadellos und ohne Verzögerung.


Naja nichts anderes sendet ja auch FHEM


Send HTTP POST with URL http://192.168.0.110:6260/json.cgi?%7b%22COMMAND%22:%22CLEAN_START%22%7d


Sende mal die in den Code Tags stehende URL direkt an Deinen Bot. Erstmal von einem Browser aus. Dann bitte von Deinem FHEM Server mittels wegt oder ähnlichem aus.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VB90

Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

CoolTux

jetzt kapier ich gar nichts mehr. Das müsste das auch über FHEM gehen.
Warte mal kurz, ich will mal was ändern.



Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net