diff --git a/core/loadpoint.go b/core/loadpoint.go index caa4b5904..08c8c758a 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -1746,7 +1746,7 @@ func (lp *Loadpoint) publishSocAndRange() { } // integrated device can bypass the update interval if vehicle is separately configured (legacy) - if lp.chargerHasFeature(api.IntegratedDevice) || lp.vehicleHasFeature(api.Streaming) || lp.vehicleSocPollAllowed() { + if lp.chargerHasFeature(api.IntegratedDevice) || lp.vehicleSocPollAllowed() { lp.socUpdated = lp.clock.Now() f, err := socEstimator.Soc(lp.GetChargedEnergy()) diff --git a/core/loadpoint_vehicle.go b/core/loadpoint_vehicle.go index a4dd0b2c6..f74af1502 100644 --- a/core/loadpoint_vehicle.go +++ b/core/loadpoint_vehicle.go @@ -319,20 +319,17 @@ func (lp *Loadpoint) vehicleOdometer() { // vehicleClimatePollAllowed determines if polling depending on mode and connection status func (lp *Loadpoint) vehicleClimatePollAllowed() bool { - switch { - case lp.Soc.Poll.Mode == loadpoint.PollCharging && lp.charging(): + if lp.charging() || lp.vehicleHasFeature(api.Streaming) { return true - case (lp.Soc.Poll.Mode == loadpoint.PollConnected || lp.Soc.Poll.Mode == loadpoint.PollAlways) && lp.connected(): - return true - default: - return false } + + return (lp.Soc.Poll.Mode == loadpoint.PollConnected || lp.Soc.Poll.Mode == loadpoint.PollAlways) && lp.connected() } // vehicleSocPollAllowed validates charging state against polling mode func (lp *Loadpoint) vehicleSocPollAllowed() bool { // always update soc when charging - if lp.charging() { + if lp.charging() || lp.vehicleHasFeature(api.Streaming) { return true }