Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Adapter mihome-vacuum anpassungen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Adapter mihome-vacuum anpassungen

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

      Moin Zusammen!
      Hab jetzt auch eine Roborock S7 MaxV und bin nun auf diesen Adapter aufmerksam geworden. Die Grundfunktionen klappen soweit, auch die Karte wird geladen und ich kann sie in JARVIS darstellen.

      Problem
      Was ein wichtiger Anwendungsfall ist, wo ich noch Probleme habe ist die Reinigung mehrerer Räume. Ich kann über roomClean jeden Raum einzelnen starten und er wird auch in die Queue übernommen, sowie abgearbeitet. Ich sehe aber folgende Probleme damit:

      • Der Roboter spricht mit uns. Sobald ein Raum fertig ist, sagt er sei fertig und fährt zur Station. Dann merkt der Adapter, dass der nächste Raum kommandiert werden kann und tut das. > Nervig die unterschiedlichen Ansagen zw. jedem Raum
      • Passend dazu bekommen wir auch zig Meldungen über die App
      • Nach jedem Raum werden für Saug- und Wischstufe die Default-Werte vom Roboter selber gesetzt. D.h. wenn ich einen bestimmten Saug-/Wischmodus eingestellt habe geht dieser zw. jedem Raum verloren
      • In der App sehen wir nicht mehr, welche Räume wir ausgewählt hatten (Kosmetisch)

      Potentielle Lösung / Frage
      Gibt es eine Möglichkeit mit einem Befehl mehrere Räume zu kommandieren?
      Das würde m.E. alle genannten Probleme auf einmal lösen. Aktuell bin ich mind. unwissend wie das geht. Ich habe verstanden, dass multiRoomClean veraltet ist. Ggf. über einen manuellen Befehl? Falls über manuellen Befehl hat jemand ein Beispiel (bevor ich irgendwas kaputt mache 🙈)

      Vielen Dank im Voraus!!!

      D 1 Reply Last reply Reply Quote 0
      • D
        dirkhe Developer @RkcCorian last edited by

        @rkccorian mehrere Räume geht, habe ich hiet schon mehrfach beschrieben, stichwort timer anlegen, den musst du nicht aktivieren und ksnnst ihn manuell auslösen oder per alexa.

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

          @dirkhe Wenn ich es richtig verstehe...
          Möglichkeit 1: über Skript den passenden Timer DP erstellen und dann auf aktiv schalten?! Geht das, oder muss der Timer manuell über die Adapter-Konfig (und dann viele, für alle möglichen Raumkombinationen) erstellt werden.
          Möglichkeit 2 (Bevorzugt, falls möglich): Wie wäre die Alternative über SendTo? Wäre das folgende korrekt?

          sendTo("mihome-vacuum.0", 
              cleanRooms, 
              {rooms: "937001046387","937001046414","937001046404"}, 
              function (response) { /* do something with the result */}
          );
          

          Bzw. mein Ziel wäre Blockly
          c009c6e2-82d2-4594-be0c-f589fd052e2d-image.png

          Vielen Dank!!!

          Mein Ziel: Bereite gerade über iot Adapter die Alexa Integration vor und da können alle Kombinationen möglich sein. Wenn es klappt, kann ich es hier teilen 🙂

          D 1 Reply Last reply Reply Quote 0
          • D
            dirkhe Developer @RkcCorian last edited by

            @rkccorian das einfachste ist es über die konfguration einen timer anzulegen. Den weist du die räume zu und schaltetst den dadurch angelegten dp per "jetzt starten"
            Du kannst auch direkt die segmente über custom commsnd setzen
            Sendto sollte aucb funktionieren. Icb habe die syntax nicht im kopf, dafür gibt es die readme oder das forum

            R 1 Reply Last reply Reply Quote 0
            • R
              RkcCorian @dirkhe last edited by RkcCorian

              @dirkhe sagte in Adapter mihome-vacuum anpassungen:

              @rkccorian das einfachste ist es über die konfguration einen timer anzulegen. Den weist du die räume zu und schaltetst den dadurch angelegten dp per "jetzt starten"
              Da ich mehrere Räume habe müsst ich sehr viele Timer für alle Kombinationen, inkl. verschiedener Reihenfolge anlegen > Suche eine andere Lösung
              Du kannst auch direkt die segmente über custom commsnd setzen
              Hab in der Doku geschaut, aber nichts zu Multiroom gefunden
              Sendto sollte aucb funktionieren. Icb habe die syntax nicht im kopf, dafür gibt es die readme oder das forum
              Hab die Doku angeschaut, dort steht was von rooms is a comma separated String with enum.rooms.XXX Das verstehe ich leider nicht. Soweit ich den anderen Teil der Doku verstanden habe werden enums "nur" dazu genutzt, um den jeweiligen RoomIndex zu ermitteln. Daher wäre meine Vermutung, dass ich auch direkt den RoomIndex angeben kann.

              Bevor ich den folgenden Befehl abschicke... kann da was kaputt gehen? Vermute mal nicht, aber lieber einmal mehr fragen...

              sendTo("mihome-vacuum.0", 
                 "cleanRooms", 
                 { "rooms": '937001046387,937001046414,937001046404' }, 
                 async function (result) { console.log('result'); }
              );
              

              Vgl. auch Doku...

              sendTo("mihome-vacuum.0", 
                  commandName, 
                  {param1: value1, param2: value2, ...}, 
                  function (response) { /* do something with the result */}
              );
              

              Danke und sorry, falls ich nerve. Will nur nichts direkt verzocken, der Roboter war teuer genug.

              D 1 Reply Last reply Reply Quote 0
              • D
                dirkhe Developer @RkcCorian last edited by

                @rkccorian kaputt machen kannst du eigentlich nichts, soweig ich weiß.
                Icb weiss nicht, was du ds für werte hast, aber cleanrooms bezieht sich auf die iobroker räume.
                Was du willst, idt eher clesnsegments. Da musst du dann deine indexe angeben, die aus der app kommen.
                Stell den adapter einfach auf debug und schicke ihn mal los, da diehst du ja, was er macht.

                R 1 Reply Last reply Reply Quote 0
                • R
                  RkcCorian @dirkhe last edited by

                  @dirkhe Moin! Hab jetzt mal Folgendes Laufen lassen, mit dem Log:

                  Blockly:
                  000524fd-16af-4850-9a79-22ac15b7f81b-image.png

                  Raum-Konfig / Enum wurde zugewiesen
                  4775c198-9a5c-475d-8ca4-b43faea97c5f-image.png

                  Log
                  9c5cffb1-fec4-4993-bad6-f1e61d669f96-image.png

                  Eine Idee was ich noch machen kann?

                  Probiere am WE mal den Workaround über Timer aus.

                  1 Reply Last reply Reply Quote 0
                  • D
                    dirkhe Developer last edited by

                    @rkccorian man sieht halt nicht, was an den robbi gesendet wird. Blocky kann ich nicht lesen, ist mir zu kompliziert
                    Also entweder setzt du den adapter vorher auf debug, damit man sieht was passiert oder du nimmst den dp customcommand und schreibst da folendes rein
                    app_segment_clean;[18,20] um zb. die 2 räume zu reinigen

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      RkcCorian @dirkhe last edited by RkcCorian

                      @dirkhe Moin!
                      Nochmal den Blockly-Code in JS-Ansicht

                      sendTo("mihome-vacuum.0", "cleanRooms", {
                         "rooms": 'enum.rooms.wohnzimmer'
                      }, async function (result) {
                          console.log(result);
                        });
                      

                      Adapter auf Debug, Log. Hab mich an die Doku gehalten, allerdings kommt die unten sichtbare Exception.
                      8c603e1a-a9c7-413e-8d0a-18b7bdb60ab0-image.png

                      Hab gerade auch noch die von Dir genannte Alternative mit

                      app_segment_clean;[18,20]
                      

                      ausprobiert. Die hat funktioniert und ich werde diese nutzen. Vielen Dank!

                      Würde empfehlen das funktionierende Beispiel direkt in die Adapter Doku aufzunehmen, da vermutlich viele danach fragen. Bzgl. der Exception... soll ich ein Issue aufmachen?!

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        dirkhe Developer @RkcCorian last edited by

                        @rkccorian ich kann mir das ja mal anschschauen.
                        Das mit der doku nehme ich mal mit

                        R 1 Reply Last reply Reply Quote 1
                        • R
                          RkcCorian @dirkhe last edited by RkcCorian

                          @dirkhe Nachdem das mit den Räumen wunderbar funktioniert versuche ich mich gerade an der Zonenreinigung.

                          • Versuch 1: Schreiben auf DP mihome-vacuum.0.control.zoneClean hat keine Effekt. Auch nicht mit den Daten, welche vorher aufgrund einer Zonenreinigung, welche über die App angefragt habe, eingegeben werden. Die Werte werden beim ersten Versuch sogar aus dem DP gelöscht. Anbei das Log...
                            6e7d4376-96c0-4896-8d09-bda909fcd09f-image.png

                          • Versuch 2: Die Zonendaten vom DP mihome-vacuum.0.control.zoneClean nehmen und app_zoned_clean;[20950,23000,23650,20500,1] auf den DP mihome-vacuum.0.control.X_send_command schreiben. Dann legt der Roboter los, fährt aber komplett woanders hin. Woher bekomme ich die "richtigen" Koordinaten?

                          Hab jetzt keinen dazu passenden offenen Issue gefunden. Mache ich einen Fehler? Vielen Dank erneut!!

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            dirkhe Developer @RkcCorian last edited by

                            @rkccorian also nochmal zu den clean rooms, da steht in der readme, das dort ein String erwartet wird:
                            a85bdbc9-96f7-45d4-8f95-25e84c20291a-grafik.png
                            also muss das heißen:

                             sendTo("mihome-vacuum.0", "cleanRooms", 'enum.rooms.wohnzimmer,enum.rooms.kueche'
                            , async function (result) {
                                console.log(result);
                              });
                            

                            Ich habe die readme aber daraufhin nochmal angepasst. Zusätzlich gebe ich dann noch im log aus, dass ein string erwartet wird. Kommt dann bald

                            Für das andere bitte den adapter nochmal auf debug stellen und nochmal machen, bitte.

                            R 1 Reply Last reply Reply Quote 0
                            • R
                              RkcCorian @dirkhe last edited by

                              @dirkhe Ahhh, geil, jetzt geht es. Zur Vollständigkeit das funktionierende Blockly zu Deinem obigen Code:
                              df541a7f-5a17-4b63-8b54-be6779e35f33-image.png

                              Im Folgenden das Log, wenn ich [21050,22800,23650,20150,1] auf den DP mihome-vacuum.0.control.zoneClean schreibe...
                              b23d181e-1454-4f7e-bc4d-965a14d82c96-image.png

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dirkhe Developer @RkcCorian last edited by

                                @rkccorian du hast da zeilenumbrüche in deinen koordinaten, gibt die mal neu ein

                                R 1 Reply Last reply Reply Quote 0
                                • R
                                  RkcCorian @dirkhe last edited by

                                  @dirkhe Ahhh, stimmt. Jetzt geht es. Bleibt nur noch das Problem, dass der Roboter mit den Koordinaten wohl nichts anfängt. Er reinigt nicht die gewünschte Zone.
                                  Ich habe meine Karte um 90° nach rechts gedreht. Hätte aber erwartet, wenn ich in der App das Rechteck zeichne, der DP diese Daten kurze Zeit später hat (Wird auch damit aktualisiert) und wenn ich diese genauso eingeben, dass es klappt. Aber anscheinend nicht. Muss ich da was beachten?

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    dirkhe Developer @RkcCorian last edited by

                                    @rkccorian kann ich dir gerade nicht sagen, wäre auch davon ausgegangen, dass die gemeldeten daten richtig sind. Ich habe meine damals mitgesnifft, meine ich. Aber im prinzip lefert der adapter das eigentlich. Vielleicht hat der ein oder andere ja nich erfahrung damit

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

                                      @dirkhe Moin! Anbei ein Update...
                                      Folgendes klappt nun...
                                      Blockly
                                      b2acbeb1-0996-4f5d-a75d-bb2c12c57333-image.png

                                      Blockly als JS Code

                                      sendTo("mihome-vacuum.0", "cleanZone", '[21000,28200,23600,30750,1]', async function (result) {
                                          console.log(result);
                                        });
                                      

                                      Oder auch schreiben von app_zoned_clean;[[21000,28200,23600,30750,1]] (auf die doppelte Klammerung achten, da mehrere Zonen kommasepariert übergeben werden können) auf DP mihome-vacuum.0.control.X_send_command

                                      Bzgl. Koordinaten gibt es ein Problem. Das ist unabhängig der Kartenorientierung. Bin über https://www.roboter-forum.com/threads/zonen-reinigung-per-iobroker-alexa-steuern-schritt-fuer-schritt-anleitung.26292/page-2#post-327449 drauf gekommen.

                                      Mitte ist immer 25500, 25500 bezogen auf Ladestation (daher ist die Orientierung der Karte egal). Die X-Koordinaten sind auch korrekt im Adapter gemeldet worden. Die Y-Koordinaten sind aber in der Richtung vertauscht. D.h. ich musste die Y-Koordinaten erst neu berechnen über (25500 - Y-Koordinate Adapter) + 25500. > Bug?!

                                      Frage für meine finale Implementierung
                                      Gibt es einen Unterschied, ob ich auf den DP mihome-vacuum.0.control.X_send_command schreibe oder ob ich SendTo benutze? Gibt es da bspw. eine Queue oder wird ein Befehl unterbrochen, wenn mehrfache Kommandos gleichzeitig kommen? Oder ist es komplett egal? Vielen Dank im Voraus!

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        dirkhe Developer @RkcCorian last edited by

                                        @rkccorian send commsnd ist ein beipass, das wird immer direkt zum robbi gesendet.
                                        DIe anderen laufen immer erst durch den adapter. Der prüft ab, ob gerade ein saugvorgang läuft ubd reiht es in eine queue ein. Das passiert aber adapter intern.
                                        ob das mit den koordinaten ein bug ust, kann ich dir nicht sagen, ich vermute aber mal, das es vom robbi so kommt

                                        A R 2 Replies Last reply Reply Quote 0
                                        • A
                                          Ashuan @dirkhe last edited by

                                          Hallo zusammen, ich habe einen S7 und dieser löst meinen Roomba s9 ab.
                                          Nun vermisse ich etwa die Möglichkeit jeden Raum inidividuell nach Plan zu reinigen.
                                          Sowas wie:
                                          Morgens: Bad nur saugen, Flur stark saugen, Küche nur saugen (in einem Rutsch versteht sich)
                                          Mittags: Bad saugen & intensiv wischen; Kuche saugen & wischen (...)
                                          Abends: Zone1 saugen & intensiv wischen; Flur saugen (...)

                                          geht sowas?
                                          Bei meinem S9 habe ich in IoBroker nen Kalender gehabt, von dem aus Flags gesteuert haben welcher Raum in welchem Modus gereinigt werden soll. Mit nem kleinem JavaScript habe ich mir dann ein JSon-Object gebastelt, das zum S9 geschickt und er hat losgelegt.
                                          Kann ich diese Form von Koordination auch mit dem mihome-vacuum Adapter hinbekommen?
                                          So wie ich das sehe kann ich fur den Sauger und den Wischer nur globale Setting vornehmen, richtig ?

                                          BTW sehr toller Adapter!!
                                          Vielen Dank dafür

                                          Kai

                                          R Meistertr 2 Replies Last reply Reply Quote 0
                                          • R
                                            RkcCorian @Ashuan last edited by

                                            @ashuan Moin! Soweit ich es sehe geht aktuell nur global. Ich selber stehe vor dem gleichen Problem. Ich werde mir jetzt auch ne Queue erstellen, die folgendes beinhaltet...

                                            • Reinungsmodus (Wischleistung, Saugleistung)
                                            • Zone oder Raum
                                            • Zonendaten oder Raumdaten

                                            Hab sonst auch das Problem, dass zwar die Räume / Zone in der Queue landet, aber der Reinigungsmodus leider nicht.

                                            Viele Grüße!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            673
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter entwicklung raumreinigung roborock test vacuum zeitplan
                                            67
                                            511
                                            94688
                                            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