Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [Vorlage] Einbinden des Xiaomi Mijia Bluetooth Thermo- und Hygrometer

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

[Vorlage] Einbinden des Xiaomi Mijia Bluetooth Thermo- und Hygrometer

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
22 Beiträge 13 Kommentatoren 16.5k Aufrufe 12 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Soulforged
    schrieb am zuletzt editiert von
    #1

    Mir ist es endlich gelungen mein Bluetooth Thermo- und Hygrometer in ioBroker einzubinden. Nun möchte ich meine Lösung allen anderen natürlich auch zur Verfügung stellen. Ich Kürze das Gerät im folgenden mit TH ab.

    Fangen wir mit den Vorraussetzungen an: Wir benötigen auf unserem Host-System (in meinem Fall ein Raspi3) das Programm gatttool um auf die Bluetooth LE Schnittstelle zugreifen zu können. Wer den Bluetooth Adapter installier hat, wird diesen Schritt schon durchlaufen haben. Für alle anderen heißt es zunächt die Consolte zu öffnen

    sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
    

    Als nächstes müsst ihr die MAC-Adresse eures TH herausbekommen. Ich habe hierzu eine Android-App namens nRF Connect benutzt. Diese wurde beim Bluetooth Adapter empfohlen und hat sehr gut funktoiniert https://play.google.com/store/apps/deta … ndroid.mcp

    Nun werden wir in einem kleinen JavaScript in ioBroker mit Hilfe des gatttools in regelmäßigen Abständen Messwerte vom TH anfordern. In den ersten 3 Zeilen des Scripts trag ihr bitte die MAC Adresse eures TH ein und wählt ein Abfrageintervall aus. Ich habe meines auf 5 Minuten gestellt, da Temperatur und Luftfeuchte in aller Regel sich sehr langsam verändernde größen sind. Je seltener man es durchführt umso schonender ist es für die Batterie in dem kleinen Gerät. die Sekunden bitte auf 0 stehen lassen sofern euer Intervall auch in Minuten angegeben wird.

    ! ````
    const pollrate_s = 0; //Abfrageintervall in Sekunden (bei nutzung der Minuten auf 0 Stellen)
    const pollrate_m = 5; //Abfrageintervall in Minuten (Empfehlung alle 5 Minuten / Temperaturänderung ist langsam / Schont die Batterie)
    const bluetooth_mac = '4C:65:A8:D0:13:83';
    ! const s_temp = "javascript.0.Bluetooth.XiaomiHygroTemp.Temperatur";
    const s_hygro = "javascript.0.Bluetooth.XiaomiHygroTemp.Luftfeuchte";
    ! createState(s_temp, 0,{unit: "°C", name: "Temperatur"});
    createState(s_hygro, 0,{unit: "%", name: "Luftfeuchte"});
    ! var cronstring;
    if (pollrate_s > 0) {
    cronstring = "*/" + pollrate_s + " * * * * ";
    }
    else {
    cronstring = "
    /" + pollrate_m + " * * * *";
    }
    ! schedule(cronstring, function () {
    poll_XiaomiHygroTemp(bluetooth_mac);
    });
    ! function poll_XiaomiHygroTemp(mac){
    var i = 1;
    var bluetooth_message = '';
    var messwerte;
    var temperatur;
    var feuchte;

    var spawn = require('child_process').spawn,
    gattool    = spawn('gatttool',['-b', mac , '--char-write-req', '-a', '0x10', '-n', '0100' ,'--listen']);
    
    gattool.stdout.on('data', function (data) {
      //console.log('stdout: ' + data.toString());
      bluetooth_message += data.toString();
      if(i==5) { //5 stdout nachrichten abfangen. Ergibt overhead + ca 1,5-2 mal einen Messwert.
          gattool.kill('SIGQUIT'); //gatttool in kommandozeile unsanft beenden
          //console.log('message:' + bluetooth_message);
          messwerte = bluetooth_message.substr(82,38); 
          stellen = bluetooth_message.substr(82,38).split(" "); //Messwerte extrahieren (stehen immer an der gleichen stelle der Ausgabe) und an leerzeichen auftrennen. 
          //Temperatur ist dann im Array an 2 (Zehner) 3 (Einer) 4 (Komma) und 5(Nachkommestelle) Stelle
          //Feuchte an Stelle 9 (Zehner) 10 (Einer) 11 (Komma) und 12 (Nachkommestelle) 
          //Ziffern ins ASCII sind 30+Ziffer. Also je 30 abziehen und mit der Zehnerpotenz multiplizieren
          temperatur = (stellen[2]-30)*10+(stellen[3]-30)+(stellen[5]-30)/10;
          feuchte = (stellen[9]-30)*10+(stellen[10]-30)+(stellen[12]-30)/10;
          //console.log('Temp:' + temperatur);
          //console.log('Feuchte:' + feuchte);
          setState(s_temp, temperatur, true);
          setState(s_hygro, feuchte, true);
      }
      i++;
    });
    
    gattool.stderr.on('data', function (data) {
      //console.log('stderr: ' + data.toString());
      log("Xiaomi hat nicht geantwortet. Warte auf nächsten Poll")
    });
    

    }

    
    Das Script erzeugt nach dem ersten Durchlauf zwei States in javascript.0.Bluetooth.XiaomiHygroTemp für Temperatur und Luftfeuchte.
    
    Diese kann man im vis z.B. in eine HTML-Tabelle packen:
    
    >! ````
    [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"Klima\n\n    \n        \n        \n    \n    \n        \n        \n    \n
    >! | Temperatur: | {javascript.0.Bluetooth.XiaomiHygroTemp.Temperatur} °C |
    | Luftfeuchte: | {javascript.0.Bluetooth.XiaomiHygroTemp.Luftfeuchte}% |
    >! "},"style":{"left":"860px","top":"180px","color":"#EEEEEE","border-width":"2px","border-style":"solid","width":"227px","height":"85px","font-size":"larger","z-index":"0","line-height":"25px","border-radius":"10px","border-color":"#EEEEEE","padding-left":"6px","padding-top":"3px"},"widgetSet":"basic"}]
    
    2 J M 3 Antworten Letzte Antwort
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      Ich merk mir diesen Thread mal. Wenn ich in Zukunft dazu komme, den BLE-Adapter zu erweitern ist das ein guter Ansatzpunkt!

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        skonteron
        schrieb am zuletzt editiert von
        #3

        Hi Soulforged,

        du meinst nicht zufällig dieses Xiaomi Mijia Bluetooth Thermo- und Hygrometer, oder?

        ![](</s><URL url=)<link_text text="https://ae01.alicdn.com/kf/HTB1Cq4zg3vD ... 40x640.jpg">https://ae01.alicdn.com/kf/HTB1Cq4zg3vD8KJjSsplq6yIEFXak/Xiaomi-Mijia-Bluetooth-Hygrothermograph-Temperature-Humidity-High-Sensitive-Sensor-Digital-LCD-Screen-with-Mi-Home-APP.jpg_640x640.jpg</link_text>" />

        1 Antwort Letzte Antwort
        0
        • Lenny.CBL Offline
          Lenny.CBL Offline
          Lenny.CB
          Most Active
          schrieb am zuletzt editiert von
          #4

          muss ich mal testen…

          Habe das Teil auch schon ne Weile lang rumliegen...

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            skonteron
            schrieb am zuletzt editiert von
            #5

            Ich hab das mal versucht, das HT bei mir einzubinden. Leider bekomme ich keine Daten geliefert.

            Per Console kann ich mich allerdings mit dem Teil verbinden und bekomme auch Daten ausgeliefert. Leider sehe ich da zur Zeit keinen Fehler, aber so richtig kenne ich mich leider auch nicht aus.

            Eventuell hast du ja noch ne Idee. Habe insgesmt 4 THs, wäre ja schön, wenn ich die mal zum laufen bekommen würde :)
            ` > [bluetooth]# info 4C:65:A8:D0:27:8F

            Device 4C:65:A8:D0:27:8F

            Name: MJ_HT_V1

            Alias: MJ_HT_V1

            Paired: no

            Trusted: no

            Blocked: no

            Connected: no

            LegacyPairing: no

            UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb)

            UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)

            ServiceData Key: 0000fe95-0000-1000-8000-00805f9b34fb

            ServiceData Value: 0x50

            ServiceData Value: 0x20

            ServiceData Value: 0xaa

            ServiceData Value: 0x01

            ServiceData Value: 0xc9

            ServiceData Value: 0x8f

            ServiceData Value: 0x27

            ServiceData Value: 0xd0

            ServiceData Value: 0xa8

            ServiceData Value: 0x65

            ServiceData Value: 0x4c

            ServiceData Value: 0x0d

            ServiceData Value: 0x10

            ServiceData Value: 0x04

            ServiceData Value: 0x89

            ServiceData Value: 0x00

            ServiceData Value: 0x14

            ServiceData Value: 0x02

            ServiceData Key: 0000ffff-0000-1000-8000-00805f9b34fb

            ServiceData Value: 0xc2

            ServiceData Value: 0x58

            ServiceData Value: 0x3a

            ServiceData Value: 0xfc

            ServiceData Value: 0xb0

            ServiceData Value: 0xbc

            [bluetooth]# pair 4C:65:A8:D0:27:8F

            Attempting to pair with 4C:65:A8:D0:27:8F

            [CHG] Device 4C:65:A8:D0:27:8F Connected: yes

            [CHG] Device 4C:65:A8:D0:27:8F Connected: no

            Failed to pair: org.bluez.Error.AuthenticationCanceled

            [bluetooth]# pair 4C:65:A8:D0:27:8F

            Attempting to pair with 4C:65:A8:D0:27:8F

            [CHG] Device 4C:65:A8:D0:27:8F Connected: yes

            [CHG] Device 4C:65:A8:D0:27:8F Connected: no

            [CHG] Device 4C:65:A8:D0:27:8F Paired: yes

            Pairing successful `

            1 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              Falls es jemanden interessiert: Dieses Gerät sollte in v0.4.0 des BLE-Adapters unterstützt sein.

              Bitte um Tester und ein paar Rohdaten aus dem Debug-Log!

              => viewtopic.php?f=36&t=7932&p=136475#p136475

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                ShishaTobi
                schrieb am zuletzt editiert von
                #7

                Hallo zusammen,

                ich bin neu was den IoBroker betrifft.

                Für meinen Mijia Temperatur- und Feuchtigkeitssensor bin ich der Vorlage von Soulforged gefolgt.

                In der BLE Instanz kann ich den Sensor sehen. Es werden auch die Werte für Batterie, Temperatur und Feuchtigkeit angezeigt.

                Lediglich das Skript meldet immer

                21:00:06.313 [info] javascript.0 script.js.XiaomiHygroTemp: Xiaomi hat nicht geantwortet. Warte auf nächsten Poll

                Ich habe aber keine Ahnung woran es hängt. Im BLE habe ich als überwachendes Plugin "xiaomi" angegeben.

                Muss ich sonst noch etwas machen?

                Ich hoffe es kann mir jemand weiterhelfen.

                Sagt mir welche Infos ihr noch braucht.

                BLE Version ist 0.5.2

                Schonmal vielen Dank für die Hilfe.

                Gruß

                ShishaTobi

                8500_ble.jpg
                8500_java.jpg
                8500_script.jpg

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  @ShishaTobi:

                  Hallo zusammen,

                  In der BLE Instanz kann ich den Sensor sehen. Es werden auch die Werte für Batterie, Temperatur und Feuchtigkeit angezeigt.

                  Lediglich das Skript meldet immer

                  21:00:06.313 [info] javascript.0 script.js.XiaomiHygroTemp: Xiaomi hat nicht geantwortet. Warte auf nächsten Poll

                  Ich habe aber keine Ahnung woran es hängt. Im BLE habe ich als überwachendes Plugin "xiaomi" angegeben. `
                  Wenn es mit dem Adapter doch läuft, warum willst du noch das Skript nutzen?

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    ShishaTobi
                    schrieb am zuletzt editiert von
                    #9

                    Achso, ich dachte ich brauch das Script damit die Daten auf der VIS Tabelle angezeigt werden.

                    Was im Moment eben nicht der Fall ist.

                    Aber stimmt, ich könnte ja einfach die Values über den ble Adapter auslesen und auf dem VIS anzeigen, richtig?

                    1 Antwort Letzte Antwort
                    0
                    • S Soulforged

                      Mir ist es endlich gelungen mein Bluetooth Thermo- und Hygrometer in ioBroker einzubinden. Nun möchte ich meine Lösung allen anderen natürlich auch zur Verfügung stellen. Ich Kürze das Gerät im folgenden mit TH ab.

                      Fangen wir mit den Vorraussetzungen an: Wir benötigen auf unserem Host-System (in meinem Fall ein Raspi3) das Programm gatttool um auf die Bluetooth LE Schnittstelle zugreifen zu können. Wer den Bluetooth Adapter installier hat, wird diesen Schritt schon durchlaufen haben. Für alle anderen heißt es zunächt die Consolte zu öffnen

                      sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
                      

                      Als nächstes müsst ihr die MAC-Adresse eures TH herausbekommen. Ich habe hierzu eine Android-App namens nRF Connect benutzt. Diese wurde beim Bluetooth Adapter empfohlen und hat sehr gut funktoiniert https://play.google.com/store/apps/deta … ndroid.mcp

                      Nun werden wir in einem kleinen JavaScript in ioBroker mit Hilfe des gatttools in regelmäßigen Abständen Messwerte vom TH anfordern. In den ersten 3 Zeilen des Scripts trag ihr bitte die MAC Adresse eures TH ein und wählt ein Abfrageintervall aus. Ich habe meines auf 5 Minuten gestellt, da Temperatur und Luftfeuchte in aller Regel sich sehr langsam verändernde größen sind. Je seltener man es durchführt umso schonender ist es für die Batterie in dem kleinen Gerät. die Sekunden bitte auf 0 stehen lassen sofern euer Intervall auch in Minuten angegeben wird.

                      ! ````
                      const pollrate_s = 0; //Abfrageintervall in Sekunden (bei nutzung der Minuten auf 0 Stellen)
                      const pollrate_m = 5; //Abfrageintervall in Minuten (Empfehlung alle 5 Minuten / Temperaturänderung ist langsam / Schont die Batterie)
                      const bluetooth_mac = '4C:65:A8:D0:13:83';
                      ! const s_temp = "javascript.0.Bluetooth.XiaomiHygroTemp.Temperatur";
                      const s_hygro = "javascript.0.Bluetooth.XiaomiHygroTemp.Luftfeuchte";
                      ! createState(s_temp, 0,{unit: "°C", name: "Temperatur"});
                      createState(s_hygro, 0,{unit: "%", name: "Luftfeuchte"});
                      ! var cronstring;
                      if (pollrate_s > 0) {
                      cronstring = "*/" + pollrate_s + " * * * * ";
                      }
                      else {
                      cronstring = "
                      /" + pollrate_m + " * * * *";
                      }
                      ! schedule(cronstring, function () {
                      poll_XiaomiHygroTemp(bluetooth_mac);
                      });
                      ! function poll_XiaomiHygroTemp(mac){
                      var i = 1;
                      var bluetooth_message = '';
                      var messwerte;
                      var temperatur;
                      var feuchte;

                      var spawn = require('child_process').spawn,
                      gattool    = spawn('gatttool',['-b', mac , '--char-write-req', '-a', '0x10', '-n', '0100' ,'--listen']);
                      
                      gattool.stdout.on('data', function (data) {
                        //console.log('stdout: ' + data.toString());
                        bluetooth_message += data.toString();
                        if(i==5) { //5 stdout nachrichten abfangen. Ergibt overhead + ca 1,5-2 mal einen Messwert.
                            gattool.kill('SIGQUIT'); //gatttool in kommandozeile unsanft beenden
                            //console.log('message:' + bluetooth_message);
                            messwerte = bluetooth_message.substr(82,38); 
                            stellen = bluetooth_message.substr(82,38).split(" "); //Messwerte extrahieren (stehen immer an der gleichen stelle der Ausgabe) und an leerzeichen auftrennen. 
                            //Temperatur ist dann im Array an 2 (Zehner) 3 (Einer) 4 (Komma) und 5(Nachkommestelle) Stelle
                            //Feuchte an Stelle 9 (Zehner) 10 (Einer) 11 (Komma) und 12 (Nachkommestelle) 
                            //Ziffern ins ASCII sind 30+Ziffer. Also je 30 abziehen und mit der Zehnerpotenz multiplizieren
                            temperatur = (stellen[2]-30)*10+(stellen[3]-30)+(stellen[5]-30)/10;
                            feuchte = (stellen[9]-30)*10+(stellen[10]-30)+(stellen[12]-30)/10;
                            //console.log('Temp:' + temperatur);
                            //console.log('Feuchte:' + feuchte);
                            setState(s_temp, temperatur, true);
                            setState(s_hygro, feuchte, true);
                        }
                        i++;
                      });
                      
                      gattool.stderr.on('data', function (data) {
                        //console.log('stderr: ' + data.toString());
                        log("Xiaomi hat nicht geantwortet. Warte auf nächsten Poll")
                      });
                      

                      }

                      
                      Das Script erzeugt nach dem ersten Durchlauf zwei States in javascript.0.Bluetooth.XiaomiHygroTemp für Temperatur und Luftfeuchte.
                      
                      Diese kann man im vis z.B. in eine HTML-Tabelle packen:
                      
                      >! ````
                      [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"Klima\n\n    \n        \n        \n    \n    \n        \n        \n    \n
                      >! | Temperatur: | {javascript.0.Bluetooth.XiaomiHygroTemp.Temperatur} °C |
                      | Luftfeuchte: | {javascript.0.Bluetooth.XiaomiHygroTemp.Luftfeuchte}% |
                      >! "},"style":{"left":"860px","top":"180px","color":"#EEEEEE","border-width":"2px","border-style":"solid","width":"227px","height":"85px","font-size":"larger","z-index":"0","line-height":"25px","border-radius":"10px","border-color":"#EEEEEE","padding-left":"6px","padding-top":"3px"},"widgetSet":"basic"}]
                      
                      2 Offline
                      2 Offline
                      2000ede
                      schrieb am zuletzt editiert von
                      #10

                      @Soulforged

                      Der „lywsd03mmc“ ist wohl das neuste Modell – er ist darüber hinaus viel günstiger und hat noch einen MEGA-Vorteil: Das Gerät selber hat eine eigene Datenspeicherung! Laut der Seite https://de.gearbest.com/home-gadgets/pp_009542841338.html sind es 3 Monate. Ich kann bestätigen, dass es speichert, habe ihn aber erst sehr kurz. Leider ist die orignal app großer Mist.
                      Vielleicht reizt Dich der Hinweis auf die Speicherung, Deinen Code zu erweitern.
                      Dies als Hinweis und würde mich freuen!

                      1 Antwort Letzte Antwort
                      0
                      • H Offline
                        H Offline
                        Henning
                        schrieb am zuletzt editiert von
                        #11

                        das Modell habe ich jetzt auch. Laufen recht gut, leider nicht im IOBroker.
                        Meine Versuche, die Stelle zu finden wo im BLE die MAC- Adressen etc. hinterlegt sind, sind leider gescheitert.
                        Vielleicht kann mir jemanden einen Tip geben, wo die Daten hinterlegt sind.

                        Die MAC- Adressen/ FE95 lauten:
                        a4:c1:38:01:f8:27 30585b05ad27f80138c1a408
                        a4:c1:38:03:2c:19 30585b05b3192c0338c1a408
                        a4:c1:38:60:55:ee 30585b05a1ee556038c1a408

                        30585b05 dürfte die Gerätekennung sein
                        38c1a408 gehört wohl auch dazu
                        a1ee5560 sind vielleicht die eigentlichen Daten (Temperatur, Feuchtigkeit, Batterie)

                        Als logischen Wert finde ich nur die Temperatur. Die ersten zwei Ziffern von Hex in Dez. umgerechnet ergibt logische Werte für die Gradzahl inkl. einer Kommastelle (dummerweise aktualisieren die sich gerade nicht)

                        Vielleicht kann ja jemand was damit anfangen :-)
                        Viele Grüße,
                        Henning

                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          Colt
                          schrieb am zuletzt editiert von
                          #12

                          Hallo zusammen,
                          gibt es mittlerweile eine möglichkeit den LYWSD03MMC in den iObroker zu bekommen?

                          SBorgS T 2 Antworten Letzte Antwort
                          0
                          • C Colt

                            Hallo zusammen,
                            gibt es mittlerweile eine möglichkeit den LYWSD03MMC in den iObroker zu bekommen?

                            SBorgS Offline
                            SBorgS Offline
                            SBorg
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #13

                            @Colt @AlCalzone schrieb, dass es da wohl mehrere Monate für eine Lösung dauern könnte. Es müsste aber mittels des Phyton-Scripts auf GitHub möglich sein.

                            LG SBorg ( SBorg auf GitHub)
                            Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Stoni
                              schrieb am zuletzt editiert von
                              #14

                              Hallo, kann jemand was zur BT Reichweite sagen? Pi4 mit ioB hängt im EG, Thermostate sollen im ganzen Haus hängen, also bis zu 10 Meter durch Wände in Fertigbauweise, bzw Stahlbetondecke in den Keller.
                              Erfahrungen?

                              Gruß Stoni

                              SBorgS 1 Antwort Letzte Antwort
                              0
                              • S Stoni

                                Hallo, kann jemand was zur BT Reichweite sagen? Pi4 mit ioB hängt im EG, Thermostate sollen im ganzen Haus hängen, also bis zu 10 Meter durch Wände in Fertigbauweise, bzw Stahlbetondecke in den Keller.
                                Erfahrungen?

                                Gruß Stoni

                                SBorgS Offline
                                SBorgS Offline
                                SBorg
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #15

                                @Stoni sagte

                                Erfahrungen? ... Stahlbetondecke ...

                                Diesbzgl. keine guten ;)
                                Genau wird dir das aber niemand beantworten können, da dies von zu vielen Faktoren abhängt. Ich mache dann immer einen rudimentären Reichweitencheck: BT-Stick am Laptop an den einen Standort, Smartphone an den anderen und dann schauen ob sie sich verbinden können...
                                Wenn es BT sein muss, könnte man auch notfalls einen PI Zero oä. als 2. Verbindungspunkt einsetzen.

                                LG SBorg ( SBorg auf GitHub)
                                Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                S 1 Antwort Letzte Antwort
                                0
                                • SBorgS SBorg

                                  @Stoni sagte

                                  Erfahrungen? ... Stahlbetondecke ...

                                  Diesbzgl. keine guten ;)
                                  Genau wird dir das aber niemand beantworten können, da dies von zu vielen Faktoren abhängt. Ich mache dann immer einen rudimentären Reichweitencheck: BT-Stick am Laptop an den einen Standort, Smartphone an den anderen und dann schauen ob sie sich verbinden können...
                                  Wenn es BT sein muss, könnte man auch notfalls einen PI Zero oä. als 2. Verbindungspunkt einsetzen.

                                  S Offline
                                  S Offline
                                  Stoni
                                  schrieb am zuletzt editiert von
                                  #16

                                  @SBorg Danke für den Tipp. Hab gerade mal mein Handy in den Keller gelegt und per Laptop gesucht. Wurde nicht gefunden, ergo scheinbar keine Verbindung durch Stahlbeton.
                                  Es muss nicht zwangsläufig BT sein, ich suche halt noch günstige Alternativen zu den HM-Thermostaten mit ner Anzeige und da stieß ich auf die Mijia. Hab schon einige Aqara im Einsatz, aber wollte was mit Display.

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Soulforged

                                    Mir ist es endlich gelungen mein Bluetooth Thermo- und Hygrometer in ioBroker einzubinden. Nun möchte ich meine Lösung allen anderen natürlich auch zur Verfügung stellen. Ich Kürze das Gerät im folgenden mit TH ab.

                                    Fangen wir mit den Vorraussetzungen an: Wir benötigen auf unserem Host-System (in meinem Fall ein Raspi3) das Programm gatttool um auf die Bluetooth LE Schnittstelle zugreifen zu können. Wer den Bluetooth Adapter installier hat, wird diesen Schritt schon durchlaufen haben. Für alle anderen heißt es zunächt die Consolte zu öffnen

                                    sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
                                    

                                    Als nächstes müsst ihr die MAC-Adresse eures TH herausbekommen. Ich habe hierzu eine Android-App namens nRF Connect benutzt. Diese wurde beim Bluetooth Adapter empfohlen und hat sehr gut funktoiniert https://play.google.com/store/apps/deta … ndroid.mcp

                                    Nun werden wir in einem kleinen JavaScript in ioBroker mit Hilfe des gatttools in regelmäßigen Abständen Messwerte vom TH anfordern. In den ersten 3 Zeilen des Scripts trag ihr bitte die MAC Adresse eures TH ein und wählt ein Abfrageintervall aus. Ich habe meines auf 5 Minuten gestellt, da Temperatur und Luftfeuchte in aller Regel sich sehr langsam verändernde größen sind. Je seltener man es durchführt umso schonender ist es für die Batterie in dem kleinen Gerät. die Sekunden bitte auf 0 stehen lassen sofern euer Intervall auch in Minuten angegeben wird.

                                    ! ````
                                    const pollrate_s = 0; //Abfrageintervall in Sekunden (bei nutzung der Minuten auf 0 Stellen)
                                    const pollrate_m = 5; //Abfrageintervall in Minuten (Empfehlung alle 5 Minuten / Temperaturänderung ist langsam / Schont die Batterie)
                                    const bluetooth_mac = '4C:65:A8:D0:13:83';
                                    ! const s_temp = "javascript.0.Bluetooth.XiaomiHygroTemp.Temperatur";
                                    const s_hygro = "javascript.0.Bluetooth.XiaomiHygroTemp.Luftfeuchte";
                                    ! createState(s_temp, 0,{unit: "°C", name: "Temperatur"});
                                    createState(s_hygro, 0,{unit: "%", name: "Luftfeuchte"});
                                    ! var cronstring;
                                    if (pollrate_s > 0) {
                                    cronstring = "*/" + pollrate_s + " * * * * ";
                                    }
                                    else {
                                    cronstring = "
                                    /" + pollrate_m + " * * * *";
                                    }
                                    ! schedule(cronstring, function () {
                                    poll_XiaomiHygroTemp(bluetooth_mac);
                                    });
                                    ! function poll_XiaomiHygroTemp(mac){
                                    var i = 1;
                                    var bluetooth_message = '';
                                    var messwerte;
                                    var temperatur;
                                    var feuchte;

                                    var spawn = require('child_process').spawn,
                                    gattool    = spawn('gatttool',['-b', mac , '--char-write-req', '-a', '0x10', '-n', '0100' ,'--listen']);
                                    
                                    gattool.stdout.on('data', function (data) {
                                      //console.log('stdout: ' + data.toString());
                                      bluetooth_message += data.toString();
                                      if(i==5) { //5 stdout nachrichten abfangen. Ergibt overhead + ca 1,5-2 mal einen Messwert.
                                          gattool.kill('SIGQUIT'); //gatttool in kommandozeile unsanft beenden
                                          //console.log('message:' + bluetooth_message);
                                          messwerte = bluetooth_message.substr(82,38); 
                                          stellen = bluetooth_message.substr(82,38).split(" "); //Messwerte extrahieren (stehen immer an der gleichen stelle der Ausgabe) und an leerzeichen auftrennen. 
                                          //Temperatur ist dann im Array an 2 (Zehner) 3 (Einer) 4 (Komma) und 5(Nachkommestelle) Stelle
                                          //Feuchte an Stelle 9 (Zehner) 10 (Einer) 11 (Komma) und 12 (Nachkommestelle) 
                                          //Ziffern ins ASCII sind 30+Ziffer. Also je 30 abziehen und mit der Zehnerpotenz multiplizieren
                                          temperatur = (stellen[2]-30)*10+(stellen[3]-30)+(stellen[5]-30)/10;
                                          feuchte = (stellen[9]-30)*10+(stellen[10]-30)+(stellen[12]-30)/10;
                                          //console.log('Temp:' + temperatur);
                                          //console.log('Feuchte:' + feuchte);
                                          setState(s_temp, temperatur, true);
                                          setState(s_hygro, feuchte, true);
                                      }
                                      i++;
                                    });
                                    
                                    gattool.stderr.on('data', function (data) {
                                      //console.log('stderr: ' + data.toString());
                                      log("Xiaomi hat nicht geantwortet. Warte auf nächsten Poll")
                                    });
                                    

                                    }

                                    
                                    Das Script erzeugt nach dem ersten Durchlauf zwei States in javascript.0.Bluetooth.XiaomiHygroTemp für Temperatur und Luftfeuchte.
                                    
                                    Diese kann man im vis z.B. in eine HTML-Tabelle packen:
                                    
                                    >! ````
                                    [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"Klima\n\n    \n        \n        \n    \n    \n        \n        \n    \n
                                    >! | Temperatur: | {javascript.0.Bluetooth.XiaomiHygroTemp.Temperatur} °C |
                                    | Luftfeuchte: | {javascript.0.Bluetooth.XiaomiHygroTemp.Luftfeuchte}% |
                                    >! "},"style":{"left":"860px","top":"180px","color":"#EEEEEE","border-width":"2px","border-style":"solid","width":"227px","height":"85px","font-size":"larger","z-index":"0","line-height":"25px","border-radius":"10px","border-color":"#EEEEEE","padding-left":"6px","padding-top":"3px"},"widgetSet":"basic"}]
                                    
                                    J Offline
                                    J Offline
                                    jhuebner1
                                    schrieb am zuletzt editiert von
                                    #17

                                    @Soulforged
                                    Mal ne doofe Frage:
                                    Für 3x Hyrgometer, muss ich 3x Scripte anleghen oder kann ich die MAC Adressen irgendwo hintereinander schreiben?

                                    1 Antwort Letzte Antwort
                                    0
                                    • C Colt

                                      Hallo zusammen,
                                      gibt es mittlerweile eine möglichkeit den LYWSD03MMC in den iObroker zu bekommen?

                                      T Offline
                                      T Offline
                                      Torsten G.
                                      schrieb am zuletzt editiert von
                                      #18

                                      @Colt said in [Vorlage] Einbinden des Xiaomi Mijia Bluetooth Thermo- und Hygrometer:

                                      Hallo zusammen,
                                      gibt es mittlerweile eine möglichkeit den LYWSD03MMC in den iObroker zu bekommen?

                                      Ich habe mir 2 Stück für 9 Euro zugelegt und stehe nun auch vor der Frage ob jemand schon eine Lösung gefunden hat. Ich habe mir die für die Luftfeuchtigkeit im Keller gekauft und würde die gerne über VIS anzeigen lassen bzw. den Luftentfeuchter starten lassen.

                                      Wenn jemand schon eine Lösung gefunden hat immer her damit. Aber für Anfänger geeignet :)

                                      Viele Grüße
                                      Torsten

                                      SBorgS Lenny.CBL 2 Antworten Letzte Antwort
                                      0
                                      • T Torsten G.

                                        @Colt said in [Vorlage] Einbinden des Xiaomi Mijia Bluetooth Thermo- und Hygrometer:

                                        Hallo zusammen,
                                        gibt es mittlerweile eine möglichkeit den LYWSD03MMC in den iObroker zu bekommen?

                                        Ich habe mir 2 Stück für 9 Euro zugelegt und stehe nun auch vor der Frage ob jemand schon eine Lösung gefunden hat. Ich habe mir die für die Luftfeuchtigkeit im Keller gekauft und würde die gerne über VIS anzeigen lassen bzw. den Luftentfeuchter starten lassen.

                                        Wenn jemand schon eine Lösung gefunden hat immer her damit. Aber für Anfänger geeignet :)

                                        Viele Grüße
                                        Torsten

                                        SBorgS Offline
                                        SBorgS Offline
                                        SBorg
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #19

                                        @Torsten-G sagte in [Vorlage] Einbinden des Xiaomi Mijia Bluetooth Thermo- und Hygrometer:

                                        Wenn jemand schon eine Lösung gefunden hat immer her damit. Aber für Anfänger geeignet

                                        Lösung ja, aber auch für Anfänger? Zumindest ist es nicht sooo schwer: alternative Firmware flashen
                                        Gibt auch hier im Forum schon paar Posts dazu: Projekt auf GitHub

                                        LG SBorg ( SBorg auf GitHub)
                                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                        1 Antwort Letzte Antwort
                                        0
                                        • T Torsten G.

                                          @Colt said in [Vorlage] Einbinden des Xiaomi Mijia Bluetooth Thermo- und Hygrometer:

                                          Hallo zusammen,
                                          gibt es mittlerweile eine möglichkeit den LYWSD03MMC in den iObroker zu bekommen?

                                          Ich habe mir 2 Stück für 9 Euro zugelegt und stehe nun auch vor der Frage ob jemand schon eine Lösung gefunden hat. Ich habe mir die für die Luftfeuchtigkeit im Keller gekauft und würde die gerne über VIS anzeigen lassen bzw. den Luftentfeuchter starten lassen.

                                          Wenn jemand schon eine Lösung gefunden hat immer her damit. Aber für Anfänger geeignet :)

                                          Viele Grüße
                                          Torsten

                                          Lenny.CBL Offline
                                          Lenny.CBL Offline
                                          Lenny.CB
                                          Most Active
                                          schrieb am zuletzt editiert von Lenny.CB
                                          #20

                                          @Torsten-G schau dir mal die Anleitung an:
                                          https://forum.iobroker.net/topic/28388/xiaomi-temp-and-humidity-monitor-2-ble-adapter/97

                                          T 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          544

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe