Neues Modul: INDEGO

Begonnen von vuffiraa, 18 November 2017, 17:01:28

Vorheriges Thema - Nächstes Thema

buennerbernd

Was hast du denn für Beobachtungen gemacht? Wie ungenau ist es denn?
Theoretisch ist es so:
Die Statusabfrage geschieht mit Longpoll. Das heißt, FHEM stellt eine Anfrage and den Bosch-Server, der antwortet aber erst, wenn sich wirklich was geändert hat. Du erfährst also frühstmöglich, wenn der Bosch-Server neue Infos hat.
Praktisch kann es aber gut sein, dass der Bosch-Server nicht immer mit dem Mäher verbunden ist oder Longpoll mal wieder nicht so gut funktioniert.
Wichtig ist, dass du nicht gleichzeitig die App verwendest. Dann setzt das FHEM-Modul für einige Minuten aus.
Also es bringt nicht so viel, häufiger zu fragen.

Welches Modell hast du eigentlich?
Modulentwickler von KLF200 und KLF200Node

siggel

Danke für den Hinweis, ich hatte nur oberflächlich 300 Sekunden im Modul gesehen und erwartet, dass ich also im ungünstigsten Fall 5min verzögert benachrichtigt werden würde. "Live" geprüft hatte ich das nicht. Das werde ich mal nachholen, wenn das Wetter wieder Ausfahrten zulässt und dann meine Benachrichtigung entsprechend umbauen.
RPi 3B+, ConBee II, OSRAM/Ledvance Plug/Light/Switch mini, Aqara Contact/Multisensor/Motion Sensor/Magic Cube, IKEA Tradfri Dimmer/Switch, Shelly 1/1PM/2.5/i3/uni/Plug S, Gosund SP111 (Tasmota), D1mini (Tasmota/WLED), Echo Dot, Fire Tablet (FTUI), Indego, Homematic IP CCU3/eTRV2/eTRV-B/STHO-A

greg4b

Zitat von: FHEMAN am 07 November 2019, 20:34:36
... das u.a. nun den Akkustand anzeigt... mjam mjam :D

wäre es möglich, den Akkustand des Indego im Modul als Reading anzuzeigen?

Wäre hilfreich für mich, da ich bei Akkustand "2" (von 5) den Robotor per APP zur Ladestation schicke. Andocken funktioniert nicht immer auf Anhieb - wenn er selbsttätig die Reise zur Ladestation antritt, geht ihm manchmal der Saft aus...

Danke im Voraus & viele Grüße,

Gregor
Bosch Indego Connect 1200, Neato BotVac 85 D, Raspberry Pi, JeeLink V3, Homematic, Sony KDL-40HX756,

buennerbernd

Dass der Indego verhungert, weil er die Station nicht trifft hatte ich auch. Hier ist es sinnvoller, die Ursache zu finden. Wenn er bei der Fahrt auf dem Draht immer mit der Nase pendelt, dann ist ein Sensor kaputt. Ich hatte das zum Glück noch in der Garantie.
Ansonsten prüfe, ob die Station absolut gerade ist, ob er davor keine Löcher gegraben hat usw.
Schau mal im Roboter Forum. Manche haben auch mit schrägen Brettern erreicht, dass die Kontakte nicht verfehlt werden. Ein Akkuwechsel wurde von einigen auch schon selbst uns absolut bezahlbar gemeistert.
Modulentwickler von KLF200 und KLF200Node

siggel

#34
Zitat von: buennerbernd am 03 Juni 2020, 22:42:03
Was hast du denn für Beobachtungen gemacht? Wie ungenau ist es denn?
Theoretisch ist es so:
Die Statusabfrage geschieht mit Longpoll. Das heißt, FHEM stellt eine Anfrage and den Bosch-Server, der antwortet aber erst, wenn sich wirklich was geändert hat. Du erfährst also frühstmöglich, wenn der Bosch-Server neue Infos hat.
Praktisch kann es aber gut sein, dass der Bosch-Server nicht immer mit dem Mäher verbunden ist oder Longpoll mal wieder nicht so gut funktioniert.
Wichtig ist, dass du nicht gleichzeitig die App verwendest. Dann setzt das FHEM-Modul für einige Minuten aus.
Also es bringt nicht so viel, häufiger zu fragen.

Welches Modell hast du eigentlich?

Nachdem ich das nun eine Weile beobachtet habe, resümiere ich, dass ich es entweder falsch eingerichtet habe (eigentlich das einfachstmögliche define mit Email und PW und sonst nix) oder dass Theorie und Praxis auseinanderklaffen  ::) Daher hier mal ein paar Beobachtungen für einen S+350 sowie ein paar Verbesserungsvorschläge. Zur Veranschaulichung hier mein kommentiertes Log, in dem ich zusätzlich erfasse, wie viel Watt die Ladestation gerade braucht (alle 5min oder wenn Änderung um mind. 1 Watt):

2020-06-17_09:50:21 Indego Docked - Waking up
2020-06-17_09:50:21 Indego state_id: 64513
2020-06-17_09:53:59 MQTT2_Shelly1PM relay_0_power: 0.57 (er schläft)
[...] (keine Indego Logs, Leistung bleibt auch ungefähr konstant)
2020-06-17_12:11:01 Indego Set_Mowing (mow über fhem gesendet)
2020-06-17_12:11:07 MQTT2_Shelly1PM relay_0_power: 3.52
2020-06-17_12:11:08 MQTT2_Shelly1PM relay_0_power: 2.07 (da ist er losgefahren)
2020-06-17_12:15:21 Indego Mowing (erst auf Minute 5,10,15 ... wird abgefragt - je nach fhem-Start kann das aber auch 3,8,13,... sein)
2020-06-17_12:15:21 Indego state_id: 513
[...] Leistung konstant knapp unter 2 Watt während er mäht
2020-06-17_12:57:35 MQTT2_Shelly1PM relay_0_power: 12.54 (in Dockingstation angekommen)
2020-06-17_12:57:37 MQTT2_Shelly1PM relay_0_power: 60.28 (typische Ladeleistung)
2020-06-17_13:00:21 Indego Docked (erst wieder auf Minute 00 wird der Zustand gemeldet)
2020-06-17_13:00:21 Indego state_id: 260
2020-06-17_13:00:21 Indego mowed: 97
2020-06-17_13:02:37 MQTT2_Shelly1PM relay_0_power: 61.25
[...] div. weitere Logs
2020-06-17_18:00:28 Indego contextId: 1c5d... (Was geht hier ab?)
2020-06-17_18:00:32 Indego contextId: e8da...
2020-06-17_18:00:32 Indego contextId: 9684...
2020-06-17_18:00:32 Indego contextId: 0c86...
2020-06-17_18:00:32 Indego contextId: 6aa2...
2020-06-17_18:00:32 Indego contextId: 27bf...
2020-06-17_18:00:35 Indego model: HASH(0x5652...)
2020-06-17_18:00:46 Indego model: HASH(0x4a91...)
2020-06-17_18:00:46 Indego model: HASH(0x58fb...)



  • Für mich sieht es danach aus, dass alles, was über den Bosch Server kommt, alle 5min abgerufen wird (ich habe kein kürzeres Intervall während des Mähens eingestellt). Das sind im Log ca. die Minuten 00, 05, 10,... Vor einem fhem shutdown restart war es aber schon 03, 08, 13,..., so dass ich nicht das Gefühl habe, dass die Zeiten vom Server vorgegeben sind. Daher hatte ich es in meinem ersten Post für wünschenswert erachtet, dass man eine Statusabfrage gezielt selbst auslösen kann, da ich anhand der Ladekurve gut einschätzen kann, wann sich etwas "Interessantes" tut.
  • Status ID 260 wäre treffender mit "Docked - Charging" bezeichnet, denn offensichtlich wird er da geladen. 260 sieht für mich nach dem Laden zwischen laufenden Mähvorgängen aus, wohingegen 257 "Charging" wohl das Laden ist, während kein Mähvorgang ansteht.
  • Was geht da gegen 18:00 ab? Da wird mehrfach die contextId gewechselt. Ohne zu wissen, was die konkret tut, sieht das für mich nicht so gewollt aus.
  • Nicht im Log-Ausschnitt dargestellt: Beim letzten Mähen ist er nach 10min mit "Indego Returning to dock - Lawn complete" zurückgekehrt. Der gemähte Anteil wurde seitdem nicht wieder geloggt, sondern ist bei 97 stehengeblieben. Fehlt da einfach nur eine Aktualisierungs-Abfrage? Kann man ihn im Modul stattdessen einfach auf 100 setzen, wenn der state es ja bereits aussagt?

Soweit meine Erfahrungen, die ich bislang beisteuern kann.

Ciao,
siggel
RPi 3B+, ConBee II, OSRAM/Ledvance Plug/Light/Switch mini, Aqara Contact/Multisensor/Motion Sensor/Magic Cube, IKEA Tradfri Dimmer/Switch, Shelly 1/1PM/2.5/i3/uni/Plug S, Gosund SP111 (Tasmota), D1mini (Tasmota/WLED), Echo Dot, Fire Tablet (FTUI), Indego, Homematic IP CCU3/eTRV2/eTRV-B/STHO-A

FHEMAN

Hi siggel,

danke für die Analyse mit der State ID 260. Ich dachte schon, es wäre ein Bug, dass meine Ladeanzeige nicht mehr funktioniert..

In meinen Logs (Indego 350) tauchen nicht solche Hashes auf. Vielleicht übermittelt der Neue da noch etwas mehr, was das Modul nicht kennt.

Mein actionInterval ist auf 60. Ich bekomme teils Aktualisierungen unter einer Minute.

Ich habe es mir grundsätzlich zur Regel gemacht, den Indego über FHEM zu starten. Bei mir meistens per Sprache (Alexa), Quickfhem via Handy oder FHEM Timer. D. h. die App bleibt weitestgehend aus und stört nicht das Polling.

Eines ist mir aber auch aufgefallen seit dem letzten Firmware Update: Das Display leuchtet nun nachts immer... Ich vermute, es liegt am Modul, habs aber bisher ignoriert.

Gruß
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

vuffiraa

Hallo siggel,

um mal zu prüfen, warum bei dir der Longpoll nicht anschlägt, würde mich erst mal ein list Indego interessieren.

Vielleicht kannst du aber auch gleich schon mal ein Log mit verbose = 5 schreiben lassen. Dein Log aus deinem Beitrag ist "nur" der Event Monitor. Die Logs selber schreiben noch etwas mehr raus.

Das Problem mit der ContextId kann ich erklären. Es stört nicht weiter, aber gehört sich so nicht  ;) Das Modul musste sich da neu anmelden und war dann zu ungeduldig, um die Anmeldung abzuwarten...

Die Hashes sind wirklich nur die für das Modul unbekannte Modellnummer.

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

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

siggel

Listing füge ich schon mal an. Es handelt sich wie gesagt um einen S+350, falls das im Modul irgendwo eingepflegt werden soll. Verbose log muss ich erst aufzeichnen, morgen sollte er wieder rollen, wie man im Listing sieht ;) Außerdem erkennt man zwei zusätzliche Userreadings (für FTUI und ein DOIF, das aus state_short und der Ladeleistung dann die States mowing, charging, docked, unknown zu ermitteln versucht, was dann auch in die FTUI wandert). Falls ich zu viele Dinge durch "geheim" ersetzt habe, einfach kurz fragen, ich habe einfach erstmal alles rausgeworfen, von dem ich vage vermute, dass es nicht veröffentlicht werden sollte.


Internals:
   DEF        geheime@email.de geheimes_passwort
   FUUID      geheim
   INTERVAL   300
   LONGPOLL   1592595240
   NAME       Indego
   NR         153
   STATE      Docked - Waking up
   TYPE       INDEGO
   CHANGED:
   READINGS:
     2020-06-12 20:34:06   alert_date      2020-06-12 20:34:04
     2020-06-01 23:25:49   alert_flag      warning
     2020-06-01 23:25:49   alert_headline  Mäher benötigt Hilfe.
     2020-06-12 20:34:06   alert_id        5ee3ca9c63c5343bbfe749d6
     2020-06-08 14:46:23   alert_message   Stopptaste wurde betätigt. Die Stopptaste wurde betätigt. Bitte folgen Sie den Anweisungen im Display des Mähers.
     2020-06-12 20:34:06   alert_number    8
     2020-06-02 07:49:12   alert_status    unread
     2020-06-01 23:25:48   allow_automatic_update true
     2020-06-01 23:25:48   alm_firmware_version 17776.01251
     2020-06-01 23:25:47   alm_sn          geheim
     2020-06-12 21:56:58   autolock        true
     2020-06-01 23:25:48   bareToolnumber  3600HB0102
     2020-06-04 06:36:05   cal             3
     2020-06-14 13:31:47   cal3_0_Mon      11:00-17:00
     2020-06-18 06:18:49   cal3_3_Thu      11:00-14:00
     2020-06-18 06:18:49   cal3_5_Sat      11:00-14:00
     2020-06-19 21:18:58   contextId       geheim
     2020-06-04 06:36:03   fc_cal          1
     2020-06-15 18:35:12   fc_cal1_0_Mon   00:00-11:00 18:00-23:59
     2020-06-15 18:35:12   fc_cal1_1_Tue   00:00-11:00 18:00-23:59
     2020-06-15 18:35:12   fc_cal1_2_Wed   00:00-11:00 18:00-23:59
     2020-06-15 18:35:12   fc_cal1_3_Thu   00:00-11:00 18:00-23:59
     2020-06-15 18:35:12   fc_cal1_4_Fri   00:00-11:00 18:00-23:59
     2020-06-15 18:35:12   fc_cal1_5_Sat   00:00-11:00 18:00-23:59
     2020-06-04 06:36:03   fc_cal1_6_Sun   00:00-23:59
     2020-06-05 14:56:04   fc_enabled      1
     2020-06-01 23:25:49   fc_loc_country  Germany
     2020-06-01 23:25:48   fc_loc_latitude geheim
     2020-06-01 23:25:48   fc_loc_longitude geheim
     2020-06-01 23:25:49   fc_loc_name     geheim
     2020-06-01 23:25:48   fc_loc_timezone Europe/Berlin
     2020-06-01 23:25:49   latitude        geheim
     2020-06-01 23:25:49   longitude       geheim
     2020-06-19 21:19:00   model           HASH(0x64a1bc8)
     2020-06-18 11:03:49   mow_next        2020-06-20T11:00:00+02:00
     2020-06-18 11:03:49   mow_next_short  Sa, 11:00
     2020-06-18 14:03:47   mowed           85
     2020-06-01 23:25:48   security        enabled
     2020-06-19 13:08:54   service_counter 4955
     2020-06-18 23:13:48   sessionCharge   0:26
     2020-06-19 11:43:50   sessionOperate  0:32
     2020-06-19 12:08:51   state           Docked - Waking up
     2020-06-19 12:08:51   state_id        64513
     2020-06-19 12:08:51   state_short     docked
     2020-06-19 11:43:50   totalCharge     33:56
     2020-06-19 11:43:50   totalOperate    116:31
     2020-06-02 09:50:50   updates         unavailable
     2020-06-01 23:25:47   userId          geheim
     2020-06-01 23:25:49   user_adjustment 0
     2020-06-01 23:25:49   user_adjustment_proposed 0
   helper:
     EMAIL      geheime@email.de
Attributes:
   group      Mähroboter
   room       EG Außen
   userReadings state_short:state.id.* { if (ReadingsNum($name,"state_id",100000) < 300) {return "docked"}
              elsif (ReadingsNum($name,"state_id",100000) < 800) {return "mowing"}
              elsif (ReadingsNum($name,"state_id",100000) == 64513) {return "docked"}
              else {return "unknown"}},
mow_next_short:mow.next.* { return POSIX::strftime("%a, %H:%M", localtime(time_str2num(ReadingsVal($name,"mow_next","")))) }
   webCmd     mow:pause:returnToDock
RPi 3B+, ConBee II, OSRAM/Ledvance Plug/Light/Switch mini, Aqara Contact/Multisensor/Motion Sensor/Magic Cube, IKEA Tradfri Dimmer/Switch, Shelly 1/1PM/2.5/i3/uni/Plug S, Gosund SP111 (Tasmota), D1mini (Tasmota/WLED), Echo Dot, Fire Tablet (FTUI), Indego, Homematic IP CCU3/eTRV2/eTRV-B/STHO-A

vuffiraa

Hallo Leute,

ich habe mal wieder am Modul gebastelt. Neuerungen sind:

  • Modellverwaltung für die S+ Modelle
  • Erweiterte Abfrage der 'OperatingData'

Also sollte bei siggel das Model jetzt auch richtig erkannt werden.
Die andere Neuerung ist ein zusätzlicher Setter operatingData, der eine paar Daten zur Batterie liest und die Größe des Gartens bestimmt. Eigentlich sollen bei der Batterie die aktuelle Spannung und Ladung gelesen werden. Ich habe aber gesehen, dass hier bei Buennerbernds 1000er Modell die gleichen Beträge gelesen werden. Wahrscheinlich ist der Wert eher als Spannung und nicht als Ladung zu interpretieren. Aber vielleicht unterscheiden sich die einzelnen Modelle hier auch.
Außerdem scheint es so, das die neue Abfrage immer zum Einschalten des Displays führt, daher habe ich die Abfrage nicht in die normale Statusabfrage aufgenommen. Zum Testen kann man hier vielleicht mit DOIF oder ähnlichem arbeiten.

Ansonsten ist das Repository des Moduls im Git in die FHEM-Gruppe-Organisation umgezogen. Ihr findet es jetzt hier: https://github.com/fhem/INDEGO. Den neue Ort habe ich auch im ersten Beitrag hier im Faden angepasst.
Die beschriebenen Änderungen sind erst mal im Dev-Zweig eingecheckt. Folgt den Anweisungen hier: https://github.com/fhem/INDEGO/blob/dev/README.md#install--update-fhem-module-directly-from-git-repository

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

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

buennerbernd

Vielen Dank für das Update.

Ich habe wie folgt versucht, ein sinnvolles Intervall zum Aktualisieren der Akku-Daten zu erreichen:
define UpdateIndegoBattery notify Indego:state_id.* set Indego operatingData

Das werde ich mal mit einem Diagramm beobachten.
Hat jemand noch eine bessere Idee?
Modulentwickler von KLF200 und KLF200Node

Claus1985

#40
Hi VuffiRaa,

erstmal herzlichen Dank für Dein Modul und das genial einfache Setup!
Wirklich klasse, was sich damit alles mit einer Zeile danach anstellen lässt.

Eine Frage habe ich allerdings zur aktuellen Version:

Zitat von: vuffiraa am 21 Juni 2020, 10:36:57
Hallo Leute,

ich habe mal wieder am Modul gebastelt. Neuerungen sind:

  • Modellverwaltung für die S+ Modelle
  • Erweiterte Abfrage der 'OperatingData'

Kannst Du noch die zwei neuen Mäher-Typen (M+ 700 und M 700) im Modul hinzufügen?
Habe den M+ 700, wäre klasse wenn der richtig erkannt wird.  :)
Im Log wird er mit Model 3600HB0301 angezeigt.

Danke und Gruß,

Claus

vuffiraa

Hallo Claus,

ich habe den M+ 700  mit aufgenommen. Für den 700er konnte ich die Toolnumber nicht sicher finden, daher warte ich hier auf eine bestätigte Nummer.

Bisher ist das Modell nur im Entwicklungszweig im Git verfügbar. Ich muss meinen persönlichen Tester noch etwas anspornen, dann übernehme ich meine letzten Änderungen nach Master.

Wer schon mit der Entwiclungsversion rumspielen möchte, da hat sich der Name des Perl-Paketes geändert. Einzige sichtbare Änderung sollte sein, dass der Weblink jetzt so aussehen muss:
define <nameWl> weblink htmlCode { FHEM::INDEGO::ShowMap("<name>") }

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Claus1985

Hi VuffiRaa,

klasse, das ging wirklich schnell! :-)
Hab die Dev Version mal installiert und bin gespannt wie das nun tut!
Gestern hat bis auf das Modell und den Update-Zyklus eigentlich schon
vieles geklappt.
Hast Du eine Idee es liegen kann, dass der Update-Zyklus für Status usw.
sehr lange ist? Habe 300 eingestellt aber er hat teile der Infos das letzte Mal
vor einer Stunde (z.B. alert_status) aktualisiert.

Danke und Gruß,

Claus

vuffiraa

Hallo Claus,

schau mal in den Internals, ob da auch das Intervall auf 300 gesetzt ist. Nur die Zahl ohne Anführungszeichen oder ähnliches. Dann sollte es eigentlich funktionieren. Ansonsten solltest du noch mal eine Definition überprüfen.

Außerdem wird das Datum der Readings nur geändert, wenn sich auch der Wert eines Readings geändert hat. Wenn sich der Status nicht geändert, sieht man dem Modul auch nicht an, ob es eine Abfrage durchgeführt hat. Du solltest das mal beim Mähen prüfen, das sollte es immer Änderungen beim Statusupdate geben.

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

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Iceman0073

#44
Hallo,

zuerst vielen vielen Dank für das Modul, das ist echt Klasse.
Jetzt habe ich eine Frage. Ich bekomme für meinen S+ 400 immer wieder in FHEM diese Meldung:

https://api.indego.iot.bosch-si.com/api/v1/alms/...../state?longpoll=true&timeout=3600&last=258: empty answer received

jetzt wollte ich kurz fragen ob das immer wieder vorkommen kann/darf und es normal ist oder ich hier was falsch gemacht habe.

Aktuelle Daten bekomme ich, bis auf die Map (hier kommt immer "no such reading: mapsvgcache"), die wird derzeit irgendwie nicht angezeigt, das ging aber schon mal (vielleicht ein Problem bei Bosch).

Vielen Dank im Voraus.

Viele Grüße
Michael