Nur 1 JSON-Wert per MQTT ändern
Verfasst: Mi Jul 16, 2025 1:14 am
Hallo,
ich habe einen WiCAN OBD2-Dongle, mit dem ich diverse Parameter vom Fahrzeug auslesen kann.
Unter anderem habe ich die Möglichkeit, die Batterie-Kapazität zu ermitteln, sie ändert sich immer mal wieder geringfügig.
Nun war meine Idee, dass ich diese in das zugehörige Fahrzeug-Profil schreibe.
Der WiCAN Dongle kann selber MQTT-Werte schreiben, aber nur sehr eingeschränkt.
Das Topic, das ich beschreiben möchte, lautet:
openWB/vehicle/template/ev_template/2
Der Inhalt ist ein JSON-String, der diverse Einstellungen enthält:
Ich könnte nun das Topic:
openWB/set/vehicle/template/ev_template/2
Mit dem ermittelten Wert als JSON schreiben:
Dabei werden aber alle Einstellungen zerstört, da die restlichen Werte nicht erhalten bleiben.
Kann man der openWB beibringen, nur die geänderten Werte zu übernehmen und den Rest zu ignorieren? Beim manual_soc funktioniert das ja auch.
ich habe einen WiCAN OBD2-Dongle, mit dem ich diverse Parameter vom Fahrzeug auslesen kann.
Unter anderem habe ich die Möglichkeit, die Batterie-Kapazität zu ermitteln, sie ändert sich immer mal wieder geringfügig.
Nun war meine Idee, dass ich diese in das zugehörige Fahrzeug-Profil schreibe.
Der WiCAN Dongle kann selber MQTT-Werte schreiben, aber nur sehr eingeschränkt.
Das Topic, das ich beschreiben möchte, lautet:
openWB/vehicle/template/ev_template/2
Der Inhalt ist ein JSON-String, der diverse Einstellungen enthält:
Code: Alles auswählen
{"name": "Cupra Born 58kW", "max_current_multi_phases": 16, "max_phases": 3, "phase_switch_pause": 2, "prevent_phase_switch": false, "prevent_charge_stop": false, "control_pilot_interruption": false, "control_pilot_interruption_duration": 4, "average_consump": 19000, "min_current": 6, "max_current_single_phase": 32, "battery_capacity": 55000, "nominal_difference": 1, "keep_charge_active_duration": 40, "efficiency": 90, "id": "2"}
openWB/set/vehicle/template/ev_template/2
Mit dem ermittelten Wert als JSON schreiben:
Code: Alles auswählen
{"battery_capacity": 55000}
Kann man der openWB beibringen, nur die geänderten Werte zu übernehmen und den Rest zu ignorieren? Beim manual_soc funktioniert das ja auch.