BT-Sensoren über Theengs Bridge in Fhem Mqtt2_Client einbinden

Begonnen von t.moori, 02 April 2025, 16:31:14

Vorheriges Thema - Nächstes Thema

t.moori

Hallo zusammen!
Zur Einbindung von BT-Sensoren habe ich mir eine  "Theengs Bridge - ESP32 BLE MQTT gateway" besorgt. Diese habe ich so konfiguriert, dass sie mit dem Docker mosquitto(IP:1883) kommuniziert. Wenn ich jetzt am Fhem_M2C show MQTT trafic einschalte, sehe ich den gesammten trafic der Theengs Bridge im folgenden Format:
09:52:05.683 RCVD /mqtt_gw/BTtoMQTT/29DDB206196F {"id":"29:DD:B2:06:19:6F","rssi":-82}
09:52:05.768 RCVD /mqtt_gw/BTtoMQTT/5CC1D7A05F35 {"id":"5C:C1:D7:A0:5F:35","rssi":-89}
09:52:07.202 RCVD /mqtt_gw/BTtoMQTT/D8A35CB54D9D {"id":"D8:A3:5C:B5:4D:9D","name":"[TV] Samsung XXXXXX TV","rssi":-65}
09:52:07.824 RCVD /mqtt_gw/BTtoMQTT/A4C1381BA2EC {"id":"A4:C1:38:1B:A2:EC","name":"LYWSD03MMC","rssi":-47}
09:53:07.513 RCVD /mqtt_gw/SYStoMQTT {"uptime":7088,"version":"v1.7.5","rgbb":255,"disc":false,"ohdisc":false,"env":"theengs-bridge-v11","freemem":86728,"mqttp":"1883","mqtts":false,"msgprc":1190,"msgblck":0,"maxq":9,"minmem":18768,"tempc":50,"freestck":4532,"eth":false,"rssi":-47,"SSID":"XXX","BSSID":"FC:EC:DA:8D:5B:3C","ip":"IP-Adresse","mac":"D0:EF:76:23:D1:14","lowpowermode":-1,"modules":["BT"]}
09:53:07.565 RCVD /mqtt_gw/BTtoMQTT
{"bleconnect":false,"interval":55555,"adaptivescan":true,"intervalacts":55555,"intervalcnct":3600000,"scanduration":10000,"onlysensors":false,"randommacs":false,"hasspresence":false,"prestopic":"presence/","presuseuuid":false,"minrssi":-100,"extDecoderEnable":false,"extDecoderTopic":"undecoded","filterConnectable":false,"pubadvdata":false,"pubuuid4topic":false,"ignoreWBlist":false,"presenceawaytimer":120000,"movingtimer":60000,"forcepscn":false,"tskstck":2644,"crstck":3904,"enabled":true,"scnct":108}
09:53:10.959 RCVD /mqtt_gw/BTtoMQTT/8CEA4842F70F {"id":"8C:EA:48:42:F7:0F","rssi":-44} 
Wenn ich jetzt die Temp._Sensoren "Xiaomi Mi Bluetooth Sensoren"(LYWSD03MMC) handisch als Mqtt2-Devices, z.B. "A4C1381BA2EC" anlege, bekomme ich keine Temp./Hum.-Daten.
In den Readings kommen viele ID's und deren rssi, sowie zum Device "A4C1381BA2EC" die Konfiguration der Theengs Bridge.
Hier ein List von "A4C1381BA2EC":
Internals:
   CID        myBroker

   DEF        myBroker

   FUUID      67ec1ad0-f33f-129b-5f5b-d015679aaca61747
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     31
   NAME       A4C1381BA2EC
   NR         64
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 31
   myBroker_MSGCNT 31
   myBroker_TIME 2025-04-02 10:44:42
   READINGS:
     2025-04-02 08:18:06   01199C5BC188_id 01:19:9C:5B:C1:88
     2025-04-02 08:18:06   01199C5BC188_rssi -87
     hier stehen noch 100 solcher Einträge
     2025-04-02 08:40:06   7FDE5A370B0E_id 7F:DE:5A:37:0B:0E
     2025-04-02 08:40:06   7FDE5A370B0E_rssi -95
     2025-04-02 09:21:42   IODev           myBroker
     2025-04-02 09:21:44   LWT             online
     2025-04-02 09:21:44   RLStoMQTT_entity_picture https://github.com/1technophile/OpenMQTTGateway/raw/development/docs/img/Openmqttgateway_logo_mini_margins.png
     2025-04-02 09:21:44   RLStoMQTT_installed_version v1.7.5
     2025-04-02 09:21:44   RLStoMQTT_latest_version v1.8.1
     2025-04-02 09:21:44   RLStoMQTT_release_summary
     2025-04-02 09:21:44   RLStoMQTT_release_url https://github.com/1technophile/OpenMQTTGateway/releases/tag/v1.8.1
     2025-04-02 09:21:44   RLStoMQTT_title OpenMQTTGateway
     2025-04-02 07:55:09   config         
     2025-04-02 09:21:44   config_avty_t   /mqtt_gw/LWT
     2025-04-02 09:21:44   config_cmd_t    /mqtt_gw/commands/MQTTtoSYS/firmware_update
     2025-04-02 09:21:44   config_cmd_tpl  {"scanduration":{{value*1000}},"save":true}
     2025-04-02 09:21:44   config_dev_cla  restart
     2025-04-02 09:21:44   config_device_cns_1_1 mac
     2025-04-02 09:21:44   config_device_cns_1_2 A4C1381BA2EC
     2025-04-02 09:21:44   config_device_cu http://IP-Adresse vom OMG
     2025-04-02 09:21:44   config_device_ids_1 D0EF7623D114
     2025-04-02 09:21:44   config_device_mdl TBRIDGE02
     2025-04-02 09:21:44   config_device_mf Theengs
     2025-04-02 09:21:44   config_device_name mqtt_gw
     2025-04-02 09:21:44   config_device_sw v1.7.5
     2025-04-02 09:21:44   config_device_via_device mqtt_gw
     2025-04-02 09:21:44   config_name     SYS: Firmware Update
     2025-04-02 09:21:44   config_payload_install {"version":"latest"}
     2025-04-02 09:21:44   config_pl_avail online
     2025-04-02 09:21:44   config_pl_not_avail offline
     2025-04-02 09:21:44   config_pl_off   {"bleconnect":false,"save":true}
     2025-04-02 09:21:44   config_pl_on    {"bleconnect":true,"save":true}
     2025-04-02 09:21:44   config_pl_prs   {"erase":true}
     2025-04-02 09:21:44   config_stat_off false
     2025-04-02 09:21:44   config_stat_on  true
     2025-04-02 09:21:44   config_stat_t   /mqtt_gw/RLStoMQTT
     2025-04-02 09:21:44   config_state_class measurement
     2025-04-02 09:21:44   config_uniq_id  D0EF7623D114-update
     2025-04-02 09:21:44   config_unit_of_meas s
     2025-04-02 09:21:44   config_val_tpl  {{ value_json.scanduration/1000 }}
Attributes:
   autocreate 1
   readingList myBroker:/mqtt_gw/BTtoMQTT/69CF9C03DDB0:.* { json2nameValue($EVENT, '69CF9C03DDB0_', $JSONMAP) }
myBroker:/mqtt_gw/BTtoMQTT/39212BB2D522:.* { json2nameValue($EVENT, '39212BB2D522_', $JSONMAP) }
.
. gekürzt
.
myBroker:/mqtt_gw/BTtoMQTT/490065F5CC1F:.* { json2nameValue($EVENT, '490065F5CC1F_', $JSONMAP) }
myBroker:/mqtt_gw/LWT:.* LWT
myBroker:homeassistant/binary_sensor/D0EF7623D114-connectivity/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }
myBroker:homeassistant/sensor/D0EF7623D114-uptime/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }
.
. gekürzt
.
myBroker:homeassistant/switch/D0EF7623D114-lowpowermode/config:.* config
myBroker:/mqtt_gw/RLStoMQTT:.* { json2nameValue($EVENT, 'RLStoMQTT_', $JSONMAP) }
myBroker:/mqtt_gw/BTtoMQTT/5205C44A0ED3:.* { json2nameValue($EVENT, '5205C44A0ED3_', $JSONMAP) }
Kann mir jemand sagen, wie ich die Daten aus den Sensoren bekomme??
Vielen Dank im Voraus!!!

passibe

Sind die Sensoren denn mit der Bridge gepairt? Es sieht so aus, als würde die Bridge einfach nur die Bluetooth-Geräte in der Umgebung scannen (deshalb taucht da auch irgendein Fernseher auf), aber die Sensoren sind noch gar nicht gepairt.

Sobald die gepairt sind müsstest du dann auch tatsächlich Daten von den Sensoren bekommen und kannst dir da einfach mittels devicetopic und einer einfachen readingList à la $DEVICETOPIC:.* { json2nameValue(lc($EVENT)) }dein MQTT2-Device bauen.

passibe

Übrigens, ich glaube dieses myBroker-Device ist Mist, weil es dir jegliche Werte als Reading anlegt, die eigentlich in den separaten Sensoren-Devices sein sollten.

Schalte für das myBroker device mal autocreate aus und lösch aus der readingList die ganzen Gerät-Spezifischen Einträge (bzw. wenn du es einfach haben willst, alles was mit BTtoMQTT zu tun hat).

Dann noch ein sinnvolles bridgeRegexp machen:
attr myBroker mqtt_gw/BTtoMQTT/([A-Za-z0-9]+)[/]?.*:.* "ble_$1"(nur Vermutung, ist ungetestet)
Dann sollten die Devices eigentlich sogar automatisch erstellt werden.

TomLee

Hallo,

hab mich noch nicht wirklich mit OMG oder Theengs beschäftigt, reingeschnuppert aber schon.

Für mich liest sich das bisher so das es in FHEM bereits ein AttrTemplate OpenMQTTGateway_MCU für ein Bridge-Device gibt.
Hilft jetzt zu der Frage nicht viel weiter, vlt. aber beim Einstieg in das Thema bezüglich der Einbindung in FHEM.

Zitat von: theengs.io link=https://gateway.theengs.io/You can use Theengs Gateway as a standalone solution or as a complementary solution to OpenMQTTGateway

(opens new window), as it uses the same MQTT topic structure and the same payload messages. Your OpenMQTTGateway home automation BLE sensors integration also works with Theengs Gateway.


Beta-User

#4
Zitat von: t.moori am 02 April 2025, 16:31:14Wenn ich jetzt die Temp._Sensoren "Xiaomi Mi Bluetooth Sensoren"(LYWSD03MMC) handisch als Mqtt2-Devices, z.B. "A4C1381BA2EC" anlege, bekomme ich keine Temp./Hum.-Daten.
Wo bitte steht irgendwas davon, dass man einfach irgendeine (zutreffende) BT-Adresse als NAME verwenden kann, damit alles automatisch erkannt wird?!?

Zum Atmosphärischen - erst mal Danke, dass du einen eigenen Thread aufgemacht hast, ABER:
Zitat von: Beta-User am 02 April 2025, 15:22:00
Zitat von: t.moori am 02 April 2025, 15:14:16@Beta-User
Wäre mein Thema besser hier zu zuordnen: OpenMQTTGateway support thread - im Speziellen: BT/BTLE ??
Mit direkter Verlinkung wäre das ggf. einfacher zu beantworten, [...]

Bitte immer VERLINKEN, was "dazu" gehört, hier also der Thread, von dem du was abgespalten hast, und eben der "OMG"-Mega-Thread.

Weiter unbeantwortet ist, warum du unbedingt weiter mosquitto haben willst. Jedenfalls ein Teil deiner Probleme (CID) kommt daher, dass eben "alles" (was bei dir im Moment zum Glück nur dieses eine GW ist!) in einem "Großdevice" landet - und darunter auch ein Haufen "Gruscht" ist, mit dem FHEM gar nichts anfängt => weg damit...

Unklar ist mir auch, warum der Topic nicht das typische "OpenMQTTGateway"-Element enthält. Irgendwer hat das geändert - du oder die Jungs von der firmware deiner Bridge? Die klare Empfehlung von meiner Seite ist immer: Sowas nur dann ändern, wenn man weiß, was man tut. Sonst klappen bestimmte "Standards" nämlich nicht (und u.A. meine Bereitschaft zum support nimmt drastisch ab)...

Bitte lies daher erst mal die commandref zu MQTT2_CLIENT und den betreffenden Artikel. Ich will hier im Thread dann sehen, dass du zumindest einen Teil der dortigen Emfehlungen versucht hast umzusetzen.

Getreu dem Satz von GB Shaw (?): "Bücher [oder hier halt Wiki-Artikel und Doku] sind nur lange Bücher an Freunde."

Dazu (zu lesendes "Buch") gehört imo auch die Doku zu deiner Bridge - ich kann dir nämlich nicht sagen, warum bei dem Sensor vom Typ LYWSD03MMC keine Messwerte per MQTT übertragen werden. Ich nutze hier die originale OpenMQTTGateway-firmware für ESP32 (Versionen 1.9 und 1.8), und damit geht das sowohl mit der Original-firmware der Sensoren wie auch mit der "ATC"-Variante. Könnte natürlich sein, dass Xiaomi die firmware verändert hat, aber dann sollte dazu was auf den OMG-Seiten zu finden sein (oder beim ATC-Projekt). (Und nein, ich bin der supporter, die passenden Links dazu zu suchen ist dein Job!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

OT

ZitatIch nutze hier die originale OpenMQTTGateway-firmware für ESP32 (Versionen 1.9 und 1.8), und damit geht das sowohl mit der Original-firmware der Sensoren wie auch mit der "ATC"-Variante.

Mich würde in dem Kontext interessieren, weshalb Du dann weiterhin den Weg über Bluetooth nutzt?
Welche Nachteile siehst Du in der Zigbee-Variante?

Beta-User

Zitat von: TomLee am 02 April 2025, 22:06:28OT

ZitatIch nutze hier die originale OpenMQTTGateway-firmware für ESP32 (Versionen 1.9 und 1.8), und damit geht das sowohl mit der Original-firmware der Sensoren wie auch mit der "ATC"-Variante.

Mich würde in dem Kontext interessieren, weshalb Du dann weiterhin den Weg über Bluetooth nutzt?
Welche Nachteile siehst Du in der Zigbee-Variante?
Wir sollten mit gutem Beispiel voran gehen und fremde Threads nicht vermüllen, daher nur kurz: das läuft hier schon "ewig" so, lange bevor es die ZigBee-firmware gab. Es gab schlicht bisher keinen Anlass, das anzufassen....
Gibt andere Baustellen mit höherer prio.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

t.moori

Vielen Dank für eure Antworten!!
@passibe  Die BT-Sensoren "LYWSD03MMC"lassen sich mit der neuesten FW(2.1.1_0159) nicht mehr so einfach flashen, damit auch nicht mit anderen Systemen pairen. An einer Lösung wird gearbeitet! Das myBroker-Device(Mqtt2-Client auf Fhem) habe ich für BT erstmal auf "parken" gestellt und gesäubert.
@beta-user  Ich komme mit der Konfiguration von mosquitto <--> Mqtt2-Client auf Fhem und den ZigBee-Devices vorerst zurecht. Wenn nicht werde ich die entsprechenden Fragen stellen!!
Zitat von: Beta-User am 02 April 2025, 21:03:23Unklar ist mir auch, warum der Topic nicht das typische "OpenMQTTGateway"-Element enthält. Irgendwer hat das geändert - du oder die Jungs von der firmware deiner Bridge? Die klare Empfehlung von meiner Seite ist immer: Sowas nur dann ändern, wenn man weiß, was man tut. Sonst klappen bestimmte "Standards" nämlich nicht (und u.A. meine Bereitschaft zum support nimmt drastisch ab)...
Bitte lies daher erst mal die commandref zu MQTT2_CLIENT und den betreffenden Artikel. Ich will hier im Thread dann sehen, dass du zumindest einen Teil der dortigen Emfehlungen versucht hast umzusetzen.
Getreu dem Satz von GB Shaw (?): "Bücher [oder hier halt Wiki-Artikel und Doku] sind nur lange Bücher an Freunde."
Dazu (zu lesendes "Buch") gehört imo auch die Doku zu deiner Bridge
Steht hier eine Prüfung an?

Beta-User

Zitat von: t.moori am 04 April 2025, 08:37:00@beta-user  Ich komme mit der Konfiguration von mosquitto <--> Mqtt2-Client auf Fhem und den ZigBee-Devices vorerst zurecht. Wenn nicht werde ich die entsprechenden Fragen stellen!!
Aha... Dann ist sowas also Absicht ;) :
Zitat von: t.moori am 02 April 2025, 16:31:14myBroker:homeassistant/sensor/D0EF7623D114-uptime/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }
Zitat von: t.moori am 04 April 2025, 08:37:00Steht hier eine Prüfung an?
Nö. Ich habe nur keine Lust, Dinge nochmal individuell zu erklären, die ich woanders schon allgemein hingepinselt habe.

Von daher Danke für deine Klarstellung, dass du gut zurecht kommst.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

t.moori

Zitat von: Beta-User am 04 April 2025, 08:48:01Aha... Dann ist sowas also Absicht ;) :
Das verstehe ich nicht!!!
Zitat von: Beta-User am 04 April 2025, 08:48:01Nö. Ich habe nur keine Lust, Dinge nochmal individuell zu erklären, die ich woanders schon allgemein hingepinselt habe.
Das verstehe ich, das sollst Du auch nicht! Ein Link zum entsprechendem Beitrag wäre sehr hilfreich!!
Schönen Tag!!


Beta-User

Zitat von: Beta-User am 02 April 2025, 21:03:23erst mal die commandref zu MQTT2_CLIENT und den betreffenden Artikel.
Die Commandref wirst du wohl finden, und mit "Artikel" ist der Wiki-Artikel mit genau diesem Titel gemeint. Warum soll ich das verlinken?!?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

DigiH

Hallo @t.moori

ZitatWenn ich jetzt die Temp._Sensoren "Xiaomi Mi Bluetooth Sensoren"(LYWSD03MMC) handisch als Mqtt2-Devices, z.B. "A4C1381BA2EC" anlege, bekomme ich keine Temp./Hum.-Daten.

Die LYWSD03MMC werden von openMQTTGateway auf der Theengs Bridge nur korrekt erkannt und decoded, wenn sie die 3rd Party ATC oder PVVX (PVVX natives Protokoll) Firmware aufgespielt haben. Das Xiaomi eigene Protokoll ist verschlüsselt und wurde zusätzlich die Definition des Keys zu jeder MAC Adresse benötigen - und momentan funktioniert Entschlüsselung nur mit Theengs Gateway, aber noch nicht mit OpenMQTTGateway.

https://decoder.theengs.io/devices/LYWSD03MMC.html

Alle nicht dekodierten raw Broadcastdaten können auch mit "pubadvdata":true ihn den MQTT Nachrichten mit angezeigt werden.

https://docs.openmqttgateway.com/use/ble.html#advanced-advertisement-and-advanced-data-default-false-available-with-ha-discovery

t.moori

Hallo DigiH,
danke für die Nachricht. Meines Wissens nach, lassen sich BT-Sensoren "LYWSD03MMC" mit der neuesten FW(2.1.1_0159)
nicht flashen(https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html), um die Daten über das Theengs-GW lesen zu können.
VG!!

frober

ZitatMeines Wissens nach, lassen sich BT-Sensoren "LYWSD03MMC" mit der neuesten FW(2.1.1_0159)
nicht flashen

Sollte mittlerweile funktionieren
https://github.com/pvvx/ATC_MiThermometer/issues/602#issue-2786915630
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

t.moori

Hallo frober,
danke für die Info.
Hab's gleich mal probiert, komme aber mit dem Extractor nach der 2Faktor-Auth(war erfolgreich) und dessen Neustart nicht weiter, invalid login und wieder der Link zur 2Faktor-Auth.
VG!