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

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

Vorheriges Thema - Nächstes Thema

abc2006

Okay, zumindest bei einer Sache kann ich mir selbst die Antwort geben: zwei Devices kann man anlegen, aber die benutzen immer beide den gleichen, ausgewählten, Roboter.
Weils mir grad so passiert ist, und vielleicht jemand drüber stolpert:
Ich hatte massive probleme, die Robos zu verbinden - mit dem Server. Grade jetzt nach dem letzten Update.
Letztendlich hat es geholfen, den DNS-Server zu ändern. k.A., ob da Neato im Hintergrund irgendwas rumwurschtelt ...

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

vuffiraa

Zitat von: abc2006 am 18 Dezember 2018, 14:56:22
Okay, zumindest bei einer Sache kann ich mir selbst die Antwort geben: zwei Devices kann man anlegen, aber die benutzen immer beide den gleichen, ausgewählten, Roboter.
Weils mir grad so passiert ist, und vielleicht jemand drüber stolpert:
Ich hatte massive probleme, die Robos zu verbinden - mit dem Server. Grade jetzt nach dem letzten Update.
Letztendlich hat es geholfen, den DNS-Server zu ändern. k.A., ob da Neato im Hintergrund irgendwas rumwurschtelt ...

Grüße,
Stephan

Hallo Stephan,

jetzt verstehe ich deinen Beitrag von vorhin.

Das Problem ist, dass du für beide Roboter den gleichen Zugang bei Neato hast. Daher muss man ein Device für diesen Zugang anlegen und das Modul bekommt dann mit, welche Roboter darüber steuerbar sind. Dann kann man per setRobot auswählen, welcher gesteuert werden soll.

Nach meiner Idee legt man sich pro Roboter ein Device mit gleicher Konfiguration aber unterschiedlichem Namen in Fhem an und stellt dann über setRobot auf dem passenden Roboter um. Ab da steuert jedes Gerät seinen Roboter.

Ich konnte das bisher nur mit 2 Vorwerkern testen, aber da klappte es gut.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

Zitat von: vuffiraa am 18 Dezember 2018, 16:17:32
Ab da steuert jedes Gerät seinen Roboter.

Und genau das schien mir nicht zu funktionieren..

Ich werd das später nochmal testen (grad ists schlecht) und dann nochmal genaue Infos rausgeben.
beim letzten war meine config so:

define neato1 [...] username1@provider.de  [...]
set neato1 setRobot neato1
define neato2 [...] username1@provider.de  [...]
set neato2 setRobot neato2

mit set neato1 statusRequest stand dann aber im device neato1  im Reading "name" der Inhalt "neato2"...
sry, kurzfassung, hoffe du verstehst schonmal, was ich meine.
bis später,
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

vuffiraa

Zitat von: abc2006 am 18 Dezember 2018, 16:23:57
Und genau das schien mir nicht zu funktionieren..

Ich werd das später nochmal testen (grad ists schlecht) und dann nochmal genaue Infos rausgeben.
beim letzten war meine config so:

define neato1 [...] username1@provider.de  [...]
set neato1 setRobot neato1
define neato2 [...] username1@provider.de  [...]
set neato2 setRobot neato2

mit set neato1 statusRequest stand dann aber im device neato1  im Reading "name" der Inhalt "neato2"...
sry, kurzfassung, hoffe du verstehst schonmal, was ich meine.
bis später,
stephan

Genau so war es gedacht.

Ein Frage, wie schnell hintereinander hast du die Befehle ausgeführt? Bei setRobot wird geprüft, ob es einen passenden Roboter gibt. Wenn du das zu schnell gerufen hast, wusste das Device noch gar nichts davon. Am Besten macht man das im Device, da ist der Setter nur dann verfügbar, wenn die Roboterliste bereits geladen wurde und mehr als einen Roboter enthält.

Ansonsten schick mal Logs und list neato1|2.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

Okay, vielleicht reden wir aneinander vorbei:

Zitat
Ein Frage, wie schnell hintereinander hast du die Befehle ausgeführt?
Manuell/von Hand/im Device mit klicki dropdown.

ZitatBei setRobot wird geprüft, ob es einen passenden Roboter gibt. Wenn du das zu schnell gerufen hast, wusste das Device noch gar nichts davon.

ist mir klar. Aber da liegt ja auch nicht mein Problem: setRobot funktioniert ja einwandfrei.

ZitatGenau so war es gedacht.

sorry, dann erschließt sich mir der Sinn nicht. Warum brauch ich dann zwei Devices, die beide reagieren, wenn ich in einem den Roboter umschalte?

Ich schau später in die Logs und teste nochmal ausführlich.
Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

Also, nach mehreren Tests komme ich zu dem Schluss, dass jetzt alles so funktioniert wie erwartet:
Zwei Devices, mit gleichen Zugangsdaten, mit setRobot die verschiedenen Roboter ausgewählt und sie sind unabhängig steuerbar.

Lag möglicherweise an nicht vollständiger Kopplung mit dem Neato-Server (habe heute von 11:27 bis 14:18 mit dem Support von NEATO gechattet, bis die Dinger einwandfrei liefen, incl. Firmwareupdate, App-Update usw.

Nächstes mal versuche ich erst, ausgiebiger zu testen,  bevor ich schreibe - aber da heute morgen gar nix mehr ging war ich schon am verzweifeln...

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

vuffiraa

Zitat von: Schlimbo am 17 Dezember 2018, 23:29:01
Wow, das ging ja schnell. Ja, jetzt klappt es. :)
Danke.

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

Ist mit 0.5.6 auch behoben.
Noch was?   8)
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

Zitat von: abc2006 am 18 Dezember 2018, 19:04:40
Also, nach mehreren Tests komme ich zu dem Schluss, dass jetzt alles so funktioniert wie erwartet:
Zwei Devices, mit gleichen Zugangsdaten, mit setRobot die verschiedenen Roboter ausgewählt und sie sind unabhängig steuerbar.

Lag möglicherweise an nicht vollständiger Kopplung mit dem Neato-Server (habe heute von 11:27 bis 14:18 mit dem Support von NEATO gechattet, bis die Dinger einwandfrei liefen, incl. Firmwareupdate, App-Update usw.

Nächstes mal versuche ich erst, ausgiebiger zu testen,  bevor ich schreibe - aber da heute morgen gar nix mehr ging war ich schon am verzweifeln...

Grüße,
Stephan

Alles gut! Hauptsache es geht jetzt.

Das setzen des Roboters hätte ich auch als Parameter bei der Definition lösen können, aber da gibt es schon so viele Parameter. Später im Gerät kann ich dann auch gleich die richtigen Namen anzeigen lassen.

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

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Hallo VuffiRaa,
hatte im Log noch ein Problem mit dem result Wert gefunden:
2018.12.19 01:08:28.461 4: BOTVAC Sauger: RES messages/getRobotState - {"message":"Could not find robot_serial for specified vendor_name"}
2018.12.19 01:08:28.461 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4595.
2018.12.19 01:08:28.461 1: stacktrace:
2018.12.19 01:08:28.461 1:     main::__ANON__                      called by fhem.pl (4595)
2018.12.19 01:08:28.461 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (948)
2018.12.19 01:08:28.461 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.19 01:08:28.461 1:     main::__ANON__                      called by fhem.pl (723)

2018.12.19 03:52:17.143 4: BOTVAC Sauger: RES messages/getRobotState - {"message":"Timeout waiting a response from robot"}
2018.12.19 03:52:17.144 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4595.
2018.12.19 03:52:17.144 1: stacktrace:
2018.12.19 03:52:17.144 1:     main::__ANON__                      called by fhem.pl (4595)
2018.12.19 03:52:17.144 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_BOTVAC.pm (948)
2018.12.19 03:52:17.144 1:     BOTVAC::ReceiveCommand              called by FHEM/HttpUtils.pm (606)
2018.12.19 03:52:17.144 1:     main::__ANON__                      called by fhem.pl (723)

Diese beiden Fehler treten unregelmäßig immer wieder mal auf.
Etwas seltsam finde ich vor allem die Meldung "Could not find robot_serial for specified vendor_name" da sich die Nummer ja nicht verändert hat.

Habe gerade gesehen, dass du in deiner letzten Version hier schon etwas angepasst hast, allerdings würde ich diese request Fehler doch gerne irgendwie mitbekommen, könntest du diese Meldungen vielleicht in den result Status mit aufnehmen?

Was mich hierbei noch etwas stört ist, dass hierdurch Befehle verloren gehen können, bei einem Status requests ist das zwar nicht so schlimm, allerdings könnte dies ja auch bei einem "set startCleaning" passieren. Was hälst du desshalb davon in solchen Fällen des Kommando erneut zu senden?

Beste Grüße
Schlimbo



vuffiraa

Zitat von: Schlimbo am 19 Dezember 2018, 23:19:10
Hallo VuffiRaa,
hatte im Log noch ein Problem mit dem result Wert gefunden:

Diese beiden Fehler treten unregelmäßig immer wieder mal auf.
Etwas seltsam finde ich vor allem die Meldung "Could not find robot_serial for specified vendor_name" da sich die Nummer ja nicht verändert hat.

Habe gerade gesehen, dass du in deiner letzten Version hier schon etwas angepasst hast, allerdings würde ich diese request Fehler doch gerne irgendwie mitbekommen, könntest du diese Meldungen vielleicht in den result Status mit aufnehmen?

Was mich hierbei noch etwas stört ist, dass hierdurch Befehle verloren gehen können, bei einem Status requests ist das zwar nicht so schlimm, allerdings könnte dies ja auch bei einem "set startCleaning" passieren. Was hälst du desshalb davon in solchen Fällen des Kommando erneut zu senden?

Beste Grüße
Schlimbo

Diese Meldungen kenne ich auch. Ich vermute, dass da die Server bei Neato Probleme haben. Das ist einfach die Standardmeldung, wenn etwas nicht funktioniert. Die Meldung kommt auch relativ schnell, wenn man den Roboter ein paar Tage ausschaltet.

Du hast aber recht, ich werde versuchen, das in den Status zu übernehmen. Vielleicht mit einer Art Wiederholungszähler, damit Fhem nicht in einer Dauerschleife läuft, wenn der Roboter länger nicht erreichbar ist.

Viele Grüße,
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

Dazu hätt ich grad ne Anmerkung: was haltet ihr davon, zwei Polling Intervalls <- klingt komisch .. anzugeben?
so wie bei presence: eines für Robo in ruhe (Ladestation =1) und eines für Robo ist unterwegs.
Dann würde man die Neato-Server schonen, weil die meiste Zeit des Tages steht der Robo bei mir eh in der Station, und im gegenzug könnte man sich etwas schnellere Updates bei Betrieb leisten. Habe gerade gesehen, dass das update Interval bei mir immer noch auf 30 steht (vom testen, nehme ich an)..

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

vuffiraa

Zitat von: abc2006 am 21 Dezember 2018, 09:40:30
Dazu hätt ich grad ne Anmerkung: was haltet ihr davon, zwei Polling Intervalls <- klingt komisch .. anzugeben?
so wie bei presence: eines für Robo in ruhe (Ladestation =1) und eines für Robo ist unterwegs.
Dann würde man die Neato-Server schonen, weil die meiste Zeit des Tages steht der Robo bei mir eh in der Station, und im gegenzug könnte man sich etwas schnellere Updates bei Betrieb leisten. Habe gerade gesehen, dass das update Interval bei mir immer noch auf 30 steht (vom testen, nehme ich an)..

Grüße,
Stephan

Hallo Stephan,

probier mal dieses Attribute aus der Doku

Attributes
    actionInterval
    time in seconds between status requests while Device is working

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

Hey, danke!
FHEM ist mittlerweile so groß geworden, dass ich den Wald vor lauter Bäumen nicht mehr sehe.
Cool, dass es das schon gibt!

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

sherwood

Hallo zusammen,

ich habe einen Botvac D3 mit der aktuellen FW 4.4.0-72. Seit 4.3 unterstützt dieser No-Go Lines, nur bekomme ich Ihn über FHEM nicht mit dieser Option zum laufen.
Über die BOTVAC App wird jedes mal angezeigt, dass diese ignoriert (No-go lines disabled) werden.

Jemand einen Tip?

Folgende Services unterstützt der D3:
generalInfo:basic-1, houseCleaning:basic-3, spotCleaning:micro-2, wifi:basic-1, IECTest:basic-1, logCopy:basic-1, schedule:minimal-1, softwareUpdate:basic-1, maps:advanced-1, preferences:basic-1

Nutze das aktuelle 0.5.6 Modul

Motivierte linke Hände

Hallo! Der Weihnachtsmann hat einen D7 gebracht, und ich spiele gerade ein wenig bei dem Versuch, den in FHEM einzubinden.

Über die App kann ich den Roboter losschicken, dass er nur eine (auf der Karte markierte und dann mit einem Namen versehene Zone - Wohnzimmer, Esszimmer, etc.) reinigen soll. Über dieses Modul hier finde ich im Reading floorplan_0_boundaries die entsprechenden Zonen. Aber ihn beim Starten in eine dieser Zonen zu schicken, so dass nur diese gereinigt wird, geht nicht, oder?
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.