FHEM Forum

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

Titel: 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.