Roomba Staubsaugerroboter

Begonnen von Prof. Dr. Peter Henning, 10 September 2020, 16:40:34

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Thank you, I will try to integrate this into the other stuff (and mention you as contributor). Might take some days, though.

Regards

pah

ryonchev

#421
Keine problemme, es funktioniert beim mir, so egal wie viel lang es wird.

Is your repository part of FHEM update or I should explicitly add it in order to obtain the latest updates of this package?

Danke

Prof. Dr. Peter Henning

Mixed answer: Many of my modules are part of the official FHEM distro (22 by last count). RoombaUtils not yet, because it is just a collection of routines so far.

Regards

pah

ryonchev

#423
ok. Thank you

Also you can consider more easy programming - Instead of setting some parameters manually - copy what Android app is doing (custom mode) - "Extra clean" mode sets first noAutoPasses to true and then twoPass to true. "Daily clean" mode sets only twoPass to false but doesnt set noAutoPasses, and "Room-size Clean" sets noAutoPasses to false (and if twoPass is true - set it to false)

I hope this will help

PS: Tested on my s9... Dont know about others...


Danke schoen

ryonchev

I found one more command - train - Roomba will make map only without cleaning. Roomba still needs at least 2 passes to create the new map. To use the command just add to setList - Map:noArg {roomba::command($NAME,"train",$EVENT)}

Floriky

Hallo Zusammen,

haben meinen Roomba i7 gerade nach dem Wiki-Eintrag angelegt. Die Readings kommen teilweise aber der Roomba reagiert auf keinerlei Kommandos (start, stop, etc.). Ist das normal, dass das der MQTT2_CLIENT immer auf disconnected steht und nur nach einem manuellen connect kurz auf opened. Im Log (Verbose 5) habe ich keine Fehlermeldungen gefunden. Vielen Dank vorab!

Grüße
Flo

Prof. Dr. Peter Henning

ZitatIst das normal, dass das der MQTT2_CLIENT immer auf disconnected steht
Nein.

LG

pah

hapege

Ist bei mir aber auch so - nach einem manuellen connect geht der Client nach 5s (disconnectAfter = 5) wieder auf disconnected.
Aktualisieren sich denn Deine Readings nach einem manuellen connect?
Developer: 70_ESCVP21net.pm, 70_SVDRP.pm
Mitglied FHEM e.V.

Floriky

Ja die aktualisieren aber halt nur einmalig. Hast du eine Ahnung woran das liegen kann? Sagt das Attribut nicht genau das?

hapege

Genau so ist es ;)
Probier mal das disconnectAfter auf 300 zu setzen und dann ein Start command abzusetzen.
Developer: 70_ESCVP21net.pm, 70_SVDRP.pm
Mitglied FHEM e.V.

Floriky

Also habe gerade den Wert auf 300 gesetzt. Leider nimmt er immer noch keine Kommandos entgegen. Wobei sich mir da die nächste Frage aufdrängt: was passiert denn wenn er so länger wie 5 Minuten läuft? Bekomme ich dann in FHEM noch die aktuellen Readings? Frage deswegen, da ich den Event brauche, wenn er auf dem Weg zu seiner Homebase ist, da ich dieses wiederum verwende um seine Garage zu öffnen. Vielen Dank für deine schnelle Hilfe.

hapege

Readings kommen nur wenn der Client connected ist.
Mein i7 braucht das Start command meistens zweimal. Wenn er dann unterwegs solltest Du den Statuswechsel in den Readings sehen. Was passiert wenn Du connected bist und Du ihn manuell startest? Dann sollten im Log Nachrichten zu sehen sein.
Developer: 70_ESCVP21net.pm, 70_SVDRP.pm
Mitglied FHEM e.V.

Floriky

#432
Also jetzt geht es. Habe das zweite SetList Attribut aus der Anleitung durch das erste ersetzt und es funktioniert. Der Start hat auch beim ersten Mal funktioniert. Wobei wenn es sich in der Praxis rausstellt, dass er es zweimal braucht, kann man das ja einfach mit einem Notify lösen, das ihn  nochmal startet, wenn er nach X Sekunden nicht läuft.

Was jetzt aber komisch ist: Seitdem ich das DisconnectAfter auf 300 gestellt habe, diconnected er gar nicht mehr. Die Client ist dauerhaft auf opened. Ist das aus irgendeinem Grund problematisch? Und könnte ich dies auch auf z.B. auf 3600 (länger als 1 Stunde ist er nie unterwegs) stellen?

Bzw. macht es Sinn den Client manuell zu disconecten, sobald er wieder auf der Station steht um die Systemauslastung zu reduzieren?

Floriky

#433
Hallo Zusammen,

um herauszufinden welches der Readings sich für mein Event "Roomba ist endgültig fertig und will zurück zur Homebase" eignet, habe ich nun mal das Reading "state_reported_cleanMissionStatus_phase" gelogged und den Roomba laufen lassen. Bei einem Blick in die DB finde ich nun den Ablauf der Readingswerte

-> run -> [hmMidMsn] -> 24 Sekunden später wieder -> run -> 33 Sekunden später dann -> [hmPostMsn] -> und zuletzt 28 Sekunden später charge

Kann mir vielleicht jemand von den anwesenden Profis sagen inwiefern sich hmPostMsn und hmMidMsn unterscheiden bzw. was diese genau aussagen (hm steht für home würde ich mal wild spekulieren  ;) - nur der Rest ist unklar) ?
Oder würde sich ein anderes Reading hier besser eignen?

Etwas anderes als @hapege in seinem Post #294 schrieb, habe ich  leider nicht gefunden:

Zitat von: hapege am 11 März 2021, 23:21:10

Und beim missionmanager ist der normale i7 Ablauf wohl

charge -> run -> hmPostMsn -> evac -> hmPostMsn -> run -> charge


Vielen Dank im Voraus!

Prof. Dr. Peter Henning

#434
Erstmal an Alle:

Dadurch, dass Amazon iRobot gekauft hat, ergeben sich erhebliche Datenschutzprobleme. Mal sehen, was man machen kann.

@Floriky:

Home Mid Mission = Während der "Mission"

Home Post Mission = Nach der "Mission"

Zum Thema disconnect: bei mir läuft für jeden der drei Roboter ein DOIF

DEF   RoombaEmmaCycle DOIF     (([RoombaEmmaClient] eq "disconnected") and ([RoombaEmma] =~ /Mission/))
(set RoombaEmmaClient connect)
DOELSEIF
(([RoombaEmmaClient] eq "disconnected") and ([RoombaEmma] =~ /Stopped/))
(set RoombaEmmaClient connect)
DOELSEIF
(([RoombaEmmaClient] eq "disconnected") and ([RoombaEmma] =~ /Stuck/))
(set RoombaEmmaClient connect)
DOELSEIF
(([RoombaEmmaClient] eq "disconnected") and ([RoombaEmma] =~ /User Docking/))
(set RoombaEmmaClient connect)
DOELSEIF
(([RoombaEmmaClient] eq "disconnected") and ([RoombaEmma] =~ /Charge \(\d\d? \%\)/))
(set RoombaEmmaClient connect)


mit Attributwerten
do         always
   group      Staubsaugen
   room       Kontrollraum
   stateFormat {my $v=ReadingsVal("RoombaEmmaCycle","cmd","");;"Reconnect in $v => ".(($v==1)?"Mission":(($v==2)?"Pause":(($v==3)?"Stuck":"Charge" )))." ".ReadingsTimestamp("RoombaEmmaCycle","cmd","")}


Das RoombaEmmaClient Device hat Attribute

connectTimeout 6
disconnectAfter 7
stateFormat {my $v=ReadingsVal("RoombaEmmaClient","state","");;(($v =~ /opened/)?$v." (".AttrVal("RoombaEmmaClient","disconnectAfter","")." s)":$v)}


Während die Kiste geladen wird, erfolgt also regelmäßig ein reconnect, damit ich den Wechsel im Ladezustand mitbekomme.

LG

pah