FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Manfi am 20 Dezember 2025, 18:20:41

Titel: [gelöst] BMW-MQTT-Bridge -> FHEM
Beitrag von: Manfi am 20 Dezember 2025, 18:20:41
Ich hatte ein MQTT2 device mit bimmerconnected laufen, um die Daten meines Fahrzeugs in FHEM auszulesen. Seit Ende September geht das nicht mehr, weil von BMW deaktiviert. Jetzt versuche ich seit einiger Zeit diese Funktion über dieses Projekt bmw-mqtt-bridge (https://github.com/dj0abr/bmw-mqtt-bridge) zu ersetzen, was mir aber nur teilweise gelungen ist. Die Daten kommen via MQTT2_CLIENT von einem mosquitto-broker und werden im MQTT2_DEVICE als Readings angezeigt, jedoch scheitere ich an der Extraktion des json-strings.
define MQTT2_bmw MQTT2_DEVICE mybmw
attr MQTT2_bmw DbLogExclude .*
attr MQTT2_bmw IODev myBroker4
attr MQTT2_bmw alias MyBMW
attr MQTT2_bmw autocreate 1
attr MQTT2_bmw devicetopic mybmw/vehicles/ABCDE12345KL67890/vehicle
attr MQTT2_bmw icon car
attr MQTT2_bmw readingList $DEVICETOPIC.cabin.window.row1.passenger.status:.* FensterRV\
$DEVICETOPIC.cabin.window.row2.passenger.status:.* FensterRH\
$DEVICETOPIC.cabin.window.row1.driver.status:.* FensterLV\
$DEVICETOPIC.cabin.window.row2.driver.status:.* FensterLH\
$DEVICETOPIC.cabin.door.row1.passenger.isOpen:.* TuereRV\
$DEVICETOPIC.cabin.door.row2.passenger.isOpen:.* TuereRH\
$DEVICETOPIC.cabin.door.row1.driver.isOpen:.* TuereLV\
$DEVICETOPIC.cabin.door.row2.driver.isOpen:.* TuereLH\
$DEVICETOPIC.cabin.infotainment.navigation.currentLocation.longitude:.* longitude\
$DEVICETOPIC.cabin.infotainment.navigation.currentLocation.latitude:.* latitude\
$DEVICETOPIC.cabin.infotainment.navigation.currentLocation.altitude:.* altitude\
$DEVICETOPIC.drivetrain.lastRemainingRange:.* range\
$DEVICETOPIC.vehicle.travelledDistance:.* mileage\
$DEVICETOPIC.body.trunk.door.isOpen:.* trunkopen\
$DEVICETOPIC.body.hood.isOpen.* hoodopen
attr MQTT2_bmw room BMW
#   CID        bmw
#   DEF        bmw
#   FUUID      65995ed4-f33f-58e3-dfd0-bc21e67a83688103
#   IODev      myBroker4
#   LASTInputDev myBroker4
#   MSGCNT     89
#   NAME       MQTT2_bmw
#   NR         352
#   STATE      state
#   TYPE       MQTT2_DEVICE
#   eventCount 85
#   myBroker4_MSGCNT 89
#   myBroker4_TIME 2025-12-20 11:40:49
#   READINGS:
#     2025-12-20 11:40:49   FensterLH       {"timestamp":"2025-12-20T10:40:44Z","value":"CLOSED"}
#     2025-12-20 11:40:49   FensterLV       {"timestamp":"2025-12-20T10:40:44Z","value":"CLOSED"}
#     2025-12-20 11:40:49   FensterRH       {"timestamp":"2025-12-20T10:40:44Z","value":"CLOSED"}
#     2025-12-20 11:40:49   FensterRV       {"timestamp":"2025-12-20T10:40:44Z","value":"CLOSED"}
#     2025-12-19 22:37:52   IODev           myBroker4
#     2025-12-20 11:40:49   TuereLH         {"timestamp":"2025-12-20T10:40:44Z","value":false}
#     2025-12-20 11:40:49   TuereLV         {"timestamp":"2025-12-20T10:40:44Z","value":false}
#     2025-12-20 11:40:49   TuereRH         {"timestamp":"2025-12-20T10:40:44Z","value":false}
#     2025-12-20 11:40:49   TuereRV         {"timestamp":"2025-12-20T10:40:44Z","value":false}
#     2025-12-20 11:40:49   altitude        {"timestamp":"2025-12-20T10:40:44Z","unit":"m","value":188}
#     2025-12-16 14:29:30   connected       true
#     2025-12-20 11:40:49   hoodopen        {"timestamp":"2025-12-20T10:40:44Z","value":false}
#     2025-12-20 11:40:49   latitude        {"timestamp":"2025-12-20T10:40:44Z","unit":"degrees","value":58.3832713889}
#     2025-12-20 11:40:49   longitude       {"timestamp":"2025-12-20T10:40:44Z","unit":"degrees","value":26.2470238889}
#     2025-12-20 11:40:49   mileage         {"timestamp":"2025-12-20T10:40:44Z","unit":"km","value":95047}
#     2025-12-20 11:40:49   range           {"timestamp":"2025-12-20T10:40:44Z","unit":"km","value":579}
#     2025-12-20 11:40:49   trunkopen       {"timestamp":"2025-12-20T10:40:44Z","value":false}
#
Was muß ich tun um nur value zu bekommen?
Danke für die Hilfe!


Titel: Aw: BMW-MQTT-Bridge -> FHEM
Beitrag von: Beta-User am 20 Dezember 2025, 18:36:01
Gibt vermutlich viele Varianten, das zu lösen.
Der Workshop im Forum und "Schritt für Schritt" im Wiki sind bekannt?
Insbesondere https://forum.fhem.de/index.php?msg=1303037?

Würde alle Topics per regexp zusammenfassen und dann etwas Perlcode anflanschen, der $TOPIC und $JSONMAP mit nutzt.

Hoffe, das reicht erst mal als Baustein?
Titel: Aw: BMW-MQTT-Bridge -> FHEM
Beitrag von: Manfi am 20 Dezember 2025, 22:07:13
Zitat von: Beta-User am 20 Dezember 2025, 18:36:01Hoffe, das reicht erst mal als Baustein?
Schön wär's, aber leider bin ich, was Perl und Regex betrifft, ziemlich nackt  :(
War schon froh, daß ich überhaupt Readings bekomme
Trotzdem Danke für den Versuch.
Titel: [gelöst] BMW-MQTT-Bridge -> FHEM
Beitrag von: Manfi am 22 Januar 2026, 16:33:12
Habe es jetzt mit
attr mybmw readingList $DEVICETOPIC:.* {{{ json2nameValue($EVENT,'',$JSONMAP,'_value') }}}gelöst. War aber eher ein Zufallstreffer  ;)
Titel: Aw: [gelöst] BMW-MQTT-Bridge -> FHEM
Beitrag von: Beta-User am 22 Januar 2026, 16:55:50
Zitat von: Manfi am 22 Januar 2026, 16:33:12Habe es jetzt mit
attr mybmw readingList $DEVICETOPIC:.* {{{ json2nameValue($EVENT,'',$JSONMAP,'_value') }}}gelöst. War aber eher ein Zufallstreffer  ;)
Immerhin!

Zwei Klammerpaare kannst du allerdings m.E. weglassen  ;) .
Titel: Aw: [gelöst] BMW-MQTT-Bridge -> FHEM
Beitrag von: Manfi am 22 Januar 2026, 23:20:17
Zitat von: Beta-User am 22 Januar 2026, 16:55:50Zwei Klammerpaare kannst du allerdings m.E. weglassen  ;) .
Stimmt! Funktioniert auch ohne.
Danke für den Hinweis.
Titel: Aw: [gelöst] BMW-MQTT-Bridge -> FHEM
Beitrag von: satprofi am 25 Januar 2026, 10:05:14
hallo. darf man fragen welches fahrzeug du gesendet bekommst? bei meinem i3 kommen nur sehr wenige daten an, SOC, Reichweite, Kilometerstand, Servicebedarf, ladestatus. sonst nichts, obwohl bei cardata 52 parameter ausgewählt. früher kamen auch massenhaft daten, bis zur Umstellung
lg
Titel: Aw: [gelöst] BMW-MQTT-Bridge -> FHEM
Beitrag von: Manfi am 06 Februar 2026, 15:12:42
Habe einen 530d BJ 2019 und es kommen auch nicht alle Daten an, die ich selektiert habe  :(
Für mich waren aber die Koordinaten das Wichtigste, weil ich damit ein Fahrtenbuch umsetzen kann.