Eigene FW für Xiaomi Vacuum und DustCloud

Begonnen von MadMax-FHEM, 02 April 2018, 18:50:38

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

@drhirn, timmmmmey:

ist beides ähnlich bzw. wohl gleicher "Mechanismus"...

DustCloud habe ich (noch) nicht...

Ich hab nur mal versucht die Karten so zu finden wie von euch beiden "beschrieben", konnte aber auf meinem Robi nix finden (aber ich schaue mir das noch mal an)...
...bislang hat nur die Methode mit der robot.db geklappt: https://forum.fhem.de/index.php/topic,86535.msg790013.html#msg790013

Daher dachte ich eher mal an die Variante ;)

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)

drhirn

Ich bin gerade dabei, meine Dustcloud zu updaten und das mit den Maps auszuprobieren. Werde dann berichten.

Nachteil an der robot.db ist, dass die immer nur das Endergebnis liefert (also den ganzen Raum), wenn ich das richtig mitbekommen habe. Deswegen ständig die Logs auslesen.

MadMax-FHEM

Zitat von: drhirn am 05 April 2018, 14:51:47
Ich bin gerade dabei, meine Dustcloud zu updaten und das mit den Maps auszuprobieren. Werde dann berichten.

Jep, lass dann mal hören!

Bzw. dann kannst du mir ja folgende Frage bereits beantworten :)

Zitat
Und dann noch bzgl. DustCloud:

Zitat

    #replace the 123.123.123.123 with your own external ip address

d.h. ich brauche eine Portfreigabe/-weiterleitung und sowas wie dynDNS (hätte ich schon), wenn ich DustCloud beispielsweise auf einem PI in meinem Netz betreiben will?


Zitat von: drhirn am 05 April 2018, 14:51:47
Nachteil an der robot.db ist, dass die immer nur das Endergebnis liefert (also den ganzen Raum), wenn ich das richtig mitbekommen habe. Deswegen ständig die Logs auslesen.

Ich hab noch nicht viel probiert.
So wie es aussah werden mehrere (alle nach Update der FW?) Karten in der DB hinterlegt, zumindest hatte ich 2 drin (mehr hab ich noch nicht "geputzt" ;)  ).
Getrennt in Karte und "Fahrwege" so wie ich das verstanden habe...

Ich spiel einfach auch noch bissi damit rum... ;)

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)

drhirn

#18
Fast* vollkommen egal, welche IP du da rein schreibst. Du musst sie dann nur mittels IPTABLES auf die interne IP deiner Dustcloud umbiegen:
https://github.com/dgiese/dustcloud/wiki/Dustcloud-Installation

* siehe Post von Markus weiter unten

Markus M.

Wenn jemand eine Möglichkeit findet auf dem Roboter direkt die uns fehlenden Daten für FHEM bereitzustellen (Map, Startposition, Dockposition, Saugerposition - vielleicht irgendwie als MiIO Erweiterung/Proxy oder per dort laufendem HTTP Server), baue ich das gerne ins Modul mit ein!
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Markus M.

Zitat von: drhirn am 05 April 2018, 14:59:37
Vollkommen egal, welche IP du da rein schreibst. Du musst sie dann nur mittels IPTABLES auf die interne IP deiner Dustcloud umbiegen:
https://github.com/dgiese/dustcloud/wiki/Dustcloud-Installation

Es darf meines Wissens keine IP aus einem privaten Bereich sein.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

drhirn

Startposition = Dockposition, oder? Wenn ich das richtig verstanden habe, fährt der einfach an seinen Startpunkt zurück und sucht dort das Dock. Darum findet er auch nichts, wenn man ihn von wo anders starten lässt.

Markus M.

Zitat von: drhirn am 05 April 2018, 15:04:12
Startposition = Dockposition, oder?
Auf dem Sauger gibt es dafür glaube ich zwei unterschiedliche Files. Irgendwo unter /run/...
Keine Ahnung wofür die gut sind und wo der Unterschied ist.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

drhirn

Zitat von: MadMax-FHEM am 05 April 2018, 14:56:22
Jep, lass dann mal hören!

Es ist dustcloud-typisch wieder mal alles nicht so einfach ;)
Kann also noch dauern.

drhirn

#24
So, ich versuche zu rekapitulieren. Laufende Dustcloud vorausgesetzt.

  • Die upload_map.sh muss auf den Roboter kopiert werden. Da wären DUSTCLOUD_SERVER und DUSTCLOUD_PORT anzupassen. Das Script sollte dann in regelmäßigen Abständen laufen, damit's die Map an die Dustcloud schicken kann. Am besten aber nur, wenn der Reinigungsvorgang gestartet ist, sonst gibt's keine Logs. Wenn da jemand eine gute Idee hat, her damit.
  • Auf der Dustcloud müssen noch zwei Pakete installiert werden: pip3 install pillow bottle
  • In der server.py muss my_cloudserver_ip angepasst werden, wie oben besprochen (beliebige externe IP, die auf dem Roboter mit iptables auf die Dustcloud umgebogen wird)
  • Ebenfalls muss in der server.py meiner Meinung nach Zeile 854 geändert werden in cmd_server.run(host="0.0.0.0", port=cmd_server_port)
  • In der config.php muss die URL zum "Command-Server" durch den FQDN des Dustcloud-Servers ersetzt werden (wieder meiner Meinung nach)
  • Anschließend die server.py als root (warum auch immer) ausführen: python3 server.py --enable-live-map
Der server.py hat einige nützliche Optionen, die man mit python3 server.py -h bekommt. Ich muss da z.B. den Port zur Dustcloud anpassen (-sport). Und, ganz wichtig, das --enable-live-map nicht vergessen. Ist mir peinlicherweise passiert.

Hoffe, ich habe nichts vergessen.

Sieht dann aus wie im Anhang.

MadMax-FHEM

So hatte eben mal wieder etwas Zeit und Lust umzuspielen...

Bislang hatte ich ja noch nie eine Karte (*.ppm) unter /run/shm
Klar: LiveMap ;)

Eben während der Sauger lief hatte ich dann eine *.ppm Datei... :)

Aber eben nur solange der Sauger läuft...
...ist er in der DockinStation ist die Karte weg... :-|

In der robot.db Datei (/mnt/data/rockrobo/) sind bislang alle maps zu finden seit ich den FW-Update gemacht habe.
Daher könnte ich die praktisch immer hochladen (und "konvertieren/extrahieren")...

Bei Spot-Clean gibt es (logischerweise) keine Karte...

@drhirn: für das Senden der Live-Map kann man sich evtl. per Inotify oder ICron o.ä. an das Verzeichnis '/mnt/data/rockrobo/rrlog' oder die Datei '/mnt/data/rockrobo/slam_info.cfg' hängen. Zumindest wurden diese (das Verzeichnis etwas früher) verändert wenn ich den Reinigungsvorgang gestartet habe und beim Einfahren in die Dockingstation zuletzt geändert...

Wenn ich mal wieder Zeit habe gehe ich mal das Thema DustCloud an... :)

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)

MadMax-FHEM

#26
Thema "DustCloud" muss noch etwas warten...
...leider...

Auch für das Thema "maps" hatte ich keine Zeit.

Beides aber aktuell nicht so wichtig (für mich) wie das mit den Zonen :)

Hatte etwas Zeit und daher mal mit dem Feature "zone_clean" rumgespielt.

Habe also wie hier die Einstellung der Logeinträge angepasst: https://forum.fhem.de/index.php/topic,73052.msg792092.html#msg792092

Und dann die Punkte für die gewünschten Zonen per "GoTo" in der App angefahren und dann per:

cat /mnt/data/rockrobo/rrlog/miio.log | grep app_goto_target

ausgeben lassen.
Davor nat. auf dem Roboter per ssh einloggen, eh klar... ;)

Über den Hinweis hier: https://forum.iobroker.net/viewtopic.php?f=23&t=4898&sid=3fe5d3ceb129bb8d4b890f26884654c1&start=1620#p138421

Wusste ich dann welche Punkte ich anfahren muss: links-unten und rechts-oben :)

Das Attribut sieht dann wie folgt aus:

attr SaugerName zone_names ZonenName:[links-unten,rechts-oben,anzahl]

Beispiel:
attr MeinSauger zone_names teilweise:[25250,23550,28900,27250,1],[28600,23500,30250,25400,1]

hier dann eben 2 Teilzonen die dann nacheinander gereinigt werden bei:

set MeinSauger zone teilweise

Wenn ich damit genug "rumgespielt" habe, dann muss ich mir echt mal "DustCloud" anschauen...

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)

mark79

Lass dir am besten noch Zeit, bis Xiaomi die Firmware für das Zonecleaning verbessert hat. :D

Der Robi ist im Zoneclean dümmer geworden und die Navigation besonders beim umfahren von Hindernissen ist in diesen Modus nicht mehr so gut. Er versucht einfach stur weiterzufahren, auch wenn das nicht geht und die Reifen drehen sich dabei lange durch. Damit macht man sich unter Umständen schneller was kaputt, wenn man da nicht eingreifen kann.

Dazu kommt noch, wenn man die Koordinaten hat und man eine normale Reinigung startet, stimmen danach die alten Zone Koordinaten nicht mehr. Das hieße, man müsste nur noch mit der Zonefunktion arbeiten.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

MadMax-FHEM

Hi Mark,

danke für die Anmerkungen/Hinweise...

Konnte zwar das geschilderte Verhalten noch nicht feststellen...
...werde es aber im Auge behalten...

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)

lukeman11

#29
Zitat von: Markus M. am 03 April 2018, 10:42:28
Beide Male: ja.
Root heißt erst mal nur SSH Zugang, sonst noch nichts.

Ich habe auch ohne den Robi zu trennen gerootet... jetzt weiß ich aber nicht weiter. Was ist der Standard SSH Zugang mit Passwort?

Noch eine Frage.. Ist es wichtig, dass der Token was anderes als lauter f's ist? In FHEM scheint er ganz normal weiter zu funktionieren.