@@ -413,21 +413,26 @@ def process_vehicle_charge_template_topic(self, msg: mqtt.MQTTMessage):
413413 if re .search ("/chargepoint/[0-9]+/set/charge_template$" , msg .topic ) is not None :
414414 payload = decode_payload (msg .payload )
415415 Pub ().pub (f"openWB/vehicle/template/charge_template/{ payload ['id' ]} " , payload )
416+ cp_num = get_index (msg .topic )
416417 else :
417- get_index (msg .topic )
418- for vehicle in data .data .ev_data .values ():
419- if vehicle .data .charge_template == int (get_index (msg .topic )):
420- for cp in data .data .cp_data .values ():
421- if ((cp .data .set .charging_ev != - 1 and
422- cp .data .set .charging_ev == vehicle .num ) or
423- cp .data .config .ev == vehicle .num ):
424- if decode_payload (msg .payload ) == "" :
425- Pub ().pub (
426- f"openWB/chargepoint/{ cp .num } /set/charge_template" , "" )
427- else :
428- Pub ().pub (
429- f"openWB/chargepoint/{ cp .num } /set/charge_template" ,
430- decode_payload (msg .payload ))
418+ cp_num = None
419+ template_id = int (decode_payload (msg .payload )["id" ])
420+ for vehicle in data .data .ev_data .values ():
421+ if vehicle .data .charge_template == template_id :
422+ for cp in data .data .cp_data .values ():
423+ if cp .num == cp_num :
424+ # nicht an den Ladepunkt senden, der das Topic gesendet hat
425+ continue
426+ if ((cp .data .set .charging_ev != - 1 and
427+ cp .data .set .charging_ev == vehicle .num ) or
428+ cp .data .config .ev == vehicle .num ):
429+ if decode_payload (msg .payload ) == "" :
430+ Pub ().pub (
431+ f"openWB/chargepoint/{ cp .num } /set/charge_template" , "" )
432+ else :
433+ Pub ().pub (
434+ f"openWB/chargepoint/{ cp .num } /set/charge_template" ,
435+ decode_payload (msg .payload ))
431436 else :
432437 self .__unknown_topic (msg )
433438 except Exception :
0 commit comments