The dynamic polling of charger state, where the unit is polled every 1 minute while charging and 10 minutes. In the current implementation the polling interval is adjusted as soon as it detects no more charging, however there are some additional information about the finished charge that should be polled more frequently.
I think the best fix here is to implement a scheme that keep the high poll rate running for X minutes after the charging has finished. It does add complexity and stateful-ness, but I think the current implement will lead to complaints.
When testing this, it turns out that Zaptec had no data update during those 10 minutes. I am uncertain if this is a problem or not. I'm creating the issue, and we can look at it with some more real-life exposure.
# Car finished charging
22:42:38.128 [zaptec.api] @@@ EVENT {'ChargerId': 'Charger[f40861]', 'StateId': '710 (ChargerOperationMode)', 'Timestamp': '2025-07-23T22:42:37.530253Z', 'ValueAsString': '5'}
22:42:38.129 [zaptec.api] >>> Updating Charger[f40861].charger_operation_mode (ChargerOperationMode) = <str> 'Connected_Finished' (was Connected_Charging)
# Coordinator turns down the update interval
22:42:38.129 [zaptec] Charger[f40861] is now Connected_Finished, setting update interval to 0:10:00 (was 0:01:00)
22:42:38.130 [zaptec] sensor.sol_charger_mode = 'Connected_Finished' <str> from Charger[f40861].charger_operation_mode
22:42:38.131 [zaptec] switch.sol_charging = False <bool> from Charger[f40861].charger_operation_mode
# Next update is 10 minutes later - note it has no vital information
22:52:38.157 [zaptec] --- Polling Charger[f40861] from Zaptec
22:52:38.158 [zaptec.api] Poll state from Charger[f40861] (Sol)
22:52:38.314 [zaptec.api] >>> Updating Charger[f40861].pulse_interval (PulseInterval) = <str> '600' (was 180)
22:52:38.314 [zaptec] Finished fetching zaptec-charger[f40861] data in 0.157 seconds (success: True)
The dynamic polling of charger state, where the unit is polled every 1 minute while charging and 10 minutes. In the current implementation the polling interval is adjusted as soon as it detects no more charging, however there are some additional information about the finished charge that should be polled more frequently.
I think the best fix here is to implement a scheme that keep the high poll rate running for X minutes after the charging has finished. It does add complexity and stateful-ness, but I think the current implement will lead to complaints.
When testing this, it turns out that Zaptec had no data update during those 10 minutes. I am uncertain if this is a problem or not. I'm creating the issue, and we can look at it with some more real-life exposure.