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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Neuer Adapter für Roborock-Staubsauger

Scheduled Pinned Locked Moved ioBroker Allgemein
1.0k Posts 146 Posters 350.0k Views 132 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jahnbesJ jahnbes

    @spacerx
    Danke! Ich werde mich am Wochenende darum kümmern und das Wiki ergänzen.

    Kannst Du mir / uns das "Kleines Blockly zum loggen der Datenpunkte vom Sauger geschrieben." zukommen lassen?

    Gruß Bert.

    S Offline
    S Offline
    SpacerX
    wrote on last edited by SpacerX
    #81

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

    Kannst Du mir / uns das "Kleines Blockly zum loggen der Datenpunkte vom Sauger geschrieben." zukommen lassen?

    Kann ich.

    Ich habe noch etwas dran herum gestrickt damit es einfach so läuft ohne Anpassungen.

    Zu beachten ist das nur vom Adapter bereitgestellte Datenpunkte erfasst werden und immer die Verzögerung eintritt die beim Aktualisierungsintervall im Adapter angegeben ist.

    SchnipSchnap.PNG

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable id="Dp(TEdvXq|dD(9XLkW!D">text</variable>
        <variable id=":UNV]Z$?%Qg963*a]Bn@">id</variable>
        <variable id="y]eb]G~;C._1Kg*RZ*)b">robiDevice</variable>
        <variable id="+r1nueMYBS=AZLN+pK0^">datenpunkt</variable>
        <variable id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</variable>
      </variables>
      <block type="procedures_defcustomnoreturn" id="qIp]hmVn|SQ~VcN{33kg" x="38" y="-213">
        <mutation statements="false">
          <arg name="text" varid="Dp(TEdvXq|dD(9XLkW!D"></arg>
        </mutation>
        <field name="NAME">RobiLog</field>
        <field name="SCRIPT">Y29uc29sZS5sb2coKCcjIFJvYmkgLT4gJyArIFN0cmluZyh0ZXh0KSkpOw==</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="procedures_defcustomreturn" id="CP?Cyo9e2)ey}0dh;^ke" x="37" y="-162">
        <mutation statements="false"></mutation>
        <field name="NAME">GetRobiStateText</field>
        <field name="SCRIPT">dmFyIHN0YXRlSUQgPSAicm9ib3JvY2suMC5EZXZpY2VzLiIgKyByb2JpRGV2aWNlICsgIi5kZXZpY2VTdGF0dXMuc3RhdGUiDQpyZXR1cm4gZ2V0T2JqZWN0KHN0YXRlSUQpLmNvbW1vbi5zdGF0ZXNbZ2V0U3RhdGUoc3RhdGVJRCkudmFsXQ==</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="procedures_defcustomreturn" id="oX1{x8TY@`NKcBbs^kq`" x="38" y="-113">
        <mutation statements="false">
          <arg name="id" varid=":UNV]Z$?%Qg963*a]Bn@"></arg>
        </mutation>
        <field name="NAME">GetName</field>
        <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="procedures_defcustomreturn" id="O-zZjZP:-@/s|8_l-`wX" x="38" y="-62">
        <mutation statements="false"></mutation>
        <field name="NAME">GetDevice</field>
        <field name="SCRIPT">dmFyIGRldmljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSgkKCJyb2Jvcm9jay4wLkRldmljZXMuKiIpKVswXS5zcGxpdCgnLicpWzNdOw0KY29uc29sZS5sb2coKFsnICMgUm9iaSAtPiBTdGFydCBsb2dnaW5nIFJvYm9yb2NrIEluc3RhbnogMCAtIERldmljZTogIicsZGV2aWNlLCciJ10uam9pbignJykpKTsNCnJldHVybiBkZXZpY2U7</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="procedures_defcustomreturn" id="b#cVo{O:Xr%.:G~wk%BH" x="38" y="-12">
        <mutation statements="false">
          <arg name="id" varid=":UNV]Z$?%Qg963*a]Bn@"></arg>
        </mutation>
        <field name="NAME">GetDatenpunkt</field>
        <field name="SCRIPT">dG1wTGlzdGUgPSBpZC5zcGxpdCgnLicpOw0KdG1wTGlzdGUgPSB0bXBMaXN0ZS5zbGljZSh0bXBMaXN0ZS5sZW5ndGggLSAyLCB0bXBMaXN0ZS5sZW5ndGgpOw0KcmV0dXJuIHRtcExpc3RlLmpvaW4oJy4nKTs=</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="procedures_defcustomreturn" id="N%zy{o^r_)pj@)iW{[?^" x="38" y="38">
        <mutation statements="false">
          <arg name="id" varid=":UNV]Z$?%Qg963*a]Bn@"></arg>
        </mutation>
        <field name="NAME">GetSektion</field>
        <field name="SCRIPT">dG1wTGlzdGUgPSBpZC5zcGxpdCgnLicpOw0KcmV0dXJuIHRtcExpc3RlLnNsaWNlKC0yKVswXQ==</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="comment" id="?!:f=F9o%1h~eQ+b=~1H" x="37" y="88">
        <field name="COMMENT">Roborock DP`s loggen</field>
        <next>
          <block type="variables_set" id="*IkFS7Tt#d$=Zm3kGZ@u">
            <field name="VAR" id="y]eb]G~;C._1Kg*RZ*)b">robiDevice</field>
            <value name="VALUE">
              <block type="procedures_callcustomreturn" id="K-7wFf;`p!Dsqw69}$fO">
                <mutation name="GetDevice"></mutation>
              </block>
            </value>
            <next>
              <block type="on_ext" id="}Cjj:guHosL3tZ9AS7!F">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="_1~8-Qi)XQQfbpzHscaH">
                    <field name="oid">default</field>
                  </shadow>
                  <block type="selector" id="%nM33D%sk`5v*|1MAb4k">
                    <field name="TEXT">roborock.0.Devices." + robiDevice + ".*</field>
                  </block>
                </value>
                <statement name="STATEMENT">
                  <block type="variables_set" id="Y5uR438l0`7hHKOW4aqP">
                    <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                    <value name="VALUE">
                      <block type="procedures_callcustomreturn" id="3CX:;{,RAM%~o.w6B-gn" inline="true">
                        <mutation name="GetDatenpunkt">
                          <arg name="id"></arg>
                        </mutation>
                        <value name="ARG0">
                          <block type="on_source" id="d-*Fm*J|4{(1#,-UGfb,">
                            <field name="ATTR">id</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="controls_if" id="s9!Kr3|Fy|vPX`(aBW|^">
                        <mutation elseif="2" else="1"></mutation>
                        <value name="IF0">
                          <block type="logic_compare" id="~wZ4EwlpPJ]w[VS:1{qA">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="variables_get" id="+dbMgijJ12zIg1zv*?bh">
                                <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="text" id="8FXGeXyr?zpfFei$1618">
                                <field name="TEXT">deviceStatus.msg_seq</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="comment" id="2b{#DDDt4KmkFVzUfvPT">
                            <field name="COMMENT">ausschließen</field>
                          </block>
                        </statement>
                        <value name="IF1">
                          <block type="logic_compare" id="0!^^HpJ.J08-{eY*ODa3">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="variables_get" id=")|yoBHjnvqqN@kOxF3le">
                                <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="text" id="Z;6E8hFG!WL:oZSGB0Tm">
                                <field name="TEXT">networkInfo.rssi</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO1">
                          <block type="comment" id="qnCQIoA)9[ijQMLQF6no">
                            <field name="COMMENT">ausschließen</field>
                          </block>
                        </statement>
                        <value name="IF2">
                          <block type="logic_compare" id="R!z=Y/lV^q|3{z#*MX?n">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="procedures_callcustomreturn" id="lBk9kQU1UfL35p1}`X%/" inline="true">
                                <mutation name="GetSektion">
                                  <arg name="id"></arg>
                                </mutation>
                                <value name="ARG0">
                                  <block type="on_source" id="inf$mhhpto.(Z#qor)gM">
                                    <field name="ATTR">id</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <block type="text" id="P[^^zTEfaL)=-BV:atZ[">
                                <field name="TEXT">map</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO2">
                          <block type="comment" id="IrLaMx.fY]vHKd=GC|]m">
                            <field name="COMMENT">ausschließen</field>
                          </block>
                        </statement>
                        <statement name="ELSE">
                          <block type="variables_set" id="5wr|$lnk==:5JTX)rDfk">
                            <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                            <value name="VALUE">
                              <block type="text" id="Z(s%7um*A*H;~t9eiq#c">
                                <field name="TEXT"></field>
                              </block>
                            </value>
                            <next>
                              <block type="controls_if" id="g}5r)k5v#*y|]xH[lpE$">
                                <value name="IF0">
                                  <block type="logic_compare" id="]:,Uu/R%/+22NQ-m]x:_">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="variables_get" id="#=HegdOuoxuWaVjhrB8u">
                                        <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="text" id="_{#]pq]9a+2R;eM!wt5:">
                                        <field name="TEXT">deviceStatus.state</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO0">
                                  <block type="variables_set" id="fD)M(aoA*^`D@`fLBYW3" disabled="true">
                                    <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                                    <value name="VALUE">
                                      <block type="text_join" id="bh:KAYP%BS8VW6=XC]8C" inline="true">
                                        <mutation items="3"></mutation>
                                        <value name="ADD0">
                                          <block type="text" id="hb[3Y**=`bfao{[D^e2c">
                                            <field name="TEXT"> (</field>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="field_oid" id="(eK!JWI[O-3X@y_%jST/">
                                            <field name="oid">alias.0.Kueche.Roborock.Status.Zustand</field>
                                          </block>
                                        </value>
                                        <value name="ADD2">
                                          <block type="text" id="P:j.NT!lnmMvX`/KvVlk">
                                            <field name="TEXT">)</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="variables_set" id="|tzt{0w;V0obfXU}$pk-">
                                        <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                                        <value name="VALUE">
                                          <block type="text_join" id=":PATIg.X0t##Du:,wU#`" inline="true">
                                            <mutation items="3"></mutation>
                                            <value name="ADD0">
                                              <block type="text" id="?X:DfH.Zm-_r$K5O][fp">
                                                <field name="TEXT"> (</field>
                                              </block>
                                            </value>
                                            <value name="ADD1">
                                              <block type="procedures_callcustomreturn" id="cDL1Mb$AAM$)z,[yj9^V" inline="true">
                                                <mutation name="GetRobiStateText"></mutation>
                                              </block>
                                            </value>
                                            <value name="ADD2">
                                              <block type="text" id=",3_,#[I$6[:,f:M|cT_k">
                                                <field name="TEXT">)</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                                <next>
                                  <block type="procedures_callcustomnoreturn" id="0]vAqu2g7aQrTv|hf%W+" inline="true">
                                    <mutation name="RobiLog">
                                      <arg name="text"></arg>
                                    </mutation>
                                    <value name="ARG0">
                                      <block type="text_join" id="FkCwEa@T*cREvAt;iV*#">
                                        <mutation items="4"></mutation>
                                        <value name="ADD0">
                                          <block type="procedures_callcustomreturn" id="ba5]2zs,;pKK9P/sfH-?" inline="true">
                                            <mutation name="GetName">
                                              <arg name="id"></arg>
                                            </mutation>
                                            <value name="ARG0">
                                              <block type="on_source" id="L$IUp=sJxALkb[!h=,l7">
                                                <field name="ATTR">id</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="text_join" id="S].PLij5PRyzH^RY+b48" inline="true">
                                            <mutation items="3"></mutation>
                                            <value name="ADD0">
                                              <block type="text" id="a),`F*[,hxB}KrSOk3r`">
                                                <field name="TEXT"> [</field>
                                              </block>
                                            </value>
                                            <value name="ADD1">
                                              <block type="variables_get" id=".{KppZkN-dBxc!zEjCSZ">
                                                <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                                              </block>
                                            </value>
                                            <value name="ADD2">
                                              <block type="text" id="M*9=yoSfjY[z)(qCZ|+/">
                                                <field name="TEXT">] =  </field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="ADD2">
                                          <block type="text_join" id="Q%QO01tRqYTTg)HJLpuW" inline="true">
                                            <mutation items="3"></mutation>
                                            <value name="ADD0">
                                              <block type="on_source" id="8X.KdeqQu]=!sw.iN~fA">
                                                <field name="ATTR">oldState.val</field>
                                              </block>
                                            </value>
                                            <value name="ADD1">
                                              <block type="text" id="T=TB(;Oo=zS.sJf#}c3$">
                                                <field name="TEXT"> -&gt; </field>
                                              </block>
                                            </value>
                                            <value name="ADD2">
                                              <block type="on_source" id="H=Uvd4SX;)7L3|Y_(F!!">
                                                <field name="ATTR">state.val</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="ADD3">
                                          <block type="variables_get" id="i+fzc8kY=V}R`Lv%V/UW">
                                            <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </xml>
    


    Mit den 3 "falls mache" werden drei Datenpunkte ausgeschlossen die das log sehr unübersichtlich machen. Wer diese mit haben will, einfach den Block hinter falls ausblenden.
    Wer noch weitere Ausschließen will, dann ein "falls mache" hinzufügen.

    Dann viel Spaß beim Loggen der Adapterdatenpunkte.

    MfG Ralf

    DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

    jahnbesJ M 2 Replies Last reply
    0
    • S SpacerX

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

      Kannst Du mir / uns das "Kleines Blockly zum loggen der Datenpunkte vom Sauger geschrieben." zukommen lassen?

      Kann ich.

      Ich habe noch etwas dran herum gestrickt damit es einfach so läuft ohne Anpassungen.

      Zu beachten ist das nur vom Adapter bereitgestellte Datenpunkte erfasst werden und immer die Verzögerung eintritt die beim Aktualisierungsintervall im Adapter angegeben ist.

      SchnipSchnap.PNG

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="Dp(TEdvXq|dD(9XLkW!D">text</variable>
          <variable id=":UNV]Z$?%Qg963*a]Bn@">id</variable>
          <variable id="y]eb]G~;C._1Kg*RZ*)b">robiDevice</variable>
          <variable id="+r1nueMYBS=AZLN+pK0^">datenpunkt</variable>
          <variable id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</variable>
        </variables>
        <block type="procedures_defcustomnoreturn" id="qIp]hmVn|SQ~VcN{33kg" x="38" y="-213">
          <mutation statements="false">
            <arg name="text" varid="Dp(TEdvXq|dD(9XLkW!D"></arg>
          </mutation>
          <field name="NAME">RobiLog</field>
          <field name="SCRIPT">Y29uc29sZS5sb2coKCcjIFJvYmkgLT4gJyArIFN0cmluZyh0ZXh0KSkpOw==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomreturn" id="CP?Cyo9e2)ey}0dh;^ke" x="37" y="-162">
          <mutation statements="false"></mutation>
          <field name="NAME">GetRobiStateText</field>
          <field name="SCRIPT">dmFyIHN0YXRlSUQgPSAicm9ib3JvY2suMC5EZXZpY2VzLiIgKyByb2JpRGV2aWNlICsgIi5kZXZpY2VTdGF0dXMuc3RhdGUiDQpyZXR1cm4gZ2V0T2JqZWN0KHN0YXRlSUQpLmNvbW1vbi5zdGF0ZXNbZ2V0U3RhdGUoc3RhdGVJRCkudmFsXQ==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomreturn" id="oX1{x8TY@`NKcBbs^kq`" x="38" y="-113">
          <mutation statements="false">
            <arg name="id" varid=":UNV]Z$?%Qg963*a]Bn@"></arg>
          </mutation>
          <field name="NAME">GetName</field>
          <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomreturn" id="O-zZjZP:-@/s|8_l-`wX" x="38" y="-62">
          <mutation statements="false"></mutation>
          <field name="NAME">GetDevice</field>
          <field name="SCRIPT">dmFyIGRldmljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSgkKCJyb2Jvcm9jay4wLkRldmljZXMuKiIpKVswXS5zcGxpdCgnLicpWzNdOw0KY29uc29sZS5sb2coKFsnICMgUm9iaSAtPiBTdGFydCBsb2dnaW5nIFJvYm9yb2NrIEluc3RhbnogMCAtIERldmljZTogIicsZGV2aWNlLCciJ10uam9pbignJykpKTsNCnJldHVybiBkZXZpY2U7</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomreturn" id="b#cVo{O:Xr%.:G~wk%BH" x="38" y="-12">
          <mutation statements="false">
            <arg name="id" varid=":UNV]Z$?%Qg963*a]Bn@"></arg>
          </mutation>
          <field name="NAME">GetDatenpunkt</field>
          <field name="SCRIPT">dG1wTGlzdGUgPSBpZC5zcGxpdCgnLicpOw0KdG1wTGlzdGUgPSB0bXBMaXN0ZS5zbGljZSh0bXBMaXN0ZS5sZW5ndGggLSAyLCB0bXBMaXN0ZS5sZW5ndGgpOw0KcmV0dXJuIHRtcExpc3RlLmpvaW4oJy4nKTs=</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomreturn" id="N%zy{o^r_)pj@)iW{[?^" x="38" y="38">
          <mutation statements="false">
            <arg name="id" varid=":UNV]Z$?%Qg963*a]Bn@"></arg>
          </mutation>
          <field name="NAME">GetSektion</field>
          <field name="SCRIPT">dG1wTGlzdGUgPSBpZC5zcGxpdCgnLicpOw0KcmV0dXJuIHRtcExpc3RlLnNsaWNlKC0yKVswXQ==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="comment" id="?!:f=F9o%1h~eQ+b=~1H" x="37" y="88">
          <field name="COMMENT">Roborock DP`s loggen</field>
          <next>
            <block type="variables_set" id="*IkFS7Tt#d$=Zm3kGZ@u">
              <field name="VAR" id="y]eb]G~;C._1Kg*RZ*)b">robiDevice</field>
              <value name="VALUE">
                <block type="procedures_callcustomreturn" id="K-7wFf;`p!Dsqw69}$fO">
                  <mutation name="GetDevice"></mutation>
                </block>
              </value>
              <next>
                <block type="on_ext" id="}Cjj:guHosL3tZ9AS7!F">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                  <field name="CONDITION">ne</field>
                  <field name="ACK_CONDITION"></field>
                  <value name="OID0">
                    <shadow type="field_oid" id="_1~8-Qi)XQQfbpzHscaH">
                      <field name="oid">default</field>
                    </shadow>
                    <block type="selector" id="%nM33D%sk`5v*|1MAb4k">
                      <field name="TEXT">roborock.0.Devices." + robiDevice + ".*</field>
                    </block>
                  </value>
                  <statement name="STATEMENT">
                    <block type="variables_set" id="Y5uR438l0`7hHKOW4aqP">
                      <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                      <value name="VALUE">
                        <block type="procedures_callcustomreturn" id="3CX:;{,RAM%~o.w6B-gn" inline="true">
                          <mutation name="GetDatenpunkt">
                            <arg name="id"></arg>
                          </mutation>
                          <value name="ARG0">
                            <block type="on_source" id="d-*Fm*J|4{(1#,-UGfb,">
                              <field name="ATTR">id</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="controls_if" id="s9!Kr3|Fy|vPX`(aBW|^">
                          <mutation elseif="2" else="1"></mutation>
                          <value name="IF0">
                            <block type="logic_compare" id="~wZ4EwlpPJ]w[VS:1{qA">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="variables_get" id="+dbMgijJ12zIg1zv*?bh">
                                  <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="8FXGeXyr?zpfFei$1618">
                                  <field name="TEXT">deviceStatus.msg_seq</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="comment" id="2b{#DDDt4KmkFVzUfvPT">
                              <field name="COMMENT">ausschließen</field>
                            </block>
                          </statement>
                          <value name="IF1">
                            <block type="logic_compare" id="0!^^HpJ.J08-{eY*ODa3">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="variables_get" id=")|yoBHjnvqqN@kOxF3le">
                                  <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="Z;6E8hFG!WL:oZSGB0Tm">
                                  <field name="TEXT">networkInfo.rssi</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO1">
                            <block type="comment" id="qnCQIoA)9[ijQMLQF6no">
                              <field name="COMMENT">ausschließen</field>
                            </block>
                          </statement>
                          <value name="IF2">
                            <block type="logic_compare" id="R!z=Y/lV^q|3{z#*MX?n">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="procedures_callcustomreturn" id="lBk9kQU1UfL35p1}`X%/" inline="true">
                                  <mutation name="GetSektion">
                                    <arg name="id"></arg>
                                  </mutation>
                                  <value name="ARG0">
                                    <block type="on_source" id="inf$mhhpto.(Z#qor)gM">
                                      <field name="ATTR">id</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="P[^^zTEfaL)=-BV:atZ[">
                                  <field name="TEXT">map</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO2">
                            <block type="comment" id="IrLaMx.fY]vHKd=GC|]m">
                              <field name="COMMENT">ausschließen</field>
                            </block>
                          </statement>
                          <statement name="ELSE">
                            <block type="variables_set" id="5wr|$lnk==:5JTX)rDfk">
                              <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                              <value name="VALUE">
                                <block type="text" id="Z(s%7um*A*H;~t9eiq#c">
                                  <field name="TEXT"></field>
                                </block>
                              </value>
                              <next>
                                <block type="controls_if" id="g}5r)k5v#*y|]xH[lpE$">
                                  <value name="IF0">
                                    <block type="logic_compare" id="]:,Uu/R%/+22NQ-m]x:_">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="variables_get" id="#=HegdOuoxuWaVjhrB8u">
                                          <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="text" id="_{#]pq]9a+2R;eM!wt5:">
                                          <field name="TEXT">deviceStatus.state</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="variables_set" id="fD)M(aoA*^`D@`fLBYW3" disabled="true">
                                      <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                                      <value name="VALUE">
                                        <block type="text_join" id="bh:KAYP%BS8VW6=XC]8C" inline="true">
                                          <mutation items="3"></mutation>
                                          <value name="ADD0">
                                            <block type="text" id="hb[3Y**=`bfao{[D^e2c">
                                              <field name="TEXT"> (</field>
                                            </block>
                                          </value>
                                          <value name="ADD1">
                                            <block type="field_oid" id="(eK!JWI[O-3X@y_%jST/">
                                              <field name="oid">alias.0.Kueche.Roborock.Status.Zustand</field>
                                            </block>
                                          </value>
                                          <value name="ADD2">
                                            <block type="text" id="P:j.NT!lnmMvX`/KvVlk">
                                              <field name="TEXT">)</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="|tzt{0w;V0obfXU}$pk-">
                                          <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                                          <value name="VALUE">
                                            <block type="text_join" id=":PATIg.X0t##Du:,wU#`" inline="true">
                                              <mutation items="3"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="?X:DfH.Zm-_r$K5O][fp">
                                                  <field name="TEXT"> (</field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="procedures_callcustomreturn" id="cDL1Mb$AAM$)z,[yj9^V" inline="true">
                                                  <mutation name="GetRobiStateText"></mutation>
                                                </block>
                                              </value>
                                              <value name="ADD2">
                                                <block type="text" id=",3_,#[I$6[:,f:M|cT_k">
                                                  <field name="TEXT">)</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <next>
                                    <block type="procedures_callcustomnoreturn" id="0]vAqu2g7aQrTv|hf%W+" inline="true">
                                      <mutation name="RobiLog">
                                        <arg name="text"></arg>
                                      </mutation>
                                      <value name="ARG0">
                                        <block type="text_join" id="FkCwEa@T*cREvAt;iV*#">
                                          <mutation items="4"></mutation>
                                          <value name="ADD0">
                                            <block type="procedures_callcustomreturn" id="ba5]2zs,;pKK9P/sfH-?" inline="true">
                                              <mutation name="GetName">
                                                <arg name="id"></arg>
                                              </mutation>
                                              <value name="ARG0">
                                                <block type="on_source" id="L$IUp=sJxALkb[!h=,l7">
                                                  <field name="ATTR">id</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <value name="ADD1">
                                            <block type="text_join" id="S].PLij5PRyzH^RY+b48" inline="true">
                                              <mutation items="3"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="a),`F*[,hxB}KrSOk3r`">
                                                  <field name="TEXT"> [</field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="variables_get" id=".{KppZkN-dBxc!zEjCSZ">
                                                  <field name="VAR" id="+r1nueMYBS=AZLN+pK0^">datenpunkt</field>
                                                </block>
                                              </value>
                                              <value name="ADD2">
                                                <block type="text" id="M*9=yoSfjY[z)(qCZ|+/">
                                                  <field name="TEXT">] =  </field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <value name="ADD2">
                                            <block type="text_join" id="Q%QO01tRqYTTg)HJLpuW" inline="true">
                                              <mutation items="3"></mutation>
                                              <value name="ADD0">
                                                <block type="on_source" id="8X.KdeqQu]=!sw.iN~fA">
                                                  <field name="ATTR">oldState.val</field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="text" id="T=TB(;Oo=zS.sJf#}c3$">
                                                  <field name="TEXT"> -&gt; </field>
                                                </block>
                                              </value>
                                              <value name="ADD2">
                                                <block type="on_source" id="H=Uvd4SX;)7L3|Y_(F!!">
                                                  <field name="ATTR">state.val</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <value name="ADD3">
                                            <block type="variables_get" id="i+fzc8kY=V}R`Lv%V/UW">
                                              <field name="VAR" id="k6-Q,C$hI=dp+9Lz9*Ih">beschreibung</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      


      Mit den 3 "falls mache" werden drei Datenpunkte ausgeschlossen die das log sehr unübersichtlich machen. Wer diese mit haben will, einfach den Block hinter falls ausblenden.
      Wer noch weitere Ausschließen will, dann ein "falls mache" hinzufügen.

      Dann viel Spaß beim Loggen der Adapterdatenpunkte.

      MfG Ralf

      jahnbesJ Offline
      jahnbesJ Offline
      jahnbes
      wrote on last edited by
      #82

      @spacerx
      Es ist mir etwas peinlich, aber nachdem ich mir fast den iobroker zerschossen habe, wie bekomme ich Dein Skript bei mir in den iobroker?
      Das Blockly ist nur ein Ausschnitt und der Code bringt bei mir nur Fehler. Finden wir einen Weg. Wie machst Du das bei Dir, also Dein Weg vom Code zum Blockly?
      Gruß Bert.

      S 1 Reply Last reply
      0
      • jahnbesJ jahnbes

        @spacerx
        Es ist mir etwas peinlich, aber nachdem ich mir fast den iobroker zerschossen habe, wie bekomme ich Dein Skript bei mir in den iobroker?
        Das Blockly ist nur ein Ausschnitt und der Code bringt bei mir nur Fehler. Finden wir einen Weg. Wie machst Du das bei Dir, also Dein Weg vom Code zum Blockly?
        Gruß Bert.

        S Offline
        S Offline
        SpacerX
        wrote on last edited by
        #83

        @jahnbes auf der Seite JavaScript ein neues Blockly erstellen. Das dann öffnen und oben rechts im Editor Block einfügen wählen. Dort kopierst du den Code aus dem Spoiler rein. Dann Skript speichern und starten.
        das war es.

        DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

        jahnbesJ 1 Reply Last reply
        0
        • S SpacerX

          @jahnbes auf der Seite JavaScript ein neues Blockly erstellen. Das dann öffnen und oben rechts im Editor Block einfügen wählen. Dort kopierst du den Code aus dem Spoiler rein. Dann Skript speichern und starten.
          das war es.

          jahnbesJ Offline
          jahnbesJ Offline
          jahnbes
          wrote on last edited by jahnbes
          #84

          @spacerx
          Danke, der Weg funktionierte leider nicht. Ich habe inzwischen auch gefunden, warum, in Deinem Blockly-Skript oben fehlt die erste Zeile

          <xml xmlns="https://developers.google.com/blockly/xml">

          Steht die am Beginn des Blockly-Skriptes, dann wird blockly ohne Fehler erkannt und angezeigt.
          Mehr noch nicht, ich bin am forschen.
          Gruß Bert.

          S 1 Reply Last reply
          0
          • jahnbesJ jahnbes

            @spacerx
            Danke, der Weg funktionierte leider nicht. Ich habe inzwischen auch gefunden, warum, in Deinem Blockly-Skript oben fehlt die erste Zeile

            <xml xmlns="https://developers.google.com/blockly/xml">

            Steht die am Beginn des Blockly-Skriptes, dann wird blockly ohne Fehler erkannt und angezeigt.
            Mehr noch nicht, ich bin am forschen.
            Gruß Bert.

            S Offline
            S Offline
            SpacerX
            wrote on last edited by
            #85

            @jahnbes Sorry.

            Ich hatte es schon komplett kopiert und im Code Tag war auch alles enthalten.
            Nur Stand der Code Tag in der gleichen Zeile wie der Beginn des Codes so das diese von HTML verschluckt wurde.

            Ich hab das in meinem Beitrag oben korrigiert und auch den Import sowie dann die Funktion getestet.

            Nun ist alles Richtig und es sollte funktionieren.

            DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

            jahnbesJ 1 Reply Last reply
            0
            • S SpacerX

              @jahnbes Sorry.

              Ich hatte es schon komplett kopiert und im Code Tag war auch alles enthalten.
              Nur Stand der Code Tag in der gleichen Zeile wie der Beginn des Codes so das diese von HTML verschluckt wurde.

              Ich hab das in meinem Beitrag oben korrigiert und auch den Import sowie dann die Funktion getestet.

              Nun ist alles Richtig und es sollte funktionieren.

              jahnbesJ Offline
              jahnbesJ Offline
              jahnbes
              wrote on last edited by
              #86

              @spacerx
              Da sind noch ein paar private (?) Funktionen enthalten, die nicht mit rübergekommen sind, oder denke ich da falsch? Von "RobiLog" nach unten bis "GetSektion".
              Siehe im Bild links
              roblog_1.jpg
              Sind das private Funktionen oder allen zugängliche und ich habe sie nur noch nicht gefunden?
              Gruß Bert.

              S 1 Reply Last reply
              0
              • jahnbesJ jahnbes

                @spacerx
                Da sind noch ein paar private (?) Funktionen enthalten, die nicht mit rübergekommen sind, oder denke ich da falsch? Von "RobiLog" nach unten bis "GetSektion".
                Siehe im Bild links
                roblog_1.jpg
                Sind das private Funktionen oder allen zugängliche und ich habe sie nur noch nicht gefunden?
                Gruß Bert.

                S Offline
                S Offline
                SpacerX
                wrote on last edited by SpacerX
                #87

                @jahnbes das sind kleine Javascripts wenn du bei der Funktion auf (...) klickst siehst du diese.
                Das Blockly sollte so funktionieren. Einfach Starten und im Log sollte was von:
                "Start logging Roborock Instanz 0 - Device: "deindevice"

                Ich schrub ja schon das ich den Code im oben im Spoiler korrigiert habe.

                Ich hab das in meinem Beitrag oben korrigiert und auch den Import sowie dann die Funktion getestet.

                Nun ist alles Richtig und es sollte funktionieren.

                DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                jahnbesJ 1 Reply Last reply
                0
                • S SpacerX

                  @jahnbes das sind kleine Javascripts wenn du bei der Funktion auf (...) klickst siehst du diese.
                  Das Blockly sollte so funktionieren. Einfach Starten und im Log sollte was von:
                  "Start logging Roborock Instanz 0 - Device: "deindevice"

                  Ich schrub ja schon das ich den Code im oben im Spoiler korrigiert habe.

                  Ich hab das in meinem Beitrag oben korrigiert und auch den Import sowie dann die Funktion getestet.

                  Nun ist alles Richtig und es sollte funktionieren.

                  jahnbesJ Offline
                  jahnbesJ Offline
                  jahnbes
                  wrote on last edited by
                  #88

                  @spacerx
                  Klasse, jetzt sehe ich den log auch, vielen Dank und ein schönes Wochenende!
                  Gruß Bert.

                  1 Reply Last reply
                  0
                  • copystringC copystring

                    Zum Testen habe ich mir aber ioBroker auf Windows installiert. Dort dann den Roborock Adapter installieren und dem Wiki folgen.
                    Für Debian kann ich keinen Support geben. Geht theoretisch auch, habe ich aber nicht getestet.

                    S Offline
                    S Offline
                    SpacerX
                    wrote on last edited by
                    #89

                    @copystring
                    Ich hab mich mal am Sniffing Versuch.
                    So einfach wie es in der Wiki steht ist ja doch nicht.
                    Dazu hab ich mir auch mal ioBroker auf Windows installiert mit nur Roborock Adapter.
                    Erst mal den ganzen Kram nach Python zu installieren hat schon fast den ganzen Nachmittag aufgefressen.
                    Der Proxy auf dem Windows Rechner läuft und WireGuard auf dem IPhone auch.
                    Das Zertifikat hab ich abgerufen und im Iphone installiert.
                    Ich bekomme einfach keine Verbindung Zustande. Es kommen Fehler von TCL Version auf Client.

                    Könntest du mir da etwas unter die Arme greifen. Gern auch in einem Beitrag um das hier nicht so zuzumüllen,

                    DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                    copystringC 1 Reply Last reply
                    0
                    • S SpacerX

                      @copystring
                      Ich hab mich mal am Sniffing Versuch.
                      So einfach wie es in der Wiki steht ist ja doch nicht.
                      Dazu hab ich mir auch mal ioBroker auf Windows installiert mit nur Roborock Adapter.
                      Erst mal den ganzen Kram nach Python zu installieren hat schon fast den ganzen Nachmittag aufgefressen.
                      Der Proxy auf dem Windows Rechner läuft und WireGuard auf dem IPhone auch.
                      Das Zertifikat hab ich abgerufen und im Iphone installiert.
                      Ich bekomme einfach keine Verbindung Zustande. Es kommen Fehler von TCL Version auf Client.

                      Könntest du mir da etwas unter die Arme greifen. Gern auch in einem Beitrag um das hier nicht so zuzumüllen,

                      copystringC Offline
                      copystringC Offline
                      copystring
                      wrote on last edited by
                      #90

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

                      Es kommen Fehler von TCL Version auf Client.

                      In der Roborock App?

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

                      S 1 Reply Last reply
                      0
                      • copystringC copystring

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

                        Es kommen Fehler von TCL Version auf Client.

                        In der Roborock App?

                        S Offline
                        S Offline
                        SpacerX
                        wrote on last edited by SpacerX
                        #91

                        @copystring Nein im Cmd von mitmproxy.

                        Der Start.

                        mit Bash Script

                        C:\Users\SpacerX\.local\pipx\venvs\mitmproxy\Scripts\mitmweb.exe --listen-port 9090 --web-port 9091  --set tls_version_client_min=TLS1_3 --mode wireguard -s C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py
                        Pause
                        
                        [23:47:57.984] Loading script C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py
                        [23:47:58.017] Initializing WireGuard server ...
                        [23:47:58.017] WireGuard server listening for UDP connections on 0.0.0.0:9090 and [::]:9090 ...
                        [23:47:58.017] WireGuard server successfully initialized.
                        [23:47:58.017] ------------------------------------------------------------
                        [Interface]
                        PrivateKey = 
                        Address = 10.0.0.1/32
                        DNS = 10.0.0.53
                        
                        [Peer]
                        PublicKey = 
                        AllowedIPs = 0.0.0.0/0
                        Endpoint = 10.0.0.3:9090
                        ------------------------------------------------------------
                        [23:47:58.034] WireGuard server listening at *:9090.
                        [23:47:58.034] Web server listening at http://127.0.0.1:9091/
                        [23:48:08.804][10.0.0.1:57020] client connect
                        [23:48:08.804][10.0.0.1:62599] client connect
                        [23:48:08.804][10.0.0.1:61335] client connect
                        [23:48:08.804][10.0.0.1:64527] client connect
                        [23:48:08.804][10.0.0.1:49858] client connect
                        [23:48:08.830][10.0.0.1:60201] client connect
                        [23:48:08.864][10.0.0.1:64843] client connect
                        [23:48:08.881][10.0.0.1:64843] server connect 17.248.209.64:443
                        [23:48:09.695][10.0.0.1:64843] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                        [23:48:09.695][10.0.0.1:64843] client disconnect
                        

                        dann fortlaufen.

                        [23:49:21.680][10.0.0.1:52312] client disconnect
                        [23:49:22.146][10.0.0.1:49597] client connect
                        [23:49:22.284][10.0.0.1:63804] client connect
                        [23:49:22.304][10.0.0.1:63804] server connect 216.58.212.174:443
                        [23:49:22.323][10.0.0.1:63805] client connect
                        [23:49:22.354][10.0.0.1:63805] server connect 17.248.209.64:443
                        [23:49:22.361][10.0.0.1:63804] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                        [23:49:22.364][10.0.0.1:63804] client disconnect
                        [23:49:22.365][10.0.0.1:63804] server disconnect 216.58.212.174:443
                        [23:49:22.365][10.0.0.1:52816] client connect
                        [23:49:22.384][10.0.0.1:63805] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                        [23:49:22.387][10.0.0.1:63805] client disconnect
                        [23:49:22.389][10.0.0.1:63805] server disconnect 17.248.209.64:443
                        [23:49:22.519][10.0.0.1:63806] client connect
                        [23:49:22.541][10.0.0.1:63806] server connect 216.58.212.174:443
                        [23:49:22.603][10.0.0.1:63806] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                        [23:49:22.605][10.0.0.1:63806] client disconnect
                        [23:49:22.605][10.0.0.1:63806] server disconnect 216.58.212.174:443
                        [23:49:22.611][10.0.0.1:55374] client connect
                        [23:49:22.738][10.0.0.1:63807] client connect
                        [23:49:22.757][10.0.0.1:63807] server connect 216.58.212.174:443
                        [23:49:22.821][10.0.0.1:63807] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                        [23:49:22.821][10.0.0.1:63807] client disconnect
                        [23:49:22.821][10.0.0.1:63807] server disconnect 216.58.212.174:443
                        [23:49:24.700][10.0.0.1:63808] client connect
                        [23:49:24.728][10.0.0.1:63808] server connect 17.248.209.64:443
                        [23:49:24.754][10.0.0.1:63808] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                        [23:49:24.754][10.0.0.1:63808] client disconnect
                        [23:49:24.754][10.0.0.1:63808] server disconnect 17.248.209.64:443
                        [23:49:26.493][10.0.0.1:60191] Closing connection due to inactivity: Client(10.0.0.1:60191, state=open)
                        

                        DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                        copystringC 1 Reply Last reply
                        0
                        • S SpacerX

                          @copystring Nein im Cmd von mitmproxy.

                          Der Start.

                          mit Bash Script

                          C:\Users\SpacerX\.local\pipx\venvs\mitmproxy\Scripts\mitmweb.exe --listen-port 9090 --web-port 9091  --set tls_version_client_min=TLS1_3 --mode wireguard -s C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py
                          Pause
                          
                          [23:47:57.984] Loading script C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py
                          [23:47:58.017] Initializing WireGuard server ...
                          [23:47:58.017] WireGuard server listening for UDP connections on 0.0.0.0:9090 and [::]:9090 ...
                          [23:47:58.017] WireGuard server successfully initialized.
                          [23:47:58.017] ------------------------------------------------------------
                          [Interface]
                          PrivateKey = 
                          Address = 10.0.0.1/32
                          DNS = 10.0.0.53
                          
                          [Peer]
                          PublicKey = 
                          AllowedIPs = 0.0.0.0/0
                          Endpoint = 10.0.0.3:9090
                          ------------------------------------------------------------
                          [23:47:58.034] WireGuard server listening at *:9090.
                          [23:47:58.034] Web server listening at http://127.0.0.1:9091/
                          [23:48:08.804][10.0.0.1:57020] client connect
                          [23:48:08.804][10.0.0.1:62599] client connect
                          [23:48:08.804][10.0.0.1:61335] client connect
                          [23:48:08.804][10.0.0.1:64527] client connect
                          [23:48:08.804][10.0.0.1:49858] client connect
                          [23:48:08.830][10.0.0.1:60201] client connect
                          [23:48:08.864][10.0.0.1:64843] client connect
                          [23:48:08.881][10.0.0.1:64843] server connect 17.248.209.64:443
                          [23:48:09.695][10.0.0.1:64843] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                          [23:48:09.695][10.0.0.1:64843] client disconnect
                          

                          dann fortlaufen.

                          [23:49:21.680][10.0.0.1:52312] client disconnect
                          [23:49:22.146][10.0.0.1:49597] client connect
                          [23:49:22.284][10.0.0.1:63804] client connect
                          [23:49:22.304][10.0.0.1:63804] server connect 216.58.212.174:443
                          [23:49:22.323][10.0.0.1:63805] client connect
                          [23:49:22.354][10.0.0.1:63805] server connect 17.248.209.64:443
                          [23:49:22.361][10.0.0.1:63804] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                          [23:49:22.364][10.0.0.1:63804] client disconnect
                          [23:49:22.365][10.0.0.1:63804] server disconnect 216.58.212.174:443
                          [23:49:22.365][10.0.0.1:52816] client connect
                          [23:49:22.384][10.0.0.1:63805] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                          [23:49:22.387][10.0.0.1:63805] client disconnect
                          [23:49:22.389][10.0.0.1:63805] server disconnect 17.248.209.64:443
                          [23:49:22.519][10.0.0.1:63806] client connect
                          [23:49:22.541][10.0.0.1:63806] server connect 216.58.212.174:443
                          [23:49:22.603][10.0.0.1:63806] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                          [23:49:22.605][10.0.0.1:63806] client disconnect
                          [23:49:22.605][10.0.0.1:63806] server disconnect 216.58.212.174:443
                          [23:49:22.611][10.0.0.1:55374] client connect
                          [23:49:22.738][10.0.0.1:63807] client connect
                          [23:49:22.757][10.0.0.1:63807] server connect 216.58.212.174:443
                          [23:49:22.821][10.0.0.1:63807] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                          [23:49:22.821][10.0.0.1:63807] client disconnect
                          [23:49:22.821][10.0.0.1:63807] server disconnect 216.58.212.174:443
                          [23:49:24.700][10.0.0.1:63808] client connect
                          [23:49:24.728][10.0.0.1:63808] server connect 17.248.209.64:443
                          [23:49:24.754][10.0.0.1:63808] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                          [23:49:24.754][10.0.0.1:63808] client disconnect
                          [23:49:24.754][10.0.0.1:63808] server disconnect 17.248.209.64:443
                          [23:49:26.493][10.0.0.1:60191] Closing connection due to inactivity: Client(10.0.0.1:60191, state=open)
                          
                          copystringC Offline
                          copystringC Offline
                          copystring
                          wrote on last edited by
                          #92

                          @spacerx warum hast du --set tls_version_client_min=TLS1_3 hinzugefügt?

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

                          S 1 Reply Last reply
                          0
                          • copystringC copystring

                            @spacerx warum hast du --set tls_version_client_min=TLS1_3 hinzugefügt?

                            S Offline
                            S Offline
                            SpacerX
                            wrote on last edited by
                            #93

                            @copystring im log stand auch ohne diese Option

                            [23:48:09.695][10.0.0.1:64843] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                            

                            Das war mein Versuch, nachdem ich nach dem Fehler im i-Net gegoggelt hatte und dies als Möglichkeit fand.
                            Habe, von TLS1_1 über TLS1_2 bis SSL3 alles ausprobiert.

                            DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                            copystringC 1 Reply Last reply
                            0
                            • S SpacerX

                              @copystring im log stand auch ohne diese Option

                              [23:48:09.695][10.0.0.1:64843] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
                              

                              Das war mein Versuch, nachdem ich nach dem Fehler im i-Net gegoggelt hatte und dies als Möglichkeit fand.
                              Habe, von TLS1_1 über TLS1_2 bis SSL3 alles ausprobiert.

                              copystringC Offline
                              copystringC Offline
                              copystring
                              wrote on last edited by
                              #94

                              @spacerx welchen Browser nimmst du? Bei lief es mit Chrome

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

                              S 1 Reply Last reply
                              0
                              • copystringC copystring

                                @spacerx welchen Browser nimmst du? Bei lief es mit Chrome

                                S Offline
                                S Offline
                                SpacerX
                                wrote on last edited by
                                #95

                                @copystring im Moment Edge. Der ist eigentlich Chrome basierend.

                                DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                                S 1 Reply Last reply
                                0
                                • S SpacerX

                                  @copystring im Moment Edge. Der ist eigentlich Chrome basierend.

                                  S Offline
                                  S Offline
                                  SpacerX
                                  wrote on last edited by
                                  #96

                                  Ich habe nun mal Chrome installiert. Das ändert leider Garnichts.

                                  Noch mal eine Ausgabe dazu.

                                  [11:01:04.438][10.0.0.1:54441] server connect 142.250.184.206:443
                                  [11:01:04.485][10.0.0.1:54441] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                                  [11:01:04.485][10.0.0.1:54441] client disconnect
                                  [11:01:04.485][10.0.0.1:54441] server disconnect 142.250.184.206:443
                                  [11:01:04.500][10.0.0.1:49611] client connect
                                  [11:01:04.610][10.0.0.1:54442] client connect
                                  [11:01:04.625][10.0.0.1:54442] server connect 142.250.184.206:443
                                  [11:01:04.672][10.0.0.1:54442] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                                  [11:01:04.672][10.0.0.1:54442] client disconnect
                                  [11:01:04.672][10.0.0.1:54442] server disconnect 142.250.184.206:443
                                  [11:01:07.218][10.0.0.1:54381] client connect
                                  [11:01:07.250][10.0.0.1:54381] server connect 52.29.91.104:8883
                                  [11:01:07.359][10.0.0.1:54381] client disconnect
                                  [11:01:07.359][10.0.0.1:54381] server disconnect 52.29.91.104:8883
                                  [11:01:09.109][10.0.0.1:54443] client connect
                                  [11:01:09.124][10.0.0.1:54444] client connect
                                  [11:01:09.140][10.0.0.1:54443] server connect 18.195.207.39:443
                                  [11:01:09.155][10.0.0.1:54444] server connect 52.29.136.229:443
                                  [11:01:09.218][10.0.0.1:54443] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for api-eu.roborock.com, this may indicate that the client does not trust the proxy's certificate.
                                  [11:01:09.218][10.0.0.1:54443] client disconnect
                                  [11:01:09.218][10.0.0.1:54443] server disconnect 18.195.207.39:443
                                  [11:01:09.218][10.0.0.1:54444] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for awsde0.fds.api.xiaomi.com, this may indicate that the client does not trust the proxy's certificate.
                                  

                                  Die Verbindung zum iPhone mit WireGuard scheint zu Funktionieren nur vom Proxy zu Roborock usw. klappt anscheinend nicht weil was mit dem Zertifikat nicht hin haut.

                                  Ehrlich gesagt ist so langsam meine Frustschwelle erreicht.

                                  <frust = on>
                                  Wer sich den ganzen Müll mit den Zertifikaten ausgedacht hat gehört geteert und gefedert.
                                  <frust = off>

                                  Vielleicht war mein Vorgehen bei der ganzen Installation auch falsch.

                                  • Python installiert
                                  • pip installiert [python -m pip install --user pipx]
                                  • Dann die Installationen zu mitmproxy
                                    • py -m pipx install mitmproxy --force
                                    • py -m pipx inject mitmproxy websocket
                                    • py -m pipx inject mitmproxy websocket-client

                                  Noch jemand eine Idee wie man das Prob gelöst bekommt?

                                  @copystring
                                  Geht der Installationskram auch anders. In der Wiki ist von Python als Voraussetzung nicht die Rede. Ich nehme mal an durch die Programmiererei hast du den Kram eh auf dem Rechner. Deshalb klappts bei dir ohne Prob. Ich hab's nur nicht so mit den Zertifikaten und hab immer versucht dem aus dem Weg zu gehen.

                                  DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                                  copystringC 1 Reply Last reply
                                  0
                                  • S SpacerX

                                    Ich möchte meine heutige Ausbeute teilen.

                                    Es geht um Funktionen Rund um die Station vom S7 MaxV Ultra.

                                    Meine Voraussetzungen:

                                    • Kleines Blockly zum loggen der Datenpunkte vom Sauger geschrieben.
                                    • Adapter vorrübergehend die Aktualisierung 5s gestellt.
                                    • Mit Taschenlampe vor die Station gehockt und aufgeschrieben was passiert.
                                    • Robi steht in der Station zum laden, dann Mopp Waschen gestartet.

                                    Meine Aufzeichnungen dazu:

                                    Log Mopp Waschen mit Roboter Wassertank leer.

                                    2023-08-03 18:29:08.482 # Robi -> State [deviceStatus.state] = 8 -> 26 (Fahre Mopp waschen)
                                    2023-08-03 18:29:08.487 # Robi -> Is returning [deviceStatus.in_returning] = 0 -> 1
                                    2023-08-03 18:29:08.488 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 1 -> 0
                                    2023-08-03 18:29:08.489 # Robi -> Back Type [deviceStatus.back_type] = -1 -> 1
                                    2023-08-03 18:29:48.716 # Robi -> State [deviceStatus.state] = 26 -> 23 (Mopp waschen)
                                    2023-08-03 18:29:48.719 # Robi -> Is returning [deviceStatus.in_returning] = 1 -> 0
                                    2023-08-03 18:29:48.721 # Robi -> Back Type [deviceStatus.back_type] = 1 -> -1
                                    2023-08-03 18:29:48.721 # Robi -> Wash Phase [deviceStatus.wash_phase] = 0 -> 11
                                    2023-08-03 18:29:48.722 # Robi -> Wash Ready [deviceStatus.wash_ready] = 0 -> 1
                                    2023-08-03 18:29:49.365 # Robi -> Water Filter [consumables.strainer_work_times] = 4 -> 5
                                    2023-08-03 18:29:49.366 # Robi -> High-speed maintenance brush [consumables.cleaning_brush_work_times] = 4 -> 5
                                    2023-08-03 18:31:03.661 # Robi -> Wash Phase [deviceStatus.wash_phase] = 11 -> 12
                                    2023-08-03 18:31:08.651 # Robi -> Wash Phase [deviceStatus.wash_phase] = 12 -> 10
                                    2023-08-03 18:31:38.662 # Robi -> Wash Phase [deviceStatus.wash_phase] = 10 -> 13
                                    2023-08-03 18:32:53.675 # Robi -> Wash Phase [deviceStatus.wash_phase] = 13 -> 12
                                    2023-08-03 18:32:58.637 # Robi -> Wash Phase [deviceStatus.wash_phase] = 12 -> 14
                                    2023-08-03 18:33:08.634 # Robi -> State [deviceStatus.state] = 23 -> 6 (Rückkehr zur Station)
                                    2023-08-03 18:33:08.677 # Robi -> Is returning [deviceStatus.in_returning] = 0 -> 1
                                    2023-08-03 18:33:08.679 # Robi -> Back Type [deviceStatus.back_type] = -1 -> 0
                                    2023-08-03 18:33:08.680 # Robi -> Wash Phase [deviceStatus.wash_phase] = 14 -> 0
                                    2023-08-03 18:33:13.670 # Robi -> Wash Ready [deviceStatus.wash_ready] = 1 -> 0
                                    2023-08-03 18:33:31.225 # Robi -> Times Dust Collected [cleaningInfo.dust_collection_count] = 77 -> 78 "Wahrscheinlicht Staubbehälterantleerungen"
                                    2023-08-03 18:33:33.671 # Robi -> State [deviceStatus.state] = 6 -> 8 (Akku laden)
                                    2023-08-03 18:33:33.674 # Robi -> Is returning [deviceStatus.in_returning] = 1 -> 0
                                    2023-08-03 18:33:33.674 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 0 -> 1
                                    2023-08-03 18:33:33.675 # Robi -> Back Type [deviceStatus.back_type] = 0 -> -1
                                    

                                    Mopp Waschen mit Roboter Wassertank 100% voll.

                                    2023-08-03 18:40:38.661 # Robi -> State [deviceStatus.state] = 8 -> 26 (Fahre Mopp waschen)
                                    2023-08-03 18:40:38.706 # Robi -> Is returning [deviceStatus.in_returning] = 0 -> 1
                                    2023-08-03 18:40:38.706 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 1 -> 0
                                    2023-08-03 18:40:38.708 # Robi -> Back Type [deviceStatus.back_type] = -1 -> 1
                                    2023-08-03 18:41:18.782 # Robi -> State [deviceStatus.state] = 26 -> 23 (Mopp waschen)
                                    2023-08-03 18:41:18.787 # Robi -> Is returning [deviceStatus.in_returning] = 1 -> 0
                                    2023-08-03 18:41:18.793 # Robi -> Back Type [deviceStatus.back_type] = 1 -> -1
                                    2023-08-03 18:41:18.805 # Robi -> Wash Phase [deviceStatus.wash_phase] = 0 -> 11
                                    2023-08-03 18:41:18.806 # Robi -> Wash Ready [deviceStatus.wash_ready] = 0 -> 1
                                    2023-08-03 18:41:19.536 # Robi -> Water Filter [consumables.strainer_work_times] = 5 -> 6
                                    2023-08-03 18:41:19.537 # Robi -> High-speed maintenance brush [consumables.cleaning_brush_work_times] = 5 -> 6
                                    2023-08-03 18:42:58.756 # Robi -> Wash Phase [deviceStatus.wash_phase] = 11 -> 12
                                    2023-08-03 18:43:03.720 # Robi -> Wash Phase [deviceStatus.wash_phase] = 12 -> 13
                                    2023-08-03 18:44:38.786 # Robi -> Wash Phase [deviceStatus.wash_phase] = 13 -> 12
                                    2023-08-03 18:44:43.771 # Robi -> Wash Phase [deviceStatus.wash_phase] = 12 -> 14
                                    2023-08-03 18:44:48.739 # Robi -> State [deviceStatus.state] = 23 -> 6 (Rückkehr zur Station)
                                    2023-08-03 18:44:48.741 # Robi -> Is returning [deviceStatus.in_returning] = 0 -> 1
                                    2023-08-03 18:44:48.781 # Robi -> Back Type [deviceStatus.back_type] = -1 -> 0
                                    2023-08-03 18:44:48.782 # Robi -> Wash Phase [deviceStatus.wash_phase] = 14 -> 0
                                    2023-08-03 18:44:58.779 # Robi -> Wash Ready [deviceStatus.wash_ready] = 1 -> 0
                                    2023-08-03 18:45:18.992 # Robi -> State [deviceStatus.state] = 6 -> 8 (Akku laden)
                                    2023-08-03 18:45:18.994 # Robi -> Is returning [deviceStatus.in_returning] = 1 -> 0
                                    2023-08-03 18:45:18.995 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 0 -> 1
                                    2023-08-03 18:45:18.996 # Robi -> Back Type [deviceStatus.back_type] = 0 -> -1
                                    

                                    Mopp Waschen mit Roboter Wassertank 50% voll.

                                    2023-08-03 12:51:35.610 # Robi -> State [deviceStatus.state] = 8 -> 26 (Fahre Mopp waschen)
                                    2023-08-03 12:51:35.653 # Robi -> Is returning [deviceStatus.in_returning] = 0 -> 1
                                    2023-08-03 12:51:35.654 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 1 -> 0
                                    2023-08-03 12:51:35.655 # Robi -> Back Type [deviceStatus.back_type] = -1 -> 1
                                    2023-08-03 12:52:05.895 # Robi -> State [deviceStatus.state] = 26 -> 23 (Mopp waschen)
                                    2023-08-03 12:52:05.899 # Robi -> Is returning [deviceStatus.in_returning] = 1 -> 0
                                    2023-08-03 12:52:05.901 # Robi -> Back Type [deviceStatus.back_type] = 1 -> -1
                                    2023-08-03 12:52:05.902 # Robi -> Wash Ready [deviceStatus.wash_ready] = 0 -> 1
                                    2023-08-03 12:52:06.393 # Robi -> Water Filter [consumables.strainer_work_times] = 3 -> 4
                                    2023-08-03 12:52:06.394 # Robi -> High-speed maintenance brush [consumables.cleaning_brush_work_times] = 3 -> 4
                                    2023-08-03 12:52:10.868 # Robi -> Wash Phase [deviceStatus.wash_phase] = 0 -> 11	"11 = Mopp Waschen mit Bürste und Wasser"
                                    2023-08-03 12:53:25.678 # Robi -> Wash Phase [deviceStatus.wash_phase] = 11 -> 12	"12 = Wasserauffang unter Bürste leeren"
                                    2023-08-03 12:53:30.667 # Robi -> Wash Phase [deviceStatus.wash_phase] = 12 -> 10	"10 = scheint das Befüllen vom Wassertank zu sein"
                                    2023-08-03 12:53:40.630 # Robi -> Wash Phase [deviceStatus.wash_phase] = 10 -> 13	"13 = Mopp abbürsten ohne Wasser (Auswringen???)"
                                    2023-08-03 12:54:55.687 # Robi -> Wash Phase [deviceStatus.wash_phase] = 13 -> 12	"12 = Wasserauffang unter Bürste leeren"
                                    2023-08-03 12:55:00.703 # Robi -> Wash Phase [deviceStatus.wash_phase] = 12 -> 14	"14 = Bürste in Parkposition fahren"
                                    2023-08-03 12:55:05.641 # Robi -> State [deviceStatus.state] = 23 -> 6 (Rückkehr zur Station)
                                    2023-08-03 12:55:05.685 # Robi -> Is returning [deviceStatus.in_returning] = 0 -> 1
                                    2023-08-03 12:55:05.687 # Robi -> Back Type [deviceStatus.back_type] = -1 -> 0
                                    2023-08-03 12:55:05.688 # Robi -> Wash Phase [deviceStatus.wash_phase] = 14 -> 0
                                    2023-08-03 12:55:10.693 # Robi -> Wash Ready [deviceStatus.wash_ready] = 1 -> 0
                                    2023-08-03 12:55:30.906 # Robi -> State [deviceStatus.state] = 6 -> 8 (Akku laden)
                                    2023-08-03 12:55:30.910 # Robi -> Is returning [deviceStatus.in_returning] = 1 -> 0
                                    2023-08-03 12:55:30.915 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 0 -> 1
                                    2023-08-03 12:55:30.916 # Robi -> Back Type [deviceStatus.back_type] = 0 -> -1
                                    

                                    Dazu meine Erkenntnisse.

                                    deviceStatus.wash_phase
                                    10 = Befüllen Roboter Wassertank
                                    11 = Mopp Waschen mit Wasser und Reinigungsbürste
                                    12 = Wasserauffang der Station unter Reinigungsbürste leeren
                                    13 = Mopp Waschen nur Reinigungsbürste (Auswringen)
                                    14 = Reinigungsbürste in Parkposition fahren

                                    Das Befüllen des Roboter-Wassertanks wird immer bei Mopp-Waschen ausgeführt wenn der Tank nicht voll ist.

                                    Dazu gleich noch für Später den Schmutzwasserbehälter vor jedem Start leer gemacht und vor dem Mopp-Waschen Befehl den Moppwaschmodus umgestellt um den Wasserverbrauch beim Mopp-Waschen zu ermitteln.

                                    • Moppwäsche-Modus = Wassersparend -> Schmutzwasserbehälter = ca.130ml
                                    • Moppwäsche-Modus = Mittel -> Schmutzwasserbehälter = ca.200ml
                                    • Moppwäsche-Modus = Intensiv -> Schmutzwasserbehälter = ca.290ml

                                    Für den Moppwaschmodus den man in der App wählen kann scheint es noch kein equivalenten Datenpunkt im Adapter zu geben.

                                    Robi steht in Station zum laden, dann Staubbehälter entleeren gestartet.

                                    2023-08-03 19:00:48.710 # Robi -> State [deviceStatus.state] = 8 -> 22 (Staubbehälter entleeren)
                                    2023-08-03 19:00:48.713 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 1 -> 0
                                    2023-08-03 19:01:18.709 # Robi -> State [deviceStatus.state] = 22 -> 8 (Akku laden)
                                    2023-08-03 19:01:18.712 # Robi -> In Fresh State [deviceStatus.in_fresh_state] = 0 -> 1
                                    

                                    Der Datenpunkt deviceStatus.back_type scheint zu definieren wie rum der Roboter an die Station heran gefahren ist.

                                    deviceStatus.back_type
                                    -1 = NULL (wird immer auf diesen Wert zurück gesetzt.)
                                    0 = Vorwärts -> Laden und Staubbehälter entleeren.
                                    1 = Rückwärts -> Mopp Waschen

                                    Zur Bedeutung von deviceStatus.in_fresh_state hab ich eine Idee die ich aber erst mit Test bestätigen muss.

                                    jahnbesJ Offline
                                    jahnbesJ Offline
                                    jahnbes
                                    wrote on last edited by
                                    #97

                                    @spacerx
                                    Hallo, ich habe das Wiki ergänzt, vielen Dank.
                                    Und Dein kleines Skript ist Klasse, ich habe bisher in der langen Liste immer geschaut, ob sich ein Datenpunkt ändert und wenn ja, wie.
                                    Viele Grüße, Bert.

                                    S 1 Reply Last reply
                                    0
                                    • jahnbesJ jahnbes

                                      @spacerx
                                      Hallo, ich habe das Wiki ergänzt, vielen Dank.
                                      Und Dein kleines Skript ist Klasse, ich habe bisher in der langen Liste immer geschaut, ob sich ein Datenpunkt ändert und wenn ja, wie.
                                      Viele Grüße, Bert.

                                      S Offline
                                      S Offline
                                      SpacerX
                                      wrote on last edited by
                                      #98

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

                                      ich habe bisher in der langen Liste immer geschaut, ob sich ein Datenpunkt ändert und wenn ja, wie.

                                      Das war mein Ansinnen. Weil man die Objekte ja nicht mit einmal auf den Bildschirm bekommt ist es unmöglich das vernünftig nach zu vollziehen.

                                      DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                                      1 Reply Last reply
                                      0
                                      • S SpacerX

                                        Ich habe nun mal Chrome installiert. Das ändert leider Garnichts.

                                        Noch mal eine Ausgabe dazu.

                                        [11:01:04.438][10.0.0.1:54441] server connect 142.250.184.206:443
                                        [11:01:04.485][10.0.0.1:54441] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                                        [11:01:04.485][10.0.0.1:54441] client disconnect
                                        [11:01:04.485][10.0.0.1:54441] server disconnect 142.250.184.206:443
                                        [11:01:04.500][10.0.0.1:49611] client connect
                                        [11:01:04.610][10.0.0.1:54442] client connect
                                        [11:01:04.625][10.0.0.1:54442] server connect 142.250.184.206:443
                                        [11:01:04.672][10.0.0.1:54442] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate.
                                        [11:01:04.672][10.0.0.1:54442] client disconnect
                                        [11:01:04.672][10.0.0.1:54442] server disconnect 142.250.184.206:443
                                        [11:01:07.218][10.0.0.1:54381] client connect
                                        [11:01:07.250][10.0.0.1:54381] server connect 52.29.91.104:8883
                                        [11:01:07.359][10.0.0.1:54381] client disconnect
                                        [11:01:07.359][10.0.0.1:54381] server disconnect 52.29.91.104:8883
                                        [11:01:09.109][10.0.0.1:54443] client connect
                                        [11:01:09.124][10.0.0.1:54444] client connect
                                        [11:01:09.140][10.0.0.1:54443] server connect 18.195.207.39:443
                                        [11:01:09.155][10.0.0.1:54444] server connect 52.29.136.229:443
                                        [11:01:09.218][10.0.0.1:54443] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for api-eu.roborock.com, this may indicate that the client does not trust the proxy's certificate.
                                        [11:01:09.218][10.0.0.1:54443] client disconnect
                                        [11:01:09.218][10.0.0.1:54443] server disconnect 18.195.207.39:443
                                        [11:01:09.218][10.0.0.1:54444] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for awsde0.fds.api.xiaomi.com, this may indicate that the client does not trust the proxy's certificate.
                                        

                                        Die Verbindung zum iPhone mit WireGuard scheint zu Funktionieren nur vom Proxy zu Roborock usw. klappt anscheinend nicht weil was mit dem Zertifikat nicht hin haut.

                                        Ehrlich gesagt ist so langsam meine Frustschwelle erreicht.

                                        <frust = on>
                                        Wer sich den ganzen Müll mit den Zertifikaten ausgedacht hat gehört geteert und gefedert.
                                        <frust = off>

                                        Vielleicht war mein Vorgehen bei der ganzen Installation auch falsch.

                                        • Python installiert
                                        • pip installiert [python -m pip install --user pipx]
                                        • Dann die Installationen zu mitmproxy
                                          • py -m pipx install mitmproxy --force
                                          • py -m pipx inject mitmproxy websocket
                                          • py -m pipx inject mitmproxy websocket-client

                                        Noch jemand eine Idee wie man das Prob gelöst bekommt?

                                        @copystring
                                        Geht der Installationskram auch anders. In der Wiki ist von Python als Voraussetzung nicht die Rede. Ich nehme mal an durch die Programmiererei hast du den Kram eh auf dem Rechner. Deshalb klappts bei dir ohne Prob. Ich hab's nur nicht so mit den Zertifikaten und hab immer versucht dem aus dem Weg zu gehen.

                                        copystringC Offline
                                        copystringC Offline
                                        copystring
                                        wrote on last edited by
                                        #99

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

                                        Geht der Installationskram auch anders.

                                        Nein. mitmproxy braucht zwingend Python.
                                        Hast du das Zertifikat von mitmproxy denn auf dem iPhone als root Zertifikat hinzugefügt?

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

                                        S 1 Reply Last reply
                                        0
                                        • copystringC copystring

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

                                          Geht der Installationskram auch anders.

                                          Nein. mitmproxy braucht zwingend Python.
                                          Hast du das Zertifikat von mitmproxy denn auf dem iPhone als root Zertifikat hinzugefügt?

                                          S Offline
                                          S Offline
                                          SpacerX
                                          wrote on last edited by
                                          #100

                                          @copystring ja habe ich.

                                          IMG_3552.jpeg

                                          DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                                          copystringC 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          773

                                          Online

                                          32.7k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe