Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Xiaomi Temp and Humidity Monitor 2 + BLE Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Xiaomi Temp and Humidity Monitor 2 + BLE Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • SBorg
      SBorg Forum Testing Most Active @Sushibomba last edited by

      @sushibomba sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

      Im Mqtt Adapter werden mir alle Thermometer auch als Json angezeigt.
      Weißt du zufällig, wie ich das anstelle, dass er mir für die Werte automatisch Datenpunkte erstellt.

      Heißt die Aktion mit ESPHome ist beendet 😉 ?
      Das mit automatischen Datenpunkten geht so erst mal nicht, denn bei MQTT wird automatisch das "subscribed" was der Server "published". Wenn also ESPresense bspw. keinen Topic mit der Temperatur published, kann der ioB auch nix subscriben und somit auch keinen Datenpunkt anlegen.

      Du kommst aber recht einfach per Blockly, JS, NodeRED an das JSON heran:
      Bild 001.png
      Ich habe hier mal den JSON von einem ESPHome Binary-Sensor benutzt. Wenn du also einfach bei "Attribut" zB temp vom Objekt-Datenpunkt (also das JSON) einträgst, bekommst du die 22.9 raus.
      Das kann man direkt in einer Steuerung nutzen, oder in der VIS, oder macht da dann den (unnötigen) Weg und schreibt es in einzelne Datenpunkte (wozu, ich komme ja jederzeit an das JSON heran?)

      1 Reply Last reply Reply Quote 0
      • S
        Sushibomba last edited by Sushibomba

        @sborg

        Ja habe jetzt alle bis auf einen mit ESPresense geflasht 😉

        Ok ich muss ehrlich gestehe... Danke für die Erklärung aber wirklich schlauer bin ich nicht dadurch. Liegt definitiv aber an mir nicht an dir 🙂

        Ich hätte halt gerne in den jeweiligen Räumen und der Rubik - Sensoren - Temperatur und Luftfeuchte jeweils die folgenden Datenpunkte einzeln. Warum macht das keinen Sinn deiner Meinung nach?

        Also pro Sensor 5 Datenpunkte:

        • platform: atc_mithermometer
          mac_address: "A4:C1:38:1B:03:F5"
          temperature:
          name: "Esszimmer Temperature"
          humidity:
          name: "Esszimmer Humidity"
          battery_level:
          name: "Esszimmer Battery-Level"
          battery_voltage:
          name: "Esszimmer Battery-Voltage"
          signal_strength:
          name: "Esszimmer Bluetooth Signal"

        Also so mache ich es derzeit mit den Uhren:

        smartwatches espresense.png

        Ist halt auch mega aufwendig für jeden Raum dann zwei mal das ganze anzulegen.

        SBorg 1 Reply Last reply Reply Quote 0
        • SBorg
          SBorg Forum Testing Most Active @Sushibomba last edited by

          @sushibomba
          Das ist in etwa so als du von mir wissen willst ob es regnet. Da ist es doch "blöd" wenn ich dir alle 30 Sekunden nun sage "es regnet nicht". Effektiver wäre doch ich melde mich nur wenn es regnet...?

          Du hast in dem JSON alles was du brauchst. Da macht es eigentlich keinen Sinn nun 3.000x am Tag zig Werte in Datenpunkte zu schreiben, wenn du 5x am Tag bspw. diese für die VIS brauchst.

          Sonst musst du halt mittels Blockly, NodeRED... deine Datenpunkte erstellen/befüllen:
          Bild 002.png
          (in "Example_State" steht bei mir zu Testzwecken dein JSON)

          Ergebnis:
          Bild 001.png

          Beispiel wie einfach man an die Werte innerhalb des JSON dran kommt:
          Bild 003.png


          <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
          <variable id="Ga|8$|$g9eZc{A_,{e0S">json</variable>
          </variables>
          <block type="comment" id="1/6E1L)9pr.mJn!Prp3q" x="-413" y="-412">
          <field name="COMMENT">Datenpunkte erzeugen</field>
          <next>
          <block type="create" id="46N-fl)5+.#=[X78o-y">
          <field name="NAME">0_userdata.0.Raum.Esszimmer.Temperatur</field>
          <value name="COMMON">
          <block type="text" id="#$wDGj=L(VCyW+04}~|P">
          <field name="TEXT">{"name": "Raumtemperatur Esszimmer", "type": "number", "unit": "°C" }</field>
          </block>
          </value>
          <next>
          <block type="comment" id="JLlY$~m3Ju+iN}fvYUg^">
          <field name="COMMENT">Werte schreiben</field>
          <next>
          <block type="on" id=",EFWJ^[IDYuj?N[qW[ob">
          <field name="OID">0_userdata.0.example_state</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
          <block type="update" id="y$.1jYS.HvsvHWBtv/Kx">
          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
          <field name="OID">0_userdata.0.Raum.Esszimmer.Temperatur</field>
          <field name="WITH_DELAY">FALSE</field>
          <value name="VALUE">
          <block type="get_attr" id="?W6lZ9OBJSlorSE+d]!$">
          <value name="PATH">
          <shadow type="text" id="T_%+HxRY1AGw$J]tg@">
          <field name="TEXT">temp</field>
          </shadow>
          </value>
          <value name="OBJECT">
          <block type="on_source" id="#4YB17}nFF7zH_D=ZjZf">
          <field name="ATTR">state.val</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </statement>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          <block type="comment" id="|l36OA9TH)ReaPz{G8~]" x="-412" y="13">
          <field name="COMMENT">Demo</field>
          <next>
          <block type="variables_set" id="v!(n~O=NlQGV#G_vfcq">
          <field name="VAR" id="Ga|8$|$g9eZc{A
          ,{e0S">json</field>
          <value name="VALUE">
          <block type="get_value" id="3M0{n)GZD=-?}HAvVk
          U">
          <field name="ATTR">val</field>
          <field name="OID">0_userdata.0.example_state</field>
          </block>
          </value>
          <next>
          <block type="debug" id="Bk1)WOP[Z4DMYW)p!Li">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text" id="Lq8l^G(PiOVH3Cm]3J.o">
          <field name="TEXT">test</field>
          </shadow>
          <block type="variables_get" id="vV=QLM_TqZoB017GT4I-">
          <field name="VAR" id="Ga|8$|$g9eZc{A
          ,{e0S">json</field>
          </block>
          </value>
          <next>
          <block type="debug" id="3I{#6RzC?rzo-q-,ap"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*7A],0yQsn00nCcUC%*U"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="~Ywu]]z*GNsosQ#ky;:">
          <mutation items="3"></mutation>
          <value name="ADD0">
          <block type="text" id="yz9f5eGSImOt=5.bOMPt">
          <field name="TEXT">Signalstärke: </field>
          </block>
          </value>
          <value name="ADD1">
          <block type="get_attr" id="jVJCbvM{ncQ]9LygsQQs">
          <value name="PATH">
          <shadow type="text" id="2UuVNmTS)Vq[Gj1[rP2"> <field name="TEXT">rssi</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Ye~%[4R}W!90bih:[Mj">
          <field name="VAR" id="Ga|8$|$g9eZc{A
          ,{e0S">json</field>
          </block>
          </value>
          </block>
          </value>
          <value name="ADD2">
          <block type="text" id="~?(xBDiK^7/M:wNA8z5"> <field name="TEXT"> dB</field> </block> </value> </block> </value> <next> <block type="debug" id="E*bVBZ|C]g1C7ziA/:a$"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*7A],0yQsn00nCcUC%*U"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="aI!!w4]pN(vPYjD202~K"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="t%*w0@GGYyk;3M)x9/h">
          <field name="TEXT">Temperatur: </field>
          </block>
          </value>
          <value name="ADD1">
          <block type="get_attr" id="?G,FT(V4Q[-O!TW403Nq">
          <value name="PATH">
          <shadow type="text" id="uQMnh8RCSw^93}wo!00">
          <field name="TEXT">temp</field>
          </shadow>
          </value>
          <value name="OBJECT">
          <block type="variables_get" id="=J82c
          ?;E??gH]cEK58T">
          <field name="VAR" id="Ga|8$|$g9eZc{A_,{e0S">json</field>
          </block>
          </value>
          </block>
          </value>
          <value name="ADD2">
          <block type="text" id="8iV/Dglt:IfzMvSF(Usi">
          <field name="TEXT"> °C</field>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id="GthY8}=F7Z,Klo?aM[kX">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text" id="*7A],0yQsn00nCcUC%U">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="gMN-}o?mu/Qx-+^~piA;">
          <mutation items="3"></mutation>
          <value name="ADD0">
          <block type="text" id="PYfz
          qy#dbdI9T?!Iu2:">
          <field name="TEXT">Luftfeuchte: </field>
          </block>
          </value>
          <value name="ADD1">
          <block type="get_attr" id=")Llvg#(u6Xx0l;lhCUm)">
          <value name="PATH">
          <shadow type="text" id="=CN;N-0AO4(uP8M0$n:J">
          <field name="TEXT">rh</field>
          </shadow>
          </value>
          <value name="OBJECT">
          <block type="variables_get" id="NCW(.[HfR#T)TSe!~%q@">
          <field name="VAR" id="Ga|8$|$g9eZc{A_,{e0S">json</field>
          </block>
          </value>
          </block>
          </value>
          <value name="ADD2">
          <block type="text" id="7K^[|O=T1|pbB77a:yVX">
          <field name="TEXT"> %H</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </xml>

          ...oder einen Feature Request beim Projekt absetzen, damit sie die Einzelwerte publishen, aber das wird keiner machen, dafür gibt es ja das JSON 😉

          S 1 Reply Last reply Reply Quote 1
          • S
            Sushibomba @SBorg last edited by Sushibomba

            @sborg sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

            @sushibomba
            Das ist in etwa so als du von mir wissen willst ob es regnet. Da ist es doch "blöd" wenn ich dir alle 30 Sekunden nun sage "es regnet nicht". Effektiver wäre doch ich melde mich nur wenn es regnet...?

            Da gebe ich dir absolut recht. Ich brauche nicht wissen das es nicht regnet. Sondern nur wenn es regnet und wann es wieder aufgehört hat.

            Du hast in dem JSON alles was du brauchst. Da macht es eigentlich keinen Sinn nun 3.000x am Tag zig Werte in Datenpunkte zu schreiben, wenn du 5x am Tag bspw. diese für die VIS brauchst.

            Vielleicht hast du ja auch einen Tipp für mich wie ich es ohne Datenpunkte zu erstellen vernünftig auswerten kann und die Daten wie Temperatur und Feuchtigkeit anderweitig in Scripts etc. nutzen kann.

            Sonst musst du halt mittels Blockly, NodeRED... deine Datenpunkte erstellen/befüllen:
            Bild 002.png

            Gibt es auch die Möglichkeit in einem Blockly gleichzeitig alle Datenpunkte für die einzelnen Daten zusammen zu erstellen?

            Also in etwa so im Blockly wie für meine Rollläden. Oder geht das auch irgendwie einfacher?:

            <xml xmlns="https://developers.google.com/blockly/xml">
              <block type="procedures_callcustomnoreturn" id="+`U:,L*=oJVY$-mpp~ZF" x="-1112" y="-562">
                <mutation name="Datenpunkt erstellen"></mutation>
              </block>
              <block type="procedures_defcustomnoreturn" id="gG.jtgXd}}FUY8!S][~U" x="-1112" y="-512">
                <mutation statements="false"></mutation>
                <field name="NAME">Datenpunkt erstellen</field>
                <field name="SCRIPT">Y3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fR2Flc3RlLVdDIiwgbnVsbCwge25hbWU6ICJSb2xsbyBHw6RzdGUtV0MiLCB0eXBlOiAibnVtYmVyIiwgcm9sZTogInN0YXRlIiwgdW5pdDogIiUifSk7DQoNCmNyZWF0ZVN0YXRlKCJhbGlhcy4wLlJvbGxhZGVuc3RldWVydW5nLlJvbGxvX0vDvGNoZSIsIG51bGwsIHtuYW1lOiAiUm9sbG8gS8O8Y2hlIiwgdHlwZTogIm51bWJlciIsIHJvbGU6ICJzdGF0ZSIsIHVuaXQ6ICIlIn0pOw0KDQpjcmVhdGVTdGF0ZSgiYWxpYXMuMC5Sb2xsYWRlbnN0ZXVlcnVuZy5Sb2xsb19Cw7xybyIsIG51bGwsIHtuYW1lOiAiUm9sbG8gQsO8cm8iLCB0eXBlOiAibnVtYmVyIiwgcm9sZTogInN0YXRlIiwgdW5pdDogIiUifSk7DQoNCmNyZWF0ZVN0YXRlKCJhbGlhcy4wLlJvbGxhZGVuc3RldWVydW5nLlJvbGxvX0VaIiwgbnVsbCwge25hbWU6ICJSb2xsbyBFWiIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fQmFkIiwgbnVsbCwge25hbWU6ICJSb2xsbyBCYWQiLCB0eXBlOiAibnVtYmVyIiwgcm9sZTogInN0YXRlIiwgdW5pdDogIiUifSk7DQoNCmNyZWF0ZVN0YXRlKCJhbGlhcy4wLlJvbGxhZGVuc3RldWVydW5nLlJvbGxvX1NaIiwgbnVsbCwge25hbWU6ICJSb2xsbyBTWiIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fU1pfVMO8ciIsIG51bGwsIHtuYW1lOiAiUm9sbG8gU1otVMO8ciIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fV1pfUkVDSFRTIiwgbnVsbCwge25hbWU6ICJSb2xsbyBXWi1SRUNIVFMiLCB0eXBlOiAibnVtYmVyIiwgcm9sZTogInN0YXRlIiwgdW5pdDogIiUifSk7DQoNCmNyZWF0ZVN0YXRlKCJhbGlhcy4wLlJvbGxhZGVuc3RldWVydW5nLlJvbGxvX1daX0xJTktTIiwgbnVsbCwge25hbWU6ICJSb2xsbyBXWi1MSU5LUyIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fV1pfVGVyYXNzZSIsIG51bGwsIHtuYW1lOiAiUm9sbG8gV1otVGVyYXNzZSIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fV1pfVMO8ciIsIG51bGwsIHtuYW1lOiAiUm9sbG8gV1otVMO8ciIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoImFsaWFzLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbG9fV1pfVMO8ciIsIG51bGwsIHtuYW1lOiAiUm9sbG8gV1otVMO8ciIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSJ9KTsNCg0KY3JlYXRlU3RhdGUoIjBfdXNlcmRhdGEuMC5Sb2xsYWRlbnN0ZXVlcnVuZy5Sb2xsYWRlbi1BS1RJViIsIGZhbHNlLCB7bmFtZTogIlJvbGxhZGVuLUFLVElWIiwgdHlwZTogInN0cmluZyIsIHJvbGU6ICJzdGF0ZSIsfSk7DQoNCmNyZWF0ZVN0YXRlKCIwX3VzZXJkYXRhLjAuUm9sbGFkZW5zdGV1ZXJ1bmcuUm9sbGFkZW4tUFJPWkVOVCIsIG51bGwsIHtuYW1lOiAiUm9sbGFkZW4tUFJPWkVOVCIsIHR5cGU6ICJudW1iZXIiLCByb2xlOiAic3RhdGUiLCB1bml0OiAiJSIsIG1pbjogIjAiLCBtYXg6ICIxMDAifSk7</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
            </xml>
            

            (in "Example_State" steht bei mir zu Testzwecken dein JSON)

            Ergebnis:
            Bild 001.png

            Beispiel wie einfach man an die Werte innerhalb des JSON dran kommt:
            Bild 003.png


            <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
            <variable id="Ga|8$|$g9eZc{A_,{e0S">json</variable>
            </variables>
            <block type="comment" id="1/6E1L)9pr.mJn!Prp3q" x="-413" y="-412">
            <field name="COMMENT">Datenpunkte erzeugen</field>
            <next>
            <block type="create" id="46N-fl)5+.#=[X78o-y">
            <field name="NAME">0_userdata.0.Raum.Esszimmer.Temperatur</field>
            <value name="COMMON">
            <block type="text" id="#$wDGj=L(VCyW+04}~|P">
            <field name="TEXT">{"name": "Raumtemperatur Esszimmer", "type": "number", "unit": "°C" }</field>
            </block>
            </value>
            <next>
            <block type="comment" id="JLlY$~m3Ju+iN}fvYUg^">
            <field name="COMMENT">Werte schreiben</field>
            <next>
            <block type="on" id=",EFWJ^[IDYuj?N[qW[ob">
            <field name="OID">0_userdata.0.example_state</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
            <block type="update" id="y$.1jYS.HvsvHWBtv/Kx">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">0_userdata.0.Raum.Esszimmer.Temperatur</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="get_attr" id="?W6lZ9OBJSlorSE+d]!$">
            <value name="PATH">
            <shadow type="text" id="T_%+HxRY1AGw$J]tg@">
            <field name="TEXT">temp</field>
            </shadow>
            </value>
            <value name="OBJECT">
            <block type="on_source" id="#4YB17}nFF7zH_D=ZjZf">
            <field name="ATTR">state.val</field>
            </block>
            </value>
            </block>
            </value>
            </block>
            </statement>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            <block type="comment" id="|l36OA9TH)ReaPz{G8~]" x="-412" y="13">
            <field name="COMMENT">Demo</field>
            <next>
            <block type="variables_set" id="v!(n~O=NlQGV#G_vfcq">
            <field name="VAR" id="Ga|8$|$g9eZc{A
            ,{e0S">json</field>
            <value name="VALUE">
            <block type="get_value" id="3M0{n)GZD=-?}HAvVk
            U">
            <field name="ATTR">val</field>
            <field name="OID">0_userdata.0.example_state</field>
            </block>
            </value>
            <next>
            <block type="debug" id="Bk1)WOP[Z4DMYW)p!Li">
            <field name="Severity">log</field>
            <value name="TEXT">
            <shadow type="text" id="Lq8l^G(PiOVH3Cm]3J.o">
            <field name="TEXT">test</field>
            </shadow>
            <block type="variables_get" id="vV=QLM_TqZoB017GT4I-">
            <field name="VAR" id="Ga|8$|$g9eZc{A
            ,{e0S">json</field>
            </block>
            </value>
            <next>
            <block type="debug" id="3I{#6RzC?rzo-q-,ap"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*7A],0yQsn00nCcUC%*U"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="~Ywu]]z*GNsosQ#ky;:">
            <mutation items="3"></mutation>
            <value name="ADD0">
            <block type="text" id="yz9f5eGSImOt=5.bOMPt">
            <field name="TEXT">Signalstärke: </field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_attr" id="jVJCbvM{ncQ]9LygsQQs">
            <value name="PATH">
            <shadow type="text" id="2UuVNmTS)Vq[Gj1[rP2"> <field name="TEXT">rssi</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Ye~%[4R}W!90bih:[Mj">
            <field name="VAR" id="Ga|8$|$g9eZc{A
            ,{e0S">json</field>
            </block>
            </value>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="~?(xBDiK^7/M:wNA8z5"> <field name="TEXT"> dB</field> </block> </value> </block> </value> <next> <block type="debug" id="E*bVBZ|C]g1C7ziA/:a$"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*7A],0yQsn00nCcUC%*U"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="aI!!w4]pN(vPYjD202~K"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="t%*w0@GGYyk;3M)x9/h">
            <field name="TEXT">Temperatur: </field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_attr" id="?G,FT(V4Q[-O!TW403Nq">
            <value name="PATH">
            <shadow type="text" id="uQMnh8RCSw^93}wo!00">
            <field name="TEXT">temp</field>
            </shadow>
            </value>
            <value name="OBJECT">
            <block type="variables_get" id="=J82c
            ?;E??gH]cEK58T">
            <field name="VAR" id="Ga|8$|$g9eZc{A_,{e0S">json</field>
            </block>
            </value>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="8iV/Dglt:IfzMvSF(Usi">
            <field name="TEXT"> °C</field>
            </block>
            </value>
            </block>
            </value>
            <next>
            <block type="debug" id="GthY8}=F7Z,Klo?aM[kX">
            <field name="Severity">log</field>
            <value name="TEXT">
            <shadow type="text" id="*7A],0yQsn00nCcUC%U">
            <field name="TEXT">test</field>
            </shadow>
            <block type="text_join" id="gMN-}o?mu/Qx-+^~piA;">
            <mutation items="3"></mutation>
            <value name="ADD0">
            <block type="text" id="PYfz
            qy#dbdI9T?!Iu2:">
            <field name="TEXT">Luftfeuchte: </field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_attr" id=")Llvg#(u6Xx0l;lhCUm)">
            <value name="PATH">
            <shadow type="text" id="=CN;N-0AO4(uP8M0$n:J">
            <field name="TEXT">rh</field>
            </shadow>
            </value>
            <value name="OBJECT">
            <block type="variables_get" id="NCW(.[HfR#T)TSe!~%q@">
            <field name="VAR" id="Ga|8$|$g9eZc{A_,{e0S">json</field>
            </block>
            </value>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="7K^[|O=T1|pbB77a:yVX">
            <field name="TEXT"> %H</field>
            </block>
            </value>
            </block>
            </value>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </xml>

            ...oder einen Feature Request beim Projekt absetzen, damit sie die Einzelwerte publishen, aber das wird keiner machen, dafür gibt es ja das JSON 😉

            Ok verstehe.

            SBorg 1 Reply Last reply Reply Quote 0
            • SBorg
              SBorg Forum Testing Most Active @Sushibomba last edited by

              @sushibomba sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

              Vielleicht hast du ja auch einen Tipp für mich wie ich es ohne Datenpunkte zu erstellen vernünftig auswerten kann und die Daten wie Temperatur und Feuchtigkeit anderweitig in Scripts etc. nutzen kann.

              Dein JSON liegt ja irgendwo als Datenpunkt vor. Mit der 1. Zeile der Demo weise ich genau dieses Objekt der Variablen json zu. Nun kann man mit dem Baustein "Attribut" auf jeden Wert des JSON zugreifen.
              Du kannst natürlich auch in deinem Blockly eine Variable "Temperatur" anlegen und der dann das "Attribut von Objekt..." zuweisen. Dann kannst du mit "Temperatur" arbeiten, ist halt weniger abstrakt als "Attribut 'temp' von Objekt 'xyz'".

              @sushibomba sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

              Gibt es auch die Möglichkeit in einem Blockly gleichzeitig alle Datenpunkte für die einzelnen Daten zusammen zu erstellen?

              Jein. Man kann aber mittels Selector zB. über alle Räume iterieren und dann in dieser Schleife mittels eines Aufrufs bspw. die Temperaturen feststellen (für alle Räume gleichzeitig), mit einem weiteren Aufruf die Luftfeuchte usw.

              1 Reply Last reply Reply Quote 1
              • S
                smarthome2020 last edited by

                Hi,

                ich hab mir auch mal eines der kleinen Thermometer von Xiaomi besorgt. Nach Flashen der alternativen Firmware kann ich es auch einbinden über den BLE-Adapter in den ioBroker.
                Mir ist aufgefallen, dass jeweils am nächsten Tag keine Aktualisierung der Temperatur mehr erfolgt. Heute zB war der letzte Wert um 7:47 Uhr gesendet worden. Nach Neustart des Adapters geht es dann wieder.
                Der BLE-Adapter liegt in der Version v0.13.4 vor. ioBroker ist per Proxmox-VM neu aufgesetzt am Laufen.
                Man könnte nun den Adapter per Skript neu starten, ich wäre jedoch an einer Lösung ohne Neustart interessiert.

                D S 2 Replies Last reply Reply Quote 0
                • D
                  Dezi @smarthome2020 last edited by

                  Ich bräuchte mal hilfe. Ich habe schon eniges aus dem Forum probiert.
                  Folgendes steht im log:

                  Cannot find module '../build/Release/bluetooth_hci_socket.node'Require stack:- /opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket/lib/native.js- /opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket/index.js- /opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/hci.js- /opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/bindings.js- /opt/iobroker/node_modules/@abandonware/noble/lib/resolve-bindings.js- /opt/iobroker/node_modules/@abandonware/noble/with-custom-binding.js- /opt/iobroker/node_modules/@abandonware/noble/index.js- /opt/iobroker/node_modules/iobroker.ble/build/scanProcess.js
                  
                  SBorg 1 Reply Last reply Reply Quote 0
                  • S
                    smarthome2020 @smarthome2020 last edited by smarthome2020

                    @smarthome2020 sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

                    Hi,

                    ich hab mir auch mal eines der kleinen Thermometer von Xiaomi besorgt. Nach Flashen der alternativen Firmware kann ich es auch einbinden über den BLE-Adapter in den ioBroker.
                    Mir ist aufgefallen, dass jeweils am nächsten Tag keine Aktualisierung der Temperatur mehr erfolgt. Heute zB war der letzte Wert um 7:47 Uhr gesendet worden. Nach Neustart des Adapters geht es dann wieder.
                    Der BLE-Adapter liegt in der Version v0.13.4 vor. ioBroker ist per Proxmox-VM neu aufgesetzt am Laufen.
                    Man könnte nun den Adapter per Skript neu starten, ich wäre jedoch an einer Lösung ohne Neustart interessiert.

                    Hat keiner ein ähnliches Problem? Bzw. eine Lösung ? Ich kann den Adapter vllt per Blockly oder Script neustarten, ist aber eher ein Workaround .

                    SBorg 1 Reply Last reply Reply Quote 0
                    • SBorg
                      SBorg Forum Testing Most Active @Dezi last edited by

                      @dezi Sieht so aus als wären nicht alle nötigen Pakete installiert?
                      sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin
                      hast du ausgeführt und keinen Fehler erhalten?

                      D 1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active @smarthome2020 last edited by

                        @smarthome2020 sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

                        Hat keiner ein ähnliches Problem? Bzw. eine Lösung ?

                        Doch, hatte ich oben bereits erwähnt. Stabil lief es bei mir nie. Dein Problem hatte sich dann bei mir erledigt, als ich Nachts nach dem Backup nochmals den ioB durchstartete (tat dem ioB auch gut 😉 ).
                        ...aber im Grunde auch nichts anderes als den BLE-Adapter neu zu starten...

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          smarthome2020 @SBorg last edited by

                          @sborg
                          Also ich starte den ioBroker jeden Morgen um 05:00 Uhr neu. Dennoch ist um 7 Uhr teilweise keine Verbindung mehr da. Ich wollte nun über die RSSI-Variable schauen, ob ich den Adapter neustarten kann. Wenn es keine Aktualisierung des RSSI-Wertes gibt --> Adapterneustart.

                          SBorg 1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active @smarthome2020 last edited by

                            @smarthome2020
                            2 Stunden hat er bei mir schon durchgehalten, aber nach 1-2 Tagen war immer Schicht im Schacht.

                            Ist zwar nicht die schönste Lösung, wenn es aber sonst nicht anders geht. Könntest höchstens mal den Adapter umstellen ob ihm da was nicht "schmeckt".
                            Nutzt du einen MiniPC als ioB-Server oder einen PI? Ev. geht ihm dann nämlich der RAM aus.

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              smarthome2020 @SBorg last edited by

                              @sborg
                              Hab einen Mini PC mit 8GB RAM. Sollte also reichen . Probiere es mal mit dem Blockly.

                              1 Reply Last reply Reply Quote 0
                              • S
                                smarthome2020 last edited by

                                Hier mal mein Blockly, Adapter wurde schon 2x damit neugestartet:

                                
                                <xml xmlns="https://developers.google.com/blockly/xml">
                                  <variables>
                                    <variable type="timeout" id="BLE-Adapter-Neustart">BLE-Adapter-Neustart</variable>
                                  </variables>
                                  <block type="on_ext" id="mx#5OD`.VyZDq=4Up2tj" x="163" y="113">
                                    <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="H+w#Kn139V0tWHK/uXQi">
                                        <field name="oid">ble.0.a4:c1:38:57:74:74.rssi</field>
                                      </shadow>
                                    </value>
                                    <statement name="STATEMENT">
                                      <block type="timeouts_cleartimeout" id="F1FmC9B1IO7ZrftLA9vB">
                                        <field name="NAME">BLE-Adapter-Neustart</field>
                                        <next>
                                          <block type="timeouts_settimeout" id="uqqZ#KU1Q%b_tt5ZujXy">
                                            <field name="NAME">BLE-Adapter-Neustart</field>
                                            <field name="DELAY">5</field>
                                            <field name="UNIT">min</field>
                                            <statement name="STATEMENT">
                                              <block type="control" id="V#U6WMi[{+2(-4Sbtbse">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">system.adapter.ble.0.alive</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="logic_boolean" id="0{:#OFY4|?Y7|+/Uv%PS">
                                                    <field name="BOOL">FALSE</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="control" id="GvzYu^KLA0BJgSuONBC`">
                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                    <field name="OID">system.adapter.ble.0.alive</field>
                                                    <field name="WITH_DELAY">TRUE</field>
                                                    <field name="DELAY_MS">10</field>
                                                    <field name="UNIT">sec</field>
                                                    <field name="CLEAR_RUNNING">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="logic_boolean" id="Jr%V,C;g(5gP*9!gZQik">
                                                        <field name="BOOL">TRUE</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="timeouts_cleartimeout" id="$c#~oXyhd{;1,$m`^4:b">
                                                        <field name="NAME">BLE-Adapter-Neustart</field>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </next>
                                      </block>
                                    </statement>
                                  </block>
                                </xml>
                                

                                IMG_2187.jpeg

                                1 Reply Last reply Reply Quote 0
                                • D
                                  Dezi @SBorg last edited by

                                  @sborg

                                  Paketlisten werden gelesen... Fertig
                                  Abhängigkeitsbaum wird aufgebaut.
                                  Statusinformationen werden eingelesen.... Fertig
                                  libcap2-bin ist schon die neueste Version (1:2.25-2).
                                  libudev-dev ist schon die neueste Version (241-7~deb10u9+rpi1).
                                  bluetooth ist schon die neueste Version (5.50-1.2~deb10u3+rpt1).
                                  bluez ist schon die neueste Version (5.50-1.2~deb10u3+rpt1).
                                  libbluetooth-dev ist schon die neueste Version (5.50-1.2~deb10u3+rpt1).
                                  0 aktualisiert, 0 neu installiert, 0 zu entfernen und 11 nicht aktualisiert.
                                  

                                  Davon hab ich scheinbar auch schon alle

                                  Thomas Braun 1 Reply Last reply Reply Quote 0
                                  • Thomas Braun
                                    Thomas Braun Most Active @Dezi last edited by

                                    @dezi sagte in Xiaomi Temp and Humidity Monitor 2 + BLE Adapter:

                                    11 nicht aktualisiert.

                                    Die hast du aber nicht. Ran da.

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      Dezi @Thomas Braun last edited by

                                      @thomas-braun
                                      Die hab ich im Anschluss direkt aktualisiert. Denke eher das liegt daran das ich Treiber nicht gestartet bekomme laut iobroker. Bluetooth an sich in an und findet auch Geräte

                                      Screenshot 2023-10-16 213755.png

                                      Thomas Braun 1 Reply Last reply Reply Quote 0
                                      • Thomas Braun
                                        Thomas Braun Most Active @Dezi last edited by

                                        @dezi

                                        rfkill
                                        

                                        sagt?

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          Dezi @Thomas Braun last edited by

                                          @thomas-braun

                                          ID TYPE      DEVICE      SOFT      HARD
                                           0 wlan      phy0     blocked unblocked
                                           1 bluetooth hci0   unblocked unblocked
                                          
                                          Thomas Braun 1 Reply Last reply Reply Quote 0
                                          • Thomas Braun
                                            Thomas Braun Most Active @Dezi last edited by

                                            @dezi

                                            hcitool dev
                                            

                                            Und wie schaut ein Neusart des Adapters im Log File aus?

                                            iob logs --watch | uniq
                                            

                                            und dann den Adapter Starten.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            845
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            ble ble adapter sensor xiaomi
                                            50
                                            247
                                            53246
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo