Roomba Staubsaugerroboter

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

Vorheriges Thema - Nächstes Thema

marboj

Zitat von: Prof. Dr. Peter Henning am 03 Februar 2021, 17:17:37
OK, das mit dem Neustart an der clean-Taste werde ich gerne mal probieren. Ich habe eine neue Version des Hilfsmoduls, die ich hier mal anhänge. Sie setzt während des Reinigungsvorgangs das disconnectAfter-Attribut hoch, funktioniert bei mir über die letzte Woche hinweg sehr gut.

LG

pah

Wie kann ich den Dateianhang herunterladen? Offenbar bin ich zu blöd...

Habe das:    if(main::Value($iodev) ne "opened"{) in der Dateium die ) ergänzt und auch, weil ich an meinen Augen zweifle, mit } probiert.

Die Fehler sind immer noch da.

Vermutlich ist die angehängte Datei ready-to-use, oder?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

marboj

Da der Dateianhang nicht mehr da zu sein scheint, habe ich aus dem svn die letzte Version geladen, die Klammer zu ) ergänzt und nun folgenden Fehler:

2021.02.26 15:10:00 1: PERL WARNING: Bareword found where operator expected at ./FHEM/99_RoombaUtils.pm line 211, near ")
      main::fhem"
2021.02.26 15:10:00 1: PERL WARNING: (Missing operator before main::fhem?)
2021.02.26 15:10:00 1: PERL WARNING: "my" variable $name masks earlier declaration in same scope at ./FHEM/99_RoombaUtils.pm line 230.
2021.02.26 15:10:00 1: PERL WARNING: "my" variable $data masks earlier declaration in same scope at ./FHEM/99_RoombaUtils.pm line 230.
2021.02.26 15:10:00 1: PERL WARNING: "state" variable @_ masks earlier declaration in same scope at ./FHEM/99_RoombaUtils.pm line 230.
2021.02.26 15:10:00 1: PERL WARNING: "my" variable @evt masks earlier declaration in same scope at ./FHEM/99_RoombaUtils.pm line 231.
2021.02.26 15:10:00 1: PERL WARNING: "my" variable $cmd masks earlier declaration in same scope at ./FHEM/99_RoombaUtils.pm line 263.
2021.02.26 15:10:00 1: reload: Error:Modul 99_RoombaUtils deactivated:
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

loetmeister

#242
Hallo,

Vermutlich nicht die richtige Stelle korrigiert?  ;)
Hier steht wo die klammer hin gehört: https://forum.fhem.de/index.php/topic,114166.msg1134544.html#msg1134544

Edit, ok, so klar war der Beitrag nicht, daher:
if(main::Value($iodev) ne "opened"){

Gruß,
Thomas

marboj

#243
Also, irgendwie hab ich (vielleicht) voll das Brett vorm Kopf:

Das ist der Beitrag:


Da hat sich anscheinend ein Fehler in der Zeile 210 eingeschlichen.
Es fehlt eine ")" in der if-Abfrage:
Code: [Auswählen]

    if(main::Value($iodev) ne "opened"{


lg, Gerhard


Leider bin ich kein Programmierer, aber so   if(main::Value($iodev)) ne "opened"{

läuft es auch nicht  :(

Update: Es läuft... so if(main::Value($iodev) ne "opened"){

Gruß
Marco

meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

delMar

Zitat von: marboj am 26 Februar 2021, 17:30:58
Leider bin ich kein Programmierer, aber so   if(main::Value($iodev)) ne "opened"{

läuft es auch nicht  :(

Nö. So muss Code

if(main::Value($iodev) ne "opened"){


schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Prof. Dr. Peter Henning

ZitatLeider bin ich kein Programmierer
.
Gut so, ich würde mich gegen eine solch abwertende Bezeichnung auch wehren...

So, die 99_RoombaUtils haben jetzt größere Änderungen erfahren. Unter Anderem kann man mit einem User-Attribut das Datensammeln für eine Karte komplett unterbinden, siehe Wiki.

Außerdem gibt es ein Internal "Version".

Bei der Auswertung der Statusmeldungen vom Roomba geht die Software jetzt maximal flexibel vor, alle Modelle sollten damit zu Recht kommen.

LG

pah

gestein

Hallo Pah,

vielen Dank für die neue Version - läuft bei mir bis jetzt ohne Probleme.

Ich habe aber noch eine Bitte:
In Deinem Code habe ich gesehen, dass es auch ein Event names "netinfo" und darin ein Feld "bssid" gibt.
Wie kann ich dessen Wert in ein Reading bringen?
Könntest Du mir da bitte einen Tipp geben?

Der Hintergrund ist folgender:
Ich habe mehrere APs in meiner Wohnung und so kann ich automatisch erkennen, wenn sich der Roomba in einen anderen AP einloggt.
Und damit weiß ich z.B. dass er im OG oder im EG ist und kann dann die Maps entsprechend automatisch umstellen.

Danke im Voraus
lg, Gerhard


gestein

#247
Hallo,

mir ist noch nicht ganz klar, was man mit dem neuen Befehl "periodicCmd" so alles anfangen kann.
Ich wollte mir wie hier https://forum.fhem.de/index.php/topic,114166.msg1135599.html#msg1135599, ein at definieren, um den myRoombaMQTTClient periodisch zu öffnen.

Aber eigentlich geht das mit dem "periodicCmd" im Staubsauger-Device eleganter:
Dazu habe ich mir einen Befehl update in setList definiert:
update:noArg {fhem("set ".InternalVal($NAME,"IODev","") . "connect")}

Und rufe das "update" alle z.B. 15min auf.
attr myRoomba periodicCmd update:15

Wäre das so gedacht?
Was könnte man damit noch machen?

Kann man das Senden der MQTT-Felder im Roomba auch irgendwie anstossen (z.B. ein "announce" o.ä. senden)? Momentan muss man ja warten, bis der Roomba was schickt.
Oder habe ich da was missverstanden?

Danke im Voraus
lg, Gerhard

Edit: Zum Öffnen des Devices muss natürlich "connect" statt "open" verwendet werden

marboj

Hallo ihr,

habe siet dem neuesten Update folgende Einträge im Log:
2021.03.01 09:12:02 1: [RoombaUtils] uncaught event {"state":{"reported":{"utctime":1614586321}}}
2021.03.01 09:12:07 1: [RoombaUtils] uncaught event {"state":{"reported":{"name": "Rüdiger"}}}


Was machen die bzw. was heißt das?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

delMar

Zitat von: marboj am 01 März 2021, 10:22:26
habe siet dem neuesten Update folgende Einträge im Log:
2021.03.01 09:12:02 1: [RoombaUtils] uncaught event {"state":{"reported":{"utctime":1614586321}}}
2021.03.01 09:12:07 1: [RoombaUtils] uncaught event {"state":{"reported":{"name": "Rüdiger"}}}


Was machen die bzw. was heißt das?
Das heißt mWn, dass in den RoombaUtils noch nicht festgelegt wurde, ob diese Informationen als Readings gespeichert, oder verworfen werden sollen.
In diesem Fall werden sie wohl auch verworfen, allerdings mit diesen Hinweisen im Log.

Das ist eine ganz hervorragende Möglichkeit für einen Entwickler, Dinge ganz klar zu sehen, die bei ihm lokal nicht auftreten.
Wenn dich die Einträge stören, einfach verbose auf 0 stellen.

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

marboj

Nachdem ich nunmehr die 99_Roomba_Utils installiert habe, gehen meine Webbuttons nicht mehr:

<button>start</button>:<button>dock</button>:<button>resume</button>:<button>pause</button>:<button>stop</button>

Wie muß ich die denn nun anpassen, damit die wieder funktionieren?

meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

delMar

Zitat von: marboj am 01 März 2021, 11:58:33
Nachdem ich nunmehr die 99_Roomba_Utils installiert habe, gehen meine Webbuttons nicht mehr:

<button>start</button>:<button>dock</button>:<button>resume</button>:<button>pause</button>:<button>stop</button>

Wie muß ich die denn nun anpassen, damit die wieder funktionieren?
Die funktionieren bei mir immer noch. Allerdings ist mir auch aufgefallen, dass man seit einiger Zeit 2x den Befehl ausführen muss, damit der Robot dann auch wirklich loslegt.
Als ob beim ersten Mal der Connect hergestellt würde, und dann beim zweiten Mal erst das tatsächliche Start-Kommando.

Versuch mal, nach 2 Sekunden den Befehl nochmal abzuschicken.
Welches Device hast du nochmal? Ich hab den i7, vielleicht gibts hier wieder mal Modellbezogene Eigenheiten.

Was anderes:
ich hab hier ein template File angehängt, das bei der Ersteinrichtung hilfreich ist, da es haufenweise copy/paste erspart.

Wenn man das nach FHEM/lib/AttrTemplate/ kopiert, kann man beim MQTT2_DEVICE mit set iRobotRoomba attrTemplate iRobotDevice auswählen.
Damit kriegt man dann im Web-UI als erstes eine Vorschau aller Attribute, die benötigt werden (setList, etc).
Klickt man dann set muss man nur den nötigen Parameter angeben (die blid), und alle Attribute werden automatisch gesetzt.

Die Attribute zur Kartenerstellung sind hier noch nicht mit drin, kann ich aber bei Interesse gern noch dazugeben.

Der MQTT2_CLIENT devicetype unterstützt leider keine Attribute. Die nötigen Teile wären im Templatefile drin, das set attrTemplate wird im UI aber nicht angezeigt.

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Beta-User

? Soll ich das in das allg. m2-template-file integrieren und dann gleich noch den download der myUtils aus dem contrib mit reinpacken?

Das mit dem Client kann man so lösen, dass man es als attrTemplate mit passendem Filter nur auf ein M2-Device mit passendem model loslassen kann; dann muss man nur vorher sicherstellen, dass das "richtige" IO eingestellt ist (man könnte absichern, dass man das nur mit Devices des TYPE M2C kann...), die Attribute würden dann "quer" gesetzt... (Sowas gibt es schon mit den ignoreRegexp und auch die mehrkanaligen machen im Prinzip nichts anderes als "andere Devices" zu konfigurieren.)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

delMar

Zitat von: Beta-User am 01 März 2021, 15:18:01
und auch die mehrkanaligen machen im Prinzip nichts anderes als "andere Devices" zu konfigurieren.
Könntest du mir da bitte ein Beispiel nennen und in welchem Template ich das finde? Davon lass ich mich gern inspirieren.

Zitat von: Beta-User am 01 März 2021, 15:18:01
? Soll ich das in das allg. m2-template-file integrieren und dann gleich noch den download der myUtils aus dem contrib mit reinpacken?
Die Frage geht, denk ich, nicht an mich. Ich weiß offen gestanden nicht, ob pah denkt, das hier alles ist schon stabil genug - meine Intepretation wäre eher, dass wir damit noch etwas warten sollten.

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Beta-User

Zitat von: delMar am 01 März 2021, 16:25:17
Könntest du mir da bitte ein Beispiel nennen und in welchem Template ich das finde? Davon lass ich mich gern inspirieren.
"Einfaches" Beispiel:
tasmota_2channel_split

Ansonsten, falls du ZWave kennst: FGR223_Roller_Mode in zwave.template (das ist ein schönes Beispiel für Modularität, Nutzerabfragen und das begleitende Konfigurieren der Sprachsteuerung).
Für Freunde/Kenner von MQTT_GENERIC_BRIDGE gäbe es auch noch eine übersichtliche file, da wird auch das wenigste an der Bridge selbst gemacht...

Zitat
Die Frage geht, denk ich, nicht an mich. Ich weiß offen gestanden nicht, ob pah denkt, das hier alles ist schon stabil genug - meine Intepretation wäre eher, dass wir damit noch etwas warten sollten.

schöne Grüße
Martin
Mir ist das gleich; wäre nicht das erste "unfertige" template, kann man ja in der desc vermerken, wo man sich beschweren kann ;D .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files