Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Neuer Adapter für Roborock-Staubsauger

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Neuer Adapter für Roborock-Staubsauger

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
929 Beiträge 138 Kommentatoren 327.4k Aufrufe 127 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • jahnbesJ Offline
    jahnbesJ Offline
    jahnbes
    schrieb am zuletzt editiert von
    #229

    @darkdevil
    Da kann wohl nur der Entwickler, copystring, fundiert darauf antworten.

    1 Antwort Letzte Antwort
    0
    • jahnbesJ jahnbes

      @timowald Welchen Roborock hast Du? Ich habe im Laufe dieses Threads festgestellt, dass es bei dem Datenhandling offensichtlich signifikante Unterschiede zwischen den einzelnen Typen gibt. Nicht jeder überträgt wohl alles.
      Ich habe einen Roborock S7 Max V.
      Gruß Bert.

      T Offline
      T Offline
      TimoWald
      schrieb am zuletzt editiert von
      #230

      @jahnbes halo habe auch den S7 Max V

      1 Antwort Letzte Antwort
      0
      • E Online
        E Online
        earl80
        schrieb am zuletzt editiert von
        #231

        Moin!
        Bin gerade über den Adapter gestolpert, endlich was ohne Token auslesen :+1:

        Zwei Sachen funktionieren bei mir nicht:

        Wartungsarbeiten resetten. Beim senden eines true bei "resetConsumables" tut sich nicht viel. Klappt das bei jemanden?

        Die Karte in die VIS einbinden. Der Code beim HTML-Widget sieht so aus:
        <img src="{roborock.0.6b8DGQeSsLLF0UHsYyVTMN.cleaningInfo.Records.0.map.mapBase64>

        Gruß Pit

        1 Antwort Letzte Antwort
        0
        • David G.D Online
          David G.D Online
          David G.
          schrieb am zuletzt editiert von David G.
          #232

          Ich melde mich no hnam wegen der Kartendarstellung.

          Word bei euch der Datenpunkt mit dem Base64 Bild während der Reinigung regelmäßig aktualisiert?

          Bei mir hilft nur ein Neustart vom Adapter die Aktualisierung der gui des Adapters (http://IP:6824/map.html).

          Zeigt eure Lovelace-Visualisierung klick
          (Auch ideal um sich Anregungen zu holen)

          Meine Tabellen für eure Visualisierung klick

          copystringC 1 Antwort Letzte Antwort
          0
          • David G.D David G.

            Ich melde mich no hnam wegen der Kartendarstellung.

            Word bei euch der Datenpunkt mit dem Base64 Bild während der Reinigung regelmäßig aktualisiert?

            Bei mir hilft nur ein Neustart vom Adapter die Aktualisierung der gui des Adapters (http://IP:6824/map.html).

            copystringC Offline
            copystringC Offline
            copystring
            schrieb am zuletzt editiert von
            #233

            @david-g das ist ein Fehler im Adapter und ist in der dev bereits gefixt. Die dev hat aber noch Fehler. Ich muss Zeit finden damit ich mich darum kümmern kann.

            Unterstütze meine Arbeit gerne mit einer Spende über PayPal:
            https://paypal.me/copystring

            David G.D 1 Antwort Letzte Antwort
            0
            • copystringC copystring

              @david-g das ist ein Fehler im Adapter und ist in der dev bereits gefixt. Die dev hat aber noch Fehler. Ich muss Zeit finden damit ich mich darum kümmern kann.

              David G.D Online
              David G.D Online
              David G.
              schrieb am zuletzt editiert von
              #234

              @copystring

              Ich warte einfach geduldig ^^.

              Zeigt eure Lovelace-Visualisierung klick
              (Auch ideal um sich Anregungen zu holen)

              Meine Tabellen für eure Visualisierung klick

              1 Antwort Letzte Antwort
              0
              • FlexerF Offline
                FlexerF Offline
                Flexer
                schrieb am zuletzt editiert von
                #235

                Hallo und guten Morgen in die Runde, seit gestern bin ich Besitzer von einem Roborock S8 Pro Ultra. Noch ganz neu in der Roborockwelt muss ich mich erstmal zurechtfinden.

                Ich habe gestern auch die Karte in die Vis bekommen, jedoch aktualisiert er nicht die Position. Wie macht ihr das?

                Grüße

                Unterm Strich ist alles besser.


                Ja, voll geil hier!

                David G.D 1 Antwort Letzte Antwort
                0
                • FlexerF Flexer

                  Hallo und guten Morgen in die Runde, seit gestern bin ich Besitzer von einem Roborock S8 Pro Ultra. Noch ganz neu in der Roborockwelt muss ich mich erstmal zurechtfinden.

                  Ich habe gestern auch die Karte in die Vis bekommen, jedoch aktualisiert er nicht die Position. Wie macht ihr das?

                  Grüße

                  David G.D Online
                  David G.D Online
                  David G.
                  schrieb am zuletzt editiert von
                  #236

                  @flexer

                  Die Position am Bild der Karte?
                  Wenn ja schau mal 2 bzw 3 Posts weiter oben.

                  Zeigt eure Lovelace-Visualisierung klick
                  (Auch ideal um sich Anregungen zu holen)

                  Meine Tabellen für eure Visualisierung klick

                  David G.D 1 Antwort Letzte Antwort
                  0
                  • M maxb

                    Hallo!
                    Es wurde ja schon über die Darstellung einer Karte gesprochen und dass das nicht so einfach funktionert, da die Karte nur als Base64-Image vorliegt.
                    Ich habe mal etwas getüftelt und vielleicht hilft es dem ein oder anderen:

                    Die Base64-Images sind ganz normale HTML-"Bilder", die man z.B. in einer Visu nutzen kann, leider aber nicht einfach so, sondern nur über Umwege.
                    Der HTML-Code für die Einbindung eines Bas64-Bildes ist so aufgebaut:

                    <img src="[BASE64-CODE]">
                    

                    Also eigentlich alles kein Hexenwerk. Wenn man aus dem Datenpunkt den Code kopiert und in ein HTML-Objekt in VIS einfügt, wird die Karte auch wunderbar dargestellt, aber natürlich nicht aktualisiert. Da man über geschweifte Klammern direkt in VIS auf den Inhalt eines Datenpunktes zugreifen kann, dachte ich, dass man das über

                    <img src="{roborock.0.Devices.ID.map.mapBase64}">
                    

                    lösen kann, das funktioniert aber so nicht. Sollte jemand wissen, wie das funktioniert, gerne melden!

                    Ich habe das dann so gelöst, dass ich eine script erstellt habe, was nichts anderes macht, als die spitzen Klammern davor und dahinter zu setzen und das alles in einer neuen Variable zu speichern. Diesen String kann ich dann über die geschweiften Klammern in VIS einbinden, es funktionert alles ohne Probleme!
                    7339ef60-fe24-4d68-afd3-a7dd9b4ae0da-image.png
                    Code:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <block type="control" id="q]VQvq6D3wTA4)@;2Pll" inline="false" x="-12" y="-62">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">0_userdata.0.own_variables.Bobs_Karte</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="text_join" id="5-?y*KQ:Y80!V91Yodb!">
                           <mutation items="3"></mutation>
                           <value name="ADD0">
                             <block type="text" id="Cc@lc8)Fr2JyKrvP:/Fh">
                               <field name="TEXT">&lt;img  style="width: 80%; height: auto; object-fit: inherit; object-position: 0 0;"  src="</field>
                             </block>
                           </value>
                           <value name="ADD1">
                             <block type="get_value" id="Z]JX6e;b^dh)cs(P^N=:">
                               <field name="ATTR">val</field>
                               <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                             </block>
                           </value>
                           <value name="ADD2">
                             <block type="text" id="8K1rL)_63uZRJ.-{+RG~">
                               <field name="TEXT">"&gt;</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="on" id="[oUHwy/QQu*ltlu5id5)">
                           <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <statement name="STATEMENT">
                             <block type="control" id="nAbRG4CNIj(s,5[`9VkO" inline="false">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">0_userdata.0.own_variables.Bobs_Karte</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="text_join" id="2k-vFVe8e:a2O76QlkW?">
                                   <mutation items="3"></mutation>
                                   <value name="ADD0">
                                     <block type="text" id="AR^b;KZ;H]gW+VYbolQG">
                                       <field name="TEXT">&lt;img  style="width: 80%; height: auto; object-fit: inherit; object-position: 0 0;"  src="</field>
                                     </block>
                                   </value>
                                   <value name="ADD1">
                                     <block type="get_value" id="k)(j6}MFVQkeqecTw`Qg">
                                       <field name="ATTR">val</field>
                                       <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                     </block>
                                   </value>
                                   <value name="ADD2">
                                     <block type="text" id="HQnyYb)[/{?#394+RKX!">
                                       <field name="TEXT">"&gt;</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                    </xml>
                    


                    Hinweise:

                    • In VIS im Editor wird immer nur das Objekt in geschweiften Klammern dargestellt. Geladen wird der Inhalt erst in der feriten VIS!
                    • die zusätzlichen Inhalte style="[...]" skalieren und beschneiden das Bild, damit es vernünftig dargestllt werden kann. Da muss man je nach Karte schauen wie es passt. Bei mir ist der Bereich oben links des Bildes erstmal sehr viel weiß, weshalb ich da viel wegschneiden muss, bis die eigentliche Karte zu sehen ist, spielt einfach mit den Werten.
                    • Die Aktualisierungsrate der Karte ist wirklich mäßig. Ich weiß nicht in welchen Intervallen das passiert, es scheint immer so gegen Ende der Reinigung zu sein, manchmal auch währenddessen, manchmal auch im Dock. Woran das liegt weiß vermutlich nur Roborock.

                    Bei Bedarf kann ich das hier gerne noch fürs WIKI auf englisch aufbereiten, ich habe da aber keine Schreibrechte drauf.

                    Viel Spaß damit, Anmerkungen oder Fragen sind willkommen!

                    FlexerF Offline
                    FlexerF Offline
                    Flexer
                    schrieb am zuletzt editiert von Flexer
                    #237

                    @maxb Hallo nochmal zur Karte.

                    Dein Blockly habe ich übernommen, jedoch aktualisiert der Datenpunkt ohne erkennbares Muster.

                    roborock.0.Devices.73IcwgDs3bor4cpoGQz8Oa.map.mapBase64 aktualisiert sich unregelmäßig von alle paar Sekunden bis hin zu alle 10 Minuten. Hast du eine Idee wie ich das in den Griff bekommen könnte?

                    Unterm Strich ist alles besser.


                    Ja, voll geil hier!

                    1 Antwort Letzte Antwort
                    0
                    • David G.D David G.

                      @flexer

                      Die Position am Bild der Karte?
                      Wenn ja schau mal 2 bzw 3 Posts weiter oben.

                      David G.D Online
                      David G.D Online
                      David G.
                      schrieb am zuletzt editiert von
                      #238

                      @Flexer

                      @david-g sagte in Neuer Adapter für Roborock-Staubsauger:

                      @flexer

                      Die Position am Bild der Karte?
                      Wenn ja schau mal 2 bzw 3 Posts weiter oben.

                      Zeigt eure Lovelace-Visualisierung klick
                      (Auch ideal um sich Anregungen zu holen)

                      Meine Tabellen für eure Visualisierung klick

                      FlexerF 1 Antwort Letzte Antwort
                      0
                      • David G.D David G.

                        @Flexer

                        @david-g sagte in Neuer Adapter für Roborock-Staubsauger:

                        @flexer

                        Die Position am Bild der Karte?
                        Wenn ja schau mal 2 bzw 3 Posts weiter oben.

                        FlexerF Offline
                        FlexerF Offline
                        Flexer
                        schrieb am zuletzt editiert von
                        #239

                        @david-g LOL Ok jetzt hab ich es gerafft. Alles klar danke. Manchmal sieht man den Wald vor lauter Bäume nicht

                        Unterm Strich ist alles besser.


                        Ja, voll geil hier!

                        1 Antwort Letzte Antwort
                        0
                        • FlexerF Offline
                          FlexerF Offline
                          Flexer
                          schrieb am zuletzt editiert von
                          #240

                          Ok noch eine Frage habe ich, gibt es auch de Möglichkeit mehrere Räume auszuwählen zur Reinigung? Würde gerne auf der Vis anwählen Raum 1+2+3 oder 1+3+5 und dann auf start drücken.

                          Unterm Strich ist alles besser.


                          Ja, voll geil hier!

                          David G.D 1 Antwort Letzte Antwort
                          0
                          • FlexerF Flexer

                            Ok noch eine Frage habe ich, gibt es auch de Möglichkeit mehrere Räume auszuwählen zur Reinigung? Würde gerne auf der Vis anwählen Raum 1+2+3 oder 1+3+5 und dann auf start drücken.

                            David G.D Online
                            David G.D Online
                            David G.
                            schrieb am zuletzt editiert von David G.
                            #241

                            @flexer

                            Die entsprechenden Räume auf true setzen und dann app_segment_clean.

                            Screenshot_20231110_211233_Chrome.jpg

                            Edit
                            Falls es mehrere Etagen gibt diese über load_multi_map auswählen.

                            Zeigt eure Lovelace-Visualisierung klick
                            (Auch ideal um sich Anregungen zu holen)

                            Meine Tabellen für eure Visualisierung klick

                            FlexerF 1 Antwort Letzte Antwort
                            1
                            • David G.D David G.

                              @flexer

                              Die entsprechenden Räume auf true setzen und dann app_segment_clean.

                              Screenshot_20231110_211233_Chrome.jpg

                              Edit
                              Falls es mehrere Etagen gibt diese über load_multi_map auswählen.

                              FlexerF Offline
                              FlexerF Offline
                              Flexer
                              schrieb am zuletzt editiert von
                              #242

                              @david-g Super dank dir!!!

                              Unterm Strich ist alles besser.


                              Ja, voll geil hier!

                              1 Antwort Letzte Antwort
                              0
                              • FlexerF Offline
                                FlexerF Offline
                                Flexer
                                schrieb am zuletzt editiert von Flexer
                                #243

                                So ich bin dann auch mal fertig mit der integration. Man muss nur den Raum auf der Karte anwählen. Er wird dann heller, start drücken fertig. Einfach Geil!
                                Design wird noch aufgehübscht
                                Danke für den Adapter.

                                96c0cd7e-d7ca-4be2-b050-6472c3d0ce9f-image.png

                                Unterm Strich ist alles besser.


                                Ja, voll geil hier!

                                T E 2 Antworten Letzte Antwort
                                0
                                • FlexerF Flexer

                                  So ich bin dann auch mal fertig mit der integration. Man muss nur den Raum auf der Karte anwählen. Er wird dann heller, start drücken fertig. Einfach Geil!
                                  Design wird noch aufgehübscht
                                  Danke für den Adapter.

                                  96c0cd7e-d7ca-4be2-b050-6472c3d0ce9f-image.png

                                  T Offline
                                  T Offline
                                  TimoWald
                                  schrieb am zuletzt editiert von
                                  #244

                                  @flexer sieht gut aus.

                                  1 Antwort Letzte Antwort
                                  0
                                  • FlexerF Flexer

                                    So ich bin dann auch mal fertig mit der integration. Man muss nur den Raum auf der Karte anwählen. Er wird dann heller, start drücken fertig. Einfach Geil!
                                    Design wird noch aufgehübscht
                                    Danke für den Adapter.

                                    96c0cd7e-d7ca-4be2-b050-6472c3d0ce9f-image.png

                                    E Online
                                    E Online
                                    earl80
                                    schrieb am zuletzt editiert von
                                    #245

                                    @flexer Sauber! Wie hast du die Map da so rein bekommen?

                                    1 Antwort Letzte Antwort
                                    0
                                    • M maxb

                                      Hallo!
                                      Es wurde ja schon über die Darstellung einer Karte gesprochen und dass das nicht so einfach funktionert, da die Karte nur als Base64-Image vorliegt.
                                      Ich habe mal etwas getüftelt und vielleicht hilft es dem ein oder anderen:

                                      Die Base64-Images sind ganz normale HTML-"Bilder", die man z.B. in einer Visu nutzen kann, leider aber nicht einfach so, sondern nur über Umwege.
                                      Der HTML-Code für die Einbindung eines Bas64-Bildes ist so aufgebaut:

                                      <img src="[BASE64-CODE]">
                                      

                                      Also eigentlich alles kein Hexenwerk. Wenn man aus dem Datenpunkt den Code kopiert und in ein HTML-Objekt in VIS einfügt, wird die Karte auch wunderbar dargestellt, aber natürlich nicht aktualisiert. Da man über geschweifte Klammern direkt in VIS auf den Inhalt eines Datenpunktes zugreifen kann, dachte ich, dass man das über

                                      <img src="{roborock.0.Devices.ID.map.mapBase64}">
                                      

                                      lösen kann, das funktioniert aber so nicht. Sollte jemand wissen, wie das funktioniert, gerne melden!

                                      Ich habe das dann so gelöst, dass ich eine script erstellt habe, was nichts anderes macht, als die spitzen Klammern davor und dahinter zu setzen und das alles in einer neuen Variable zu speichern. Diesen String kann ich dann über die geschweiften Klammern in VIS einbinden, es funktionert alles ohne Probleme!
                                      7339ef60-fe24-4d68-afd3-a7dd9b4ae0da-image.png
                                      Code:

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                       <block type="control" id="q]VQvq6D3wTA4)@;2Pll" inline="false" x="-12" y="-62">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">0_userdata.0.own_variables.Bobs_Karte</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="text_join" id="5-?y*KQ:Y80!V91Yodb!">
                                             <mutation items="3"></mutation>
                                             <value name="ADD0">
                                               <block type="text" id="Cc@lc8)Fr2JyKrvP:/Fh">
                                                 <field name="TEXT">&lt;img  style="width: 80%; height: auto; object-fit: inherit; object-position: 0 0;"  src="</field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="get_value" id="Z]JX6e;b^dh)cs(P^N=:">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                               </block>
                                             </value>
                                             <value name="ADD2">
                                               <block type="text" id="8K1rL)_63uZRJ.-{+RG~">
                                                 <field name="TEXT">"&gt;</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="on" id="[oUHwy/QQu*ltlu5id5)">
                                             <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                             <field name="CONDITION">ne</field>
                                             <field name="ACK_CONDITION"></field>
                                             <statement name="STATEMENT">
                                               <block type="control" id="nAbRG4CNIj(s,5[`9VkO" inline="false">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">0_userdata.0.own_variables.Bobs_Karte</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="text_join" id="2k-vFVe8e:a2O76QlkW?">
                                                     <mutation items="3"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="AR^b;KZ;H]gW+VYbolQG">
                                                         <field name="TEXT">&lt;img  style="width: 80%; height: auto; object-fit: inherit; object-position: 0 0;"  src="</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="get_value" id="k)(j6}MFVQkeqecTw`Qg">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD2">
                                                       <block type="text" id="HQnyYb)[/{?#394+RKX!">
                                                         <field name="TEXT">"&gt;</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                      </xml>
                                      


                                      Hinweise:

                                      • In VIS im Editor wird immer nur das Objekt in geschweiften Klammern dargestellt. Geladen wird der Inhalt erst in der feriten VIS!
                                      • die zusätzlichen Inhalte style="[...]" skalieren und beschneiden das Bild, damit es vernünftig dargestllt werden kann. Da muss man je nach Karte schauen wie es passt. Bei mir ist der Bereich oben links des Bildes erstmal sehr viel weiß, weshalb ich da viel wegschneiden muss, bis die eigentliche Karte zu sehen ist, spielt einfach mit den Werten.
                                      • Die Aktualisierungsrate der Karte ist wirklich mäßig. Ich weiß nicht in welchen Intervallen das passiert, es scheint immer so gegen Ende der Reinigung zu sein, manchmal auch währenddessen, manchmal auch im Dock. Woran das liegt weiß vermutlich nur Roborock.

                                      Bei Bedarf kann ich das hier gerne noch fürs WIKI auf englisch aufbereiten, ich habe da aber keine Schreibrechte drauf.

                                      Viel Spaß damit, Anmerkungen oder Fragen sind willkommen!

                                      FlexerF Offline
                                      FlexerF Offline
                                      Flexer
                                      schrieb am zuletzt editiert von
                                      #246

                                      @earl80 Eigentlich genau wie hier. Man muss dann im blockly die größe anpassen. Statt% geht auch width="1000px" width="800px" zum beispiel.

                                      @maxb sagte in Neuer Adapter für Roborock-Staubsauger:

                                      Hallo!
                                      Es wurde ja schon über die Darstellung einer Karte gesprochen und dass das nicht so einfach funktionert, da die Karte nur als Base64-Image vorliegt.
                                      Ich habe mal etwas getüftelt und vielleicht hilft es dem ein oder anderen:

                                      Die Base64-Images sind ganz normale HTML-"Bilder", die man z.B. in einer Visu nutzen kann, leider aber nicht einfach so, sondern nur über Umwege.
                                      Der HTML-Code für die Einbindung eines Bas64-Bildes ist so aufgebaut:

                                      <img src="[BASE64-CODE]">
                                      

                                      Also eigentlich alles kein Hexenwerk. Wenn man aus dem Datenpunkt den Code kopiert und in ein HTML-Objekt in VIS einfügt, wird die Karte auch wunderbar dargestellt, aber natürlich nicht aktualisiert. Da man über geschweifte Klammern direkt in VIS auf den Inhalt eines Datenpunktes zugreifen kann, dachte ich, dass man das über

                                      <img src="{roborock.0.Devices.ID.map.mapBase64}">
                                      

                                      lösen kann, das funktioniert aber so nicht. Sollte jemand wissen, wie das funktioniert, gerne melden!

                                      Ich habe das dann so gelöst, dass ich eine script erstellt habe, was nichts anderes macht, als die spitzen Klammern davor und dahinter zu setzen und das alles in einer neuen Variable zu speichern. Diesen String kann ich dann über die geschweiften Klammern in VIS einbinden, es funktionert alles ohne Probleme!
                                      7339ef60-fe24-4d68-afd3-a7dd9b4ae0da-image.png
                                      Code:

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                       <block type="control" id="q]VQvq6D3wTA4)@;2Pll" inline="false" x="-12" y="-62">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">0_userdata.0.own_variables.Bobs_Karte</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="text_join" id="5-?y*KQ:Y80!V91Yodb!">
                                             <mutation items="3"></mutation>
                                             <value name="ADD0">
                                               <block type="text" id="Cc@lc8)Fr2JyKrvP:/Fh">
                                                 <field name="TEXT">&lt;img  style="width: 80%; height: auto; object-fit: inherit; object-position: 0 0;"  src="</field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="get_value" id="Z]JX6e;b^dh)cs(P^N=:">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                               </block>
                                             </value>
                                             <value name="ADD2">
                                               <block type="text" id="8K1rL)_63uZRJ.-{+RG~">
                                                 <field name="TEXT">"&gt;</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="on" id="[oUHwy/QQu*ltlu5id5)">
                                             <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                             <field name="CONDITION">ne</field>
                                             <field name="ACK_CONDITION"></field>
                                             <statement name="STATEMENT">
                                               <block type="control" id="nAbRG4CNIj(s,5[`9VkO" inline="false">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">0_userdata.0.own_variables.Bobs_Karte</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="text_join" id="2k-vFVe8e:a2O76QlkW?">
                                                     <mutation items="3"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="AR^b;KZ;H]gW+VYbolQG">
                                                         <field name="TEXT">&lt;img  style="width: 80%; height: auto; object-fit: inherit; object-position: 0 0;"  src="</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="get_value" id="k)(j6}MFVQkeqecTw`Qg">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">roborock.0.Devices.5qpgK8e1ywan2qsWru9feg.cleaningInfo.Records.0.map.mapBase64</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD2">
                                                       <block type="text" id="HQnyYb)[/{?#394+RKX!">
                                                         <field name="TEXT">"&gt;</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                      </xml>
                                      


                                      Hinweise:

                                      • In VIS im Editor wird immer nur das Objekt in geschweiften Klammern dargestellt. Geladen wird der Inhalt erst in der feriten VIS!
                                      • die zusätzlichen Inhalte style="[...]" skalieren und beschneiden das Bild, damit es vernünftig dargestllt werden kann. Da muss man je nach Karte schauen wie es passt. Bei mir ist der Bereich oben links des Bildes erstmal sehr viel weiß, weshalb ich da viel wegschneiden muss, bis die eigentliche Karte zu sehen ist, spielt einfach mit den Werten.
                                      • Die Aktualisierungsrate der Karte ist wirklich mäßig. Ich weiß nicht in welchen Intervallen das passiert, es scheint immer so gegen Ende der Reinigung zu sein, manchmal auch währenddessen, manchmal auch im Dock. Woran das liegt weiß vermutlich nur Roborock.

                                      Bei Bedarf kann ich das hier gerne noch fürs WIKI auf englisch aufbereiten, ich habe da aber keine Schreibrechte drauf.

                                      Viel Spaß damit, Anmerkungen oder Fragen sind willkommen!

                                      Unterm Strich ist alles besser.


                                      Ja, voll geil hier!

                                      1 Antwort Letzte Antwort
                                      0
                                      • jahnbesJ jahnbes

                                        @niggich
                                        Hallo,
                                        hier die versprochenen Skripte, ich hoffe, sie können eine Anregung sein. Sie sind sicher nicht ideal, es gibt bestimmt auch elegantere Lösungen. Bei mir erledigen sie ihren Auftrag:

                                        Um eine Historie der gereinigten Zimmer mit Klarnamen der Zimmer in der gui anzeigen zu können, bin ich wie folgt vorgegangen:

                                        folgende Datenpunkte wurden vereinbart:

                                        0_userdata.0.Saugroboter.Zimmer_saugen_starten
                                        (Nummer des zu reinigenden Zimmers, Eingabe aus der gui)

                                        0_userdata.0.Saugroboter.Zimmer_Name_aktuell
                                        (Klarname des zu reinigenden Zimmers)

                                        0_userdata.0.Saugroboter.Raum0 ... 9
                                        (Klarnamen der letzten 9 gereinigten Zimmer)

                                        0_userdata.0.Saugroboter.Tag0 ... 9
                                        (formatierter Tag der letzten 9 gereinigten Zimmer)

                                        0_userdata.0.Saugroboter.Zeit0 ... 9
                                        (formatierte Zeit der letzten 9 gereinigten Zimmer)

                                        Ablauf einer Reinigung:

                                        Sobald sich Zimmer_saugen_starten durch einen Button in der gui ändert, enthält dieser Datenpunkt die Nummer des zu reinigenden Zimmers (z.B. „18“ für die Küche) und das erste Skript startet:

                                        skript1.jpg

                                        In dem werden zunächst alle db roborock.0.Devices.x.floors.0.* auf false und anschließend der roborock.0.Devices.x.floors.0.* des gewünschten Zimmers auf true gesetzt. Im gleichen Schritt wird im db 0_userdata.0.Saugroboter.Zimmer_Name_aktuell der Klarname des Zimmers gespeichert.
                                        Zum Schluss wird mit roborock.0.Devices.x.commands.app_segment_clean die Einzelzimmerreingung gestartet.

                                        Erstellen der Historieeinträge:

                                        Ist diese beendet, ändert der Adapter seine 19 Historieeintragungen. Das dabei erfolgende Ändern des Datenpunktes roborock.0.Devices.x.cleaningInfo.Records.0.begin zeigt an, dass diese Änderung erfolgt ist und triggert den Start des zweiten Skriptes, das meine Historie erzeugt:

                                        skript2.jpg

                                        Hier werden zunächst die Räume in der 9-stelligen Historie um eins nach unten gereicht und anschließend der neueste Historieeintrag aus den entsprechenden Werten des Adapters erzeugt. Dann werden den Tag- und Zeiteinträgen in der meiner Historie die entsprechenden Werte des Adapters formatiert zugewiesen, z.B.
                                        0_userdata.0.Saugroboter.Tag1 <- roborock.0.Devices.x.cleaningInfo.Records.1.begin
                                        ebenso
                                        0_userdata.0.Saugroboter.Zeit1 <- roborock.0.Devices.x.cleaningInfo.Records.1.begin

                                        Zum Schluss wird der Klarname in 0_userdata.0.Saugroboter.Zimmer_Name_aktuell mit einem „?“ gelöscht.

                                        Problem:

                                        Etwas kritisch ist bei beiden Skripten das Timing in Verbindung mit dem laufenden Adapter, das muss durch testen und einfügen von Pausen angepasst werden.

                                        Wie schon oben geschrieben, dass ganze funktioniert nur, wenn die Einzelzimmerreinigung über die gui gestartet wird. Es funktioniert nicht beim Start über die Handy-App und es funktioniert auch nicht bei Zonenreinigung.

                                        Ich hoffe, ich konnte meine Skripte erläutern. Wenn Du Fragen hast, melde Dich bitte.

                                        Viele Grüße, Bert.

                                        T Offline
                                        T Offline
                                        Tobias04
                                        schrieb am zuletzt editiert von Tobias04
                                        #247

                                        @jahnbes Würdest du dein Skript für die Raumreinigung mit uns teilen als .txt file?

                                        1 Antwort Letzte Antwort
                                        0
                                        • copystringC copystring

                                          @rmortan es ist nicht möglich die Karte auf Raspberry Pi zu verwenden.

                                          T Offline
                                          T Offline
                                          Tobias04
                                          schrieb am zuletzt editiert von
                                          #248

                                          @copystring said in Neuer Adapter für Roborock-Staubsauger:

                                          @rmortan es ist nicht möglich die Karte auf Raspberry Pi zu verwenden.

                                          Kannst du mir sagen warum das nicht aus dem PI läuft? Danke

                                          Gruß

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          492

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe