Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Roborock Adapter tester gesucht

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Roborock Adapter tester gesucht

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

      Habe mal eine Frage zu den Verbrauchsmaterialen.

      Die Werte vom Staubsauger werden ja schön in Stunden angezeigt.

      Die anderen Werte mit 0 beziehen sich wohl auf die Station.
      Springen diese bei entsprechendem Verschleiß auf 1?

      Die ersten 3 Werte mit 0 bekomme ich gut zugeordnet, da finde ich in der App ein Gegenstück.
      Was ist aber das strainer_work_times

      copystring 1 Reply Last reply Reply Quote 0
      • copystring
        copystring @David G. last edited by

        @david-g Ich meine strainer_work_times war ein Zusatzmodul für den S7. Genau weiß ich es nicht mehr aber es war entweder der Trockner für den Mop oder der Reiniger für den Mop vom großen S7 Plus Ultra. Fehlt das Modul bleibt der Wert 0.

        David G. 1 Reply Last reply Reply Quote 0
        • David G.
          David G. @copystring last edited by

          @copystring

          Danke.

          Hab grad nochmal eine Raumreinigung über app_segment_clean gestartet.
          2 Räume waren ausgewählt. Der Adapter ist wieder abgestürzt.

          roborock.0
          2023-02-26 18:24:48.671	info	terminating
          
          roborock.0
          2023-02-26 18:24:48.663	error	Cannot read properties of null (reading 'val')
          
          roborock.0
          2023-02-26 18:24:48.662	error	TypeError: Cannot read properties of null (reading 'val') at /opt/iobroker/node_modules/iobroker.roborock/lib/vacuum.js:159:20 at async vacuum.command (/opt/iobroker/node_modules/iobroker.roborock/lib/vacuum.js:155:4)
          
          roborock.0
          2023-02-26 18:24:48.660	error	unhandled promise rejection: Cannot read properties of null (reading 'val')
          
          roborock.0
          2023-02-26 18:24:48.650	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
          
          copystring 1 Reply Last reply Reply Quote 0
          • copystring
            copystring @David G. last edited by

            @david-g Okay. Welche version ist installiert? Falls noch nicht geschehen die aktuelle dev Version (https://github.com/copystring/ioBroker.roborock/tree/dev) installieren und neu testen. Dann ein neues log hier posten.
            Es gab gerade eben noch einige Änderungen. Damit ich weiß in welcher Zeile ich genau schauen muss ist es wichtig zu wissen auf welcher Version der Fehler kommt. Daher wäre es am idealsten wenn du die dev Version von gerade eben verwenden würdest.

            David G. 2 Replies Last reply Reply Quote 0
            • David G.
              David G. @copystring last edited by

              @copystring

              Hab die Dev Version vom 25 Feb installiert.
              Aktualisiere jetzt mal teste morgen.

              Vorhin hab ich nochmal probiert und da hat es geklappt, allerdings in einer anderen Etage.

              Melde mich

              1 Reply Last reply Reply Quote 0
              • David G.
                David G. @copystring last edited by David G.

                @copystring

                So,

                habe getestet. Es klappt.
                Allerdings war es wohl ein Fehler meinerseits.

                Ich muss (wie ich jetzt gemerkt habe) erst die Multimap der Etage laden, und dann die Reinigung starten.
                Das bekomme ich aber leicht in einem Skript eingebaut.

                EDIT:
                Hab mir ein Blockly geschrieben, um sicherzugehen, dass ich nur Räume in einer Etage aktiv habe und wähle dementsprechend die entsprechende Map aus.

                Screenshot_20230227_073612_Chrome.jpg

                So kann man in der Visu nichts falsch machen:
                Screenshot_20230227_073743_Fully Kiosk Browser.jpg

                Aber eine andere Frage:
                Bei jedem Start sende ich vorab noch die Saugleistung und Wassermenge über set_water_box_custom_mode und set_custom_mode.
                Die Beiden Datenpunkte stehen in meiner Visualisierung zum dropdown bereit.

                Das mache ich, da meine Frau das ggf zwischenzeitlich per App geändert haben könnte.

                Ist es möglich die beiden Datenpunkte unter commands vom Adapter aus mit dem Roboter synchron zu halten?

                So müsste man/ich es nicht immer mit senden und man sieht die aktuelle Einstellung in seiner Auswahl.

                S copystring 2 Replies Last reply Reply Quote 2
                • S
                  simplyclever @David G. last edited by

                  @david-g Könntest Du Blockly und VIS (Widgets?) teilen?

                  David G. 1 Reply Last reply Reply Quote 0
                  • David G.
                    David G. @simplyclever last edited by

                    @simplyclever

                    Anbei das Skript:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <variables>
                       <variable id="m*1}PM*vX/e5QPUWCX/~">raume_og</variable>
                       <variable id="HGnKiadUT}LlnVPI#)V5">raume_ug</variable>
                       <variable id="WF[nL{a)J(;8bBQ3kw,Q">j</variable>
                     </variables>
                     <block type="variables_set" id="LJG9IQ:;c(+_sG54Nbpv" x="563" y="-1213">
                       <field name="VAR" id="m*1}PM*vX/e5QPUWCX/~">raume_og</field>
                       <value name="VALUE">
                         <block type="selector" id="YMrJZw87j]=8);ry1@f]">
                           <field name="TEXT">roborock.0.Devices.7UreppMhwYr4WlSbCtcsno.floors.1.*</field>
                         </block>
                       </value>
                       <next>
                         <block type="variables_set" id="H8H5NrBhth.kWD,lWmWC">
                           <field name="VAR" id="HGnKiadUT}LlnVPI#)V5">raume_ug</field>
                           <value name="VALUE">
                             <block type="selector" id="+9@TR[f{`qLJ+Gt$L4f9">
                               <field name="TEXT">roborock.0.Devices.7UreppMhwYr4WlSbCtcsno.floors.0.*</field>
                             </block>
                           </value>
                           <next>
                             <block type="on_ext" id="/[tZ4DhA:zBka)VD;oq:">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                               <field name="CONDITION">true</field>
                               <field name="ACK_CONDITION"></field>
                               <value name="OID0">
                                 <shadow type="field_oid" id=")9tNYU]I]2zJRDL$yJ!L">
                                   <field name="oid">default</field>
                                 </shadow>
                                 <block type="variables_get" id="f{{]lfXFJ7}HcU;T%14x">
                                   <field name="VAR" id="m*1}PM*vX/e5QPUWCX/~">raume_og</field>
                                 </block>
                               </value>
                               <statement name="STATEMENT">
                                 <block type="controls_forEach" id="Y,;q@xe$2!LnUQcP)|Yy">
                                   <field name="VAR" id="WF[nL{a)J(;8bBQ3kw,Q">j</field>
                                   <value name="LIST">
                                     <block type="variables_get" id="DU8hj`D=P}-_8~k~*fTS">
                                       <field name="VAR" id="HGnKiadUT}LlnVPI#)V5">raume_ug</field>
                                     </block>
                                   </value>
                                   <statement name="DO">
                                     <block type="control_ex" id="zD?!9SShbd,Ky#a%!AJ%">
                                       <field name="TYPE">false</field>
                                       <field name="CLEAR_RUNNING">FALSE</field>
                                       <value name="OID">
                                         <shadow type="field_oid" id="Vqmc=1_*}x+nX$AOsaRb">
                                           <field name="oid">Object ID</field>
                                         </shadow>
                                         <block type="variables_get" id="G9:X=`u[])`|5aU8+=Dw">
                                           <field name="VAR" id="WF[nL{a)J(;8bBQ3kw,Q">j</field>
                                         </block>
                                       </value>
                                       <value name="VALUE">
                                         <shadow type="logic_boolean" id="[L!m2~:ZWQxe8@yU[7NP">
                                           <field name="BOOL">FALSE</field>
                                         </shadow>
                                       </value>
                                       <value name="DELAY_MS">
                                         <shadow type="math_number" id="N.HMqS+m/3H14%B3F[1|">
                                           <field name="NUM">0</field>
                                         </shadow>
                                       </value>
                                     </block>
                                   </statement>
                                   <next>
                                     <block type="update" id="T5Nr6)3:_o*4OwlC,kkB">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">roborock.0.Devices.7UreppMhwYr4WlSbCtcsno.commands.load_multi_map</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_number" id="lbmY(vKPJw?rI3Ly9ZVT">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                               <next>
                                 <block type="on_ext" id="`yx429a:d#})9*}K:x5?">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                   <field name="CONDITION">true</field>
                                   <field name="ACK_CONDITION"></field>
                                   <value name="OID0">
                                     <shadow type="field_oid">
                                       <field name="oid">default</field>
                                     </shadow>
                                     <block type="variables_get" id="[M6zXe5%J(zRl=5D6@AI">
                                       <field name="VAR" id="HGnKiadUT}LlnVPI#)V5">raume_ug</field>
                                     </block>
                                   </value>
                                   <statement name="STATEMENT">
                                     <block type="controls_forEach" id="9b[KI}p/Vcqmi;AIOvoP">
                                       <field name="VAR" id="WF[nL{a)J(;8bBQ3kw,Q">j</field>
                                       <value name="LIST">
                                         <block type="variables_get" id="^iD/8)NBfbWNoi)a1xWA">
                                           <field name="VAR" id="m*1}PM*vX/e5QPUWCX/~">raume_og</field>
                                         </block>
                                       </value>
                                       <statement name="DO">
                                         <block type="control_ex" id="W5yI0~~A}BRZ;w]H-M5y">
                                           <field name="TYPE">false</field>
                                           <field name="CLEAR_RUNNING">FALSE</field>
                                           <value name="OID">
                                             <shadow type="field_oid">
                                               <field name="oid">Object ID</field>
                                             </shadow>
                                             <block type="variables_get" id="[Tr|(mpClG/-*BP,,SfZ">
                                               <field name="VAR" id="WF[nL{a)J(;8bBQ3kw,Q">j</field>
                                             </block>
                                           </value>
                                           <value name="VALUE">
                                             <shadow type="logic_boolean" id="j}b57r;.pBj=*o$_ZC^Y">
                                               <field name="BOOL">FALSE</field>
                                             </shadow>
                                           </value>
                                           <value name="DELAY_MS">
                                             <shadow type="math_number" id="ArP;CZy8xNW6dzENFQ[A">
                                               <field name="NUM">0</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </statement>
                                       <next>
                                         <block type="update" id="Wwrb?1viM#Hn+RTHv:J4">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">roborock.0.Devices.7UreppMhwYr4WlSbCtcsno.commands.load_multi_map</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="math_number" id="7/b3!/qa$]8DV[^/_HXa">
                                               <field name="NUM">0</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                    </xml>
                    

                    Als Visu nutze ich Lovelace.
                    Hast du das auch?

                    S 1 Reply Last reply Reply Quote 1
                    • S
                      simplyclever @David G. last edited by

                      @david-g Danke! Ich benutze VIS. Aber evtl. hilft es anderen.

                      David G. 1 Reply Last reply Reply Quote 0
                      • David G.
                        David G. @simplyclever last edited by

                        @simplyclever

                        Gerne,

                        das was du auf dem Bild siehst ist easy und "nicht wert zu posten" in Lovelace.

                        Das hier ist eher interessant.
                        Screenshot_20230227_100259_Fully Kiosk Browser.jpg

                        Wenn man auf "Los" drückt öffnen sich das vorherige Bild. Oben links der Status der Basis als Popup. Oben rechts der Adapterstatus.
                        Bei den unteren Icons klappen die entsprechenden Dinge aus.
                        Das Poste ich, wenn ich mit allem fertig bin, im Lovelace Thread.
                        Da wird sich immer schön ausgetauscht.

                        1 Reply Last reply Reply Quote 0
                        • David G.
                          David G. last edited by David G.

                          Ich habe den Adapter heute mal auf der Arbeit in einer Ubuntu VM (über vmware esxi) installiert (den-version von vor 10min) um mir die Funktionen anzuschauen die am RPI nicht klappen.

                          Hier möchte sich der Adapter nicht verbinden:

                          
                          roborock.0
                          2023-02-27 14:04:35.458	info	Terminated (NO_ERROR): Without reason
                          
                          roborock.0
                          2023-02-27 14:04:35.457	info	terminating
                          
                          roborock.0
                          2023-02-27 14:04:35.453	warn	Restart initiated
                          
                          roborock.0
                          2023-02-27 14:04:35.436	error	Connection timed out! Deleting UserData and trying again
                          
                          roborock.0
                          2023-02-27 14:04:30.435	info	MQTT initialized
                          
                          roborock.0
                          2023-02-27 14:04:29.442	info	starting. Version 0.0.10-alpha.0 (non-npm: copystring/ioBroker.roborock#dev) in /opt/iobroker/node_modules/iobroker.roborock, node: v14.19.3, js-controller: 4.0.21
                          
                          wendy2702 1 Reply Last reply Reply Quote 0
                          • wendy2702
                            wendy2702 @David G. last edited by

                            @david-g sagte in Roborock Adapter tester gesucht:

                            Arbeit in einer Ubuntu VM (über vmware esxi)

                            Zu wenig infos.

                            Welche Ubuntu Version?
                            NodeJS?
                            NPM?
                            Log im Debug mode

                            1 Reply Last reply Reply Quote 0
                            • David G.
                              David G. last edited by David G.

                              @wendy2702

                              Bleibt nun grün.
                              Die Firewall hat den Adapter irgendwie geblockt. Mal sehen warum (hab Sie grad zum Test kurz deaktiviert).

                              1 Reply Last reply Reply Quote 0
                              • copystring
                                copystring @David G. last edited by

                                @david-g said in Roborock Adapter tester gesucht:

                                @copystring

                                So,

                                habe getestet. Es klappt.
                                Allerdings war es wohl ein Fehler meinerseits.

                                Ich muss (wie ich jetzt gemerkt habe) erst die Multimap der Etage laden, und dann die Reinigung starten.
                                Das bekomme ich aber leicht in einem Skript eingebaut.

                                Genau. Die Karte muss ausgewählt sein damit dort entsprechenden gesaugt wird.

                                EDIT:
                                Hab mir ein Blockly geschrieben, um sicherzugehen, dass ich nur Räume in einer Etage aktiv habe und wähle dementsprechend die entsprechende Map aus.

                                Es reicht tatsächlich aus nur die Karte auszuwählen. Den Rest macht der Adapter automatisch. Das bedeutet es werden nur die Räume zum Reinigen abgeschickt, welche auf auf der aktuellen Karte verfügbar sind. Dadurch muss man nicht jedes mal die zu reinigenden Räume ändern.

                                Screenshot_20230227_073612_Chrome.jpg

                                So kann man in der Visu nichts falsch machen:
                                Screenshot_20230227_073743_Fully Kiosk Browser.jpg

                                Aber eine andere Frage:
                                Bei jedem Start sende ich vorab noch die Saugleistung und Wassermenge über set_water_box_custom_mode und set_custom_mode.
                                Die Beiden Datenpunkte stehen in meiner Visualisierung zum dropdown bereit.

                                Das mache ich, da meine Frau das ggf zwischenzeitlich per App geändert haben könnte.

                                Ist es möglich die beiden Datenpunkte unter commands vom Adapter aus mit dem Roboter synchron zu halten?

                                So müsste man/ich es nicht immer mit senden und man sieht die aktuelle Einstellung in seiner Auswahl.

                                Ähm nein. Das baue ich bewusst nicht ein da die commands, wie der Name schon verrät, einfach nur Befehle sind. Dort wird absichtlich nichts gelesen weil der echte wert von z.B. water_box_custom_mode unter deviceStatus zu finden ist. Synchron ist also alles unter deviceStatus. Diese nehmen auch die Daten aus der App entsprechend an. Wenn du dann über den Adapter set_water_box_custom_mode ausführst taucht genau so unter deviceStatus auf wie aus der App.

                                David G. 2 Replies Last reply Reply Quote 0
                                • copystring
                                  copystring last edited by copystring

                                  Ich brauche mal eure Hilfe.
                                  Es geht darum, die echten Werte der Verbrauchsmaterialien des Saugroboters zu bekommen.
                                  Bei mir sind das diese: Filter, Main Brush, Side Brush.
                                  In der aktuellen dev branch von gerade eben wird nicht mehr wie zuvor HomeData nur ein mal beim Einrichten des Adapters aktualisiert, sondern bei jedem Reconnect. Dadurch werden selbstverständlich einige weitere Daten zur Verfügung gestellt.
                                  In diesem Fall geht es um drei Werte im JSON String unter deviceStatus von HomeData.: 125, 126,127
                                  Diese haben bei mir folgende Bedeutung:

                                  • 125 = Main Brush
                                  • 126 = Side Brush
                                  • 127 = Filter

                                  Von jedem Wert dann jeweils 1 abziehen. Das sollte dann dem Wert in der App entsprechen.
                                  Klappt das bei euch auch würde ich das tatsächlich einbauen. Dadurch erhalten wir alle drei Stunden (oder bei Reconnect) die echten Werte in Prozent der Verbrauchsmaterialien, ohne für jeden Roboter eine eigene Berechnung durchführen zu müssen.

                                  1 Reply Last reply Reply Quote 0
                                  • David G.
                                    David G. @copystring last edited by

                                    @copystring sagte in Roborock Adapter tester gesucht:

                                    Ähm nein. Das baue ich bewusst nicht ein da die commands......

                                    Okay, danke für die Info. Dann schaue ich mal, wie man das in der Visu schlau umsetzt um sich nicht von den "falschen" Werten irritieren zu lassen.

                                    @copystring sagte in Roborock Adapter tester gesucht:

                                    Ich brauche mal eure Hilfe.
                                    Es geht darum, die echten Werte der Verbrauchsmaterialien des Saugroboters zu bekommen.

                                    Gibt es die Werte schon irgendwo?
                                    In der Json hab ich was stehen, hier exemplarisch ein Wert.

                                              "id": "125",
                                              "name": "主刷寿命",
                                              "code": "main_brush_life",
                                              "mode": "rw",
                                              "type": "VALUE",
                                              "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": null, \"scale\": 1}",
                                              "desc": null
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • copystring
                                      copystring last edited by

                                      @david-g said in Roborock Adapter tester gesucht:

                                      Gibt es die Werte schon irgendwo?
                                      In der Json hab ich was stehen, hier exemplarisch ein Wert.

                                                "id": "125",
                                                "name": "主刷寿命",
                                                "code": "main_brush_life",
                                                "mode": "rw",
                                                "type": "VALUE",
                                                "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": null, \"scale\": 1}",
                                                "desc": null
                                      

                                      Ja weiter unten im deviceStatus

                                      David G. 1 Reply Last reply Reply Quote 0
                                      • David G.
                                        David G. @copystring last edited by David G.

                                        @copystring

                                        Gefunden

                                              "deviceStatus": {
                                                "120": 0,
                                                "121": 8,
                                                "122": 79,
                                                "123": 102,
                                                "124": 203,
                                                "125": 99,
                                                "126": 99,
                                                "127": 98,
                                                "128": 0,
                                                "133": 1
                                              },
                                        

                                        Stimmt bei mir aber nicht mit den Daten in der App überein (auch nicht mit -1).
                                        Screenshot_20230227_234401_Roborock.jpg

                                        copystring 1 Reply Last reply Reply Quote 0
                                        • copystring
                                          copystring @David G. last edited by

                                          @david-g OK. Mal bitte in ioBroker checken, wann HomeData zuletzt geschrieben wurden. Sind das vielleicht alte Daten?

                                          David G. 1 Reply Last reply Reply Quote 0
                                          • David G.
                                            David G. @copystring last edited by

                                            @copystring sagte in Roborock Adapter tester gesucht:

                                            @david-g OK. Mal bitte in ioBroker checken, wann HomeData zuletzt geschrieben wurden. Sind das vielleicht alte Daten?

                                            In der Tat.
                                            Ist vom 19.2

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            444
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            51
                                            766
                                            144915
                                            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