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

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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 @dasJens last edited by

      @dasjens Sry, bin aktuell nicht mehr täglich hier 😉

      Für ZigBee (kommt man früher oder später meist eh nicht drum herum) brauchst du einen Empfänger/Coordinator.
      Da gibt es verschiedene zb. den C2531 (schwierig, Programmer nötig), den CC26X2R1 von Texas Instruments (einfach, aber teuer [nutze ich]), den Conbee 2 oder von Sonoff (wohl der aktuell einfachste und nicht gerade teuer).

      Ich kaufe eigentlich immer bei Aliexpress, Alibaba und den üblichen. Man muss dort nur immer genau aufpassen was man genau kauft. Oft suggeriert das Bild mehr als der Text. Die 18,- € von oben zeigen 4 Sensoren, sind dann aber tatsächlich nur die 4 Wandhalter 😞

      Ich würde dann aber ggf. einen neuen Thread eröffnen, denn das wird hier unter Xiaomi BLE sonst zu OT 😉

      H 1 Reply Last reply Reply Quote 0
      • H
        Hakemann @SBorg last edited by

        @sborg Also bei mir geht es mit den Xiaomi Sensoren.
        Habe gerade eben noch welche eingebunden. Ich habe sie geflasht (Firmware flashen ) mit der custom firmware und dann ganz wichtig, nachdem die neue Firmware drauf ist noch mal connecten und auf "Mi Like" stellen.
        Damit läuft es bei mir.

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

          @hakemann Ich habe auch nicht geschrieben, dass es nicht läuft 😉
          Es ist zwar nett im Raum auch direkt eine Anzeige zu haben, nur habe ich kein flächendeckendes BT bei mir. Da kommen dann mal Werte, oder auch nicht. Für eine Steuerung so also nicht unbedingt zu gebrauchen.
          KO-Kriterium warum ich es aktuell aber nicht einsetze ist der Batterieverbrauch. Wenn ich mal Zeit habe werde ich sie wohl mal auf Akku umbauen.

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

            @sborg
            Hi SBorg.... Habe jetzt mal einen ESP32 D1 Mini mit ESPresense geflasht und die Anwesenheitserkennung läuft deutlich besser.

            Was richtig cool ist, dass die ATC_miThermometer unterstützt werden wie ich jetzt rausgefunden habe.
            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.
            Hier mal ein Beispiel von einem Json von einem meiner ATC Thermometer:

            {
              "id": "miTherm:a4c138f3a385",
              "idType": 110,
              "rssi@1m": -71,
              "rssi": -99,
              "raw": 6.31,
              "distance": 6.21,
              "speed": 0,
              "mac": "a4c138f3a385",
              "interval": 18341,
              "mV": 2558,
              "batt": 36,
              "temp": 22.9,
              "rh": 68
            }
            

            Es wäre mühselig für alle Thermometer dann ein Blockly zu schreiben.
            Vielleicht hast du ja ne Idee. Bei ESPHome war es ja einfach. Da habe ich einfach in die YAML Datei folgende Werte reingeschrieben und die Datenpunkte wurden mir erstellt:

            ### Esszimmer
            
            sensor:
              - 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"
            

            Wie bekomme ich das auch für ESPresense hin und iobroker, da leider alle Videos zu dem Thema nur zeigen wie man es mit HomeAssistant macht.

            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:

              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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            758
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            ble ble adapter sensor xiaomi
                                            50
                                            247
                                            52514
                                            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