Modul für Irobot Roomba 980

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

Vorheriges Thema - Nächstes Thema

Komaandy

Hallo guten Morgen,

ich habe es mittlerweile für mich mit RFHEM gelöst.
Ich habe einen Raspberry Zero den ich  übrig hatte nun als Slave eingerichtet der eine blanke FHEM Instanz laufen hat und quasi nur den Roomba steuert...

Brice

Das Modul RFHEM wird nicht mehr gepflegt. Bei der Durchsicht des Threads bin ich auf den Beitrag von UliM gestolpert. Diese Lösung habe ich jetzt im Einsatz mit den notwendigen Notifys im Produktivsystem zum Starten bei Abwesenheit bzw Stoppen / Dock beim Zurückkommen.

Bei der Erstellung des Notify zur Steuerung über das dummy-Device im FHEM Webfrontend Beitrag 23 (doppeltes Semikolon) beachten.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

Yokurt

Hallo,

erstmal danke für das Modul. Habe mein Roomba980 in fhem eingebunden und zumindest starten und stoppen funktioniert.

Ich nutze DbLog und um die Flut an Statusmeldungen zu reduzieren fehlt (noch) das Attribut "event-on-change-reading". Ich habe es als userattr hinzugefügt es tut seine Dienste. Aber vielleicht könnte das in Zukunft zu den Attributen mit aufgenommen werden.

Gruß
Yokurt

P.S.: Mir fehlt noch ein notify im Fehlerfall (z.B. wenn der Roomba festhängt),  hat schon jemand Erfahrung welches der vielen readings das hergibt?

luetty

Zitat von: Yokurt am 17 Oktober 2018, 16:02:59
P.S.: Mir fehlt noch ein notify im Fehlerfall (z.B. wenn der Roomba festhängt),  hat schon jemand Erfahrung welches der vielen readings das hergibt?

Ich reagiere in einem DOIF auf:
[Roombi:cleanMissionStatus-phase] eq 'stuck'

Funktioniert super  ;D

Spiff

Hi,

bei mir lief eine alte Version ja total zuverlässig. Jetzt habe ich ein Update gemacht und kriege einfach keine Verbindung mehr zustande. Die connect/disconnect-Problematik habe ich auch. FHEM läuft auf Windows mit ActivePerl.

Auf verbose 5 erhalte ich diesen Fehler:

Connection Refused, unacceptable protocol version

In einer Fehlerbeschreibung heißt es:
The Server does not support the level of the MQTT protocol requested by the Client

Wer genau ist der Server? Ist es das roomba-Modul oder ein anderes FHEM MQTT-Modul oder ein Perl-Modul?

Kann es sein, dass eins von den obigen nicht mit der Version vom Roomba kompatibel ist und daher die disconnects kommen?

Gruß
Spiff

bennebartsch

Hi, ich behaupte einfach mal: der Roomba ist der Server. Wenn er der Client wäre, müsste man ihm ja irgendwie sagen mit welchem Server er sprechen soll.

Zitat von: Spiff am 04 November 2018, 14:32:32
Hi,

bei mir lief eine alte Version ja total zuverlässig. Jetzt habe ich ein Update gemacht und kriege einfach keine Verbindung mehr zustande. Die connect/disconnect-Problematik habe ich auch. FHEM läuft auf Windows mit ActivePerl.

Auf verbose 5 erhalte ich diesen Fehler:

Connection Refused, unacceptable protocol version

In einer Fehlerbeschreibung heißt es:
The Server does not support the level of the MQTT protocol requested by the Client

Wer genau ist der Server? Ist es das roomba-Modul oder ein anderes FHEM MQTT-Modul oder ein Perl-Modul?

Kann es sein, dass eins von den obigen nicht mit der Version vom Roomba kompatibel ist und daher die disconnects kommen?

Gruß
Spiff

Brice

Zitat von: Spiff am 04 November 2018, 14:32:32Connection Refused, unacceptable protocol version

Den Fehler hatte ich auf einem RPi3 wie hier beschrieben auch schon. Geholfen hat mir die Zurücksetzung des Roomba und das Neueinlesen von Blid und Password.

Das Modul Roomba läuft bei mir auf einem separatem FHEM-RPi3 per FHEM2FHEM zum Produktivsystem, auf dem ich bisher keine FHEM-updates durchgeführt habe.

FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

dk3572

Hallo,
ich möchte meinen Roomba starten wenn ich abwesend bin und er an diesem Tag noch nicht gefahren ist.
Kann man anhand eines bestimmten Reading ersehen, ob er heute schon gefahren ist?

Danke und VG
Dieter

Brice

Reading wäre "lastCommand-command `clean`"

aber frag mich nicht, wie der Zeitstempel in ein Notify eingebunden wird...

Stefan

FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

dk3572

Hallo Stefan,

danke für die Antwort.
Habe noch 2 weitere Fragen:
1. Kann man an einem bestimmten Reading sehen, wie lange die letzte Aufgabe zurück liegt?
2. Gibt es eine Erklärung aller Readings? Manche Abkürzungen sind schon sehr kryptisch und ich konnte noch nichts finden.

Danke und VG
Dieter

Brice

Hallo Dieter,

zunächst: ich habe hier einen Roomba 676 am Start, weiß aber nicht, ob die Readings mit deinem Roomba identisch sind.

zu 1: Ich behaupte jetzt mal, das wird schwierig. Jedes Reading hat einen Zeitstempel, dem Modul fehlt aber das Attribut event-on-change-reading. Bei z.B. einem disconnect werden die Zeitstempel aller Readings neu gesetzt.

zu 2: das Modul ist nicht offiziell, daher gibt es wenig Dokumentation. Vielleicht schaust du mal auf der Dorita-Seite (Github?, Link habe ich gerade nicht)

Ich werde die Automatisierung "wenn weg, dann staubsaugen" erst in Angriff nehmen, wenn der ganze Weihnachtskrempel wieder weggeräumt ist.

Stefan
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

Yokurt

Zitat von: Brice am 19 Dezember 2018, 15:43:51
zu 1: Ich behaupte jetzt mal, das wird schwierig. Jedes Reading hat einen Zeitstempel, dem Modul fehlt aber das Attribut event-on-change-reading. Bei z.B. einem disconnect werden die Zeitstempel aller Readings neu gesetzt.
Ich habe das event-on-change-reading per Userattribut hinzugefügt. Funktioniert bei mir gut um die Logflut etwas im Zaum zuhalten.
userattr event-on-change-reading
event-on-change-reading signal.*:10,.*

Ich habe ausser einer Benachrichtigungsmail bei cleanMissionStatus-phase eq 'stuck' aber selber noch keine Auswertung auf die Readings.
Du könntest im log unter cleanMissionStatus-phase oder lastCommand-command schauen, ob an dem Tag schon was lief.

Heggeg

Hallo zusammen,
ich möchte meinem Roomba via Firewall das Nachhause funken abgewöhnen. Ich möchte aber nicht auf die netten Benachrichtigungen verzichten, wenn der Roboter arbeitet oder seine arbeit beendet hat. Deswegen habe ich mir ein DOIF erstellt, bisher hat mein Vorgehen immer funktionier nur nun beim Roomba leider nicht. Ein Erfahrener FHEMler wird vermutlich bei dem DOIF die Hände über den Kopf zusammenschlagen könnte mir aber trotzdem jemand sagen warum der DOIF nicht auf Änderrungen des Status des Roboters reagiert?

Folgende Versionen des DOIFs habe ich ausprobiert:

define dRoombaBenachrichtigung DOIF ([Mayrobo] eq 'stuck' ) (set TelegramBot message Mayrobo ist stecken geblieben!) DOELSEIF ([Mayrobo] eq 'charge') (set TelegramBot message Mayrobo ist nun am laden!) DOELSEIF ([Mayrobo] eq 'run') (set TelegramBot message Mayrobo reinigt nun die Wohnung!) DOELSEIF ([Mayrobo] eq 'hmUsrDock') (set TelegramBot message Mayrobo ist nun auf dem Weg zum Dock!) DOELSEIF ([Mayrobo] eq 'stop') (set TelegramBot message Mayrobo hat die Arbeit beendet!)



define dRoombaBenachrichtigung DOIF ([cleanMissionStatus-phase] eq 'stuck' ) (set TelegramBot message Mayrobo ist stecken geblieben!) DOELSEIF ([cleanMissionStatus-phase] eq 'charge') (set TelegramBot message Mayrobo ist nun am laden!) DOELSEIF ([cleanMissionStatus-phase] eq 'run') (set TelegramBot message Mayrobo reinigt nun die Wohnung!) DOELSEIF ([cleanMissionStatus-phase] eq 'hmUsrDock') (set TelegramBot message Mayrobo ist nun auf dem Weg zum Dock!) DOELSEIF ([cleanMissionStatus-phase] eq 'stop') (set TelegramBot message Mayrobo hat die Arbeit beendet!)


Meinen Roomba habe ich wie folgt angelegt:


define Mayrobo Roomba980 <IP>:8883 <blid> <pw>
attr Mayrobo icon vacuum_top
attr Mayrobo room 9.8 Roomba
attr Mayrobo userattr event-on-change-reading
attr Mayrobo event-on-change-reading signal.*:10,.*


Viele Grüße!

dk3572

Zitat von: Heggeg am 05 Januar 2019, 03:57:32
Hallo zusammen,
ich möchte meinem Roomba via Firewall das Nachhause funken abgewöhnen. Ich möchte aber nicht auf die netten Benachrichtigungen verzichten, wenn der Roboter arbeitet oder seine arbeit beendet hat. Deswegen habe ich mir ein DOIF erstellt, bisher hat mein Vorgehen immer funktionier nur nun beim Roomba leider nicht. Ein Erfahrener FHEMler wird vermutlich bei dem DOIF die Hände über den Kopf zusammenschlagen könnte mir aber trotzdem jemand sagen warum der DOIF nicht auf Änderrungen des Status des Roboters reagiert?

Folgende Versionen des DOIFs habe ich ausprobiert:

define dRoombaBenachrichtigung DOIF ([Mayrobo] eq 'stuck' ) (set TelegramBot message Mayrobo ist stecken geblieben!) DOELSEIF ([Mayrobo] eq 'charge') (set TelegramBot message Mayrobo ist nun am laden!) DOELSEIF ([Mayrobo] eq 'run') (set TelegramBot message Mayrobo reinigt nun die Wohnung!) DOELSEIF ([Mayrobo] eq 'hmUsrDock') (set TelegramBot message Mayrobo ist nun auf dem Weg zum Dock!) DOELSEIF ([Mayrobo] eq 'stop') (set TelegramBot message Mayrobo hat die Arbeit beendet!)



define dRoombaBenachrichtigung DOIF ([cleanMissionStatus-phase] eq 'stuck' ) (set TelegramBot message Mayrobo ist stecken geblieben!) DOELSEIF ([cleanMissionStatus-phase] eq 'charge') (set TelegramBot message Mayrobo ist nun am laden!) DOELSEIF ([cleanMissionStatus-phase] eq 'run') (set TelegramBot message Mayrobo reinigt nun die Wohnung!) DOELSEIF ([cleanMissionStatus-phase] eq 'hmUsrDock') (set TelegramBot message Mayrobo ist nun auf dem Weg zum Dock!) DOELSEIF ([cleanMissionStatus-phase] eq 'stop') (set TelegramBot message Mayrobo hat die Arbeit beendet!)


Meinen Roomba habe ich wie folgt angelegt:


define Mayrobo Roomba980 <IP>:8883 <blid> <pw>
attr Mayrobo icon vacuum_top
attr Mayrobo room 9.8 Roomba
attr Mayrobo userattr event-on-change-reading
attr Mayrobo event-on-change-reading signal.*:10,.*


Viele Grüße!

Guten Morgen,

statt 'stuck' eher "stuck" ?

VG Dieter

Heggeg

Zitat von: dk3572 am 05 Januar 2019, 08:59:14
Guten Morgen,

statt 'stuck' eher "stuck" ?

VG Dieter

([Mayrobo:cleanMissionStatus-phase] eq "stuck" ) (set TelegramBot message Mayrobo ist stecken geblieben!) DOELSEIF ([Mayrobo:cleanMissionStatus-phase] eq "charge") (set TelegramBot message Mayrobo ist nun am laden!) DOELSEIF ([Mayrobo:cleanMissionStatus-phase] eq "run") (set TelegramBot message Mayrobo reinigt nun die Wohnung!) DOELSEIF ([Mayrobo:cleanMissionStatus-phase] eq "hmUsrDock") (set TelegramBot message Mayrobo ist nun auf dem Weg zum Dock!) DOELSEIF ([Mayrobo:cleanMissionStatus-phase] eq "stop") (set TelegramBot message Mayrobo hat die Arbeit beendet!)

So läufts nun ;)

Gruß Heggeg