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.
    • N
      nathan1312 last edited by

      Hallo, wollte nochmal wegen meines Problems nachfragen.

      Mein S50 führt bei einem Kommando über iobroker keine zonenreinigung mehr durch. Die Zone wird in der App korrekt in der Karte angezeigt, jedoch fährt der robo ca zwei Sekunden nach dem Start wieder in die Station zurück und meldet "some unreached areas were not cleaned".

      Bei einem Start über die app klappt die zonenreinigung problemlos. Weil mir damals niemand helfen konnte hab ich's auf die Firmware geschoben (hatte gerade ein Update gemacht). Jetzt kam gerade eine neue Version heraus jedoch bleibt der fehler bestehen.

      Hat noch jemand dieses Problem und weiß Abhilfe?

      VG

      Gesendet von meinem SM-T820 mit Tapatalk

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

        Welche Version vom Vacuum Adapter hast du im ioBroker installiert?

        Vor der Version 1.1.3 gab es einen Fehler im Adapter.

        Gruß

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

          Eine Frage.

          Das Vacuum Widget träg immer wider selbständig die Daten für Saugstufe und Vacuum Suchen ein.

          Kann man das umgehen?

          Grüsse

          1 Reply Last reply Reply Quote 0
          • N
            nathan1312 last edited by

            @BuZZy:

            Welche Version vom Vacuum Adapter hast du im ioBroker installiert?

            Vor der Version 1.1.3 gab es einen Fehler im Adapter.

            Gruß ` Hallo, danke für die Rückmeldung.

            Hab die Adapter Version 1.1.5 installiert. Der robo läuft mit der Firmware 3.3.9_001720.

            Die Probleme hab ich seit dem Update wo die Speicherung der Karte eingeführt wurde. Hab auch schon mit und ohne kartenspeicherung probiert. Geht aber beides nicht…

            Hast du noch ne andere Idee?

            Gesendet von meinem SM-T820 mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • N
              nathan1312 last edited by

              Ach so, der robo läuft noch über den server "mainland china". Das musste man damals so einrichten. Mittlerweile hab ich schon oft gelesen, dass auch der europäische Server funktionieren soll.

              Könnte es daran liegen?

              Hab noch andere Komponenten über die mihome app laufen (bewegungsmelder, fensterkontakte). Weiß jemand ob die auch mit dem europäischen Server laufen?

              Gesendet von meinem SM-T820 mit Tapatalk

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

                Könnte mir vorstellen dass es mit dem Speichern der Karte zusammenhängt.. Ganz sicher dass die Koordinaten korrekt sind die du in iobroker einträgst?

                Kann es sein das auf der Karte eine Wand irgendwo zwischen Ausgangspunkt und Koordinaten-Zielpunkt liegt oder so?

                Gruß

                1 Reply Last reply Reply Quote 0
                • N
                  nathan1312 last edited by

                  @BuZZy:

                  Könnte mir vorstellen dass es mit dem Speichern der Karte zusammenhängt.. Ganz sicher dass die Koordinaten korrekt sind die du in iobroker einträgst?

                  Kann es sein das auf der Karte eine Wand irgendwo zwischen Ausgangspunkt und Koordinaten-Zielpunkt liegt oder so?

                  Gruß ` Man sieht in der App ja die Zone. Auch wenn man die zonenreinigung über iobroker startet. Diese ist vollkommen korrekt platziert.

                  Ich verstehe nicht ganz was du mit der angesprochenen Wand meinst. Der robo könnte die Zone auf jeden Fall erreichen. Muss nur um zwei ecken fahren. Wenn er es denn mal versuchen und nicht nach zwei Sekunden aufgeben würde.

                  Das speichern der Karte hab ich testweise auch mal wieder ausgeschaltet. Hat aber nichts gebracht. Schön ist dabei natürlich, dass das lästige kartendrehen dann nicht mehr auftritt…

                  Gesendet von meinem SM-T820 mit Tapatalk

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

                    Wenn die Zone korrekt eingezeichnet wird in der App kann das Problem nicht am ioBroker liegen - da die Koordinaten dann ja korrekt übermittelt wurden (wenn die Zone dann korrekt in der App auftaucht). Und mehr macht ioBroker nicht außer die Koordinaten an den Sauger zu senden..

                    Wenn der Sauger dann von sich aus sagt "Nä, das schaffe ich nicht,.." können wir nichts machen.

                    Hast du mal andere Zonen versucht anzusteuern?

                    Tritt das bei allen Zonen auf?

                    Gruß

                    1 Reply Last reply Reply Quote 0
                    • N
                      nathan1312 last edited by

                      Aaaargh, ich hab's gefunden.

                      Ich hatte mir ein Script geschrieben, welches meine Zonen in Abhängigkeit vom Ursprung definiert. So wollte ich durch einfaches "umschalten" eines schalters auf kartendrehungen reagieren. Einfach drücken und schon werden sämtliche Koordinaten meiner Zonen auf Basis ihres abstands vom Ursprung neu berechnet. Das hat auch wunderbar geklappt nur hatte ich nicht bedacht, dass ja bei einer Drehung um 180° die resultierenden x1/x2 und y1/y2 vertauscht werden müssen. Die Zone wurde also nicht durch untenlinks/obenrechts definiert sondern durch obenrechts/untenlinks (quasi invertiert).

                      Interessant ist, dass die app zwar diese Eingabe korrekt verwerten d.h. anzeigen kann, der robo allerdings damit nicht klar kommt.

                      Ich werde das Script dementsprechend erweitern, dann sollte es wie gewünscht funktionieren. Bei Interesse kann ich das Script gerne dann hier veröffentlichen, wenn es weiterhin Probleme mit der kartendrehung gibt. Ist wie gesagt keine voll automatische Lösung aber man kann mit einem Tastendruck auf eine Drehung reagieren.

                      Danke dir nochmal Buzzy für deine Gedanken!

                      Gesendet von meinem SM-T820 mit Tapatalk

                      1 Reply Last reply Reply Quote 0
                      • M
                        maxpd last edited by

                        Ich habe mir die Zonenkoordinaten besorgt und diese im Scenen Adapter eingetragen, sowie diesen mit Clean a Zone verbunden.

                        Wenn ich die Testtaste im Scenen Adapter drücke, läuft der Staubsauger direkt los. Wenn ich es allerdings über Befehle starte, tut er es nicht.

                        Was fehlt mir noch?
                        6072_2019-02-07_21_14_00-192.168.178.53_8081_adapter_scenes_tab.html.png
                        6072_2019-02-07_21_14_44-objects_-_iobroker.png
                        6072_2019-02-07_21_15_38-javascript_-_iobroker.png

                        1 Reply Last reply Reply Quote 0
                        • N
                          nathan1312 last edited by

                          Hi, kommen denn deine Befehle im Datenpunkt IFTTT.value an? Hast du das geprüft?

                          1 Reply Last reply Reply Quote 0
                          • M
                            maxpd last edited by

                            Ich glaube es klappt nu. Der Staubsauger war im Standby..

                            Kann meinen Beitrag leider nicht löschen.

                            1 Reply Last reply Reply Quote 0
                            • D
                              dali3 @trollmar last edited by

                              @klassisch said in [Frage] Xiaomi Vacuum cleaner:

                              /*   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"

                              Hallo zusammen, gibt es eine neue Liste?
                              Ich bekomme während der Reinigung folgenden Meldung (mihome-vacuum.0.info.state) --> Zone cleaning (17).

                              Leider ist im neuem Forum die Suche "schwierig".

                              Danke!

                              K B 2 Replies Last reply Reply Quote 0
                              • K
                                klassisch Most Active @dali3 last edited by

                                @dali3 Ich selbst habe noch das Modell 1 und keine Frimwareupdates durchgeführt. Sorry!

                                1 Reply Last reply Reply Quote 0
                                • C
                                  Coffeelover last edited by

                                  Hallo in die Runde!
                                  Ich habe in nodered ein Skript, welches den Robbie via App Command zum Räume reinigen schicke. Das blöde: der Befehl kommt zwar im iobroker an, startet aber nicht. Syntaktisch ist er aber korrekt. Wenn ich selbst in den Editor in iobroker gehe und den bestehenden String nur mit Enter bestätige ist alles fein und Robbie läuft los. Was mache ich falsch?
                                  Vg

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

                                    ich muss auch noch mal in die runde frage..
                                    gibt es mittlerweile eine lösung zu dem problem, dass sich die karte immer um 90 grad dreht bei dem vacuum 1?
                                    würde gerne endlich mal die zonenreinigung in iobroker einrichten.

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      Bluelightcrew @dali3 last edited by

                                      @dali3

                                       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";
                                      1 Reply Last reply Reply Quote 0
                                      • juergen2908
                                        juergen2908 @Nitro25NOH last edited by

                                        @Nitro25NOH Wie hast du genau in deiner VIS gemacht, damit du einfach nur die Zonen anhacken musst? Lg Jürgen

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

                                          @juergen2908

                                          VIS alleine schafft das nicht. Wenn du immer nur eine Zone reinigen möchtest, kannst du per VIS Button den Befehl in den State "mihome-vacuum.0.control.zoneClean" schreiben. Ansonsten musst du das per Script zusammen basteln:

                                          Zwischenablage01.jpg

                                          Diese View steuert das Script.

                                          var IDRobo      =   "mihome-vacuum.0.control.X_send_command"/*send command*/,
                                              IDFan       =   "mihome-vacuum.0.control.fan_power"/*Suction power*/,
                                              IDGoTo      =   "mihome-vacuum.0.control.goTo"/*Go to point*/,
                                              IDZoneClean =   "mihome-vacuum.0.control.zoneClean"/*Clean a zone*/,
                                              IDCarpet    =   "mihome-vacuum.0.control.carpet_mode"/*Carpet mode*/,
                                              IDStartClean=   'mihome-vacuum.0.control.start'/*Start vacuum*/,
                                              Zone1       =   "[26100,24500,29500,29000,1]", // Wohnzimmer incl. Teppich bis Terrasse
                                              Zone2       =   "[22500,25200,26000,29000,1]", // Wohnzimmer Teppichkante bis Tür
                                              Zone3       =   "[22500,25200,25900,26350,1]",// Wohnzimmer nur Laufbereich bis Teppichkante
                                              Zone3a      =  "[22500,25500,23100,28500,1]",// Wohnzimmer nur Laufbereich vor der Küche
                                              Zone4       =   "[18600,27050,22500,28600,1]", // Küche komplett
                                              Zone4a      =   "[18600,27250,22250,28600,1]", // Küche Laufbereich
                                              Zone5       =   "[18500,24800,22500,26650,1]", // Flur komplett
                                              Zone6       =   "[21400,25000,22500,26700,1]", // Flur nur bis Treppe
                                              ZoneP       =   "app_goto_target; [20400,27600]", // vor dem Mülleimer parken
                                              Zone        =   "",
                                              Timertaeglich,
                                              Logging     =   true,
                                              tag         =   new Date().getDay(), 
                                                        
                                              Urlaub, timer, Gaeste, Anwesen, Verlass, KinderD, Tuer, Morjens, Morjenslos, TuerSchlaf, Feier      =   false;
                                              
                                          // setState(IDRobo, "app_zoned_clean;[" + Zone4a + "]"); // Zone testen
                                          // setState(IDRobo, ZoneP);                             // Zielpunkt testen
                                          
                                          /*app_zoned_clean;[[27200,28800,28300,32700,1]] unten links, oben rechts, Anzahl */
                                          
                                          /* Zusammensetzen der Zonen für die Reinigung */
                                          function RZone(){
                                                  Zone        =   "";        
                                                  if (getState("javascript.0.Roborock.Zone1").val) Zone = Zone1;
                                                  if (getState("javascript.0.Roborock.Zone2").val && Zone !=="") Zone = Zone + "," + Zone2;
                                                  if (getState("javascript.0.Roborock.Zone2").val && Zone ==="") Zone = Zone2;
                                                  if (getState("javascript.0.Roborock.Zone3").val && Zone !=="") Zone = Zone + "," + Zone3;
                                                  if (getState("javascript.0.Roborock.Zone3").val && Zone ==="") Zone = Zone3;
                                                  if (getState("javascript.0.Roborock.Zone4").val && Zone !=="") Zone = Zone + "," + Zone4;
                                                  if (getState("javascript.0.Roborock.Zone4").val && Zone ==="") Zone = Zone4;
                                                  if (getState("javascript.0.Roborock.Zone5").val && Zone !=="") Zone = Zone + "," + Zone5;
                                                  if (getState("javascript.0.Roborock.Zone5").val && Zone ==="") Zone = Zone5;
                                              
                                             Zone= "app_zoned_clean;[" + Zone + "]";
                                          }
                                          
                                              
                                          /* aktuelle Randbedingungen abfragen */
                                          function VarStatus(){
                                              Urlaub  = getState("hm-rega.0.2638"/*Urlaub*/).val;
                                              Gaeste  = getState("hm-rega.0.3469"/*Gaeste*/).val;
                                              Anwesen = getState("hm-rega.0.7028"/*Anwesenheit*/).val;
                                              Verlass = getState("hm-rega.0.13102"/*Verlassen*/).val;
                                              KinderD = getState("hm-rega.0.25633"/*Kinderdienst*/).val;
                                              Tuer    = getState("hm-rpc.0.LEQ1468275.1.STATE"/*Wohnzimmer Kontakt Tuer.STATE*/).val;
                                              Feier   = getState("feiertage.0.heute.boolean"/*Feiertag heute?*/).val;
                                              tag     = new Date().getDay();
                                              Morjens = getState("javascript.0.Roborock.Morjens").val;
                                          }
                                          
                                          
                                          /* Zone auf Abruf in Vis */
                                          on({id: new RegExp('javascript\\.0\\.Roborock\\.Zone1' + "|" + 'javascript\\.0\\.Roborock\\.Zone2' + "|" + 'javascript\\.0\\.Roborock\\.Zone3' + "|" + 'javascript\\.0\\.Roborock\\.Zone4' + "|" + 'javascript\\.0\\.Roborock\\.Zone5'), val: true}, function (obj) {
                                              
                                              if (timer) clearTimeout(timer);
                                              timer = setTimeout(function () {
                                                  RZone();
                                                  setState(IDFan, 77);
                                                  setState(IDCarpet, true);
                                                  setState(IDRobo, Zone);
                                                  setState("javascript.0.Roborock.Zone1", false);
                                                  setState("javascript.0.Roborock.Zone2", false);
                                                  setState("javascript.0.Roborock.Zone3", false);
                                                  setState("javascript.0.Roborock.Zone4", false);
                                                  setState("javascript.0.Roborock.Zone5", false);
                                                  }, 10000);
                                          });
                                          
                                          
                                          
                                          /* tägliche Reinigung alles*/
                                          
                                          function TimerSetzen(value) {
                                              value   = value.split(":");
                                          var time    = value[1] + " " + value[0] + " * * *"; 
                                              log("täglicher Zeit: " + time);
                                              Timertaeglich   =   schedule(time, function (){
                                                  Reinigungtaegl ();
                                              });
                                          };
                                          
                                          on({id: 'javascript.0.Roborock.Timer.Time', change: "ne"}, function (obj) {
                                              var value = obj.state.val;
                                              var oldValue = obj.oldState.val;
                                              TimerSetzen(value);
                                              clearSchedule(Timertaeglich);
                                          });
                                          
                                          TimerSetzen(getState('javascript.0.Roborock.Timer.Time').val);
                                          
                                          function Reinigungtaegl() {
                                              VarStatus();
                                              
                                              if (!Urlaub && getState("javascript.0.Roborock.Timer." + tag).val) {
                                                  setState(IDFan, 77);
                                                  setState(IDCarpet, true);
                                                  setState(IDStartClean, true);
                                                  sendTo("pushover.0", {
                                                          message:  'tägliche Reinigung!', // mandatory - your text message
                                                          title:    'Roborock', // optional  - your message's title, otherwise your app's name is used
                                                          priority: -1,});
                                              }
                                          };
                                          
                                          /* früh den Laufbereich */
                                          schedule("30 4 * * 1-5", function () {
                                              Morjenslos = true;
                                              });
                                          
                                          schedule("30 8 * * 1-5", function () {
                                              Morjenslos = false;
                                              });
                                          
                                          on({id: 'mihome.0.devices.magnet_158d0002bf95de.state'/*Is opened*/, val: false}, function (obj) {    
                                              VarStatus();
                                              MorjensReinigung();
                                          });
                                          
                                          function MorjensReinigung(){
                                              if (!Urlaub && !Feier && !Tuer && !Gaeste && Morjens && Morjenslos) {
                                                  Zone        =   "app_zoned_clean;[" + Zone4a + "," + Zone3a + "," + Zone3 + "," + Zone6 + "]";
                                                  Morjenslos = false;
                                                  setState(IDFan, 60);
                                                  setState(IDCarpet, false);
                                                  setState(IDRobo, Zone);
                                              }
                                          }
                                          
                                          
                                          createState('Roborock.Timer.1', false,{type: "boolean",name:"Montag",  role: "Montag"});
                                          createState('Roborock.Timer.2', false,{type: "boolean",name:"Dienstag",  role: "Dienstag"});
                                          createState('Roborock.Timer.3', false,{type: "boolean",name:"Mittwoch",  role: "Mittwoch"});
                                          createState('Roborock.Timer.4', false,{type: "boolean",name:"Donnerstag",  role: "Donnerstag"});
                                          createState('Roborock.Timer.5', false,{type: "boolean",name:"Freitag",  role: "Freitag"});
                                          createState('Roborock.Timer.Time', "14:00:00",{type: "string",name:"Startzeit",  role: "Startzeit"});
                                          createState('Roborock.Zone1', false,{type: "boolean",name:"Zone 1",  role: "Wz incl Teppich bis Terrasse"});
                                          createState('Roborock.Zone2', false,{type: "boolean",name:"Zone 2",  role: "Wz ab Teppich bis Tür"});
                                          createState('Roborock.Zone3', false,{type: "boolean",name:"Zone 3",  role: "Wz Laufbereich"});
                                          createState('Roborock.Zone4', false,{type: "boolean",name:"Zone 4",  role: "Küche komplett"});
                                          createState('Roborock.Zone5', false,{type: "boolean",name:"Zone 5",  role: "Flur komplett"});
                                          createState('Roborock.Zone6', false,{type: "boolean",name:"Zone 6",  role: "Flur vor der Treppe"});
                                          createState('Roborock.Morjens', true,{type: "boolean",name:"Morjens reinigen",  role: "Morjens reinigen"});
                                          
                                          

                                          Man kann die Zonen wählen, alles reinigen, die tägliche Reinigung einstellen...

                                          Ich habe schon ein paar Dinge rausgelöscht, morgens reinigen triggert zum Beispiel die Schlafzimmertür, erst wenn der Erste aufgestanden ist und diese geschlossen wird, düst er los...

                                          Grüße

                                          Brati

                                          F 1 Reply Last reply Reply Quote 0
                                          • S
                                            sabphil22 last edited by sabphil22

                                            Hi, ich hab ein Problem bei der Zonenreinigung. Einige Zonen werden ganz normal angesteuert und werden mir auch richtig in der App angezeigt. Bei zwei Zimmer, die nebeneinander liegen wird keine Zonen in der App angezeigt. Er fängt dann mit einer kompletten Reinigung an.
                                            Hab schon probiert die Zimmer in mehrere Zonen zu unterteilen um nicht über die Wände zu kommen. Ist es richtig wenn ich die einzelnen Zonen mit Komma und Leerzeichen trenne?

                                            Grüße Philippe

                                            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

                                            689
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            204
                                            2196
                                            782624
                                            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