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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Roborock Adapter tester gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                  • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            823
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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