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: abc2006 am 23 August 2018, 20:28:20
Hi,
ich habs leider noch nicht geschafft, den gesamten Thread durchzulesen, und die Zeit ist knapp, weil ich den VR200 nur als Teststellung bis morgen mittag hab (und morgen arbeiten muss).


Folgende Sachen sind mir aufgefallen:
...
- Readings werden nicht upgedated, obwohl ich als Intervall 30 Sekunden angegeben habe.
(Beispiel state, batteryPercent usw)
...

Hallo Stephan,

die Readings werden nur dann aktualisiert, wenn sich der Wert ändert. Ich fand es so passender, wenn weniger Events in Fhem generiert werden. Es wird aber entsprechend des eingestellten Intervalls (30 Sekunden) geprüft, ob ein neuer Wert vorliegt. Erklärt sich dadurch dein beobachtetes Verhalten?

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

Zitat von: bugware am 23 August 2018, 23:35:29
Hallo vuffiraa,

ich habe gleich drei Fragen: 8)

a) Sobald ich keine funktionierende Internetverbindung habe finde ich im Log folgendes:

Könnte man das mit einer Art "RetryCount" abfangen und nur eine maximale Anzahl an Anfragen zulassen? Ansonsten friert das System auf kurz oder lang ein.

b), auch an Schlimbo: es scheint demnächst ein Firmwareupdate für den Neato D7 zu kommen, dass bis zu drei Reinigungskarten (MyFloorMaps) kennt. Bei Interesse kann ich die Mail suchen. Hat das schon jemand ausprobiert und funktioniert das vielleicht schon mit dem Modul? Wäre ja interessant bevor man drüber nachdenkt eine weitere Basis zu kaufen...

c) Nur am Rande: hast du vielleicht schon die Änderung der nextCleaning* Attribute zu Readings angedacht?

Beste Grüße und nochmals vielen Dank, das Modul funktioniert ansonsten tadellos,
Andreas.
Hallo Andreas,

a) Da hast du ja ein schönes Ei gefunden. Ist mir noch nicht aufgefallen, aber im Zusammenhang mit einer fehlenden Internetverbindung erklärbar.

b) Hier muß Schlimbo antworten. Ich habe (leider) keinen D7, aber wenn ich entsprechende Logs bekomme, kann ich es im Modul ergänzen bzw. ich kann mal bei Neato nachschauen, ob das dokumentiert ist.

c) Da war was...

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Zitat von: bugware am 23 August 2018, 23:35:29
b), auch an Schlimbo: es scheint demnächst ein Firmwareupdate für den Neato D7 zu kommen, dass bis zu drei Reinigungskarten (MyFloorMaps) kennt. Bei Interesse kann ich die Mail suchen. Hat das schon jemand ausprobiert und funktioniert das vielleicht schon mit dem Modul? Wäre ja interessant bevor man drüber nachdenkt eine weitere Basis zu kaufen...
Das Update habe ich schon Anfang August bekommen. Neato hat leider die API Beschreibung noch nicht angepasst, deshalb habe ich mich mit dieser Funktion noch nicht weiter beschäftigt.
Neato hat mit dem Update beim D7 auch den Service für "Maps" von "advanced-1" auf "macro-1" geändert, so dass nach dem Update die Maps-Funktionen über das Modul erst mal nicht mehr funktionierten.
Habe gerade ein pull request erstellt in dem der maps service ergänzt wurde.

Gruß schlimbo


bugware

RPi 2, nanoCUL433, nanoCUL868-HM, SIGNALduino, HM, IT, SOMFY, Weishaupt-Mod, BOTVAC, MYSENSORS

abc2006

Zitat von: vuffiraa am 24 August 2018, 15:14:59
Hallo Stephan,

die Readings werden nur dann aktualisiert, wenn sich der Wert ändert. Ich fand es so passender, wenn weniger Events in Fhem generiert werden. Es wird aber entsprechend des eingestellten Intervalls (30 Sekunden) geprüft, ob ein neuer Wert vorliegt. Erklärt sich dadurch dein beobachtetes Verhalten?

Gruß Vuffiraa
Hi,
Nein, leider nicht.
Batteriestand war 65%, FHEM hat weiterhin 80% angezeigt.Möglicherweise war es aber auch ein Problem mit dem Vorwerk-Server, da ich den Bot in einem anderen WLAN (Obergeschoss) ausprobieren wollte, und ihn dort nicht vernünftig in der App anmelden konnte...

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

vuffiraa

Hallo Leute,

im Git findet ihr die neue Version 0.4.5 vom Modul. Dabei haben sich 2 Sachen geändert:
- die Attribute cleaning* sind jetzt (wieder) Readings nextCleaning*
- neues Reading nucleoUrl, darin wird die Url für die Statusabfragen gespeichert.

Ansonsten kann ich das Einfrieren des Systems bei mir nicht nachstellen. Ich kann Fhem auf meinem Laptop laufen lassen und das WLAN kappen, das stört aber nicht. Außerdem habe ich auch versucht dem Laptop den Internetzugang im Router zu sperren. Wie kann man das Problem genau reproduzieren?

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

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

Hi,
Vorschlag: Wenn du eine Zeile a la

# $Id: 70_BOTVAC.pm 046 2018-10-15 22:55:09Z VuffiRaa $


einfügst, kann man mit "version" die Version deines Moduls herausfinden ... (Wäre in diesem Fall 46)

Grüße,
Stephan  (der jetzt einen NEATO testet :P)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

vuffiraa

Zitat von: abc2006 am 15 Oktober 2018, 22:58:58
Hi,
Vorschlag: Wenn du eine Zeile a la

# $Id: 70_BOTVAC.pm 046 2018-10-15 22:55:09Z VuffiRaa $


einfügst, kann man mit "version" die Version deines Moduls herausfinden ... (Wäre in diesem Fall 46)

Grüße,
Stephan  (der jetzt einen NEATO testet :P)

Hallo Stephan,

kann ich einbauen. Soweit ich das verstehe, ist das dann aber Handarbeit, also kein Automatismus im Git.
Im SVC würde es erst automatisch funktionieren.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

Zitat von: vuffiraa am 17 Oktober 2018, 21:06:56
Hallo Stephan,

kann ich einbauen. Soweit ich das verstehe, ist das dann aber Handarbeit, also kein Automatismus im Git.
Im SVC würde es erst automatisch funktionieren.

Gruß Vuffiraa

Ja, ist Handarbeit. Vereinfacht dem Tester das herausfinden der aktuell aktiven Version.



Habe mir jetzt einen D7 Connected zugelegt, den ich voraussichtlich behalte.
Ein list kann ich gleich noch vom anderen Rechner aus posten.
Folgendes ist mir aufgefallen: (leider hängt er jetzt irgendwo fest und ich kann es nicht mehr richtig testen)

ich kann den Roboter losschicken mit "set NEATO2 startCleaning". Daraufhin wechselt das Reading state zu
house cleaning. im Dropdown bei "set" steht aber weiterhin nur "startCleaning" (und noch ein paar andere Sachen, aber kein "stop". Wenn ich jetzt ein "get NEATO2 syncRobots" ausführe, passt sich das ganze Modul an, und ich kann (u.a.) stop und pause auswählen. Wenn ich jetzt auf stop klicke, passiert das gleiche: state wird idle, aber ich kann erst nach einem syncRobots wieder startCleaning auswählen.

Irgendwie schwierig zu beschreiben, sag mal, ob du mich verstanden hast. Liefere gerne auch noch weitere Informationen.
Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Schlimbo

Da die API keine Events schickt kann es, abhängig vom verwendeten Intervall, schon etwas dauern bis der Status aktualisiert wird. Welchen Intervall hat du eingestellt?

Schau dir auch mal das Attribut "actionInterval" an.
Ich hab bei mir im Define ein Intervall von 30 und actionInterval auf 5 gestellt.
Damit klappt die Status Rückmeldung bei mir bestens.

Gruß Schlimbo

abc2006

#310
Hi Schlimbo,
ich hab leider keinen blassen dunst, was das Attribut actionInterval kann und wie es sich von INTERVALL unterscheidet.
Kannst du da etwas Licht reinbringen?
EDIT: ich rate: interval ist das Intervall, wenn er in der Station steht - bei mir auf 30.
actionInterval ist das Abfrageintervall, während er reinigt?


Ich hab mal ne Doku angefangen, vllt kann ich auch was fürs Modul basteln...
https://wiki.fhem.de/wiki/BOTVAC

Vorhin ist mir aufgefallen, dass das Modul keine Verbindung zum Roboter zu haben schien, auf ein "get NEATO2 batteryPercent" trotzdem eine Antwort kam - mit dem Wert, der noch im reading steht.
Hier wäre mir wichtig, dass entweder ein aktueller Wert abgefragt und publiziert wird - oder "Error", falls der Roboter nicht erreichbar ist. Ein Batterieladestand von letzter Woche ist nicht hilfreich ...

Grüße,
Stephan

PS: wenn ich nextCleaningMode setzen will, bekomme ich eine Fehlermeldung:
"Unknown argument nextCleaningMode, choose one of password startCleaning startSpot reloadMaps findMe manualCleaningMode statusRequest schedule syncRobots nextCleaningMode nextCleaningNavigationMode nextCleaningSpotWidth nextCleaningSpotHeight setBoundaries"

PPS: falls noch nicht erwähnt, ich habe einen D7 Connected..
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Schlimbo

Hallo Stephan,

schön dass du dir das Wiki annimmst, da es noch keine Commandref für das Modul gibt, ist das sicher für den ein oder anderen hilfreich.
Hatte hier schon mal ein paar Parameter beschrieben, evtl. kannst du ja hier was über nehmen:
https://forum.fhem.de/index.php/topic,51713.msg798448.html#msg798448

Zum Intervall:
Ja, das hast du richtig geraten:
https://forum.fhem.de/index.php/topic,51713.msg794984.html#msg794984

Zu der Fehlermeldung bei den nextCleanig-Readings:
Da fehlt noch etwas im Modul.
Habe gerade erst auf die neue Version umgestellt und bekomme die gleich Meldung.
Im Sub "BOTVAC_Set"  müssten die Readings noch beschrieben werden. z.B:
    # nextCleaning
    elsif ( $a[1] =~ /nextCleaning/) {
        Log3 $name, 2, "BOTVAC set $name $arg";

        return "No argument given" if ( !defined( $a[2] ) );

        readingsSingleUpdate($name, $a[1], $a[2]);
    }

@Vuffiraa: könntest du dir das bitte noch mal ansehen?

Gruß Schlimbo

abc2006

Zitat von: Schlimbo am 24 Oktober 2018, 12:56:19
Hallo Stephan,

schön dass du dir das Wiki annimmst, da es noch keine Commandref für das Modul gibt, ist das sicher für den ein oder anderen hilfreich.
Hatte hier schon mal ein paar Parameter beschrieben, evtl. kannst du ja hier was über nehmen:
https://forum.fhem.de/index.php/topic,51713.msg798448.html#msg798448

an der (englischen) commandref bin ich ebenfalls dran...
Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

vuffiraa

Hallo Leute,

ich habe Version 0.4.7 ins Git gestellt. Dabei habe ich den Vorschlag von Schlimbo übernommen, damit set nextCleaning* funktioniert.

Ansonsten hat Schlimbo das Verhalten mit den Intervallen schon gut beschrieben. Vielleicht als Ergänzung gilt, dass das Modul erst die möglichen Befehle über die Statusabfrage von Neato bekommen muss, bevor z.B. eine Reinigung gestoppt werden kann. Es ist so, dass hier nicht direkt mit dem Sauger kommuniziert wird, sonder immer per Neato-Cloud. Dadurch gibt es diese Verzögerungen.

Außerdem danke ich euch für die Unterstützung beim Modul!

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

abc2006

#314
Ähm.. hups.
Ich glaube ich habe in deinen Github jetzt meinen Teil der (ungeprüften) commandref gepostet. Kann das sein?
War das der richtige Weg?

Grüße,
Stephan


PS: kann mir jemand helfen, wie ich bei einem *nicht* über update erhaltenen modul die commandref neu baue?
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX