MQTT2 für Xiaomi Vacuum Sauger

Begonnen von Otto123, 12 Mai 2021, 12:53:37

Vorheriges Thema - Nächstes Thema

TomLee

Ich les hier was von Map Data, Dust Bin, Zone Clean. Alles Punkte die du im ersten Post wichtig findest, warum überhaupt über Valetudo RE ?

Nachdem ich heute Morgen auf diesen Beitrag gestossen bin, bin ich erstmal am zweifeln ob Valetudo RE der richtige, künftige Weg ist.

Noch mehr schmeichelt mir Valetudo wenn FHEM extra Erwähnung beim letzten Release findet, auch wenn ich noch nicht verstanden habe was genau die Homie-Implementierung genau bedeuten soll und wie genau/ob überhaupt die uns von nutzen sein könnte.

ZitatIf you're using something else such as FHEM or ioBroker, the new Homie MQTT implementation should also be much easier to work with.

Ich bekomme Heute oder Morgen den bisher nicht gerooteten V1 meiner Mutter, bei dem bisher auch noch kein update gemacht wurde, ich glaub da spiel ich Valetudo mal drauf und beschäftige mich damit.

Otto123

#31
@TomLee Da hast Du mich jetzt nochmal über Los geschickt  :D
Ich habe mir das alles nochmal durchgelesen und was Du sagst kann ich nachvollziehen. Ich war ja getriggert durch einen anderen Artikel auf RE und habe dann ein bisschen im Internet gestochert und fand irgendwie RE "einfacher" - jetzt hast Du moralische Bedenken in mir geweckt ;)
Stutzig macht mich auf der Firmware Seite das hier "(ver 4018, 05/2020, Full-Ubuntu)" - das kann ja bedeuten das die 4028 die ich jetzt genommen habe nicht so toll ist?
Insgesamt klingt das alles "unklarer" als bei RE - deswegen war ich wahrscheinlich schneller dabei ;)

Ich schau mal wie Deine Erfahrung ist und bleib dran.  8) 

BTW: ich habe am WE zwei Bugfixes in der Utils eingecheckt, betreffen beide die Ansteuerung von Zonen. Falls jemand dies aktualisieren möchte:
{ Svn_GetFile("contrib/AttrTemplate/99_roborockUtils.pm", "FHEM/99_roborockUtils.pm", sub(){CommandReload(undef, "99_roborockUtils")}) }
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

#32
Zitat von: Otto123 am 17 Mai 2021, 12:19:37
jetzt hast Du moralische Bedenken in mir geweckt ;)

Bei mir auch ein wenig...

@Otto: wäre deine MQTT-Anbindung kompatibel mit Valetudo (ohne RE)?

Bzw. werde ich mal sehen, ob ich von RE auf ohne RE komme ohne zurückzusetzen (weil sonst Karten weg und ich muss das erst mal noch mal prüfen mit dem Abspeichern und Zurückspielen: sicher ist sicher)...

Zitat von: Otto123 am 17 Mai 2021, 12:19:37
BTW: ich habe am WE zwei Bugfixes in der Utils eingecheckt, betreffen beide die Ansteuerung von Zonen. Falls jemand dies aktualisieren möchte:
{ Svn_GetFile("contrib/AttrTemplate/99_roborockUtils.pm", "FHEM/99_roborockUtils.pm", sub(){CommandReload(undef, "99_roborockUtils")}) }

Spiele ich mal ein.
Was soll das ändern (evtl. erkenne ich es ja am Code selber)...

Aktuell habe ich MQTT nur bei meinem V1 aktiviert.
Demnächst auch der V2.

Ich wollte eine Zone starten und dachte es kommt eine Liste oder man könnte irgendwo eine abrufen...
...aber es gibt ja keinen get-Befehl...

EDIT: eingespielt. Für mich keine Änderung erkennbar. Hab aber auch noch nicht wirklich viel damit gemacht (also bislang)... :-\
EDIT: Nach dem Anlegen des Devices stand es (nach einem "Fehlversuch" eine Zone zu reinigen: gestartet mittels Xiaomi-Modul bzw. Valetudo Webseite und darüber abgebrochen weil Zonenreinigung mit "alter" Karte und neuer FW nicht so ganz geklappt hat) ewig auf "set_docked" (oder so ähnlich). Eine Nacht geschlafen und dann war docked, also korrekt...

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)

Otto123

Zone starten:
Du verwendest einfach die Bezeichnungen die Du in Valetudo RE vergeben hast, mehrere mit Komma getrennt, ohne Anführungszeichen.
Abrufen kannst Du die Liste mit get_dest - schreibt er in zwei Readings. Ist aber nichts umwerfendes, nur die Namen als Liste. Ja Tomlee hätte einen getter gemacht, da hatte ich auf die Schnelle wieder "ein Problem" :)
Ohne den Patch ging die Zonenreinigung schlicht nicht, er hat ein leeres Array geschickt. Übrigens kannst Du einfach die Routine aufrufen (mit Befehl als Parameter), die liefert nur einen String zurück, da passiert also nichts "mystisches" insofern kannst Du kontrollieren wie die Befehle zusammen gesetzt werden.

Der zweite Patch betraf Umlaute bei get-dest -> Küche :)

Soweit ich sehe ist der MQTT Syntax bei "ohne" RE anders. Aber ein Hexenwerk ist das nicht, kann man sicher alles in eine Routine bauen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Danke.

Ok, daher habe ich keinen Unterschied gemerkt ;)

Das mit get_dest habe ich probiert (ohne zu wissen was es macht ;)  ) und tatsächlich die Readings :)

Wenn man's weiß ist es ja einfach ;)

Was allerdings (bei mir) bleibt: jeder abgesetzte Befehl bleibt als "set_Befehl" stehen bis der nächste Befehl folgt, aktuell auf "set_locate", weil ich dachte evtl. hat das "get_dest" was kaputt gemacht...

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)

Otto123

#35
Der set_Befehl bleibt solange stehen, bis der Sauger per $DEVICETOPIC/state seinen state zurückmeldet. Was bei mir einwandfrei funktioniert, aber bei Thomas ja offenbar gar nicht.
Ich glaube set_locate bleibt eine ganze Weile, weil er das per mqtt nicht quittiert. Aber wenn er fährt kommen bei mir ständig state Meldungen ...

Wie man von RE nach ohne kommt - ohne Reset - ist mir auch nicht klar. Zumal nicht nicht durchblicke ob es valetudo "solo" - zum installieren ohne Firmware gibt?
Ist sicher alles ganz einfach, deswegen hat es keiner aufgeschrieben  ;D ;D ;D

Zumindest (wenn man weiß nach was man sucht) gibt es hier auch fertige valetudo Images https://vacuumz.info/download/gen1/
Das sichern der Daten (inklusive Karte) geht offenbar ganz gut wenn man /mnt/data/valetudo sichert.
Eventuell reicht es wenn man die binary unter /usr/local/bin austauscht - mit der die man hier https://github.com/Hypfer/Valetudo/releases/tag/2021.04.0 herunterladen kann?
Natürlich samt passende /mnt/data/valetudo/config.json
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

#36
Das mit der FW ohne RE werde ich mal probieren (FW-Links waren/sind klar ;)  ), allerdings ist dann mein Testsauger nicht mehr mit MQTT "kompatibel"...
...also scheidet der als Testvehikel (erst mal) aus.

Bislang hat es gereicht (V1) die last_map unter /mnt/data/rockrobo zu sichern bzw. zurückzuspielen.
Evtl. verbunden mit einem kurzen "Anfahren", damit zumindest mal die Dockinstation auf einer sonst (nach einem Reset) komplett leeren Karte erscheint.
Dann reboot und gut.

Habe ich mit meinem Testsauger schon öfter gemacht.
Allerdings steht der etwas (sehr) eng und da hat sich in der FW bzgl. Navigation wohl was geändert.
Seitdem funktioniert die in fhem abgespeicherte Zone (Xiaomi-Modul) nicht mehr.
Also Karte wird korrekt angezeigt, die Zone auch aber der Sauger tut sich beim Navigieren halt schwer und da musste ich abbrechen... ;) :-\

Ich schaue mal, ob ich von neuester Valetudo RE auf neueste Valetudo ohne RE komme...

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)

TomLee

ZitatIch schau mal wie Deine Erfahrung ist und bleib dran.

Die aktuelle Valetudo 2021.04.0 hat einen MQTT-Bug, der soll im nächsten Release behoben sein, die ist aktuell auf meinem V1.
Also noch warten oder selbst sagt man kompilieren ? des master Branch, weiß ich aber nicht wie.

Auf den meiner Mutter hab ich die aktuelle Valetudo RE gespielt, für sie sind all die tollen Features im UI von RE ein Vorteil.

Zitat@Otto: wäre deine MQTT-Anbindung kompatibel mit Valetudo (ohne RE)?

Dafür gibts das andere Template roborock aus diesem Thread.

Aber wie gesagt dann eine vorherige Version von 2021.04.0 nehmen, wegen dem Bug ( oder warten, oder selbst builden  ;D), auch die Topics mein ich verstanden zu haben haben sich mit dem letzten Release geändert und das Template müsste dann angepasst werden.




Wenn man die Karte nicht unbedingt sichern möchte/braucht, habt ihr euch mal mit der App die in #7 erwähnt wurde beschäftigt, einfach den Sauger auf Werkseinstellung zurücksetzen und nach nicht mal 15 Minuten hat man damit eine neue .pkg geflasht.
Im Falle Valetudo kann man auch gleich das Sprachpaket hochladen, das ginge halt mit Valetudo RE auch im UI.

Alle Dateien die man braucht findet man auf https://vacuumz.info/download/.
Die App, die fertige .pkg und die Sprachdatei.

Auf https://vacuumz.info/download/ die Android-App (.zip), das Sprachpaket und die Firmware auf das Android-Gerät laden.

VacuumzApp installieren.

Sauger auf Werkseinstellungen setzen (Reset+Home drücken, nach 5 Sekunden nur noch Homebutton bis zur nächsten Sprachnachricht)

Androidgerät mit dem AP des Saugers verbinden

App starten (nicht vorher schon), diese verbindet sich sofort und zeigt auch gleich einen Token an (der ist aber unnütz, nachdem man sich mit dem eigenen Wifi verbindet ist es wieder ein anderer).

Mit dem Flash Firmware-Button wird nach Auswahl der zuvor heruntergeladenen Firmware direkt das hochladen auf den Sauger begonnen.(nicht gleich in die Hose machen, das dauert ein paar Minuten)

Es erfolgt eine weitere Sprachnachricht, das der Flashvorgang erfolgreich war und ein reboot ? stattfindet.

Das Androidgerät verliert dann die Wifi-Verbindung zum AP des Saugers, ist der Sauger neu gestartet wieder mit dem AP verbinden und (im Falle Valetudo) die Sprach Datei hochladen.

Dann, während man noch mit dem AP verbunden ist, mit 192.168.8.1 das UI aufrufen und in den Einstellungen die eigenen WLAN-Daten eingeben, fertig.

Falls von Interesse:
Token auslesen, wenn der Sauger schon gerootet ist:
printf $(cat /mnt/data/miio/device.token) | xxd -p



MadMax-FHEM

Das mit der App mag ja schön und gut sein, was mir da nicht gefällt: zurücksetzen ;)

Wenn/als die Sauger frisch kamen wäre das eine tolle Möglichkeit gewesen...
...aktuell mache ich das lieber mittels miio update-firmware :)

Update auf Valetudo OHNE RE (jaja die 04 mit dem Bug) ist grad durchgelaufen.
Mal sehen was da anders ist...

Vermutlich reicht mir das dann sogar mit Bug ;)
(nutze ja aktuell noch das Xiaomi-Modul bzw. sind halt meine ganzen "Automatismen" basierend darauf umgesetzt)

Hauptsache: Cloudfree :)

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)

TomLee

Du kannst doch den Ordner (mit der Karte) zuvor sichern und dann wieder zurückspielen oder versteh ich was nicht ?

Mit der 04 einfach halt MQTT erst gar nicht aktivieren, MQTT-Traffic gibts mit der aber auch aktuell nur wenn man den homeassistant aktiviert und dann kommt auch nur Mist und die CPU-Auslastung geht hoch.

MadMax-FHEM

#40
Zitat von: TomLee am 17 Mai 2021, 14:28:28
Du kannst doch den Ordner (mit der Karte) zuvor sichern und dann wieder zurückspielen oder versteh ich was nicht ?

Ja schon.
hat auf meinem Testsauger auch funktioniert.
Aber da ist es mir nicht so wichtig, wenn da was "schief geht" ist es "egal".

Aber nicht für Wohnzimmer/Esszimmer/Schlafzimmer.
Da habe ich lang getüftelt, bis die Zonen gepasst haben und da soll das auch so bleiben.

Da noch mal von vorne hab ich keine Lust ;)

Deswegen lieber nur updaten OHNE Reset.
Aber geht/ging ja problemlos :)

Bislang hab ich noch nichts vermisst...
(gut die Kartenansicht ist [jetzt] etwas "klein")
EDIT: "Vorteil" die "Zusatz-Gimmicks" funktionieren jetzt (nat.), also z.B. Valeroni (WLAN-Heat-Map)... :)
https://valetudo.cloud/pages/companion_apps/valeronoi.html
Das geht/ging mit Valetudo RE (nat.) nicht...
Gut: auch nur Spielerei ;)

Und MQTT ist (aktuell) eh mehr "Spielerei"...
(Nix für ungut Otto ;)  )

Irgendwann mache ich mal den Test, ob ich aus meinem "Testsauger" einen "Wohnzimmersauger" machen kann...
...wenn das geht, dann bin ich da auch (deutlich) "entspannter"... ;)

Selber bauen lassen (wobei ich nicht weiß welches Valetudo da zugrunde liegt aber man kann auch "Neuestes" angeben) geht ja über: https://builder.dontvacuum.me/ bzw. für V1 direkt: https://builder.dontvacuum.me/_v1.html

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)

TomLee

Zitatwobei ich nicht weiß welches Valetudo da zugrunde liegt aber man kann auch "Neuestes" angeben) geht ja über:

Steht ja alles zur Auswahl, welche Version, ob Valetudo oder RE, ob aktuelles Release oder alte Version. Aber bringt nix, weil wenn man Preinstall valetudo newest version
auswählen würde dann die .pkg mit dem letzten Release 04 erhalten würde. Die kann man sich aber ja auch gleich bei https://vacuumz.info/download/ laden.

Ich mein es so verstanden zu haben das man direkt den Code (master-Branch) aus Github (und wie bis jetzt verstanden der Bug schon vor über 2 Wochen behoben wurde, es gab dazu halt bisher nur noch kein Release) selbst "builden" müsste.

Wie hier ausführlich beschrieben, verstehs aber trotzdem nicht ganz und mag mich ehrlich gesagt gar nicht weiter mit beschäftigen, da warte ich lieber.


TomLee

ZitatSo ein Mist. Mein Bauch sagt mir: Da will der Unterbau mit valetudo nicht

Hab jetzt wieder Valetudo RE (vacuum_4028_valetudo_re_0_10_6.pkg) aufgespielt (ja das UI ist um Welten besser, informativer), aber diesmal mit Werksreset zuvor (mit der App halt), weil das neue Release bestimmt noch auf sich warten lässt und mit Sicherheit auch nicht gleich unter vacuumz.info verfügbar sein wird.
Jetzt bekommt auch was in state zurück und die Karte wird auch erstellt (im UI).

Hab mich ehrlich gesagt noch nie mit der Karte beschäftigt, wenn gesaugt wurde dann bisher immer alles.
Hab die Karte einer Komplettreinigung unter Valetudo gespeichert und jetzt in RE eingespielt, einen reboot gemacht und sie wird nicht angezeigt, dann wieder gelöscht, reboot und es wird nach kurzer Fahrt (nicht gleich) eine neue Karte angefangen.

Was ich mich frage ist ob ich den Sauger evt. hätte kurz fahren lassen sollen bis die Karte (aus Valetudo) vlt. dann doch irgendwann angezeigt worden wäre, muss ich später/morgen nochmal testen ?

MadMax-FHEM

Zitat von: TomLee am 17 Mai 2021, 18:15:08
Was ich mich frage ist ob ich den Sauger evt. hätte kurz fahren lassen sollen bis die Karte (aus Valetudo) vlt. dann doch irgendwann angezeigt worden wäre, muss ich später/morgen nochmal testen ?

Naja was bei mir mit Reset funktioniert hat (allerdings Karte selbst gesichert: /mnt/data/rockrobo/last_map):

Kurz fahren lassen (weil die Karte ja komplett leer war, also nicht mal die Ladestation zu sehen war), dann war eben die Ladestation da und halt ein wenig "Umgebung" vom "Anfahren". Dann Karte (noch mal) "reinkopiert", Sauger gebootet (weil nur dann liest er die Karte neu ein, alternativ das "Player" Programm "abschießen") und dann war die alte Karte da.

Wie das mit der Sicherung über Valetudo geht: (noch) keine Ahnung ;)

Ja, zugegeben die Weboberfläche von RE bietet schon so bissi was mehr etc.
Aber wenn es sich bei Valetudo RE wirklich so verhält wie in dem verlinkten Artikel, dann bleibe ich erst mal auf OHNE RE (und rüste auch die anderen dann mal wieder um)...

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)

Otto123

#44
Zur Karte:
Ich habe die mir ein paar Karten erstellt, ich habe dazu den Sauger mit der valetudo App in Etappen durch die Bude geschickt: ein Stück vor, dann bis zur nächsten Kreuzung im Flur von dort vor den Punkt wo drei Zimmer abzweigen, dann gerade aus in die Zimmer. Ich fand das ganz Lustig. Die Phasen der Karte habe ich jeweils erstmal mit scp runterkopiert, es stellte sich später heraus: das war gut so!.

Test Sicherung mit valetudo RE
Ich habe auch mit MQTT (geht meiner Meinung nach besser und logischer als in der App) ein map store Karte1 gemacht.
Dann die Karte versaut, danach ein map load Karte1 - dann "zappelt" die App eine Weile (weil der Sauger oder Teile von ihm) booten und die alte Karte ist wieder da.
Der Sauger stand ein kleines bisschen neben der Spur, mit goto Point ein Stück fahren lassen, Karte stimmt wieder. (hier darf man nicht einfach start und dann pause/stop machen -> das erzeugt eine neue Karte)

Dann kam der Werkreset und alles war futsch. :(
Dann habe ich nach "Neu Flash" nach kurzer Fahrt map store map_3 gemacht, das erzeugt eine Struktur /mnt/data/valetudo/maps/map_3/ mit diesem Inhalt
drwxr-xr-x 2 root root 4.0K May 14 12:34 .
drwxr-xr-x 4 root root 4.0K May 15 08:16 ..
-rw-r--r-- 1 root root 439K May 14 12:39 last_map
-rw-r--r-- 1 root root  149 May 14 12:34 valetudo.json

Dann habe ich mit scp meine alte Karte wieder als last_map dorthin kopiert (das Fragment dabei überschrieben)
Dann ein map load map_3 und siehe da: nach kurzem "zappeln" alles wieder da! ;)

In der Datei valetudo.json stehen alle Punkte und Zonen die zu dieser Karte gehören.
Also für ein externes backup müsste man die Struktur /mnt/data/valetudo/ einpacken und wegkopieren.

@Thomas hat sich jetzt Deine miio-client Version geändert?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz