Ankündigung

Einklappen
Keine Ankündigung bisher.

Xiaomi / Roboroc Baustein 19001929

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fisch3009
    antwortet
    Bei mir geht der Baustein an einem Roborock S50 Firmware 2020 mit Valetudo RE (0.98) jetzt auch. Vielen Dank für die Anpassung!

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    @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.

    Einen Kommentar schreiben:


  • woda
    antwortet
    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:


  • sipiyou
    antwortet
    Interessant

    Hast du Lust was auszuprobieren ?

    Wenn ja, änder bitte die Funktion

    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()));

    ab zu:

    PHP-Code:
    public function getCurrentTimestamp () {

    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.

    Einen Kommentar schreiben:


  • woda
    antwortet
    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.
    Code:
    #you can add your server line by line
    192.168.0.253
    Den Roboter von UTC auf CEST umstellen:
    Code:
    cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime
    echo 'Europe/Vienna' > /mnt/data/rockrobo/timezone
    reboot
    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.

    Gruß
    Wolfgang

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    @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:


  • woda
    antwortet
    Das erhöhen des Timeouts bringt leider nichts, ausser einer längeren Laufzeit bis zum Fehler.

    Einen Kommentar schreiben:


  • sipiyou
    antwortet

    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;
    }

    Einen Kommentar schreiben:


  • Fritze484
    antwortet
    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:


  • woda
    antwortet
    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?

    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
    Ich hab auf der EDOMI Maschine auch mal Python-Miio installiert und getestet,
    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}
    Das RRCC Tool geht auch ohne Probleme.

    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:


  • sipiyou
    antwortet
    @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:


  • sipiyou
    antwortet
    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:


  • skyacer
    antwortet
    Okay. Jede kleine Chance ist besser als keine. ;-)

    Einen Kommentar schreiben:


  • Marino
    antwortet
    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:


  • skyacer
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    Ich 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.
    Moin,

    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:

Lädt...
X