ioBroker.ble
ioBroker.ble copied to clipboard
_default pluging always handling
The driver loads two plugins _default, Xiaomi. But always handles only by default (few days). How to assign specific device handling by Xiaomi plugin? Is it possible to do this manually in future versions?
2023-01-27 09:29:25.844 - debug: ble.0 (11472) updating rssi state for a4:c1:38:ec:83:b8
2023-01-27 09:29:25.845 - debug: ble.0 (11472) discovered peripheral a4:c1:38:ec:83:b8 2023-01-27 09:29:25.845 - debug: ble.0 (11472) has advertisement: true 2023-01-27 09:29:25.845 - debug: ble.0 (11472) has serviceData: true 2023-01-27 09:29:25.845 - debug: ble.0 (11472) serviceData = [] 2023-01-27 09:29:25.846 - debug: ble.0 (11472) has manufacturerData: true 2023-01-27 09:29:25.846 - debug: ble.0 (11472) manufacturerData = 2023-01-27 09:29:25.846 - debug: ble.0 (11472) plugin _default is handling a4:c1:38:ec:83:b8 2023-01-27 09:29:25.846 - debug: ble.0 (11472) updating rssi state for a4:c1:38:ec:83:b8 2023-01-27 09:29:25.849 - debug: ble.0 (11472) a4:c1:38:ec:83:b8 > got values: {} 2023-01-27 09:29:25.850 - debug: ble.0 (11472) a4:c1:38:ec:83:b8 > got values: {}
Which log level is this log from? If not debug then please make another one with "debug" level.
It doesn't look like there is any data, so nothing the xiaomi plug-in can use to determine it should be handling the decoding.
Hello. Its debugging level. The sensor LYWSD03MMC was flashed and worked before reinstalling iobroker. Required plugin is not defined now
LYWSD03MMC
You have the alternative firmware for this and configured it to send the correct advertisements, correct?
serviceData = []
This should read
serviceData = ["fe95"]
for the xiaomi plugin to be able to handle it. Seems to me the device isn't configured correctly.
Hi. I do have the same issue. All BLE Xiaomi thermomethers have worked fine before. Yesterday I had to reinstall IObroker completely and also the BLE adapter.
- Afterwards some are identified correctly, but most not. No change was done one the thermomether
- Firmware reinstallation + configuration to "Mi Like" did not change anyting Latest Firmware from here was used: https://github.com/atc1441/ATC_MiThermometer?tab=readme-ov-file
- I also have tried older versions from the adapter - always same problem
- OS Version on Raspberry is latest Raspbian GNU/Linux 11 (bullseye)
Some are using "FE95" as wished, but are not using xiaomi adapter:
ble.0 | 2024-01-31 20:25:21.417 | debug | setting state ble.0.a4:c1:38:8c:50:a7.services.fe95
ble.0 | 2024-01-31 20:25:21.417 | debug | a4:c1:38:8c:50:a7 > got values: {"services.fe95":"3058e00901a7508c38c1a4280100"}
ble.0 | 2024-01-31 20:25:21.416 | debug | _default: a4:c1:38:8c:50:a7 > got data 3058e00901a7508c38c1a4280100 for fe95
ble.0 | 2024-01-31 20:25:21.413 | debug | plugin _default is handling a4:c1:38:8c:50:a7
ble.0 | 2024-01-31 20:25:21.413 | debug | has manufacturerData: false
ble.0 | 2024-01-31 20:25:21.412 | debug | serviceData = [{"uuid":"fe95","data":{"type":"Buffer","data":[48,88,224,9,1,167,80,140,56,193,164,40,1,0]}}]
ble.0 | 2024-01-31 20:25:21.412 | debug | has serviceData: true
ble.0 | 2024-01-31 20:25:21.412 | debug | has advertisement: true
ble.0 | 2024-01-31 20:25:21.412 | debug | discovered peripheral a4:c1:38:8c:50:a7
Some devices are detected corretly
ble.0 | 2024-01-31 20:34:16.783 | debug | setting state ble.0.a4:c1:38:ba:d6:c7.temperature
ble.0 | 2024-01-31 20:34:16.781 | silly | States user redis pmessage io.ble.0.*/io.ble.0.a4:c1:38:ba:d6:c7.rssi:{"val":-76,"ack":true,"ts":1706729656777,"q":0,"from":"system.adapter.ble.0","user":"system.user.admin","lc":1706729652986}
ble.0 | 2024-01-31 20:34:16.780 | debug | setting state ble.0.a4:c1:38:ba:d6:c7.humidity
ble.0 | 2024-01-31 20:34:16.780 | debug | a4:c1:38:ba:d6:c7 > got values: {"humidity":52,"temperature":23.1}
ble.0 | 2024-01-31 20:34:16.780 | debug | xiaomi >> got temperature update => 23.1
ble.0 | 2024-01-31 20:34:16.779 | debug | xiaomi >> got humidity update => 52
ble.0 | 2024-01-31 20:34:16.779 | debug | xiaomi >> got data: 50305b0505c7d6ba38c1a40d1004e7000802
ble.0 | 2024-01-31 20:34:16.774 | debug | updating rssi state for a4:c1:38:ba:d6:c7
ble.0 | 2024-01-31 20:34:16.771 | debug | plugin Xiaomi is handling a4:c1:38:ba:d6:c7
ble.0 | 2024-01-31 20:34:16.770 | debug | has manufacturerData: false
ble.0 | 2024-01-31 20:34:16.770 | debug | serviceData = [{"uuid":"fe95","data":{"type":"Buffer","data":[80,48,91,5,5,199,214,186,56,193,164,13,16,4,231,0,8,2]}}]
ble.0 | 2024-01-31 20:34:16.770 | debug | has serviceData: true
ble.0 | 2024-01-31 20:34:16.770 | debug | has advertisement: true
ble.0 | 2024-01-31 20:34:16.769 | debug | discovered peripheral a4:c1:38:ba:d6:c7
But you are right that some devices, with same firmware and settings are advertising differently
ble.0 | 2024-01-31 20:25:20.410 | debug | setting state ble.0.a4:c1:38:53:82:39.services.181a
ble.0 | 2024-01-31 20:25:20.410 | debug | a4:c1:38:53:82:39 > got values: {"services.181a":"a4c13853823900e532460b1c04"}
ble.0 | 2024-01-31 20:25:20.409 | debug | _default: a4:c1:38:53:82:39 > got data a4c13853823900e532460b1c04 for 181a
ble.0 | 2024-01-31 20:25:20.404 | debug | updating rssi state for a4:c1:38:53:82:39
ble.0 | 2024-01-31 20:25:20.401 | debug | has manufacturerData: false
ble.0 | 2024-01-31 20:25:20.401 | debug | serviceData = [{"uuid":"181a","data":{"type":"Buffer","data":[164,193,56,83,130,57,0,229,50,70,11,28,4]}}]
ble.0 | 2024-01-31 20:25:20.400 | debug | has advertisement: true
ble.0 | 2024-01-31 20:25:20.401 | debug | plugin _default is handling a4:c1:38:53:82:39
ble.0 | 2024-01-31 20:25:20.400 | debug | discovered peripheral a4:c1:38:53:82:39
Also noch ein Update:
- ich hab nochmal bei allen Thermometern die Option "Mi Like" gesetzt und jetzt läuft es einwandfrei
- bei "Advertising Type:" Mi Like auswählen. Wenn es funktioniert hat sendet er auch den "fe95". Bei "181a" steht er im "Advertising Type" noch auf Custom und du musst es nochmals probieren (es geht nicht immer direkt beim 1. mal)
- Keine Ahnung warum und wieso, aber die Teile verlieren den Status beim Batteriewechsel. D.h. nach jedem Wechsel muss der Status erneut gesetzt werden.
- Hat wer eine Firmwareempfehlung?
Ich hab mal hier ein Bugticket aufgemacht: https://github.com/atc1441/ATC_MiThermometer/issues/316
Und hier eine neue Firmware gefunden. Die hat das Problem nicht. Man muss aber mit 2 Flashern arbeiten Anleitung ist hier zu finden https://github.com/pvvx/ATC_MiThermometer/discussions/475#discussioncomment-8328541
Some are using "FE95" as wished, but are not using xiaomi adapter:
Das ist im Adapter bisschen blöd gelöst... Das Paket was da empfangen wurde, enthält keine Nutzdaten (nur MAC-Adresse), lässt sich aber als Xiaomi-Paket parsen. Der Adapter geht aufgrund der fehlenden Nutzdaten davon aus, dass es möglicherweise doch kein Xiaomi-Paket ist, und merkt sich das.
Aber, es beim ersten Erkennen nach Adapterstart folgendes loggen:
xiaomi >> The device is not fully initialized. xiaomi >> Use its app to complete the initialization.
Kann das sein?
Sorry. das Log hab ich nicht mehr. Bei Debug "All" waren so dermaßen viele Nachrichen das es wirklich schwer war.
Aber mit der neuen Firmware ist alles OK. Und der zustand wird nach dem Batteriewechsel gespeichert.
Dann empfehlen wir diesen Kommentar mal als Lösung: https://github.com/AlCalzone/ioBroker.ble/issues/775#issuecomment-1920654835