Neues Modul: BOTVAC (für Neato BotVac Connected)

Begonnen von vuffiraa, 02 April 2016, 22:12:29

Vorheriges Thema - Nächstes Thema

vuffiraa

Zitat von: Schlimbo am 10 Dezember 2018, 18:22:38
Achtung, mit der aktuellen Firmware (4.3.1-180) für den D7 wurden wieder neue SERVICES eingeführt:

SERVICES   maps:basic-2, softwareUpdate:basic-1, generalInfo:basic-1, spotCleaning:basic-3, findMe:basic-1, houseCleaning:basic-4, IECTest:advanced-1, schedule:basic-2, logCopy:basic-1, preferences:basic-1, wifi:basic-1, manualCleaning:basic-1

Nach einem Firmware Update funktioniert das Modul somit für den D7 erst mal nicht.
Na toll, dokumentiert sind die neuen Services aber noch nicht, wenn ich das richtig gesehen habe. Wo hakt es denn?
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

Zitat von: Kruemel am 09 Dezember 2018, 21:55:38
Guten Abend, beschreibt du irgendwo, was sich ändert? Im Wiki?
Danke für deine Arbeit.
LG

Na hier im Forum wird doch alles beschrieben  ;)

Ansonsten wird die Commandref gepflegt, die ja mittlerweile einen ganz guten Umfang hat.
Im Wiki habe ich selber gar keinen Zugriff, muss ich mir mal besorgen.

Gruß
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

#347
Zitat von: vuffiraa am 10 Dezember 2018, 18:52:40
Na toll, dokumentiert sind die neuen Services aber noch nicht, wenn ich das richtig gesehen habe. Wo hakt es denn?
Ja, die API Beschreibung hängt bei NEATO immer ganz schön hinterher, das ist echt nervig.
Hatte bis jetzt noch keine Zeit hier weiter zu forschen, werde die Tage mal die Services maps und houseCleaning anpassen und schauen was passiert.

Auch bei getSchedule hat sich etwas geändert:
2018.12.11 20:43:53.417 4: BOTVAC Sauger: RES messages/getSchedule - {"version":1,"reqId":"0","result":"ok","data": {"enabled":true,"events": [{"mode":2,"day":1,"startTime":"17:47","boundary": {"id":"193b829c-c9e2-4d15-a1ff-c4931f4aec24","name":"Esszimmer"},"mapId":"2018-05-11T12:33:15Z"}]}}
2018.12.11 20:43:53.417 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.11 20:43:53.418 1: stacktrace:
2018.12.11 20:43:53.418 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.11 20:43:53.418 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (816)
2018.12.11 20:43:53.418 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.11 20:43:53.418 1:     main::__ANON__                      called by fhem.pl (723)


Gruß Schlimbo

vuffiraa

Zitat von: Schlimbo am 11 Dezember 2018, 22:16:25
Ja, die API Beschreibung hängt bei NEATO immer ganz schön hinterher, das ist echt nervig.
Hatte bis jetzt noch keine Zeit hier weiter zu forschen, werde die Tage mal die Services maps und houseCleaning anpassen und schauen was passiert.

Auch bei getSchedule hat sich etwas geändert:
2018.12.11 20:43:53.417 4: BOTVAC Sauger: RES messages/getSchedule - {"version":1,"reqId":"0","result":"ok","data": {"enabled":true,"events": [{"mode":2,"day":1,"startTime":"17:47","boundary": {"id":"193b829c-c9e2-4d15-a1ff-c4931f4aec24","name":"Esszimmer"},"mapId":"2018-05-11T12:33:15Z"}]}}
2018.12.11 20:43:53.417 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.11 20:43:53.418 1: stacktrace:
2018.12.11 20:43:53.418 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.11 20:43:53.418 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (816)
2018.12.11 20:43:53.418 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.11 20:43:53.418 1:     main::__ANON__                      called by fhem.pl (723)


Gruß Schlimbo

Hallo Schlimbo,

die Doku für den Schedule-Service würde angepasst, dass passt jetzt zu deiner Beobachtung. Hast du schon mit den Anpassungen angefangen?

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Hallo VuffiRaa,
nein hatte noch keine Zeit.
Gruß

vuffiraa

Die Version 0.5.2 im Git ist etwas toleranter beim Parsen der Rückgabewerte beim Schedule-Service.
Außerdem wird bei der Schedule-Serviceversion basic-2 nun getScheduleEvents laut Neato-API gerufen.

Bitte mal probieren und gerne auch Logs schicken, dann baue ich das Parsen weiter aus.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Danke, werde ich testen  :)
Könntest du bitte auch noch maps:basic-2 und houseCleaning:basic-4 mit aufnehmen.
Da es hierzu noch keine Doku gibt, bitte erst mal mit macro-1(maps) und basic-3 (houseCleaning) gleich setzen.
Gruß Schlimbo


vuffiraa

Zitat von: Schlimbo am 13 Dezember 2018, 22:16:16
Danke, werde ich testen  :)
Könntest du bitte auch noch maps:basic-2 und houseCleaning:basic-4 mit aufnehmen.
Da es hierzu noch keine Doku gibt, bitte erst mal mit macro-1(maps) und basic-3 (houseCleaning) gleich setzen.
Gruß Schlimbo

Dann schau mal nach der Version 0.5.3. Da habe ich deine Wünsche soweit eingefügt und noch etwas beim Schedule-Service nachgearbeitet. Da ich das nicht direkt testen kann, bin ich gespannt, wie sich das Modul schlägt  ;)

Schönen Abend,
VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Hallo Vuffiraa,

danke für deine Mühe, allerdings musste ich gerade feststellen, dass die API Dokumentation zu schedule:basic-2 nicht korrekt ist. Bei mir sieht die Rückgabe etwas anders aus.

Habe in der App vier Timer angelegt, einer davon verwendet auch die neue Zonen Funktion (im Log der Eintrag mit boundary: Esszimmer)

Hier der Ausschnitt aus dem Log :
2018.12.15 17:50:05.213 5: BOTVAC Sauger: called function ReceiveCommand() rc: HASH(0x55ec2016f648) err:  data: {"version":1,"reqId":"0","result":"ok","data": {"enabled":true,"events": [{"mode":2,"day":1,"startTime":"15:00"},{"mode":2,"day":2,"startTime":"15:00"},{"mode":2,"day":3,"startTime":"18:45"},{"mode":2,"day":5,"startTime":"17:15","boundary": {"id":"193b829c-c9e2-4d15-a1ff-c4931f4aec24","name":"Esszimmer"},"mapId":"2018-05-11T12:33:15Z"}]}}
2018.12.15 17:50:05.213 4: BOTVAC Sauger: RCV messages/getScheduleEvents
2018.12.15 17:50:05.213 4: BOTVAC Sauger: RCV successors
2018.12.15 17:50:05.214 4: BOTVAC Sauger: RES messages/getScheduleEvents - {"version":1,"reqId":"0","result":"ok","data": {"enabled":true,"events": [{"mode":2,"day":1,"startTime":"15:00"},{"mode":2,"day":2,"startTime":"15:00"},{"mode":2,"day":3,"startTime":"18:45"},{"mode":2,"day":5,"startTime":"17:15","boundary": {"id":"193b829c-c9e2-4d15-a1ff-c4931f4aec24","name":"Esszimmer"},"mapId":"2018-05-11T12:33:15Z"}]}}
2018.12.15 17:50:05.215 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.215 1: stacktrace:
2018.12.15 17:50:05.215 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.215 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (834)
2018.12.15 17:50:05.215 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.215 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.215 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.215 1: stacktrace:
2018.12.15 17:50:05.215 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.215 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (835)
2018.12.15 17:50:05.215 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.216 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.216 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.216 1: stacktrace:
2018.12.15 17:50:05.216 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.216 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (837)
2018.12.15 17:50:05.216 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.216 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.216 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.216 1: stacktrace:
2018.12.15 17:50:05.216 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.216 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (834)
2018.12.15 17:50:05.216 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.217 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.217 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.217 1: stacktrace:
2018.12.15 17:50:05.217 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.217 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (835)
2018.12.15 17:50:05.217 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.217 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.217 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.217 1: stacktrace:
2018.12.15 17:50:05.217 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.217 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (837)
2018.12.15 17:50:05.217 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.217 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.217 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.217 1: stacktrace:
2018.12.15 17:50:05.218 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.218 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (834)
2018.12.15 17:50:05.218 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.218 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.218 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.218 1: stacktrace:
2018.12.15 17:50:05.218 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.218 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (835)
2018.12.15 17:50:05.218 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.218 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.218 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.218 1: stacktrace:
2018.12.15 17:50:05.218 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.218 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (837)
2018.12.15 17:50:05.218 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.219 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.219 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.219 1: stacktrace:
2018.12.15 17:50:05.219 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.219 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (834)
2018.12.15 17:50:05.219 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.219 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.219 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.219 1: stacktrace:
2018.12.15 17:50:05.219 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.219 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (835)
2018.12.15 17:50:05.219 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.219 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.219 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.15 17:50:05.220 1: stacktrace:
2018.12.15 17:50:05.220 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.15 17:50:05.220 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (837)
2018.12.15 17:50:05.220 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.15 17:50:05.220 1:     main::__ANON__                      called by fhem.pl (723)
2018.12.15 17:50:05.512 5: BOTVAC Sauger: called function ReceiveCommand() rc: HASH(0x55ec203432a0) err:  data: {"version":1,"reqId":"0","result":"ok","data": {},"error":null,"alert":null,"state":1,"action":0,"cleaning": {"category":4,"mode":2,"modifier":1,"navigationMode":1,"mapId":"","spotWidth":0,"spotHeight":0},"details": {"isCharging":false,"isDocked":true,"isScheduleEnabled":true,"dockHasBeenSeen":false,"charge":96},"availableCommands": {"start":true,"stop":false,"pause":false,"resume":false,"goToBase":false},"availableServices": {"findMe":"basic-1","generalInfo":"basic-1","houseCleaning":"basic-4","IECTest":"advanced-1","logCopy":"basic-1","manualCleaning":"basic-1","maps":"basic-2","preferences":"basic-1","schedule":"basic-2","softwareUpdate":"basic-1","spotCleaning":"basic-3","wifi":"basic-1"},"meta": {"modelName":"BotVacD7Connected","firmware":"4.3.1-180"}}   

vuffiraa

Zitat von: Schlimbo am 15 Dezember 2018, 18:41:40
Hallo Vuffiraa,

danke für deine Mühe, allerdings musste ich gerade feststellen, dass die API Dokumentation zu schedule:basic-2 nicht korrekt ist. Bei mir sieht die Rückgabe etwas anders aus.

Habe in der App vier Timer angelegt, einer davon verwendet auch die neue Zonen Funktion (im Log der Eintrag mit boundary: Esszimmer)

Hier der Ausschnitt aus dem Log :

Ich sehe es. Was mich noch interessieren würde, kannst du einen einzelnen Timer auch für mehrere Tage anlegen? Das war in der Doku gut gelöst. Naja, wenn es aber so nicht implementiert wurde, nutzt die beste Doku nix  ::)

Ich passe das Modul mal an dein Log an.

Schönen 3. Advent,
VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Hallo VuffiRaa,
der erste Timer ist für zwei Tage (siehe Screenshot), intern werde hierfür aber scheinbar zwei einzelne Timer angelegt.

Dir auch noch einen schönen 3. Adventabend.
Schlimbo

Schlimbo

Hallo VuffiRaa,
mit deiner Änderung von gestern werden die Timer Readings wieder aktualisierte, danke.

In Zeile 843 ist in "boundaryNAme" noch ein Tippfehler.

Momentan bleiben die Readings vorhaben, auch wenn der Timer in der App gelöscht wurde, könntest du hier noch etwas ergänzen, damit die Readings in diesem Fall auch gelöscht werden?

Das Reading map_date funktioniert bei mir auch nicht mehr.
Die Funktion GetTimeFromString liefert scheinbar keinen Wert zurück:

....","url_valid_for_seconds":300,"version":1,"generated_at":"2018-10-30T10:10:00Z","status":"complete","launched_from":"app","error":null,"modifier":1,"start_at":"2018-10-30T09:31:58Z","end_at":"2018-10-30T10:10:00Z","end_orientation_relative_degrees":88,"run_charge_at_start":98,"run_charge_at_end":73,"persistent_map_id":null,"cleaned_with_persistent_map_id":null,"suspended_cleaning_charging_count":0,"time_in_suspended_cleaning":0,"time_in_error":0,"time_in_pause":0,"cleaned_area":31.4352,"base_count":1,"is_docked":true,"delocalized":false,"valid_as_persistent_map":false,"category":4,"mode":2,"navigation_mode":1}]}
2018.12.16 22:47:51.935 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4590.
2018.12.16 22:47:51.935 1: stacktrace:
2018.12.16 22:47:51.935 1:     main::__ANON__                      called by fhem.pl (4590)
2018.12.16 22:47:51.935 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (1030)
2018.12.16 22:47:51.935 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.16 22:47:51.935 1:     main::__ANON__                      called by fhem.pl (723)

Hast du eine Idee an was das liegen könnte?

Gruß
Schlimbo


vuffiraa

Zitat von: Schlimbo am 17 Dezember 2018, 16:47:23
Hallo VuffiRaa,
mit deiner Änderung von gestern werden die Timer Readings wieder aktualisierte, danke.

In Zeile 843 ist in "boundaryNAme" noch ein Tippfehler.

Momentan bleiben die Readings vorhaben, auch wenn der Timer in der App gelöscht wurde, könntest du hier noch etwas ergänzen, damit die Readings in diesem Fall auch gelöscht werden?

Das Reading map_date funktioniert bei mir auch nicht mehr.
Die Funktion GetTimeFromString liefert scheinbar keinen Wert zurück:
Hast du eine Idee an was das liegen könnte?

Gruß
Schlimbo

Probier mal Version 0.5.5. Bei mir funktioniert die Version ganz gut  :)

Schönen Abend,
VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Wow, das ging ja schnell. Ja, jetzt klappt es. :)
Danke.

Noch ein Kleinigkeiten in Zeile 862 : $boundary->{namr}

abc2006

Moin,
ich hab jetzt auch das neue update (sowohl vom Robot, als auch vom Modul).
Ausserdem hab ich mir nen zweiten D7Connected geleistet.
Allerdings find ich das mit dem umschalten zwischen den zwei Robotern nicht so toll und hätte lieber zwei Devices, eines für jeden. Spricht da was dagegen, von Modul-Seite, einfach zwei Devices anzulegen und den SetRobot nicht zu benutzen?

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX