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

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

Vorheriges Thema - Nächstes Thema

iamandy

Hat neben mir noch jemand Probleme mit freezes im fhem?
Ich kann nicht 100%ig sagen das es mit dem BOTVAC Modul zu tun hat...
Ich habe einige DOIFs und readingsGroup rund um das BOTVAC Modul.
Wirklich reproduzieren kann ich es nicht, es häuft sich allerdings ein freez bei Beendigung des Saugvorgangs...
Die freezes gehen teilweise Minuten lang...

MadMax-FHEM

#226
Konnte ich bislang nicht feststellen (freezemon läuft und da ist nichts auffällig).

Allerdings habe ich nur das Modul "nackt" im Einsatz...

Ich weiß auch nicht genau (könnte man im Code mal nachschauen) ob es nonBlocking implementiert ist (denke aber wohl, da ich keine freezes etc. hab)...
...was aber sein kann ist, dass die DNS-Auflösung hängt, die ist (soweit ich weiß) nicht nonBlocking.

Daher: hast du in global einen DNS gesetzt?

attr global dnsServer

Das habe ich, also ich habe meinen Router dort eingetragen, da ich eben gelesen habe, dass das eben nonBlocking ist und ohne einen Eintrag zu freezes führen kann...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

iamandy

Danke für den dnsServer Tip. Ich habe ihn eingebaut.

Es scheint aber keinen Unterschied zu machen. Ich habe noch die readingsGroup im Verdacht. Werde wohl in der Richtung weiter suchen...

vuffiraa

Hallo,

die Aufrufe im Modul sind alle 'nonBlocking'. Auf die DNS-Auflösung hat das Modul keinen Einfluß.

Bei Freezemon habe ich noch das Attribute 'fm_logFile' gefunden (Wert z.B. ./log/freeze-%Y%m%d-%H%M%S.log). Dann wird bei einem Freeze ein Log angelegt, dass die Daten mit verbose 5 enthält. Mir hat das schon sehr geholfen.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

iamandy

Ich bin mir in der Zwischenzeit ziemlich sicher, dass meine freezes nicht mit diesem, sondern mit dem readingsGroup Modul zu tun haben. Vielen Dank noch mal!

ekur

Hallo,

das Modul funktioniert super mit meinem Neato D5 connected, danke dafür.
In der App kann man ja die verschiedenen Reinigungsdurchläufe anzeigen lassen, kann ich in FHEM auch alle Karte anzeigen lassen?
Unter dem Pfad /BOTVAC/<device>/map wird nur die letzte angezeigt.
FHEM 5.8 auf Intel NUC, Visualisierung TabletUI auf Lenovo Tab10, Datenlogging MySQL
CUL_HM  HM-CC-RT-DN, HM-RC, HM-LC-BL1-FM, HM-PBI-4-FM, HM-SEC-SD, HM-SEC-SCo
ZWave
OWDevice:DS1420,DS18B20 an Intel NUC

vuffiraa

Zitat von: ekur am 15 April 2018, 11:16:21
Hallo,

das Modul funktioniert super mit meinem Neato D5 connected, danke dafür.
In der App kann man ja die verschiedenen Reinigungsdurchläufe anzeigen lassen, kann ich in FHEM auch alle Karte anzeigen lassen?
Unter dem Pfad /BOTVAC/<device>/map wird nur die letzte angezeigt.

Hallo ekur,

Momentan zeigt das Modul nur die letzte Karte. Wie würdest du denn gerne zu älteren Karten navigieren bzw. was ist der Anwendungsfall?

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

ekur

Hallo vuffiraa,

so richtig konkret fällt mir nur ein, dass ich beim letzten durchscrollen auf der App doch glatt eine Reinigung gefunden habe bei der der Bube doch nur die Hälfte gereinigt hat. Was schon mal durchgehen kann bei zweitäglichem Einsatz, da man nicht immer nach jeder Reinigung auf die Karte schaut. Es wäre einfach nur schön dafür eben nicht das Tablet mit der App zur Hand zu nehmen sondern über FHEM nach zu sehen (Ursache war übrigens, zumindest interpretiere ich das Bild so, unser 45kg Wuff, der sich in die Tür zum Wohnzimmer gelegt hat und wahrscheinlich als der Kleine ankam und durch wollte diesen nur mitleidig angesehen hat, gedanklich wahrscheinlich noch mit so einem Kommentar wie "Geh woanders spielen").
Back to the topic: Schön wäre es wenn die Karten vielleicht mit Pfad /BOTVAC/<device>/mapx (x für eine Zahl) aufgerufen werden könnten (plus einem Reading mit dem x als Wert), dann könnte das simpel in FTUI integriert werden ;-). Mit dem Datum als Speicherkombi wäre auch interessant, aber dann nicht mehr so einfach auf zu rufen.
Noch zwei Fragen:
1. Was bedeuten die ganzen Readings mit srv- am Anfang und was bedeuten die Werte, also die Unterschiede zwischen minimal, basic, advanced etc.
2. Wie viele Karten merkt sich die App eigentlich?

Viele Grüße
Ekur
FHEM 5.8 auf Intel NUC, Visualisierung TabletUI auf Lenovo Tab10, Datenlogging MySQL
CUL_HM  HM-CC-RT-DN, HM-RC, HM-LC-BL1-FM, HM-PBI-4-FM, HM-SEC-SD, HM-SEC-SCo
ZWave
OWDevice:DS1420,DS18B20 an Intel NUC

vuffiraa

Hallo Ekur,

zu deinen Fragen:
1. Das sind die Serviceversionen, die der Sauger zur Verfügung stellt. Die einzelnen Modelle unterscheiden sich da zwischen den angebotenen Services und zusätzlich auch in der Qualität des Services (minimal, basic, ...). Das Modul steuert damit das Verhalten, so dass es zum Sauger passt.
2. Das weiß ich nicht genau, bei mir sind 20 Karten verfügbar. Das Datum der einzelnen Karten ist bestimmt interessant, aber 20 neue Readings finde ich jetzt nicht so toll. Außerdem muss man immer aktuell nachfragen, bevor man die Daten einer Karte bekommt. Dein Vorschlag mit dem Link würde aber wahrscheinlich ganz gut klappen.

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

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

#234
Hallo Vuffiraa,

erst mal vielen Dank für dein Modul.
Versuche gerade meinen Neato D7 damit zu steuern, die Readings wurden angelegt und werden im eingestellten Intervall auch aktualisiert.

Bei den Set-Commands funktioniert alles bis auf "startCleaning" und "startSpot".
Für den D7 wurde für diese Befehle eine neue Serviceversion "Basic-3" eingeführt.
Wäre super, wenn du das Modul hierfür noch erweitern könntest.

Hier ein List des Saugers:
Internals:
   CHANGED   
   DEF        xxxxxxx@xxxxxx.com 123456789 neato 600
   INTERVAL   600
   NAME       Sauger
   NR         710
   STATE      Idle
   TYPE       BOTVAC
   READINGS:
     2018-04-15 10:16:44   accessToken     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     2018-04-15 09:56:48   action          0
     2018-04-16 18:06:18   charge          96
     2018-04-15 19:16:17   cleanCategorie  3
     2018-04-15 12:26:17   cleanMode       2
     2018-04-14 21:26:49   cleanModifier   1
     2018-04-15 19:16:17   cleanSpotHeight 200
     2018-04-15 19:16:17   cleanSpotWidth  200
     2018-04-15 09:56:48   dockHasBeenSeen 0
     2018-04-16 18:42:29   event0day       1
     2018-04-16 18:42:29   event0mode      1
     2018-04-16 18:42:29   event0startTime 18:41
     2018-04-14 21:26:49   firmware        4.1.0-653
     2018-04-15 11:16:17   isCharging      0
     2018-04-15 12:26:17   isDocked        1
     2018-04-16 18:49:34   isScheduleEnabled 1
     2018-04-14 21:26:48   macAddr         xxxxxxxxxxx
     2018-04-15 09:56:50   map_area        34.0896
     2018-04-15 09:56:50   map_date        2018-04-15T07:54:48Z
     2018-04-15 09:56:50   map_id          2018-04-15T07:18:26Z
     2018-04-14 21:26:49   model           BotVacD7Connected
     2018-04-14 21:26:48   name            Sauger
     2018-04-14 21:26:49   result          ok
     2018-04-14 21:26:48   robot           0
     2018-04-16 18:49:36   scheduleEnabled 1
     2018-04-14 21:26:51   scheduleType    1
     2018-04-14 21:26:48   secretKey       xxxxxxxxxxxxxxxxxx
     2018-04-14 21:26:48   serial          OPS1234-xxxxxxxxxxxx
     2018-04-14 21:26:49   srv_IECTest     basic-1
     2018-04-14 21:26:49   srv_findMe      basic-1
     2018-04-14 21:26:49   srv_generalInfo basic-1
     2018-04-14 21:26:49   srv_houseCleaning basic-3
     2018-04-14 21:26:49   srv_logCopy     basic-1
     2018-04-14 21:26:49   srv_manualCleaning basic-1
     2018-04-14 21:26:49   srv_maps        advanced-1
     2018-04-14 21:26:49   srv_preferences basic-1
     2018-04-14 21:26:49   srv_schedule    basic-1
     2018-04-14 21:26:49   srv_softwareUpdate basic-1
     2018-04-14 21:26:49   srv_spotCleaning basic-3
     2018-04-14 21:26:49   srv_wifi        basic-1
     2018-04-16 19:36:53   state           Idle
     2018-04-15 09:56:48   stateId         1
     2018-04-14 21:26:49   version         1
   helper:
     EMAIL      xxxxxxx@xxxxxx.com
     PASSWORD   123456789
     VENDOR     neato
     ROBOTS:
       HASH(0x1ab23456)


Gruß
Schlimbo

vuffiraa

Zitat von: Schlimbo am 16 April 2018, 20:21:06
Hallo Vuffiraa,

erst mal vielen Dank für dein Modul.
Versuche gerade meinen Neato D7 damit zu steuern, die Readings wurden angelegt und werden im eingestellten Intervall auch aktualisiert.

Bei den Set-Commands funktioniert alles bis auf "startCleaning" und "startSpot".
Für den D7 wurde für diese Befehle eine neue Serviceversion "Basic-3" eingeführt.
Wäre super, wenn du das Modul hierfür noch erweitern könntest.

Hier ein List des Saugers:
Internals:
   CHANGED   
   DEF        xxxxxxx@xxxxxx.com 123456789 neato 600
   INTERVAL   600
   NAME       Sauger
   NR         710
   STATE      Idle
   TYPE       BOTVAC
   READINGS:
     2018-04-15 10:16:44   accessToken     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     2018-04-15 09:56:48   action          0
     2018-04-16 18:06:18   charge          96
     2018-04-15 19:16:17   cleanCategorie  3
     2018-04-15 12:26:17   cleanMode       2
     2018-04-14 21:26:49   cleanModifier   1
     2018-04-15 19:16:17   cleanSpotHeight 200
     2018-04-15 19:16:17   cleanSpotWidth  200
     2018-04-15 09:56:48   dockHasBeenSeen 0
     2018-04-16 18:42:29   event0day       1
     2018-04-16 18:42:29   event0mode      1
     2018-04-16 18:42:29   event0startTime 18:41
     2018-04-14 21:26:49   firmware        4.1.0-653
     2018-04-15 11:16:17   isCharging      0
     2018-04-15 12:26:17   isDocked        1
     2018-04-16 18:49:34   isScheduleEnabled 1
     2018-04-14 21:26:48   macAddr         xxxxxxxxxxx
     2018-04-15 09:56:50   map_area        34.0896
     2018-04-15 09:56:50   map_date        2018-04-15T07:54:48Z
     2018-04-15 09:56:50   map_id          2018-04-15T07:18:26Z
     2018-04-14 21:26:49   model           BotVacD7Connected
     2018-04-14 21:26:48   name            Sauger
     2018-04-14 21:26:49   result          ok
     2018-04-14 21:26:48   robot           0
     2018-04-16 18:49:36   scheduleEnabled 1
     2018-04-14 21:26:51   scheduleType    1
     2018-04-14 21:26:48   secretKey       xxxxxxxxxxxxxxxxxx
     2018-04-14 21:26:48   serial          OPS1234-xxxxxxxxxxxx
     2018-04-14 21:26:49   srv_IECTest     basic-1
     2018-04-14 21:26:49   srv_findMe      basic-1
     2018-04-14 21:26:49   srv_generalInfo basic-1
     2018-04-14 21:26:49   srv_houseCleaning basic-3
     2018-04-14 21:26:49   srv_logCopy     basic-1
     2018-04-14 21:26:49   srv_manualCleaning basic-1
     2018-04-14 21:26:49   srv_maps        advanced-1
     2018-04-14 21:26:49   srv_preferences basic-1
     2018-04-14 21:26:49   srv_schedule    basic-1
     2018-04-14 21:26:49   srv_softwareUpdate basic-1
     2018-04-14 21:26:49   srv_spotCleaning basic-3
     2018-04-14 21:26:49   srv_wifi        basic-1
     2018-04-16 19:36:53   state           Idle
     2018-04-15 09:56:48   stateId         1
     2018-04-14 21:26:49   version         1
   helper:
     EMAIL      xxxxxxx@xxxxxx.com
     PASSWORD   123456789
     VENDOR     neato
     ROBOTS:
       HASH(0x1ab23456)


Gruß
Schlimbo

Hallo Schlimbo,

stimmt, für den D7 wurde die Reinigung mit einer hinterlegten Karte eingeführt.
Das kann das Modul noch nicht. Ich kümmere mich darum.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Super, Danke schon mal.

Noch eine Frage zum Verständnis:
Werden alle Readings nur gepollt oder gibt es von der API auch direkt Events bei Status Änderungen?

Wenn nur Pollen geht, fände ich es gut, wenn du noch etwas einbauen könntest, um für den "aktiven Betrieb" und "standby Betrieb" des Roboters unterschiedliche Intervall Werte verwenden zu können.

Hintergrund ist, dass wenn der Roboter schläft es für mich ausreicht alle 10 Minuten die Readings zu aktualisieren, da sich hier eh nicht viel tut, ist er aber aktiv würde ich gerne im 30 Sekunden Intervall die Readings aktualisieren.

Was meinst du dazu?

Gruß Schlimbo

vuffiraa

Die Daten müssen gepollt werden, die API bietet da keine Events, Longpolls oder ähnliches an.
Ich muss mal schauen, ob unterschiedliche Intervalle möglich sind.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Schlimbo

Da hier schon mal die Frage aufkam, wie man die Map per Telegram versenden kann, hier meine Lösung dazu:
set <TelegramBot> cmdSend {ReadingsVal('<BOTVAC>', '.map_cache', '')}
Gruß Schlimbo

Fixel2012

Zitat von: Schlimbo am 19 April 2018, 18:35:32
Da hier schon mal die Frage aufkam, wie man die Map per Telegram versenden kann, hier meine Lösung dazu:
set <TelegramBot> cmdSend {ReadingsVal('<BOTVAC>', '.map_cache', '')}
Gruß Schlimbo

Wow Super, Danke!
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify