Wieder mal: 100% CPU-Last durch MQTT

Begonnen von Prof. Dr. Peter Henning, 30 Januar 2025, 11:32:02

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Nachdem ich mit einem meiner FHEM-Server seit ca. 1 Monat erhebliche Probleme habe, ist der Übeltäter jetzt als MQTT identifiziert.

Ich habe meinen VW ID7 über MQTT an FHEM angekoppelt. Dazu läuft auf einer anderen Maschine ein kleiner Python-Server, der die Daten von VW abholt und an einen MQTT-Server sendet (und natürlich in umgekehrter Richtung). Die von VW gelieferte Datenmenge variiert sehr stark - zeitweise sind das etliche 100 kB alle 5 Minuten.

Nach einem nicht näher bestimmbaren Zeitraum - zwischen ein paar Tagen und 2 Wochen - wächst der CPU-Load des FHEM-Prozesses auf 100% an, und fast nichts geht mehr. Wenn ich die Ankopplung von FHEM an den MQTT-Server abschieße, verschwindet das Problem.

Erstaunlicherweise ist das unabhängig davon, ob ich

a.) den MQTT-Server intern als MQTT2_SERVER betreibe, an den die MQTT2-Devices direkt angebunden sind. Der "Abschuss" besteht in diesem Fall einfach darin, das MQTT2_Server-Device brutal zu löschen.

Oder

b.) den MQTT-Server extern als Mosquitto betreibe, an den ich die MQTT2-Devices von FHEM via MQTT2_CLIENT anbinde. Der "Abschuss" besteht in diesem Fall einfach darin, das MQTT2_CLIENT-Device brutal zu löschen.

Ich frage jetzt erstmal in die Runde, ob es irgendwelche Ideen für die weitere Eingrenzung gibt.

LG

pah

CQuadrat

Ich habe ja eine ähnliche Installation habe aber keine diesbezüglichen Probleme.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

Prof. Dr. Peter Henning


MarkusN

Ich nutze MQTT2_Server und habe mehrere Victron Systeme angebunden. Ich sehe auch eine hohe CPU Auslastung, mit 10-15 Events pro Sekunde. Da ich das aber auch in richtung InfluxDB wegschreibe (anderer Container) kann ich nicht genau sagen ob das auch zur CPU Auslastung beiträgt.

betateilchen

Da Dein "Problem" sowohl bei MQTT2_SERVER als auch bei mosquitto besteht, würde ich mit der Ursachenforschung an der Quelle der Daten beginnen.

Zitat von: Prof. Dr. Peter Henning am 30 Januar 2025, 11:32:02Dazu läuft auf einer anderen Maschine ein kleiner Python-Server, der die Daten von VW abholt und an einen MQTT-Server sendet

Mich würde interessieren, wie das publish an den MQTT Server aussieht.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CQuadrat

Zitat von: Prof. Dr. Peter Henning am 30 Januar 2025, 12:38:55Mosquitto oder MQTT2_Server?

Bei mir läuft ein eigenständiger Mosquitto-Server, der via MQTT2_CLIENT angebunden ist.

Allerdings konnte ich schon einige Male beobachten, dass sich der Python-Server aufhing.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

marvin78

Ich beobachte auch immer mal wieder, dass sich die Last bis auf 100% hochschaukelt. Leider in unregelmäßigen Abständen. Ich habe auch schon eine Weile MQTT im Verdacht. Ich habe lange Zeit MQTT_SERVER verwendet und bin wegen des Verdachts, dass die hohe Last mit MQTT zusammenhängt, auf Mosquitto gewechselt (ein LXC). Seit dem ist es besser geworden aber sporadisch geht die Last noch immer nach oben. Die Anzahl der Events, die durch Mosquitto ausgelöst werden, ist jedoch relativ Konstant. Es gibt nichts, das zu irgendeiner Zeit eine besonders hohe Anzahl an Events produziert. Ich frage mich trotzdem, ob hier irgendwann durch einen Auslöser, den ich noch nicht gefunden habe, ein Flaschenhals an irgendeiner Stelle entsteht. Die Antwort darauf habe ich noch nicht.

InfluxDB verwende ich auch und das Zusammenspiel ist ebenfalls nicht ohne, was die Last angeht. Ich habe schon einmal den Versuch gestartet, das Modul InfluxDBLogger zu optimieren, meine Zeit lässt das allerdings aktuell gar nicht zu. 

Prof. Dr. Peter Henning

#7
Ich habe die Anbindung von MQTT ja schon lange laufen, allerdings vorwiegend mit kleinen Geräten, die - sagen wir mal - einmal pro Minute ein paar Daten senden. Die richtige Belastung (und damit die Probleme) gibt es erst seit der Anbindung des ID7.

Nachstehend mal alle Topics, die per autocreate erzeugt werden (<VIN> ist die Vehicle Identificaton Number). Natürlich braucht man die nicht alle, viele habe ich auch einfach zu einem Reading zusammengebogen. Die Liste gibt aber einen Eindruck von dem Datenwust, den VW hier liefert.

Zum genauen "publish" kann ich noch nichts sagen. Möglicherweise liefert VW (oder der Python-Server) irgendwelche falschen Flags mit.

LG

pah
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/pictures/car:.* { WriteFile("www/images/ID7_car.png",$EVENT);; {img_car=>"<html><a href=\"fhem/www/images/ID7_car.png\">ID7_car.png</a></html>"} }
MQTTBridge:weconnect/vehicles/<VIN>/pictures/carWithBadge:.* { WriteFile("www/images/ID7_carWithBadge.png",$EVENT);; {img_carWithBadge=>"<html><a href=\"fhem/www/images/ID7_carWithBadge.png\">ID7_carWithBadge.png</a></html>"} }
MQTTBridge:weconnect/vehicles/<VIN>/pictures/status:.* { WriteFile("www/images/ID7_status.png",$EVENT);; {img_status=>"<html><a href=\"fhem/www/images/ID7_status.png\">ID7_status.png</a></html>"} }
MQTTBridge:weconnect/vehicles/<VIN>/pictures/statusWithBadge:.* { WriteFile("www/images/ID7_statusWithBadge.png",$EVENT);; {img_statusWithBadge=>"<html><a href=\"fhem/www/images/ID7_statusWithBadge.png\">ID7_statusWithBadge.png</a></html>"} }
MQTTBridge:weconnect/mqtt/weconnectUpdated:.* weconnectUpdated
MQTTBridge:weconnect/mqtt/topics:.* topics
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthInspection/maintenanceStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionState/isActive:.* isActive
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthInspection/maintenanceStatus/mileage_km:.* mileage_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthWarnings/warningLights/mileage_km:.* mileage_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthWarnings/warningLights/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnectlocal/mqtt/weconnectCommand:.* weconnectCommand
MQTTBridge:weconnect/mqtt/weconnectConnected:.* weconnectConnected
MQTTBridge:weconnect/mqtt/weconnectUpdateInterval_s:.* weconnectUpdateInterval_s
MQTTBridge:weconnect/mqtt/weconnectConnected:.* weconnectConnected
MQTTBridge:weconnect/mqtt/error/code:.* code
MQTTBridge:weconnect/mqtt/error/message:.* message
MQTTBridge:weconnect/vehicles/<VIN>/vin:.* vin
MQTTBridge:weconnect/vehicles/<VIN>/role:.* role
MQTTBridge:weconnect/vehicles/<VIN>/enrollmentStatus:.* enrollmentStatus
MQTTBridge:weconnect/vehicles/<VIN>/userRoleStatus:.* userRoleStatus
MQTTBridge:weconnect/vehicles/<VIN>/model:.* model
MQTTBridge:weconnect/vehicles/<VIN>/devicePlatform:.* devicePlatform
MQTTBridge:weconnect/vehicles/<VIN>/nickname:.* nickname
MQTTBridge:weconnect/vehicles/<VIN>/brandCode:.* brandCode
MQTTBridge:weconnect/vehicles/<VIN>/images:.* images
MQTTBridge:weconnect/vehicles/<VIN>/tags:.* tags
MQTTBridge:weconnect/vehicles/<VIN>/coUsers/0/id:.* coUsers_0_id
MQTTBridge:weconnect/vehicles/<VIN>/coUsers/0/role:.* coUsers_0_role
MQTTBridge:weconnect/vehicles/<VIN>/coUsers/0/roleReseted:.* coUsers_0_roleReseted
MQTTBridge:weconnect/vehicles/<VIN>/coUsers/0/enrollmentStatus:.* coUsers_0_enrollmentStatus
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/overallStatus:.* overallStatus
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doorLockStatus:.* doorLockStatus
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/bonnet/lockState:.* lockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/bonnet/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/trunk/lockState:.* lockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/trunk/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/rearRight/lockState:.* lockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/rearRight/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/rearLeft/lockState:.* lockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/rearLeft/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/frontRight/lockState:.* lockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/frontRight/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/frontLeft/lockState:.* lockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/doors/frontLeft/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/sunRoof/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/roofCover/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/sunRoofRear/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/frontLeft/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/frontRight/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/rearLeft/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/windows/rearRight/openState:.* openState
MQTTBridge:weconnect/vehicles/<VIN>/domains/access/accessStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/enabled:.* timers_1_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/targetTime:.* targetTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/mondays:.* mondays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/tuesdays:.* tuesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/wednesdays:.* wednesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/thursdays:.* thursdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/fridays:.* fridays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/saturdays:.* saturdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn/sundays:.* sundays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/repetitionDays/monday:.* monday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/2/enabled:.* timers_2_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/2/singleTimer/startDateTime:.* startDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/2/singleTimer/targetDateTime:.* targetDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timeInCar:.* timeInCar
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/None/id:.* id
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/name:.* profiles_1_name
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/maxChargingCurrent:.* profiles_1_maxChargingCurrent
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/minSOC_pct:.* profiles_1_minSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/targetSOC_pct:.* profiles_1_targetSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/options/autoUnlockPlugWhenCharged:.* autoUnlockPlugWhenCharged
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/options/usePrivateCurrentEnabled:.* usePrivateCurrentEnabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/1/enabled:.* timers_1_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/1/climatisation:.* timers_1_climatisation
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/1/singleTimer/occurringOn:.* occurringOn
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/1/singleTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/enabled:.* timers_2_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/climatisation:.* timers_2_climatisation
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/targetTime:.* targetTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/mondays:.* mondays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/tuesdays:.* tuesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/wednesdays:.* wednesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/thursdays:.* thursdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/fridays:.* fridays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/saturdays:.* saturdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/recurringOn/sundays:.* sundays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/repetitionDays/saturday:.* saturday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/2/recurringTimer/repetitionDays/sunday:.* sunday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/enabled:.* timers_3_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/climatisation:.* timers_3_climatisation
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/targetTime:.* targetTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/mondays:.* mondays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/tuesdays:.* tuesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/wednesdays:.* wednesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/thursdays:.* thursdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/fridays:.* fridays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/saturdays:.* saturdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/recurringOn/sundays:.* sundays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/monday:.* monday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/tuesday:.* tuesday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/wednesday:.* wednesday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/thursday:.* thursday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/friday:.* friday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/saturday:.* saturday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/timers/3/recurringTimer/repetitionDays/sunday:.* sunday
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/None/id:.* id
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/1/enabled:.* preferredChargingTimes_1_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/1/startTime:.* preferredChargingTimes_1_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/1/endTime:.* preferredChargingTimes_1_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/2/enabled:.* preferredChargingTimes_2_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/2/startTime:.* preferredChargingTimes_2_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/2/endTime:.* preferredChargingTimes_2_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/3/enabled:.* preferredChargingTimes_3_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/3/startTime:.* preferredChargingTimes_3_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/3/endTime:.* preferredChargingTimes_3_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/4/enabled:.* preferredChargingTimes_4_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/4/startTime:.* preferredChargingTimes_4_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/4/endTime:.* preferredChargingTimes_4_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/timeInCar:.* timeInCar
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/nextChargingTimer/targetSOCreachable:.* targetSOCreachable
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/batteryStatus/cruisingRangeElectric_km:.* cruisingRangeElectric_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/batteryStatus/currentSOC_pct:.* currentSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/batteryStatus/navigationTargetSOC_pct:.* navigationTargetSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/batteryStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/remainingChargingTimeToComplete_min:.* remainingChargingTimeToComplete_min
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargingState:.* chargingState
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargeMode:.* chargeMode
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargePower_kW:.* chargePower_kW
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargeRate_kmph:.* chargeRate_kmph
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargeType:.* chargeType
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargingSettings:.* chargingSettings
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/chargingScenario:.* chargingScenario
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingSettings/maxChargeCurrentAC:.* maxChargeCurrentAC
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingSettings/autoUnlockPlugWhenCharged:.* autoUnlockPlugWhenCharged
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingSettings/autoUnlockPlugWhenChargedAC:.* autoUnlockPlugWhenChargedAC
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingSettings/targetSOC_pct:.* targetSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingSettings/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargeMode/preferredChargeMode:.* preferredChargeMode
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargeMode/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/plugStatus/plugConnectionState:.* plugConnectionState
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/plugStatus/plugLockState:.* plugLockState
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/plugStatus/externalPower:.* externalPower
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/plugStatus/ledColor:.* ledColor
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/plugStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingCareSettings/batteryCareMode:.* batteryCareMode
MQTTBridge:weconnect/vehicles/<VIN>/domains/charging/chargingCareSettings/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/None/id:.* id
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/name:.* profiles_1_name
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/maxChargingCurrent:.* profiles_1_maxChargingCurrent
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/minSOC_pct:.* profiles_1_minSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/targetSOC_pct:.* profiles_1_targetSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/options/autoUnlockPlugWhenCharged:.* autoUnlockPlugWhenCharged
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/options/usePrivateCurrentEnabled:.* usePrivateCurrentEnabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/1/enabled:.* timers_1_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/1/climatisation:.* timers_1_climatisation
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/1/singleTimer/occurringOn:.* occurringOn
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/1/singleTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/enabled:.* timers_2_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/climatisation:.* timers_2_climatisation
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/targetTime:.* targetTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/mondays:.* mondays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/tuesdays:.* tuesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/wednesdays:.* wednesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/thursdays:.* thursdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/fridays:.* fridays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/saturdays:.* saturdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/recurringOn/sundays:.* sundays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/repetitionDays/saturday:.* saturday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/2/recurringTimer/repetitionDays/sunday:.* sunday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/enabled:.* timers_3_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/climatisation:.* timers_3_climatisation
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/targetTime:.* targetTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/mondays:.* mondays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/tuesdays:.* tuesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/wednesdays:.* wednesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/thursdays:.* thursdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/fridays:.* fridays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/saturdays:.* saturdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/recurringOn/sundays:.* sundays
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/monday:.* monday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/tuesday:.* tuesday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/wednesday:.* wednesday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/thursday:.* thursday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/friday:.* friday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/saturday:.* saturday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/timers/3/recurringTimer/repetitionDays/sunday:.* sunday
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/None/id:.* id
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/1/enabled:.* preferredChargingTimes_1_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/1/startTime:.* preferredChargingTimes_1_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/1/endTime:.* preferredChargingTimes_1_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/2/enabled:.* preferredChargingTimes_2_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/2/startTime:.* preferredChargingTimes_2_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/2/endTime:.* preferredChargingTimes_2_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/3/enabled:.* preferredChargingTimes_3_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/3/startTime:.* preferredChargingTimes_3_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/3/endTime:.* preferredChargingTimes_3_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/4/enabled:.* preferredChargingTimes_4_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/4/startTime:.* preferredChargingTimes_4_startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/4/endTime:.* preferredChargingTimes_4_endTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/timeInCar:.* timeInCar
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/nextChargingTimer/targetSOCreachable:.* targetSOCreachable
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/batteryChargingCare/chargingCareSettings/batteryCareMode:.* batteryCareMode
MQTTBridge:weconnect/vehicles/<VIN>/domains/batteryChargingCare/chargingCareSettings/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/climatisationState:.* climatisationState
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/remainingClimatisationTime_min:.* remainingClimatisationTime_min
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/targetTemperature_C:.* targetTemperature_C
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/targetTemperature_F:.* targetTemperature_F
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/unitInCar:.* unitInCar
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/climatizationAtUnlock:.* climatizationAtUnlock
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/windowHeatingEnabled:.* windowHeatingEnabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/zoneFrontLeftEnabled:.* zoneFrontLeftEnabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/zoneFrontRightEnabled:.* zoneFrontRightEnabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationSettings/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/windowHeatingStatus/windows/front/windowHeatingState:.* windowHeatingState
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/windowHeatingStatus/windows/rear/windowHeatingState:.* windowHeatingState
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/windowHeatingStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/enabled:.* timers_1_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/startTime:.* startTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/targetTime:.* targetTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/mondays:.* mondays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/tuesdays:.* tuesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/wednesdays:.* wednesdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/thursdays:.* thursdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/fridays:.* fridays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/saturdays:.* saturdays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn/sundays:.* sundays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/repetitionDays/monday:.* monday
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/2/enabled:.* timers_2_enabled
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/2/singleTimer/startDateTime:.* startDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/2/singleTimer/targetDateTime:.* targetDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timeInCar:.* timeInCar
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/fuelStatus/rangeStatus/carType:.* carType
MQTTBridge:weconnect/vehicles/<VIN>/domains/fuelStatus/rangeStatus/primaryEngine/type:.* type
MQTTBridge:weconnect/vehicles/<VIN>/domains/fuelStatus/rangeStatus/primaryEngine/remainingRange_km:.* remainingRange_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/fuelStatus/rangeStatus/primaryEngine/currentSOC_pct:.* currentSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/fuelStatus/rangeStatus/totalRange_km:.* totalRange_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/fuelStatus/rangeStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleLights/lightsStatus/lights/right/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleLights/lightsStatus/lights/left/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleLights/lightsStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionState/isOnline:.* isOnline
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionState/isActive:.* isActive
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionState/batteryPowerLevel:.* batteryPowerLevel
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionState/dailyPowerBudgetAvailable:.* dailyPowerBudgetAvailable
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionWarning/insufficientBatteryLevelWarning:.* insufficientBatteryLevelWarning
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/connectionWarning/dailyPowerBudgetWarning:.* dailyPowerBudgetWarning
MQTTBridge:weconnect/vehicles/<VIN>/domains/readiness/readinessStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthInspection/maintenanceStatus/inspectionDue_days:.* inspectionDue_days
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthInspection/maintenanceStatus/mileage_km:.* mileage_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthInspection/maintenanceStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthWarnings/warningLights/mileage_km:.* mileage_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/vehicleHealthWarnings/warningLights/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/rangeStatus/totalRange_km:.* totalRange_km
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/rangeStatus/electricRange:.* electricRange
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/rangeStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/odometerStatus/odometer:.* odometer
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/odometerStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/temperatureBatteryStatus/temperatureHvBatteryMin_K:.* temperatureHvBatteryMin_K
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/temperatureBatteryStatus/temperatureHvBatteryMax_K:.* temperatureHvBatteryMax_K
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/temperatureBatteryStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/temperatureOutsideStatus/temperatureOutside_K:.* temperatureOutside_K
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/temperatureOutsideStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/fuelLevelStatus/currentSOC_pct:.* currentSOC_pct
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/fuelLevelStatus/primaryEngineType:.* primaryEngineType
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/fuelLevelStatus/carType:.* carType
MQTTBridge:weconnect/vehicles/<VIN>/domains/measurements/fuelLevelStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/domains/batterySupport/batterySupportStatus/batterySupport:.* batterySupport
MQTTBridge:weconnect/vehicles/<VIN>/domains/batterySupport/batterySupportStatus/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/parking/parkingPosition/latitude:.* latitude
MQTTBridge:weconnect/vehicles/<VIN>/parking/parkingPosition/longitude:.* longitude
MQTTBridge:weconnect/vehicles/<VIN>/parking/parkingPosition/carCapturedTimestamp:.* carCapturedTimestamp
MQTTBridge:weconnect/vehicles/<VIN>/controls/charging:.* charging
MQTTBridge:weconnect/vehicles/<VIN>/controls/climatisation:.* climatisation
MQTTBridge:weconnect/vehicles/<VIN>/controls/windowheating:.* windowheating
MQTTBridge:weconnect/mqtt/weconnectUpdated:.* weconnectUpdated
MQTTBridge:weconnect/mqtt/topics:.* topics
MQTTBridge:weconnect/mqtt/writeableTopics:.* writeableTopics
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/4/id:.* preferredChargingTimes_4_id
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/profiles/1/preferredChargingTimes/4:.* preferredChargingTimes_4
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/chargingProfiles/nextChargingTimer:.* nextChargingTimer
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/4/id:.* preferredChargingTimes_4_id
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/profiles/1/preferredChargingTimes/4:.* preferredChargingTimes_4
MQTTBridge:weconnect/vehicles/<VIN>/domains/chargingProfiles/chargingProfilesStatus/nextChargingTimer:.* nextChargingTimer
MQTTBridge:weconnect/vehicles/<VIN>/parking/parkingPosition:.* parkingPosition
MQTTBridge:weconnect/mqtt/weconnectForceUpdate_writetopic:.* weconnectForceUpdate_writetopic
MQTTBridge:weconnect/mqtt/weconnectForceUpdate:.* weconnectForceUpdate
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/operation:.* operation
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/body:.* { json2nameValue($EVENT, 'body_', $JSONMAP) }
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/requestId:.* requestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/vcfRequestId:.* vcfRequestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/operation:.* operation
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/body:.* { json2nameValue($EVENT, 'body_', $JSONMAP) }
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/requestId:.* requestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5/vcfRequestId:.* vcfRequestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5:.* 58fc8a06-ce65-493d-8ac6-f09ea08869c5
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request:.* request
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/58fc8a06-ce65-493d-8ac6-f09ea08869c5:.* 58fc8a06-ce65-493d-8ac6-f09ea08869c5
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request:.* request
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/recurringOn:.* recurringOn
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer/repetitionDays:.* repetitionDays
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/recurringTimer:.* timers_1_recurringTimer
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/singleTimer/startDateTime:.* startDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/timers/1/singleTimer/targetDateTime:.* targetDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/operation:.* operation
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/body:.* { json2nameValue($EVENT, 'body_', $JSONMAP) }
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/requestId:.* requestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/vcfRequestId:.* vcfRequestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/recurringOn:.* recurringOn
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer/repetitionDays:.* repetitionDays
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/recurringTimer:.* timers_1_recurringTimer
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/singleTimer/startDateTime:.* startDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/timers/1/singleTimer/targetDateTime:.* targetDateTime
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/operation:.* operation
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/body:.* { json2nameValue($EVENT, 'body_', $JSONMAP) }
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/requestId:.* requestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0/vcfRequestId:.* vcfRequestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/automation/climatisationTimer/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0:.* 2f7aecd3-1e1b-4791-afd3-8afd76759ba0
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisationTimers/climatisationTimersStatus/request/2f7aecd3-1e1b-4791-afd3-8afd76759ba0:.* 2f7aecd3-1e1b-4791-afd3-8afd76759ba0
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request/0309a513-4338-4bf1-8e55-f9181513ac6e/status:.* status
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request/0309a513-4338-4bf1-8e55-f9181513ac6e/operation:.* operation
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request/0309a513-4338-4bf1-8e55-f9181513ac6e/body:.* { json2nameValue($EVENT, 'body_', $JSONMAP) }
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request/0309a513-4338-4bf1-8e55-f9181513ac6e/requestId:.* requestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request/0309a513-4338-4bf1-8e55-f9181513ac6e/vcfRequestId:.* vcfRequestId
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request/0309a513-4338-4bf1-8e55-f9181513ac6e:.* 0309a513-4338-4bf1-8e55-f9181513ac6e
MQTTBridge:weconnect/vehicles/<VIN>/domains/climatisation/climatisationStatus/request:.* request
MQTTBridge:weconnect/vehicles/<VIN>/controls/climatisation_writetopic:.* climatisation_writetopic


Prof. Dr. Peter Henning

#8
So, einen Schritt weiter.

Der VW-Server sendet auch Binärdaten (die zu richtig albernen PNG-Bildchen des Auto mit "Badges" ( = Schloss- oder Ladestecker-Symbolen) zusammengesetzt werden).
Das sind jeweils so zwischen 100 und 200 kB.

Ich habe jetzt festgestellt, dass der Mosquitto-Server diese Daten länger aufhebt - Kommando dafür
mosquitto_sub -u <user> -P <pass> -t "#" -v --retained-only
Derzeit habe ich den Verdacht, dass damit die Persistenzdatenbank von Mosquitto irgendwann überfordert ist.

Bei dem Python-Server kann man dafür sorgen, dass die Bildchen nicht geschickt werden, da habe ich jetzt mal eingestellt. Und natürlich mit
mosquitto_sub  --remove-retained -t '#' -W 1 den ganzen Müll gelöscht

LG

pah

rudolfkoenig

ZitatDa Dein "Problem" sowohl bei MQTT2_SERVER als auch bei mosquitto besteht, würde ich mit der Ursachenforschung an der Quelle der Daten beginnen.
Eine Gemeinsamkeit liegt aber auch in der Verarbeitung in MQTT2_DEVICE.

Insb. kann eine grosse Anzahl von readingList Eintraegen zu viel CPU fuehren:
- wenn kein ClientID im readingList spezifiziert ist, dann werden die Eintraege fuer alle Clients durchprobiert
- wenn das Topic im readingList ein Regexp ist, dann werden alle Nachrichten gegen diesen Eintrag geprueft.
- die Kombination (kein ClientID und Regexp) ist Worst-Case, weil dagegen werden immer alle Nachrichten geprueft, auch die nochmal, die auch "bessere" Eintraege haben.

ZitatNach einem nicht näher bestimmbaren Zeitraum - zwischen ein paar Tagen und 2 Wochen - wächst der CPU-Load des FHEM-Prozesses auf 100% an
Das wird mit der obigen Bemerkung leider nicht erklaert.
Mein Setup hat zwar nur 11 MQTT2_DEVICE Eintraege, die minuetlich wenig Daten senden, laeuft aber seit 5 Monaten durch, und benutzt 1.5% CPU (vmtl. wegen einem seriellen Inputs, was mit 2.4kBaud dauersendet)

Prof. Dr. Peter Henning

Nur damit ich Dich richtig verstehe:

ZitatMQTTBridge:weconnect2?/vehicles/xxxxxxx/domains/charging/batteryStatus/currentSOC_pct:.* SOC

erzeugt zusätzliche CPU-Last wegen "2?",

ZitatMQTTBridge:weconnect/vehicles/xxxxxxx/domains/charging/batteryStatus/currentSOC_pct:.* SOC
MQTTBridge:weconnect2/vehicles/xxxxxxx/domains/charging/batteryStatus/currentSOC_pct:.* SOC

wäre schneller?

LG

pah

rudolfkoenig

Zitaterzeugt zusätzliche CPU-Last wegen "2?",
Richtig.
Bei der "2?" Variante werden alle anderen 300+ Nachrichten von MQTTBridge gegen diesen Regexp geprueft.
Bei der expliziten Variante wird jeweils nur das passende Topic nochmal samt Message gegen das Regexp geprueft.

betateilchen

Zitat von: Prof. Dr. Peter Henning am 30 Januar 2025, 16:41:24Nachstehend mal alle Topics, die per autocreate erzeugt werden (<VIN> ist die Vehicle Identificaton Number). Natürlich braucht man die nicht alle, ...
Die Liste gibt aber einen Eindruck von dem Datenwust, den VW hier liefert.

Vielleicht sollte autocreate einfach nach 20 angelegten readings in einem device aufhören, neue anzulegen und den Benutzer dazu auffordern, sich erstmal Gedanken darüber zu machen, welche readings er realistisch betrachtet wirklich "braucht".
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Prof. Dr. Peter Henning

Wenn die weiteren 150 Readings _nicht_ angelegt würden und auch der gesamte Datensatz nicht dokumentiert ist (à la VW), wüsste dann aber der Ersteller gar nicht, was da so alles einläuft.

LG

pah

passibe

Zitat von: Prof. Dr. Peter Henning am 31 Januar 2025, 18:15:01wüsste dann aber der Ersteller gar nicht, was da so alles einläuft
Das geht doch mit "Show MQTT Traffic" im MQTT2_SERVER-Device oder mit Tools wie MQTT Explorer.