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.
    • T
      tschoeplis @DonToben last edited by

      @dontoben sagte in Roborock Adapter tester gesucht:

      https://github.com/copystring/ioBroker.roborock/tree/dev

      DANKEEEEEE

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

        @copystring
        Habe jetzt mal getestet, eine Reinigung über den Adapter zu starten.

        Habe unter floors.0 einen Raum auf true gesetzt.
        Danach über app_segment_clean die Reinigung gestartet.

        Beim Starten stürzt der Adapter mit folgendem Logeintrag ab:

        roborock.0
        2023-02-24 21:59:47.925	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
        
        roborock.0
        2023-02-24 21:59:47.923	info	terminating
        
        roborock.0
        2023-02-24 21:59:47.917	error	Cannot read properties of null (reading 'val')
        
        roborock.0
        2023-02-24 21:59:47.916	error	TypeError: Cannot read properties of null (reading 'val') at /opt/iobroker/node_modules/iobroker.roborock/lib/vacuum.js:184:20 at async vacuum.command (/opt/iobroker/node_modules/iobroker.roborock/lib/vacuum.js:180:4)
        
        roborock.0
        2023-02-24 21:59:47.916	error	unhandled promise rejection: Cannot read properties of null (reading 'val')
        
        roborock.0
        2023-02-24 21:59:47.914	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().
        

        Ich glaube einmalig hat er beim ersten Versuch gestartet.
        Aber nicht sicher.

        EDIT
        Aktuelle dev installiert.

        EDIT 2
        app_segment_clean scheint auch der einzige Datenpunkt zu sein, der nicht automatisch auf false zurück nachdem man ihn auf true setzt.

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

          @wendy2702 said in Roborock Adapter tester gesucht:

          set_carpet_clean_mode und set_carpet_mode

          set_carpet_clean_mode und set_carpet_mode müssen so aussehen. Das sind die Werte die Roborock beim Einstellen erwartet. Dies habe ich gerade nochmal bei mir getestet und der Roborock hat die Befehle sauber angenommen. Woran erkennst du denn, dass es nicht geklappt hat?

          1 Reply Last reply Reply Quote 0
          • copystring
            copystring @wendy2702 last edited by copystring

            @wendy2702 said in Roborock Adapter tester gesucht:

            2023-02-23 08:23:21.878  - warn: roborock.0 (167947) State "roborock.0.Devices.52xDmr.map.mapData" has no existing object, this might lead to an error in future versions
            2023-02-23 08:23:21.879  - warn: roborock.0 (167947) State "roborock.0.Devices.52mmr.map.mapBase64" has no existing object, this might lead to an error in future versions
            2023-02-23 08:23:21.880  - warn: roborock.0 (167947) State "roborock.0.Devices.52xDmr.map.mapBase64Truncated" has no existing object, this might lead to an error in future versions
            
            

            Objekte werden allerdings angelegt.

            Das Problem konnte ich in https://github.com/copystring/ioBroker.roborock/tree/dev beheben.

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

              @david-g said in Roborock Adapter tester gesucht:

              @copystring
              Habe jetzt mal getestet, eine Reinigung über den Adapter zu starten.

              Habe unter floors.0 einen Raum auf true gesetzt.
              Danach über app_segment_clean die Reinigung gestartet.

              Beim Starten stürzt der Adapter mit folgendem Logeintrag ab:

              roborock.0
              2023-02-24 21:59:47.925	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
              
              roborock.0
              2023-02-24 21:59:47.923	info	terminating
              
              roborock.0
              2023-02-24 21:59:47.917	error	Cannot read properties of null (reading 'val')
              
              roborock.0
              2023-02-24 21:59:47.916	error	TypeError: Cannot read properties of null (reading 'val') at /opt/iobroker/node_modules/iobroker.roborock/lib/vacuum.js:184:20 at async vacuum.command (/opt/iobroker/node_modules/iobroker.roborock/lib/vacuum.js:180:4)
              
              roborock.0
              2023-02-24 21:59:47.916	error	unhandled promise rejection: Cannot read properties of null (reading 'val')
              
              roborock.0
              2023-02-24 21:59:47.914	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().
              

              Ich glaube einmalig hat er beim ersten Versuch gestartet.
              Aber nicht sicher.

              EDIT
              Aktuelle dev installiert.

              EDIT 2
              app_segment_clean scheint auch der einzige Datenpunkt zu sein, der nicht automatisch auf false zurück nachdem man ihn auf true setzt.

              Bitte nochmal die aktuelle dev version testen und eine Rückmeldung geben. Es hat sich einiges geändert.

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

                @copystring

                Selbes Verhalten.
                Jetzt hat er jedoch noch eine Etage doppelt angelegt.

                Screenshot_20230225_072232_Chrome.jpg

                Edit
                Hier nochmal der log. Hab aus jeder Etage einen Raum getestet.

                roborock.0
                2023-02-25 07:21:45.821	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
                
                roborock.0
                2023-02-25 07:21:45.819	info	terminating
                
                roborock.0
                2023-02-25 07:21:45.805	error	Cannot read properties of null (reading 'val')
                
                roborock.0
                2023-02-25 07:21:45.804	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-25 07:21:45.803	error	unhandled promise rejection: Cannot read properties of null (reading 'val')
                
                roborock.0
                2023-02-25 07:21:45.801	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().
                
                roborock.0
                2023-02-25 07:16:06.487	info	MQTT initialized
                
                roborock.0
                2023-02-25 07:16:06.024	info	starting. Version 0.0.10-alpha.0 (non-npm: copystring/ioBroker.roborock#dev) in /opt/iobroker/node_modules/iobroker.roborock, node: v16.19.1, js-controller: 4.0.24
                

                Edit 2
                Habe jetzt nochmal alle Datenpunkte unterhalb floors gelöscht und neu abgerufen, nun scheint es zu klappen.
                Teste nachher aber nochmal.

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

                  @copystring sagte in Roborock Adapter tester gesucht:

                  @wendy2702 said in Roborock Adapter tester gesucht:

                  set_carpet_clean_mode und set_carpet_mode

                  set_carpet_clean_mode und set_carpet_mode müssen so aussehen. Das sind die Werte die Roborock beim Einstellen erwartet. Dies habe ich gerade nochmal bei mir getestet und der Roborock hat die Befehle sauber angenommen. Woran erkennst du denn, dass es nicht geklappt hat?

                  OK. Hatte das irgendwie anders in Erinnerung.

                  Ich bekomme bei allen Befehlen ausser diesen Beiden ein Akustische Rückmeldung vom Sauger. Werde heute mal über Tag testen und dabei ins Log schauen.

                  copystring 1 Reply Last reply Reply Quote 0
                  • copystring
                    copystring @wendy2702 last edited by

                    @wendy2702 Ja das stimmt. Bei den beiden Befehlen kommt keine akustische Rückmeldung der Wert wird aber gesetzt.

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

                      @copystring sagte in Roborock Adapter tester gesucht:

                      @david-g ich habe mir gebraucht dell wyse 3040 gekauft. Brauchen weniger Strom und sind schneller und x86 anstatt arm. Einfach eine SSD via USB mit Adapter anschließen und Debian installieren. Läuft super wenn man keine gpio Pins benötigt. Kann ich also empfehlen wenn die gpio Pins nicht benötigt werden

                      Grad den Post erst gesehen, irgendwie untergegangen.
                      Ist wirklich eine gute Alternative. Allerdings brauche ich schon 4GB RAM.

                      So scheint es den nicht zu geben 🤔

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

                        xxxxxxxx

                        1 Reply Last reply Reply Quote 0
                        • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            977
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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