Modul für Irobot Roomba 980

Begonnen von kukamee, 22 Februar 2017, 02:34:53

Vorheriges Thema - Nächstes Thema

Lippie

#285
Abend,

mich hat's nicht los gelassen  8)

Habe alles soweit angepasst, dass ein neues device den Roomba findet und automatisch das PW abfragt.
sobald zwei im Netzwerk sind, geht das nicht mehr. Ab da kann aber nach reload der Website getpass mit DropDown genutzt werden (Es werden die Roboternamen angezeigt). Solange es ein neues Device ist, wird getpass bei erfolgreicher PW-Rückmeldung alles konfigurieren, und einen connect triggern.

Update:
- jetzt mit nutzerfreundlicher set cleanSchedule Möglichkeit.
- alle sets ohne erforderliche Nutzereingabe werden mit noArg initialisiert.
- neu angelegtes Device: Hinweis darauf, was zu tun ist, um discoverNewRoomba und getpass verwenden zu können. Und vorbefülltes widgetOverride für Schedule-on-<weekday>.
- Verzögerung des disconnect bei Ausführung eines Sets für alwaysconnected=0.

Gruß
Sebastian

Thorsten Pferdekaemper

Hi,
das ging jetzt aber schnell...
Wie gesagt: Ich plane, das am Montag mal auszuprobieren.
Gruß,
   Thorsten
FUIP

Jewe

#287
Hallo Ihr Zwei,

ich finde super dass hier weitergemacht wird. Habe die lezten Tage mitgelesen und heute die aktuelle Version ausprobiert. Nach dem Austausch des Moduls und reload funktionierte alles wie gehabt. Dann habe ich den Robbie komplett neu definiert ohne Ip-Adressse und so. Das hat gut geklappt auch den Hinweis, dass er im Koppelmodus sein muss kommt. Dass Passwort abfragen hat erst beim zweitenmal funktioniert, da war ich aber vielleicht auch zu ungeduldig.
Das setzten der Zeiten zur Reinigung funktioniert auch gut.
Bin echt begeistert, was sich da in den letzten Tage entwickelt hat.

Danke, Jens

Lippie

Hallo Jens,

Dein Feedback freut mich. Mit was für einen Roomba hast Du getestet?
Ich habe nur einen 895, weshalb mir viele Funktionen verborgen bleiben  :'(

VG
Sebastian

Jewe

Hallo Sebastian,

wir haben hier eine Roomba 966.

Jens

Jewe

Hallo Sebastian,

aufgefallen ist mir noch, dass der Roomba öfters disconnected. Dachte erst dass es immer passiert, wenn ich den stop Befehl sende, aber es passiert auch sonst mal. Die neuen Attribute habe ich nun alle mal gelöscht. (timeout, alwaysconnected und reconnecttime).
Werde das weiter beobachten.

Hat jemand eine Auflistung mit der Bedeutung der ganzen erzeugten readings ?

Jens

Thorsten Pferdekaemper

Hi,
bei mir funktioniert es überhaupt nicht. Ich bekomme immer nur diese Meldung:

Undefined subroutine &main::Roomba980_Initialize called at fhem.pl line 2622.

Ich denke, dass das daran liegt, dass die Roomba980_Initialize jetzt im Package Roomba980 liegt, wo fhem.pl sie nicht sucht. Roomba980_Initialize muss im Package main liegen, also wie gehabt vor "package Roomba980" oder nach einem expliziten "package main".
Ich finde es erstaunlich, dass das bei überhaupt jemandem funktioniert hat.
Gruß,
   Thorsten
FUIP

Jewe

Im Log habe ich eine Handvoll Perl Warnungen :

2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_SUBSCRIBE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT_REFUSED_NOT_AUTHORIZED redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PUBACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_UNSUBSCRIBE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PINGRESP redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PUBCOMP redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_QOS_AT_LEAST_ONCE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_QOS_AT_MOST_ONCE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PUBREL redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT_REFUSED_BAD_USER_NAME_OR_PASSWORD redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT_REFUSED_SERVER_UNAVAILABLE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT_REFUSED_IDENTIFIER_REJECTED redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_QOS_EXACTLY_ONCE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT_REFUSED_UNACCEPTABLE_PROTOCOL_VERSION redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PUBREC redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_DISCONNECT redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_CONNECT_ACCEPTED redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PUBLISH redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_UNSUBACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_SUBACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Constant subroutine Roomba980::MQTT_PINGREQ redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2019.11.11 15:48:24 1: PERL WARNING: Prototype mismatch: sub Roomba980::getpass ($$) vs ($;$) at ./FHEM/42_Roomba980.pm line 142.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Define redefined at ./FHEM/42_Roomba980.pm line 146.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Undef redefined at ./FHEM/42_Roomba980.pm line 194.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/42_Roomba980.pm line 201.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Set redefined at ./FHEM/42_Roomba980.pm line 251.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine OpenDev redefined at ./FHEM/42_Roomba980.pm line 326.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Start redefined at ./FHEM/42_Roomba980.pm line 420.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Stop redefined at ./FHEM/42_Roomba980.pm line 426.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Ready redefined at ./FHEM/42_Roomba980.pm line 450.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Rename redefined at ./FHEM/42_Roomba980.pm line 456.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Init redefined at ./FHEM/42_Roomba980.pm line 466.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Timer redefined at ./FHEM/42_Roomba980.pm line 475.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine prettyPrintReading redefined at ./FHEM/42_Roomba980.pm line 498.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine messageToReadings redefined at ./FHEM/42_Roomba980.pm line 518.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine processMessage redefined at ./FHEM/42_Roomba980.pm line 580.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine Read redefined at ./FHEM/42_Roomba980.pm line 617.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_connect redefined at ./FHEM/42_Roomba980.pm line 818.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_publish redefined at ./FHEM/42_Roomba980.pm line 828.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_subscribe redefined at ./FHEM/42_Roomba980.pm line 840.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_unsubscribe redefined at ./FHEM/42_Roomba980.pm line 847.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_ping redefined at ./FHEM/42_Roomba980.pm line 854.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_disconnect redefined at ./FHEM/42_Roomba980.pm line 858.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine send_message redefined at ./FHEM/42_Roomba980.pm line 862.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine apiCall redefined at ./FHEM/42_Roomba980.pm line 887.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine topic_to_regexp redefined at ./FHEM/42_Roomba980.pm line 963.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine discovery redefined at ./FHEM/42_Roomba980.pm line 973.
2019.11.11 15:48:24 1: PERL WARNING: Prototype mismatch: sub Roomba980::getpass ($$) vs ($;$) at ./FHEM/42_Roomba980.pm line 1138.
2019.11.11 15:48:24 1: PERL WARNING: Subroutine getpass redefined at ./FHEM/42_Roomba980.pm line 1056.
2019.11.11 15:49:49 1: PERL WARNING: Subroutine Delete redefined at ./FHEM/42_Roomba980.pm line 242.
2019.11.11 15:51:25 1: 192.168.6.92:8883 disconnected, waiting to reappear (Robbie)
2019.11.11 15:52:57 2: GetPass: connecting to 192.168.6.92:8883




2019.11.11 16:20:20 2: GetPass: connecting to 192.168.6.92:8883
2019.11.11 16:20:39 3: Opening Robbie device 192.168.6.92:8883
2019.11.11 16:20:41 3: Robbie device opened
2019.11.11 16:22:16 1: 192.168.6.92:8883 disconnected, waiting to reappear (Robbie)

Lippie

#293
Sehr eigenartig.
Ich frage mich gerade, was ich für eine FHEM-Installation habe :-)
Ich wollte die Struktur zu anderen Modulen angleichen und bin über package main wieder auf package Roomba980 gegangen.
Evtl. hat das was mit dem reload des Modules zu tun, so dass FHEM sich da noch etwas merkt, was gar nicht mehr ist.
Anbei meine Änderung.
VG
Sebastian
PS: Danke für eure Geduld :-)

Lippie

Zitat von: Jewe am 12 November 2019, 09:17:39
Hallo Sebastian,

aufgefallen ist mir noch, dass der Roomba öfters disconnected. Dachte erst dass es immer passiert, wenn ich den stop Befehl sende, aber es passiert auch sonst mal. Die neuen Attribute habe ich nun alle mal gelöscht. (timeout, alwaysconnected und reconnecttime).
Werde das weiter beobachten.

Hat jemand eine Auflistung mit der Bedeutung der ganzen erzeugten readings ?

Jens

Zur Auflistung der erzeugten Readings schau mal hier: https://github.com/koalazak/dorita980

Die Attribute alwaysconnected, checkinterval und reconnecttime kannst Du löschen, sind nur für die 800er Serie interessant.
timeout kannst Du einstellen (default ist 60s). Wenn er die Verbindung verliert, würde ich erstmal das timeout absenken, das verkürzt die zyklische Abfrage.

VG
Sebastian

Lippie

#295
Zitat von: Jewe am 12 November 2019, 12:43:45
Im Log habe ich eine Handvoll Perl Warnungen :


2019.11.11 15:48:24 1: PERL WARNING: Prototype mismatch: sub Roomba980::getpass ($$) vs ($;$) at ./FHEM/42_Roomba980.pm line 1138.


Das  ($$) rührt noch aus einer alten Version des Roomba-Moduls.
Im Modul sind alle getpass mit ($;$) angelegt und getpass wird auch mit einem oder zwei parametern aufgerufen.
Dieses Thema habe ich nur durch einen FHEM-Neustart wegbekommen. Teilweise ist der reload sogar abgebrochen deswegen, nach dem Neustart gings dann aber.

Thorsten Pferdekaemper

Hi,

connect funktioniert bei mir nicht. Du hast das mit dem "SSL_cipher_list => 'DEFAULT:!DH'" beim OpenDev wohl wieder rausgeschmissen. Oder war's nie drin? Beim getpass ist's drin, aber nicht beim OpenDev.
Könntest Du das noch/wieder einbauen?

Gruß,
   Thorsten
FUIP

Lippie

Zitat von: Thorsten Pferdekaemper am 13 November 2019, 14:55:37
Hi,

connect funktioniert bei mir nicht. Du hast das mit dem "SSL_cipher_list => 'DEFAULT:!DH'" beim OpenDev wohl wieder rausgeschmissen. Oder war's nie drin? Beim getpass ist's drin, aber nicht beim OpenDev.
Könntest Du das noch/wieder einbauen?

Gruß,
   Thorsten

Hi,

da hast Du Recht. Das muss mir beim Zusammenführen mit dem letzten GIT-Stand wieder rausgeflogen sein.
Habs wieder mit aufgenommen.
Bei mir funktioniert das Modul ja mit beiden Einstellungen, also bitte nochmal testen.

Viele Grüße
Sebastian

minicupper

Hallo,
zu Beginn dieses Threads war ich irgendwann mal dabei, dann hatte ich zwischendurch die Lust verloren. Vielen Dank für die Weiterentwicklung, schön zu sehen, dass sich wieder etwas tut! Habe die neue Version (kurz) getestet:
* Discovery: funktioniert
* Passwort ermitteln: funktioniert
* Connect: geht
* Start/Stop/Dock: geht

Läuft auf einem Raspi2 mit Buster. Roomba 966.
Mal sehen wie die "Langzeitstabilität" so ist. Ich werde berichten.
Gruß
Gero

Lippie

Zitat von: minicupper am 14 November 2019, 20:36:32
Vielen Dank für die Weiterentwicklung, schön zu sehen, dass sich wieder etwas tut! Habe die neue Version (kurz) getestet:
* Discovery: funktioniert
* Passwort ermitteln: funktioniert
* Connect: geht
* Start/Stop/Dock: geht
Gruß
Gero
Danke fürs testen. Wie schauts mit den anderen Funktionen aus? Einstellung von cleanSchedule, train, evac, pause, resume, off, carpetBoost, vacHigh, openOnly, noAutoPasses, twoPass, binPause?
Ich würde die Funktionen nach den Saugern filtern. Dazu fehlen mir aber die Infos.

VG
Sebastian