Hallo,
ich habe ja bereits seit einiger Zeit einen Xiaomi Sauger V1.
Grund ihn zu nehmen waren die Berichte und nat. das Modul von Markus, vielen Dank (noch mal) an dieser Stelle!
Allerdings würde ich dem Sauger gerne das "Nachhause-Telefonieren" verbieten.
Wenn ich das jedoch in meinem Router einstelle, also "keine Kommunikation nach außen", dann ist der Sauger "beleidigt"...
...zumindest bei mir...
Bin schon vor längerem auf den Link zu "eigener FW für den Sauger" und zu "DustCloud" gestoßen (http://dontvacuum.me/ bzw. https://github.com/dgiese/dustcloud).
Seither überlege ich das mal anzugehen... :)
(wollte mir schon einen extra Sauger dafür ordern aber aktuell sind mir die zu teuer für den "Spaß")
Bevor ich das nun angehe hätte ich ein paar Fragen:
Nutzt schon nur die "eigene FW" etwas bzgl. "Nachhause-Telefonieren" oder nur in "Zusammenarbeit" mit der DustCloud?
Wer hat das bereits umgesetzt?
Und natürlich: wie "gefällt es"? ;)
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?
EDIT: und nat. ob der Sauger nach dem Flashen mit "eigener FW" (und DustCloud) immer noch mit dem Modul läuft. (denke aber ja)
Vielen Dank schon mal!
Gruß, Joachim
Läuft noch mit FHEM, da dafür nur lokal kommuniziert wird.
Ich hab meinen nur gerooted, für mehr ist aktuell keine Zeit vorhanden.
Hallo Markus,
vielen Dank für die Antwort.
Muss aber doch noch mal nachhaken:
Kommuniziert der gerootete (= "eigene FW"!?) Vacuum dann noch mit China oder sonst irgendwas außerhalb des lokalen Netztes?
(vermute/hoffe mal: nein :) )
Braucht man dann noch den Token?
Und wenn ja: wie bekommt man den dann raus?
Die Anleitung hier: https://github.com/dgiese/dustcloud/wiki/VacuumRobots-manual-update-root-Howto ist etwas "widersprüchlich"...
...wenn ich der "allgemeinen" Anleitung folge, dann kommt folgender Schritt:
Zitat
3. mirobo discover --handshake true
You'll retrieve the token (copy hash represented by placholder #Token for further use):
INFO:miio.device: IP 192.168.8.x (ID: $) - token: b'#Token'
Bei der "reinen Linux" Anleitung kommt nirgends ein Token vor...
...gut, man kann ja vermutlich (trotzdem) "einfach" den Aufruf machen, die Tools sind ja installiert... ;)
EDIT: auch mit diesem Aufruf bekomme ich nur lauter 'f' als Token (war abzusehen, da ja verbunden und nicht in 'unprovisioned mode (press WiFi button)' / aber das mache ich erst, wenn ich ganz sicher bin und die Vorteile der "Root-FW" kenne...Danke, Joachim
So kleiner Zwischenstand:
ich hab mal die Anleitung bzgl. Linux auf einem PI3+ mit neuem Raspian Stretch ("Desktop") durchgeführt:
https://github.com/dgiese/dustcloud/wiki/VacuumRobots-manual-update-root-Howto
Zum Erzeugen des public keys habe ich einfach nur:
ssh-keygen -t rsa
ohne Passwort verwendet...
Und von hier: https://python-miio.readthedocs.io/en/latest/discovery.html#installation hab ich sicherheitshalber mal folgendes installiert:
sudo apt-get install libffi-dev libssl-dev
Diesen Befehl dann auf die aktuell heruntergeladene FW angepasst:
sudo ./dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh -f v11_001228.pkg -k id_rsa.pub
bei mir also:
sudo ./dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh -f v11_003194.pkg -k id_rsa.pub
Meine gerootete FW hab ich also schon mal "gebastelt"... :)
Die Device-Discovery hat auch funktioniert...
...da meine Sauger aber ja bereits mit der App und nat. fhem verbunden sind, waren die Token lauter 'f'...
So nun stehe ich vor dem Schritt: flashen oder nicht...
Auslesen des Token ist deutlich schwieriger geworden (aktuell habe ich FW 3.3.9_003077 danach dann ja wohl 3.3.9_003194, wenn auch gerooted)...
Daher die Frage(n): welchen Vorteil bzw. welche Vorteile hat die gerootete FW (konnte nichts genaues finden)
Wenn ich den Token schon habe (aktuell habe ich den ja, da ja verbunden mit fhem), kann ich dann direkt flashen und der Token bleibt?
(werde mal ein wenig "rumspielen" mit den Möglichkeiten von "mirobo" ;) )
DurstCloud scheint ja nicht notwendig zu sein...
Gruß, Joachim
Beide Male: ja.
Root heißt erst mal nur SSH Zugang, sonst noch nichts.
Du kannst DNS umbiegen und Dustcloud irgendwo laufen lassen um die externen Anfragen zu unterbinden. Dazu sollte es eine Anleitung geben.
Den Token brauchst du trotzdem. Den kannst du aber mit Root direkt aus dem Gerät auslesen.
Ist dort ein kürzerer String, den du direkt so ins Modul eintragen kannst. Beim Update sollte er sich aber sowieso nicht ändern.
Hallo Markus,
danke noch mal!
Ich war nun so "mutig" und hab gerootet, allerdings ohne zurücksetzen, sondern (da ich ja IP und Token kenne) direkt per update_firmware Befehl:
mirobo --ip 192.168.1.11 --token 12345678901234567890123456789012 update_firmware ./output/v11_003194.pkg
EDIT: vorher immer in das Verzeichnis dc (bzw. wie immer es genannt wurde wo die "Umgebung" hin "installiert" wurde) und ins "virtuelle Environment" wechseln: . .venv/bin/activate
EDIT2: wenn man den Sauger noch nicht mit fhem gekoppelt hatte (also den Token [noch] nicht [mehr] kennt), dann einfach folgendes ausführen (vorher mit dem vom Sauger aufgespannten WLAN verbinden, daher ausnahmsweise Desktop-System, da geht das schneller ;) ): python dustcloud/devices/xiaomi.vacuum/firmwarebuilder/flasher.py -f output/v11_001228.pkg (FW-Name nat. entsprechend anpassen). Dabei wird der Sauger gesucht (mind. WLAN zurücksetzen oder er ist "frisch aus dem Laden") und dann eben die FW aufgespielt. Anschließend kann er dann per MII-App ins WLAN integriert werden und man kommt per ssh drauf. Ohne Passwort weil dazu hat man ja den ssh-Schlüssel in die FW eingebaut. D.h. von dem Rechner wo man die FW gebaut hat kommt man einfach so drauf (ssh -l root IP) will man auch von anderen Rechnern drauf dann entweder passwortlosen Zugang einrichten (Anleitungen gibt es genug)oder eben für den Zugang ein Passwort auf dem Sauger einrichten (wenn per ssh eingeloggt: passwd und dann halt das Passwort setzen).
EDIT3: Auslesen des Token geht dann (wenn man per ssh eingelogt ist) wie folgt: printf $(cat /mnt/data/miio/device.token) | xxd -p
Da die älteren FW-Stände auch auf dem Repository liegen kann/könnte man so wohl auch auf eine ältere zurück...
Ich werde mal sehen, ob ich DustCloud auch noch aufsetze oder es erst mal "gut sein lasse"...
Gruß, Joachim
Dustcloud ist für mich Overkill, ich möchte die App ja weiterhin nutzen können und Xiaomi hat meinen Grundriss eh schon :)
Was für uns interessant wäre, wäre eine Möglichkeit, direkt auf dem Sauger die Karte und die Positionen von Ladestation und Robo abzufragen.
Hallo Markus,
also die Karten sollen ja unter:
/var/run/shm/
liegen, konnte bei mir aber keine finden :-|
(laut dem Scrit hier [und auch anderswo gelesen]: https://github.com/dgiese/dustcloud/blob/master/dustcloud/upload_map.sh)
Unter:
/mnt/data/rockrobo/
liegen bei mir u.a. folgende Dateien:
-rw-r--r-- 1 root root 40 Apr 3 13:42 ChargerPos.data
-rw-r--r-- 1 root root 348 Apr 3 13:21 RoboController.cfg
-rw-r--r-- 1 root root 39 Apr 3 13:42 StartPos.data
-rw-r--r-- 1 root root 282 Apr 3 12:06 Update.pkg.inf
-rw-r--r-- 1 root root 43 Dec 25 13:24 VacuumAndBrush.cfg
-rw-r--r-- 1 root root 31316 Apr 3 13:45 appproxy.map
-rw-r--r-- 1 root root 149 Jun 14 2017 apptimer.cfg
-rw-r--r-- 1 root root 121016 Apr 3 13:45 last_map
ChargerPos.data bzw. StartPos.data sieht doch so aus?
(interessanterweise hat sich ChargerPos von X=0 und Y=0 [glaube ich zumindest im Kopf zu haben] seit dem letzen Abfragen wohl geändert [aktuell]: X=4 ; Y=-14)
Ups, Reinigungsvorgang angestossen und: weg sind die beiden Dateien...
Auch "last_map" wird nach jedem Reinigen angelegt (und auch zwischendrin mal upgedated)...
...aber mit dem Format kann ich nix anfangen... :-|
EDIT:
Hier steht auch was bzgl. der Karten:
https://github.com/dgiese/dustcloud/blob/master/devices/xiaomi.vacuum.gen1/mapextractor/extractor.py
bzw.
https://github.com/marcelrv/XiaomiRobotVacuumProtocol/blob/master/RRMapFile/RRFileFormat.md
Die Datei "robot.db" liegt auch unter /mnt/data/rockrobo/
End-EDIT
EDIT2:
nach einem manual move (remote controls) habe ich beide Dateien (ChargerPos.data und StartPos.data) wieder, mit folgendem Inhalt (diesmal):
root@rockrobo:/mnt/data/rockrobo# cat ChargerPos.data
x = 33;
y = -190;
angle = -2.982336521;
root@rockrobo:/mnt/data/rockrobo# cat StartPos.data
x = -386;
y = -257;
angle = 0.1592561324;
End EDIT2
Gruß, Joachim
Ich hab das mit dem extractor.py mal ausprobiert.
Also 'robot.db' Datei per scp runter kopiert und dann dem extractor.py "vor die Füße geworfen"...
...und raus kam die Karte... :)
Gut an den Farben kann man noch etwas arbeiten ;)
Aber sonst: toll!
Gruß, Joachim
Klingt sehr interessant, ich lese mal mit...
Grüße Marcel
Bzgl. des rooten und upgraden der FW, das geht mit der flasher.py <firmware> recht einfach, das Python Script holt sich den Token automatisch.
Dafür muss man nur vorher das WLAN zurück setzten und sich mit dem Laptop/PC auf dem Robi verbinden.
Hat man root Zugang, kriegt man den Token über folgenden Befehl: printf $(cat /mnt/data/miio/device.token) | xxd -p
Was ich ganz cool finde, ist die Zonereinigung.
Die Funktion gab es bisher nur für den neuen Robi mit Wischfunktion, aber seit der FW 3.3.9_003194 soll das auch in der V1 FW implementiert sein: https://meinsmarthome.blog/xiaomi-mi-robot-vacuum-v1-zone-cleanup/
Das konnte ich nur nicht testen, da ich noch eine ältere FW drauf habe...
Für iobroker gibt es schon was: https://forum.iobroker.net/viewtopic.php?p=138421#p138421
https://github.com/ioBroker/ioBroker.mihome-vacuum#zoneclean
Es wäre toll, wenn das irgendwann auch für Fhem gibt. :)
Zitat von: mark79 am 03 April 2018, 20:05:28Was ich ganz cool finde, ist die Zonereinigung.
Es wäre toll, wenn das irgendwann auch für Fhem gibt. :)
Für alle die das normale Update verwenden, ist
irgendwann schon morgen ;)
Demnächst kommen dann auch noch ein paar Hilfsattribute um Name für Punkte und Zonen zu vergeben.
Wenn ich die Tage mal Zeit habe werde ich mal ein Script basteln was die Map(s) holt, "konvertiert" und dann anzeigt...
...mal sehen.
Gruß, Joachim
Zitat von: MadMax-FHEM am 04 April 2018, 20:42:45
Wenn ich die Tage mal Zeit habe werde ich mal ein Script basteln was die Map(s) holt, "konvertiert" und dann anzeigt...
...mal sehen.
Gruß, Joachim
Wirklich nicht hübsch, aber manchmal hilft es ja zu sehen, wie andere es nicht hübsch gemacht haben :)
set -x
set -e
ip=192.168.x.x
key=/opt/id_rsa_xiaomi
user=root
mkdir -p /dust
current=$(ssh -i ${key} ${user}@${ip} find /run/shm/ -iname "*.ppm")
pushd /dust
if [[ -n $current ]] ; then
newest=$(ssh -i ${key} ${user}@${ip} find /run/shm/ -iname '*.ppm' -printf '%T+#%p\\n' | sort -r | head -n 1 | cut -d '#' -f 2)
scp -i ${key} ${user}@${ip}:${newest} /dust/newest.ppm
else
newest=$(ssh -i ${key} ${user}@${ip} find /mnt/data/ -iname 'navmap*ppm*' -and -not -iname '*log*' -printf '%T+#%p\\n' | sort -r | head -n 1 | cut -d '#' -f 2)
scp -i ${key} ${user}@${ip}:${newest} /dust/newest.gz
zcat newest.gz > newest.ppm
fi
mogrify -format png -monochrome -negate -noise 3 newest.ppm
chmod 666 /dust/* &> /dev/null
filename=/dust/newest.png
perl /opt/fhem/fhem.pl 7072 'set telegramBot sendPhoto @xyz '${filename};
popd
Zitat von: MadMax-FHEM am 04 April 2018, 20:42:45
Wenn ich die Tage mal Zeit habe werde ich mal ein Script basteln was die Map(s) holt, "konvertiert" und dann anzeigt...
...mal sehen.
Gruß, Joachim
So wie hier?
https://github.com/dgiese/dustcloud/pull/95
@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
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.
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
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
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!
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.
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.
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.
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.
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.
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
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
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
Hi Mark,
danke für die Anmerkungen/Hinweise...
Konnte zwar das geschilderte Verhalten noch nicht feststellen...
...werde es aber im Auge behalten...
Gruß, Joachim
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.
Es gibt kein SSH Passwort. Dafür hast du das SSH Key File eingetragen. Das hat eventuell noch ein Passwort.
FF ist definitiv nicht der Token, das kommt an wenn der Roboter provisioniert ist. Der Token den du zum Rooten verwendet hast sollte sich nicht geändert haben.
Auf dem Rechner wo du die FW "erstellt" hast hast du doch einen Schlüssel erstellt.
Der ist der passwortlose Zugang per ssh...
Wenn du Zugang mit Passwort willst, musst du das dann nach Login auf dem Sauger einrichten, z.B. root ein Passwort geben...
Das mit ffff hab ich auch, wenn ich den Token über miio auslese...
Ist aber nicht der Token.
Wenn er verbunden ist, lässt er sich so nicht auslesen...
Wenn du gerooted hast, gibt es aber eine einfachere Methode zum Auslesen.
Steht lokal im Filesystem...
Gruß, Joachim
Ja na klar. Wie dumm von mir. :o
Vielen Dank euch Beiden!
Ich glaube, ich benötige nochmal Hilfe :-(
Beim ersten Mal hat alles geklappt. Leider hatte ich dummerweise die Zertifikate gelöscht. Jetzt habe ich nochmals die Firmware erstellt mit den Zertifikaten, nun kommt jedoch immer beim Versuch die Firmware auf den Robbi zu ziehen diese Fehlermeldung:
pi@fhem-test:~ $ mirobo --ip 192.168.1.210 --token 344a**************************** update_firmware ./output/v11_001518.pkg
Traceback (most recent call last):
File "/usr/local/bin/mirobo", line 7, in <module>
from miio.vacuum_cli import cli
File "/usr/local/lib/python2.7/dist-packages/miio/__init__.py", line 2, in <module>
from miio.airconditioningcompanion import AirConditioningCompanion
File "/usr/local/lib/python2.7/dist-packages/miio/airconditioningcompanion.py", line 101
def load_power(self) -> int:
^
SyntaxError: invalid syntax
Ich kann mich nicht entsinnen irgendetwas anders gemacht zu haben.
Hast du das env gesetzt!?
Musst du bevor du miio Befehle etc. absetzen kannst...
Bin leider grad unterwegs, daher nur so kurz...
Gruß, Joachim
Zitat von: MadMax-FHEM am 01 August 2018, 12:16:18
Hast du das env gesetzt!?
Ja. Mit und Ohne. Mehrfach ausprobiert.
Letztendlich hat es mit env dann wieder funktioniert. Danke.
Der doofe Daniel wieder ....
Ich habe den Roborock und wie bereits erwähnt erfolgreich gerootet. Mit der version 1518 von hier (https://dustcloud.seemoo.de/public/xiaomi.vacuum.gen2/original/).
Jetzt gab es eine Updatemeldung bei FloleVac auf Version 1560. Ich habe mit meinem zuckenden Finger natürlich gleich auf Update gedrückt, sodass Root natürlich im Anschluss weg war. Ich bin also wieder auf o.g. Link und wollte die aktuelle Firmware laden. 1518 ist jedoch die letzte dort gehostete.
Ich habe mir schon die Finger wundgegugelt... Habt ihr eine Ahnung, wo man sich die aktuellste Firmware herunterladen kann um sich wieder eine gerootete aufspielen zu können?
Und wenn ja, gibt es auch eine Möglichkeit den Robi zu updaten, ohne, dass Root weg ist, bzw man nicht jedes mal die Firmware neu bauen muss?
push
Für die Version 1 des Robos fehlt auch die neuste FW.
Du kannst dgiese anschreiben, oder warten bis er hier antwortet: https://github.com/dgiese/dustcloud/issues/140
Weil im Moment ist mMn. nicht bekannt, wie man sich die FW selber von den Xiaomi Server downloaden kann.
Geht vermutlich irgendwie mit der Dustcloud, aber keine Ahnung wie.
Vielleicht kann Flole ja eine möglichkeit in seiner App integrieren, womit man sich den Link kopieren kann?
Ist er hier im Forum und liest er evtl. mit? Sonst müsste man mal im Roboter-Forum anfragen.
Im Github hat einer eine Möglichkeit gefunden:
ZitatI found out how to do it. First, disable update on the robot by renaming /usr/bin/ccrypt to /usr/bin/ccrypt_. Then, use the app to update the firmware. It will download the firmware but will fail to update. The .pkg file can now be copied from /mnt/data/.temp/Update.pkg.
https://github.com/dgiese/dustcloud/issues/140#issuecomment-419273872
Ein weiterer scheint sie, zumindest für den V1, zu hosten:
Zitat
v1 firmwares can be found here https://cloud.it-kraut.net/s/BW4SHMeTRt36k43
https://github.com/dgiese/dustcloud/issues/140#issuecomment-419425958
Wie ich im Telegram/ICQ/Matrix channel geschrieben habe, ist mir wohl bewusst, dass es eine neue Firmware gibt. Aktuell bin ich dabei die auseinanderzunehmen, da die mir an einigen Stellen etwas seltsam vorkommt...
Wenn es kein Killer-feature für euch in der neuen Firmware gibt, sollte man erstmal bei der alten bleiben.