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