Ankündigung
Einklappen
Keine Ankündigung bisher.
Xiaomi / Roboroc Baustein 19001929
Einklappen
X
-
Bei mir geht der Baustein an einem Roborock S50 Firmware 2020 mit Valetudo RE (0.98) jetzt auch. Vielen Dank für die Anpassung!
-
@woda: Vielen Dank fürs Testen. Hast du den Roboter nach der Umstellung der Zeitzone neu gestartet ?
Ich hab die Änderung jetzt reingenommen, 0.95 ist jetzt online, ich hab den Baustein seit gestern Abend auch damit laufen und es läuft stabil.
Fritze484
0.95 unterstützt jetzt auch die Targetposition. Hier wird ein Koordinatenpaar z.B. "10,15" am Eingang E19 als Argument erwartet. Dann fährt der Roboter die Position an.
Problem ist allerdings die richtigen Koordinaten rauszufinden, ich werd mir bei der nächsten Gelegenheit paar Gedanken im VSE dazu machen.
- Likes 1
Einen Kommentar schreiben:
-
Hallo sipiyou
ich hab jetzt folgende Versuche gemacht, konnte aber den Baustein nicht zu einem Fehler bewegen:
1. veränderter Baustein (mit der Änderung wie von dir vorgeschlagen) -> OK
2. Zeitzone am Roboter wieder zurück auf UTC -> OK
3. Original Baustein -> OK trotz falscher Zeitzone
Bemerkung: Ursprünglich gab es noch zusätzlich zur falschen Zeitzone einen Offset von ca. +2 Minuten auf dem Roboter, dieser ist aktuell nicht vorhanden.
Vorschlag: Du veröffentlichst hier eine Testversion mit deiner Änderung wie vorgeschlagen.
Damit könnten andere, bei denen die Verbindung zu Valetudo aktuell nicht funktioniert, testen ob es damit klappt.
Ich bleibe aber bei meinen ursprünglichen Anpassungen, da der Roboter dadurch immer mit der richtigen Urzeit arbeitet.
Vielen Dank
Einen Kommentar schreiben:
-
Interessant
Hast du Lust was auszuprobieren ?
Wenn ja, änder bitte die Funktion
ab zu:PHP-Code:public function getCurrentTimestamp () {
$time = time()+10;
$this->stamp[0] = ($time >> 24) & 0xFF;
$this->stamp[1] = ($time >> 16) & 0xFF;
$this->stamp[2] = ($time >> 8) & 0xFF;
$this->stamp[3] = $time & 0xFF;
//$time = pack ("H*", sprintf("%4X",time()));
}
Dann nimmt der Baustein die Zeit, die es vom Roboter bekommt. Änder danach zum testen bitte wieder die Zeitzone vom Roboter ab. Wenn es funktioniert, dann schau ich, ob die reguläre Software vom Roboter auch so stabil läuft.PHP-Code:public function getCurrentTimestamp () {
}
Einen Kommentar schreiben:
-
sipiyou
ja, der Roboter lässt sich vom Edomi-Host normal anpingen und auch über Python-Miio steuern / abfragen.
Mit der Änderung macht er jetzt jeweils 5 Versuche, welche leider alle in einen Timeout laufen.
Ich hab gestern auch noch einen Werksreset und eine komplette Neuinstallation von Valetudo-RE durchgeführt (dauert gesamt ca. 20 Minuten).
Leider brachte auch das nichts. Alle Tools außer der LBS können den Roboter abfragen. Der neue Token wurde natürlich im LBS eingetragen.
UPDATE: Habs gefunden.
Der Sauger hatte eine falsche Uhrzeit + Zeitzone
Was ich gemacht habe um das zu beheben:
Lokalen Zeitserver auf dem Roboter konfigurieren, da er ja die Zeit nicht mehr aus dem Internet holen kann:
In der Datei /opt/rockrobo/watchdog/ntpserver.conf hab ich die Fritzbox als Zeitserver angegeben, also hier die IP des lokalen Zeitservers angeben.
Den Roboter von UTC auf CEST umstellen:Code:#you can add your server line by line 192.168.0.253
Der Python-Miio und die anderen Tools verwenden wie es aussieht den Zeitstempel des Roboters für das Kommando, deshalb funktionieren diese auch bei falscher Zeit des Roboters.Code:cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime echo 'Europe/Vienna' > /mnt/data/rockrobo/timezone reboot
Gruß
Wolfgang
- Likes 1
Einen Kommentar schreiben:
-
@woda:
Du kannst den Roboter aber über den Edomi-Host ganz regulär anpingen, oder ?
Wenn ja, dann probier bitte folgendes aus.
Im class udpHandler die sendRcv durch diese Funktion ersetzen:
PHP-Code:public function sendRcv ($data,$len) {
$currentRetryCnt = 0;
sendRcvRetry:
if ($this->send ($data, $len)) {
$rcv_data = '';
$rcv_data .= fread($this->sendSocket,32000);
$result = stream_get_meta_data ($this->sendSocket);
if ($result['timed_out'] === TRUE) {
if ($currentRetryCnt++ < 5) {
goto sendRcvRetry;
} else {
return (FALSE);
}
}
return ($rcv_data);
} else {
return (FALSE);
}
}
Einen Kommentar schreiben:
-
Das erhöhen des Timeouts bringt leider nichts, ausser einer längeren Laufzeit bis zum Fehler.
Einen Kommentar schreiben:
-
Was machst du mit den Leuten, die bisher in deinem Haus waren ? Die kennen ja auch deinen Grunriss - Oder landen alle bei den Fischen ?
Wenn du die Zonen-ID's kennst, dann gehts natürlich auch ohne. Aber das Problem hier ist, dass sich diese ändern können, insbesondere wenn der Roboter von Zeit zu Zeit zonen zusammenlegt und du diese wieder auseinander nimmst.
Die Zonen-ID's sind in der Map, d.h. hier müsstest du die Map parsen um an diese ranzukommen.
Was die Spot-Funktion angeht, so wollte ich irgendwann wenn ich wieder etwas Zeit habe die Reinigung aus der Karte implementieren, d.h. du ziehst das Rechteck in der Map und dann kann der los legen.
Aber deine Idee gefällt mir. Ich werd mal schauen, ob ich ggf. dieses Wochenende dazu komme, um mich wieder mit dem Baustein zu beschäftigen.
woda : Probier bitte folgendes aus:
im class udphandler ist der Konstruktor.
Setz bitte die timeout-Zeit probehalber auf 100 (oder 1000) und schau mal, ob sich dadruch irgendwas ändert. Im original Baustein ist es Zeile 657:
public function __construct ($ip,$port, $timeOut = 5) {
$this->setRemoteHost ($ip, $port);
$this->commTimeOut = $timeOut;
}
- Likes 1
Einen Kommentar schreiben:
-
Hallo!
Top Baustein, vielen Dank! Läuft bei mir unter Valetudo RE 0.9.4. und Firmware 2020.
Auf die Frage warum rooten? Vielleicht ist es Paranoid, aber den Grundriss des eigenen Hauses irgendwo hin zu schicken außerhalb des eigenen Netzwerkes find ich fraglich. Noch interessanter bei den Robbie mit Kamera. Und vor dem Baustein ging halt nur MQTT zur Edomi-Integration. Da musste man rooten.
Ich habe aber auch noch eine Frage: Ist die Zonenreinigung auch ohne VSE nutzbar? Wie finde ich die Zonen-Ids raus? Über MQTT sind es ja die Zonennamen im Klartext. Das klappt aber nicht über den Baustein. Nutze das ganze ohne viel Visu der Sauger soll einfach arbeiten wenn ich nicht da bin. Und die Reinigungsintervalle für die Küche sind enger als für das ganze Haus, mehr Krümel ;-). Dafür wäre die Zonenreinigung per Logik sinnvoll.
Und noch eine Frage: Ist die Spot-ANfahrfunktion über der Baustein verfügbar? Nach 2-3 Saugvorgängen positioniert sich der Sauger vorm Mülleimer damit der Staubtank geleert werden kann. Sonst wohnt er unter der Couch. Dafür nutze zumindest ich die Funktion...
Danke und Gruß
Fritze
Einen Kommentar schreiben:
-
sipiyou jetzt, nachdem der Sauger einige Tage vom Netz getrennt war, reagiert auch meiner nicht mehr auf den Baustein.
Ich hab das Logging erweitert, er läuft in Timeouts, bzw bekommt keine Antwort?
Ich hab auf der EDOMI Maschine auch mal Python-Miio installiert und getestet,Code:2020-09-07 16:32:00 581548 20161 Info Keine Benutzerdaten eingegeben! Lokale IP erforderlich 2020-09-07 16:32:00 581959 20161 Debug cloud->isAccessible:N-E10=192.168.0.141-E11=12312312312312312312312332132131 2020-09-07 16:32:00 582047 20161 Debug RoborockMe:: ip = 192.168.0.141; token = 12312312312312312312312332132131; SequenceID: 818 2020-09-07 16:32:00 582128 20161 Debug construct= IP:192.168.0.141 Port:54321 Timeout:5 2020-09-07 16:32:00 582329 20161 Debug send_data= !1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 2020-09-07 16:32:00 826714 20161 Debug rcv_data= !1VDÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 2020-09-07 16:32:00 827018 20161 Debug Hello Received = 1 2020-09-07 16:32:00 827392 20161 Debug composeData Payload= {"method":"miIO.info","id":819} 2020-09-07 16:32:00 827950 20161 Debug send_data= !1ðš_VDjÕò•Mó?ü3¬‚Ô[LF]µ_ždóB:ªÎa¯yèNkÁ„’º0"”BêrfØ{4fµu;ׄԧٿ‘µóÞXY 2020-09-07 16:32:05 832535 20161 Debug rcv_data= TIMEOUT 2020-09-07 16:32:05 832849 20161 Kritisch miIO.Info not supported!! 2020-09-07 16:32:05 832987 20161 Debug composeData Payload= {"method":"get_status","id":820} 2020-09-07 16:32:05 833477 20161 Debug send_data= !1ðš_VDo¿Õæ7æ·?£æ{@oÉØ§ÁÙm¬¸9Oøú³—ÿ[CR]i[LF]ÁóÊþýýõÐõ[CR]Ðð×zB ¨D®¶lï 2020-09-07 16:32:10 838767 20161 Debug rcv_data= TIMEOUT 2020-09-07 16:32:10 839076 20161 Kritisch getStatus not supported!! 2020-09-07 16:32:10 839210 20161 Debug roborocMe:: ok
Das RRCC Tool geht auch ohne Probleme.Code:[root@edomi ~]# miiocli vacuum --ip 192.168.0.141 --token 12312312312312312312312332132131 status Running command status <VacuumStatus state=Charging, error=No error bat=100%, fan=102% cleaned 6.4775 m² in 0:04:38> [root@edomi ~]# miiocli vacuum --ip 192.168.0.141 --token 12312312312312312312312332132131 info Model: roborock.vacuum.s5 Hardware version: Linux Firmware version: 3.5.7_002008 Network: {'localIp': '192.168.0.141', 'mask': '255.255.255.0', 'gw': '192.168.0.253\n127.0.0.1'} AP: {'ssid': 'Gdna', 'bssid': '1D:89', 'rssi': -51}
Die Antwort auf das Hello scheint zu kommen, ansonsten kommen keine Antworten an den LBS.
Da alle anderen Programme funktionieren ist das sehr eigenartig.
Einen Kommentar schreiben:
-
@horst12: so "sauber" kommuniziert der Roboter nicht. Hier sind 3 Retries, bevor der antwortet. Der muss normalerweise nach dem ersten hello antworten.
Du kannst mal schauen, ob der Baustein bei dir funktioniert, wenn du den Roboter mit dem RCC weckst. Wenn das so ist, dann könnten wir nochmal was mit dem LBS probieren.
Einen Kommentar schreiben:
-
Nee, wir haben hier keine Haustiere - jedenfalls keine, die im Haus leben
Die Kamera ist nicht 100%ig, aber ist aufjedenfall besser wie ohne. Auch mit Kamera fährt der manchmal gegen Sachen, wo man sich fragt, was das soll, aber es ist besser wie ohne.
Ich hab da auch schon einige Sachen dem Support gemeldet, mal schauen, ob die das entsprechend einbinden können.
Ich würde aber kein "UVP" zahlen, ich hatte mit shoop-cashback und rakuten points das Teil für knapp 500 Euro vor 2/3 Wochen bekommen. Aber bei rakuten gibts den aktuell nicht.
Einen Kommentar schreiben:
-
Ich habe Testvideos gesehen, da wurde es teilweise erkannt und teilweise nicht. 100% darauf verlassen kann man sich darauf nicht, es gibt nur mehr Sicherheit. Vor allem ist ein Haufen einer Katze ja auch nicht so groß, wie vom Hund. Bei der Kantenlänge muss das erstmal als solches und nicht als Schmutz erkannt werden.
Einen Kommentar schreiben:
-
Moin,Zitat von sipiyou Beitrag anzeigenIch hab hier den "S5 White" und S6 MaxV laufen, beide laufen und solange die original SW auf dem Roboter ist, sollten alle Xiaomi Roboroc funktionieren.
Auch, wenn ich anfangs vom S6 MaxV leicht enttäuscht war, würde ich den S6 MaxV empfehlen, die Kamera erkennt schon einige Hindernisse und der Roboter bleibt weniger hängen.
du hast nicht rein zufällig eine Katze? Ich bin auch am Überlegen mir den S6 MaxV zu holen da mein Sauger jetzt bereits das zweite Mal gewisse Ausscheidungen quer im Erdgeschoss mit geschliffen hat. Wäre halt die Frage ob er sowas auch erkennen würde. Ist jedenfalls jedes Mal eine Sauerei...
Grüße
Einen Kommentar schreiben:


Einen Kommentar schreiben: