Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Frage] Xiaomi Vacuum cleaner

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Frage] Xiaomi Vacuum cleaner

    This topic has been deleted. Only users with topic management privileges can see it.
    • foxriver76
      foxriver76 Developer last edited by

      Moin,

      gibt es mittlerweile eine valide Vorgehensweise, dass der Roborock die Map nicht rotiert?

      Ich habe seit gestern einen und er hat nach der ersten Reinigung eine brauchbare Map erstellt gehabt. Nachdem ich ihn dann zu einem Punkt geschickt habe, hat er die Karte rotiert und die Koordinaten waren somit natürlich auch anders.

      Habe in dem Thread gelesen, dass man nur Zonenreinigung machen soll, damit er die Map nicht dreht. Nur er dreht sie ja schon, wenn ich ihn nur zu einem Punkt sende, was in meinem Fall schon eine wünschenswerte Funktion wäre.

      beste Grüße

      foxriver

      1 Reply Last reply Reply Quote 0
      • R
        reini last edited by

        @foxriver76:

        Moin,

        gibt es mittlerweile eine valide Vorgehensweise, dass der Roborock die Map nicht rotiert?

        Ich habe seit gestern einen und er hat nach der ersten Reinigung eine brauchbare Map erstellt gehabt. Nachdem ich ihn dann zu einem Punkt geschickt habe, hat er die Karte rotiert und die Koordinaten waren somit natürlich auch anders.

        Habe in dem Thread gelesen, dass man nur Zonenreinigung machen soll, damit er die Map nicht dreht. Nur er dreht sie ja schon, wenn ich ihn nur zu einem Punkt sende, was in meinem Fall schon eine wünschenswerte Funktion wäre.

        beste Grüße

        foxriver `

        ja gibt es, siehe meinen Post (zuerst normale Reinigung für paar sec. starten (start vacuum, pause vacuum), danach GoTo oder direkt Zonenreinigung ausführen), funktioniert bei mir täglich seit 1,5 Monaten 😄

        viewtopic.php?f=23&t=4898&start=1680#p147467

        1 Reply Last reply Reply Quote 0
        • T
          trollmar last edited by

          Hi,

          als ich heute nach hause kam schlief mein "Robert" im Flur.

          Die Bürsten waren blockiert da er etwas eingezogen hatte.

          In welchem STATE wird das ausgegeben? Würde mir das dann gerne via Telegram Adapter schicken lassen.

          LG

          D 1 Reply Last reply Reply Quote 0
          • K
            klassisch Most Active last edited by

            /*   List of states
            			1 unknown state
            			2 sleep no Charge
            			3 sleep
            			5 cleaning
            			6 returning home
            			7 manual mode
            			8 charging
            			10 paused
            			11 spot cleaning
            			12 Error
            */			
            
            

            Wenn sich meiner verhakt, gibts die 12 und dann sende ich eine email mit "Help"

            1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active last edited by

              und das ist die Error Liste:

                  var v_Error = getState('mihome-vacuum.0.info.error').val; 
                  var v_Text = "";
                  if (v_Error === 0) v_Text = "no Error";
                  if (v_Error === 1) v_Text = "Laser distance sensor error";
                  if (v_Error === 2) v_Text = "Collision sensor error";
                  if (v_Error === 3) v_Text = "Wheels on top of void, move robot";
                  if (v_Error === 4) v_Text = "Clean hovering sensors, move robot";
                  if (v_Error === 5) v_Text = "Clean main brush";
                  if (v_Error === 6) v_Text = "Clean side brush";
                  if (v_Error === 7) v_Text = "Main wheel stuck?";
                  if (v_Error === 8) v_Text = "Device stuck, clean area";
                  if (v_Error === 9) v_Text = "Dust collector missing";
                  if (v_Error === 10) v_Text = "Clean filter";
                  if (v_Error === 11) v_Text = "Stuck in magnetic barrier";
                  if (v_Error === 12) v_Text = "Low battery";
                  if (v_Error === 13) v_Text = "Charging fault";
                  if (v_Error === 14) v_Text = "Battery fault";
                  if (v_Error === 15) v_Text = "Wall sensors dirty, wipe them";
                  if (v_Error === 16) v_Text = "Place me on flat surface";
                  if (v_Error === 17) v_Text = "Side brushes problem, reboot me";
                  if (v_Error === 18) v_Text = "Suction fan problem";
                  if (v_Error === 19) v_Text = "Unpowered charging station";
                  setState("javascript.0.Status.Geräte.Mihome_Text_Error", v_Text);
              
              1 Reply Last reply Reply Quote 1
              • bahnuhr
                bahnuhr Forum Testing Most Active last edited by

                und hier das ganze Script inkl. telegram und Sound-Ansage:

                // Error, Text in Variable schreiben ----------------------------------------------------------------------------------------------
                
                on({id: "mihome-vacuum.0.info.error", change: "ne"}, function(obj){     
                    var v_Error = getState('mihome-vacuum.0.info.error').val; 
                    var v_Text = "";
                    if (v_Error === 0) v_Text = "no Error";
                    if (v_Error === 1) v_Text = "Laser distance sensor error";
                    if (v_Error === 2) v_Text = "Collision sensor error";
                    if (v_Error === 3) v_Text = "Wheels on top of void, move robot";
                    if (v_Error === 4) v_Text = "Clean hovering sensors, move robot";
                    if (v_Error === 5) v_Text = "Clean main brush";
                    if (v_Error === 6) v_Text = "Clean side brush";
                    if (v_Error === 7) v_Text = "Main wheel stuck?";
                    if (v_Error === 8) v_Text = "Device stuck, clean area";
                    if (v_Error === 9) v_Text = "Dust collector missing";
                    if (v_Error === 10) v_Text = "Clean filter";
                    if (v_Error === 11) v_Text = "Stuck in magnetic barrier";
                    if (v_Error === 12) v_Text = "Low battery";
                    if (v_Error === 13) v_Text = "Charging fault";
                    if (v_Error === 14) v_Text = "Battery fault";
                    if (v_Error === 15) v_Text = "Wall sensors dirty, wipe them";
                    if (v_Error === 16) v_Text = "Place me on flat surface";
                    if (v_Error === 17) v_Text = "Side brushes problem, reboot me";
                    if (v_Error === 18) v_Text = "Suction fan problem";
                    if (v_Error === 19) v_Text = "Unpowered charging station";
                    setState("javascript.0.Status.Geräte.Mihome_Text_Error", v_Text);
                
                    if (v_Error > 0) {
                        log("Auslöser: Mihome Staubsauger hat Error !");
                        sendTo('telegram', "Achtung, Achtung! \nDer Mihome Staubsauger hat folgenden Error:\n" + v_Text);  
                        View_change ('Geraete', 0); 
                        //Sound
                            var request = require ('request');
                            request('http://192.168.243.76:50000/track=tng_red_alert2.wav');  
                            setTimeout(setState('sayit.0.tts.text', "Achtung, Achtung! Der Robo Staubsauger hat Error"), 5000);
                        View_change ('Titel', 30000); 
                    }
                });
                
                
                1 Reply Last reply Reply Quote 0
                • T
                  trollmar last edited by

                  @klassisch:

                  /*   List of states
                  			1 unknown state
                  			2 sleep no Charge
                  			3 sleep
                  			5 cleaning
                  			6 returning home
                  			7 manual mode
                  			8 charging
                  			10 paused
                  			11 spot cleaning
                  			12 Error
                  */			
                  
                  

                  Wenn sich meiner verhakt, gibts die 12 und dann sende ich eine email mit "Help" `

                  Danke!!!!

                  1 Reply Last reply Reply Quote 0
                  • B
                    Brati last edited by

                    Mit PushOver und verschiedenen Prioritäten so gelöst (den Error gleich auslesen hatte nicht funktioniert, weil der State nicht schnell genug wechselte, somit kommt erst "Fehler" und danach der eigentliche Fehler):

                    /* Status Pushen */
                    on({id: "mihome-vacuum.0.info.state"/*Vacuum state*/, change: "ne"}, function (obj) {
                    
                        nachricht = obj.state.val;
                        prio    = -1;
                        betreff = "Roborock";
                        instance = 0;
                        switch (nachricht) {
                            case 2:
                                nachricht = "gehe Schlafen ohne Laden!";
                                break; 
                            case 3:
                                nachricht = "gehe Schlafen!";
                                break;         
                            case 6:
                                nachricht = "Weg zur Ladestation!";
                                prio = -2;
                                break;  
                            case 8:
                                nachricht = getState("mihome-vacuum.0.info.cleanedarea"/*Cleaned area*/).val +
                                            "m² in " +
                                            getState("mihome-vacuum.0.info.cleanedtime"/*Cleaning time*/).val +
                                            "min. Ladestation erreicht!";
                                break;
                            case 12:
                                betreff = "Roborock - Error!";
                                prio = -2;
                                nachricht   = "wird ausgelesen!";
                                break;
                            case 16:
                                nachricht = "GoTo Point!";
                                prio = -2;
                                break;
                            case 17:
                                nachricht = "In Zonen Reinigung!";
                                prio = -2;
                                break; 
                            default:
                                nachricht = "Status -"  + nachricht + "- unbekannt!";
                        }
                    
                        sendTo("pushover." + instance, {
                            message:  nachricht, // mandatory - your text message
                            title:    betreff, // optional  - your message's title, otherwise your app's name is used
                            priority: prio,});
                    
                    });
                    
                    on({id: "mihome-vacuum.0.info.error"/*Error*/, change: "ne"}, function (obj) {
                        betreff = "Roborock - Error!";
                        prio = 0;
                        instance = 2;
                    
                        switch (getState("mihome-vacuum.0.info.error"/*Error*/).val) {
                                        case 0:
                                        nachricht = "No Error";
                                        break;  
                                    case 1:
                                        nachricht = "Laser distance sensor error";
                                        break;
                                    case 2:
                                        nachricht = "Collision sensor error";
                                        break;
                                    case 3:
                                        nachricht = "Wheels on top of void, move robot";
                                        break;
                                    case 4:
                                        nachricht = "Clean hovering sensors, move robot";
                                        break;
                                    case 5:
                                        nachricht = "Clean main brush";
                                        break;
                                    case 6:
                                        nachricht = "Clean side brush";
                                        break;
                                    case 7:
                                        nachricht = "Main wheel stuck?";
                                        break;
                                    case 8:
                                        nachricht = "Device stuck, clean area";
                                        break;
                                    case 9:
                                        nachricht = "Dust collector missing";
                                        break;
                                    case 10:
                                        nachricht = "Clean filter";
                                        break;
                                    case 11:
                                        nachricht = "Stuck in magnetic barrier";
                                        break;
                                    case 12:
                                        nachricht = "Low battery";
                                        break;
                                    case 13:
                                        nachricht = "Charging fault";
                                        break;
                                    case 14:
                                        nachricht = "Battery fault";
                                        break;
                                    case 15:
                                        nachricht = "Wall sensors dirty, wipe them";
                                        break;
                                    case 1:
                                        nachricht = "Place me on flat surface";
                                        break;
                                    case 1:
                                        nachricht = "Side brushes problem, reboot me";
                                        break;
                                    case 1:
                                        nachricht = "Suction fan problem";
                                        break;
                                    case 1:
                                        nachricht = "Unpowered charging station";
                                        break;
                                    case 1:
                                        nachricht = "Battery fault";
                                        break;
                                    default:
                                        nachricht = "Error - Status unbekannt!";
                                      }
                            sendTo("pushover." + instance, {
                            message:  nachricht, // mandatory - your text message
                            title:    betreff, // optional  - your message's title, otherwise your app's name is used
                            priority: prio,});
                    });
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • R
                      root_ last edited by

                      Ich gebe über vis und telegram aus das der Staubbehälter geleert werden soll. Das funktioniert sowert sehr gut aber die Methode gefällt mir noch nicht. Momentan gibt er alle 5x "Vacuum state=5" die Meldung aus. Da er aber auch, wenn er sich festgefahren hat und man ihn weiterschickt, wieder auf state5 geht kann es sein das man schon nach 2-3 Tagen die Meldung bekommt. Sinniger wär es zb alle 200-250qm Reinigungsfläche die Meldung auszugeben. Das bekomme ich aber nicht hin. Man müsste "mihome-vacuum.0.history.total_area" und "mihome-vacuum.0.info.cleanedarea" dazu berechnen. Irgendwie bin ich aber zu doof das umzusetzen. Hat jemand eine Idee?

                      1 Reply Last reply Reply Quote 0
                      • B
                        Brati last edited by

                        ungetestet:

                        createState('Roborock.DustHour', 0,{type: "number",name:"Nutzung Saugbehaelter in h",  role: "Nutzung Saugbehaelter in h"});
                        
                        on({id: "mihome-vacuum.0.info.cleanedarea", change: "ne"}, function (obj) {
                        
                            gesamt = getState("mihome-vacuum.0.info.cleanedarea"/*Cleaned area*/).val + getState("javascript.0.Roborock.DustHour").val;    
                            setState("javascript.0.Roborock.DustHour", gesamt);
                        
                            if (gesamt > 225) {
                                setState("javascript.0.Roborock.DustHour",0);
                                // und hier noch Push ergänzen    
                            }
                        
                        });
                        

                        Das sollte bei jeder Änderung des State "cleanedarea" den State "DustHour" nach oben zählen. Bis der Wert 225 erreicht ist, dann wird im if Bereich alles abgearbeitet und wieder auf 0 gesetzt.

                        Grüße

                        Brati

                        1 Reply Last reply Reply Quote 0
                        • L
                          ltsalvatore last edited by

                          @trollmar:

                          @klassisch:

                          /*   List of states
                          			1 unknown state
                          			2 sleep no Charge
                          			3 sleep
                          			5 cleaning
                          			6 returning home
                          			7 manual mode
                          			8 charging
                          			10 paused
                          			11 spot cleaning
                          			12 Error
                          */			
                          
                          

                          Wenn sich meiner verhakt, gibts die 12 und dann sende ich eine email mit "Help" `

                          Danke!!!! `

                          wie bekomme ich diese states im vis dargestellt..

                          das hier, scheint nicht so ganz zu funktionieren.

                          aktuell müsste der wert charging angezeigt weren, es wird jedoch unknown state angezeigt.
                          6497_screenshot_2018.06.27_16_29_41_001.jpg

                          1 Reply Last reply Reply Quote 0
                          • R
                            root_ last edited by

                            @Brati:

                            ungetestet:

                            createState('Roborock.DustHour', 0,{type: "number",name:"Nutzung Saugbehaelter in h",  role: "Nutzung Saugbehaelter in h"});
                            
                            on({id: "mihome-vacuum.0.info.cleanedarea", change: "ne"}, function (obj) {
                                
                                gesamt = getState("mihome-vacuum.0.info.cleanedarea"/*Cleaned area*/).val + getState("javascript.0.Roborock.DustHour").val;    
                                setState("javascript.0.Roborock.DustHour", gesamt);
                                
                                if (gesamt > 225) {
                                    setState("javascript.0.Roborock.DustHour",0);
                                    // und hier noch Push ergänzen    
                                }
                            
                            });
                            

                            Das sollte bei jeder Änderung des State "cleanedarea" den State "DustHour" nach oben zählen. Bis der Wert 225 erreicht ist, dann wird im if Bereich alles abgearbeitet und wieder auf 0 gesetzt.

                            Grüße

                            Brati `

                            Vielen Dank. Ich werde es gleich testen. 🙂

                            1 Reply Last reply Reply Quote 0
                            • R
                              root_ last edited by

                              Funktioniert leider nicht. Er addiert so bei jeder state Änderung den Wert zu dusthour. So kommt man dann bei 17qm real auf einen Wert von über 600. Man muss den cleanedaera wert quasi auslesen (qm) und so lange addieren bis 250 erreicht ist. Eine Reinigung ergibt bei uns ca 50qm. Danach wird der Wert cleanedarea wieder auf 0 gesetzt aber der Wert von dusthour muss bei 50 bleiben und dann bei der nächsten Reinigung weiterzählen. Ist doch nicht ganz so trivial. Andere Möglichkeit wäre bei der state Änderung „Returning home“ den cleandeaera Wert zu dusthour zu addieren.

                              1 Reply Last reply Reply Quote 0
                              • B
                                Brati last edited by

                                Ahh, stimmt er zählt ja den Wert bei der Reinigung nach oben, also wird alle 6s addiert. Das Problem ist aber, dass er Returning to Home auch annimmt, wenn er nur zu einem Punkt gefahren ist.

                                Dann müsste man addieren, wenn er in der Basis ist und der Wert sich geändert hat.

                                Ich mache mir mal Gedanken… Brauchen wir nur ein, zwei States mehr.

                                Soll der Stunden Zähler automatisch auf 0 gesetzt werden oder per vis? Ich glaube den Status "Staubbehälter entnommen" gibt es so nicht...

                                Grüße Brati

                                Von unterwegs gesendet...

                                1 Reply Last reply Reply Quote 0
                                • R
                                  root_ last edited by

                                  Hab jetzt mit Blocky hinbekommen 🙂
                                  5307_sauger250qm.png

                                  Nun hab ich nur noch eine Sache, wie bekomm ich in einem Objekt (Zahl) die Kommenstellen 2 stellig? Momentan sind da irgendwie 10 Stellen nach dem Komma.

                                  1 Reply Last reply Reply Quote 0
                                  • AlCalzone
                                    AlCalzone Developer last edited by

                                    Kenne den exakten Blockly-Aufbau nicht, aber so gehts:

                                    Zahl = Runden(Zahl * 100) / 100
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      root_ last edited by

                                      Hab es hinbekommen. Mit dem Block "runden" .

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        Altersrentner last edited by

                                        Hallo,

                                        Ich bin mir unsicher ob ich hier meine Frage beantwortet bekomme,

                                        oder ob ich einen neuen Betreff aufmachen soll.

                                        Es geht um das auslesen des Token für den Staubsauger S5 Roborock.

                                        Im ioBroker habe ich den mihome-vacuum.0 Adapter geladen.

                                        Zur Konfiguration benötige ich neben der IP den Token.

                                        Dazu habe ich das Mi Toolkit 1.6 auf meinen Win10 PC installiert.

                                        Java ist auf dem aktuellen Stand.

                                        Nach dem starten der Mi exe wird ein Backup erstell was auch entpackt wird.

                                        Leider wird nur die IP angezeigt und der Token nicht.

                                        im Netz habe ich die unterschiedlichsten Vorgehensweisen gefunden,

                                        aber keine brachte das gewünschte Ergebnis.

                                        In einem Beitrag habe ich gelesen, das sich der Token in der Datei

                                        miio2.db-journal befinden soll.

                                        Diese Datei habe ich gefunden nur wie wird diese geöffnet.

                                        Hat jemand eine Idee?

                                        Gruß Michael

                                        1 Reply Last reply Reply Quote 0
                                        • umbm
                                          umbm last edited by

                                          Ich habe das gleiche Problem letzte Woche lösen müssen, und es nur auf einem Weg geschafft:

                                          Die aktuelle Mi-App vom Android deinstalliert, und eine alte Version (bei mir war es 5.0.19) vom apk-Mirror installiert.

                                          Davon dann das Backup nochmal erstellt nachdem der roborock eingebunden war und mit dem Tool den Token auslesen lassen. Nur so hat es funktioniert.

                                          Danach have ich dann wieder die aktuelle Version der Mi-App aus dem Playstore installiert.

                                          Viel Erfolg…

                                          Nachtrag:

                                          Die mui2.db lässt sich mit einem Mysql-Viewer öffnen, allerdings ist der Token dort leer und wird nicht angezeigt, wenn das Backup aus der aktuellen Mi-App erstellt wurde.

                                          1 Reply Last reply Reply Quote 0
                                          • Meistertr
                                            Meistertr Developer last edited by

                                            @umbm:

                                            Ich habe das gleiche Problem letzte Woche lösen müssen, und es nur auf einem Weg geschafft:

                                            Die aktuelle Mi-App vom Android deinstalliert, und eine alte Version (bei mir war es 5.0.19) vom apk-Mirror installiert.

                                            Davon dann das Backup nochmal erstellt nachdem der roborock eingebunden war und mit dem Tool den Token auslesen lassen. Nur so hat es funktioniert.

                                            Danach have ich dann wieder die aktuelle Version der Mi-App aus dem Playstore installiert.

                                            Viel Erfolg…

                                            Nachtrag:

                                            Die mui2.db lässt sich mit einem Mysql-Viewer öffnen, allerdings ist der Token dort leer und wird nicht angezeigt, wenn das Backup aus der aktuellen Mi-App erstellt wurde. ` Das 3infaxhste ist es die russische Version aus der readme zu installieren, so hast du immer den token..

                                            Gesendet von meinem Handy

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            688
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            204
                                            2196
                                            782612
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo