Skip to content

Updating of subscribed mqtt topics does not work reliably #110

@psteinrueck

Description

@psteinrueck

Problem description:
Issuing commands to the vehicle e.g. climatization start / stop or wake - sleep works fine

  • car responds almost in real time
  • car reaction checked via Volkswagen app)

Updating of the related topics either works delayed or not at all,

  • issuing an update command does not help either

Observations
carconnectivity-plugins\mqtt\mqtt-client
def method: _oncarconnectivity_event

elif ((flags & Observable.ObserverEvent.VALUE_CHANGED)
or (self.republish_on_update and (flags & Observable.ObserverEvent.UPDATED)))
and isinstance(element, attributes.GenericAttribute) and element.enabled:
self._publish_element(element)

        ######################## added debug code ############################
        if "climatization/state" in topic:
            vin = topic.split("/")[3]
            print (f"mqtt_client got new value --- climatization state ={vin} {element}")
        #######################added debug code #############################

tyical behaviour

  • car reacts
  • flags & Observable.ObserverEvent.VALUE_CHANGED turns True after delay of about 60 sec:

debug log:

mqtt_client got new value --- climatization state =WVWZZZED1SE504916 heating

carconnectivity_connectors\volkswagen\connector.py
def fetch data...

###########################added debug code ####################################
time.sleep(1)

    keys = [
        ("climatisation", "climatisationStatus", "value", "carCapturedTimestamp"),
        ("climatisation", "climatisationStatus", "value", "climatisationState"),
        ("charging", "chargingStatus", "value", "carCapturedTimestamp"),
        ("charging", "plugStatus", "value", "plugConnectionState"),
        ("charging", "chargingStatus", "value", "chargingState"),
        ("charging", "chargingStatus", "value", "chargePower_kW")
    ]

    def get_nested(data, path):
        """Liest einen verschachtelten Key-Pfad aus und gibt None zurück, falls er fehlt."""
        d = data
        for key in path:
            if isinstance(d, dict) and key in d:
                d = d[key]
            else:
                return None
        return d

    timestamp1 = get_nested(data, keys[0])
    cli_state = get_nested(data, keys[1])
    timestamp2 = get_nested(data, keys[2])
    plu_state = get_nested(data, keys[3])
    cha_state = get_nested(data, keys[4])
    cha_power = get_nested(data, keys[5])
    
    if all(var is not None for var in (timestamp1,cli_state)):
        print(f"   Klimatisierungs-Zeitstempel : {timestamp1}\t{cli_state}")
    if all(var is not None for var in (timestamp2,plu_state,cha_state,cha_power)):
        print(f"   Charging-Zeitstempel        : {timestamp2}\t{plu_state}\t{cha_state}\t{cha_power}")
    time.sleep(1)
    #############################added debug code #############################
    return data

debug log; e.g. on connecting the car to a wallbox at 21.53:15 GMT+1

WVWZZZED1SEXXXXXX
Klimatisierungs-Zeitstempel : 2025-12-10T19:55:04Z off
Charging-Zeitstempel : 2025-12-10T19:55:04Z disconnected notReadyForCharging 0
WVWZZZED1SEXXXXXX
Klimatisierungs-Zeitstempel : 2025-12-10T20:54:09Z off
Charging-Zeitstempel : 2025-12-10T20:55:30Z connected notReadyForCharging 0

remark: carconnectiviyt has been started appr. at 21:45, but not reaction in mqtt client / explorer

Used hardware and software
VW ID.7 SW 5.2 online
Windows 11 25H2
Python 3.13 IDLE environment
carconnectivity-mqtt package 0.9.2.
carconnectivity-connector-volkswagen 0.9.2.
mqtt explorer on local host Port 1884
config File: intervall 300, broker: local host port 1884

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions