NEWS
Test Adapter PoolControl
-
DennisMenger sagte:
Ganz hervorragend. Dann wollen wir morgen mal schauen, ob wir genügend Sonne für einen Test haben werden. Vielen Dank
Leider funktioniert der PV-Modus bei mir weiterhin nicht. Er schaltet nach ca. 30 Sekunden ab, obwohl weiterhin PV-Überschuss vorhanden ist. Und müsste er nicht aufgrund der Nachlaufzeit sowieso 15 Minuten länger laufen?
Was kann ich noch gucken wo der Fehler liegt bzw. was kann ich dir noch liefern?
Danke dir fürs schnelle Testen. 🙂
Schade, dass das Problem noch besteht. Dann sind wir der eigentlichen Ursache offenbar noch nicht ganz auf der Spur.
Ich möchte jetzt aber nicht weiter spekulieren, sondern gezielt herausfinden, welcher Teil von PoolControl die Pumpe tatsächlich abschaltet.
Könntest du mir deshalb bitte noch Folgendes liefern?
- Das Adapter-Log vom Einschalten der Pumpe bis etwa eine Minute nach der Abschaltung (wenn möglich einmal auf Debug stellen).
- Direkt nach der Abschaltung bitte einmal die folgenden Datenpunkte:
- photovoltaic.surplus_active
- photovoltaic.power_surplus_w
- photovoltaic.status_text
- pump.active_helper
- pump.reason
- pump.pump_switch
- pump.mode
- pump.error
- Und bitte noch einmal kurz nachsehen, ob photovoltaic.afterrun_min tatsächlich auf 15 Minuten steht.
Mit diesen Informationen sollten wir ziemlich genau nachvollziehen können, warum die Pumpe bereits nach rund 30 Sekunden abgeschaltet wird.
Vielen Dank schon einmal für deine Unterstützung und deine Geduld. Ich bin zuversichtlich, dass wir den Fehler gemeinsam noch finden. 💪
@DasBo1975 Moin Moin.
Aus verschiedensten Gründen hatte ich zuletzt leider keine Zeit das nochmal mit dem PV-Modus zu testen. Heute habe ich das dann tatsächlich mal geschafft.
Hier einmal die Datenpunkte und das Log auf Debug-Level

27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 debug [runtimeHelper] Pump runtime stopped. 27.07.2026 10:19 debug [runtimeHelper] Circulation values updated (Total=11181, Required=56000, Remaining=44819) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.circulation.daily_total changed: 11181 (ack = true) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state plenticore.0.devices.local.Home_P changed: 544 (ack = true) 27.07.2026 10:19 debug [pumpHelper] Within stop grace period – skipping error check 27.07.2026 10:19 debug [pumpHelper2] Actual flow updated: 5244.5 l/h (47.7%) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.current_power changed: 309.9 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state alias.0.PoolPoolpumpe.currentPowerConsumption changed: 309.9 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state alias.0.PoolPoolpumpe.energyCounter changed: 539.5092000000001 (ack = true) 27.07.2026 10:19 debug [pumpHelper] Foreign state reported identical value – ignored. 27.07.2026 10:19 debug state alias.0.PoolPoolpumpe.on changed: false (ack = true) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug [pumpHelper2] Actual flow updated: 0 l/h (0.0%) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.live.flow_current_lh changed: 0 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.live.current_power_w changed: 0 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.current_power changed: 0 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state alias.0.PoolPoolpumpe.currentPowerConsumption changed: 0 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state alias.0.PoolPoolpumpe.energyCounter changed: 539.5102 (ack = true) 27.07.2026 10:19 debug [pumpHelper] Foreign state reported identical value – ignored. 27.07.2026 10:19 debug state alias.0.PoolPoolpumpe.on changed: false (ack = true) 27.07.2026 10:19 debug [solarInsightsHelper] Block 7 updated successfully 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.analytics.insights.solar.results.pump_power_w_used changed: 0 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.analytics.insights.solar.results.flow_lh_used changed: 0 (ack = true) 27.07.2026 10:19 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug state poolcontrol.0.chemistry.ph.input.current_value changed: 7.44 (ack = true) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.44 (ack = true) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug state plenticore.0.devices.local.Home_P changed: 494 (ack = true) 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:19 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 1113.5331865103 (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:19 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:19 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 2083.8883752674 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state poolcontrol.0.chemistry.ph.input.current_value changed: 7.46 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.46 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [solarInsightsHelper] Block 7 updated successfully 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.outside.current changed: 17.28 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state hmip.0.homes.c292384f-c5e4-45ac-aa84-215911532910.weather.temperature changed: 17.28 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.outside.current changed: 17.28 (ack = true) 27.07.2026 10:20 debug state hmip.0.homes.c292384f-c5e4-45ac-aa84-215911532910.weather.temperature changed: 17.28 (ack = true) 27.07.2026 10:20 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:20 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 3439.5988244862 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 1107.5331865103 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Pv_P changed: 3939.5988244862 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Pv_P changed: 3939.5988244862 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Home_P changed: 500 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state poolcontrol.0.chemistry.ph.input.current_value changed: 7.44 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.44 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state tuya.0.bf2a5653fb1af77850ykut.131 changed: 670 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 debug [solarExtendedHelper] Extended solar skipped (pump_mode_not_auto) 27.07.2026 10:20 debug [solarHelper] Solar control skipped (Solarmodus = extended) 27.07.2026 10:20 debug [solarHelper] Standard solar paused because solar.control_mode = extended 27.07.2026 10:20 debug [solarInsightsHelper] Block 7 updated successfully 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.analytics.insights.solar.results.collector_temp_used changed: 28.6 (ack = true) 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.collector.current changed: 28.6 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.collector.current changed: 28.1 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state 0_userdata.0.poolsteuerung.temperatur_kollektor changed: 28.6 (ack = true) 27.07.2026 10:20 debug state 0_userdata.0.poolsteuerung.temperatur_kollektor changed: 28.1 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state poolcontrol.0.chemistry.ph.input.current_value changed: 7.45 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Pv_P changed: 1328.6611161977 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Pv_P changed: 1328.6611161977 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 3454.5988244862 (ack = true) 27.07.2026 10:20 debug state plenticore.0.devices.local.Home_P changed: 485 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 debug state tuya.0.bf2a5653fb1af77850ykut.131 changed: 670 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:20 debug [solarInsightsHelper] Block 7 updated successfully 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.analytics.insights.solar.results.delta_t_used changed: -0.8 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.analytics.insights.solar.results.pool_reference_temp_used changed: 22.2 (ack = true) 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug statisticsHelperMonth: Overall summary updated successfully. 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.circulation.daily_required changed: 56000 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.status changed: base (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.control.circulation.temperature_factor.active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.flow.current changed: 22.2 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.surface.current changed: 22.2 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.temperature.return.current changed: 21.4 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state alias.0.PoolPoolsensor.temperatureExternalTwo changed: 22.2 (ack = true) 27.07.2026 10:20 debug state alias.0.PoolPoolsensor.temperatureExternalOne changed: 21.4 (ack = true) 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:20 debug [photovoltaicHelper] Afterrun started: 15 min (pv_ended_afterrun) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.photovoltaic.surplus_active changed: false (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 599.8499589712001 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Pv_P changed: 1076.8499589712 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state plenticore.0.devices.local.Pv_P changed: 1076.8499589712 (ack = true) 27.07.2026 10:20 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:20 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 851.6611161977 (ack = true) 27.07.2026 10:20 debug state plenticore.0.devices.local.Home_P changed: 477 (ack = true) 27.07.2026 10:21 debug state tuya.0.bf2a5653fb1af77850ykut.131 changed: 670 (ack = true) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:21 debug [photovoltaicHelper] Afterrun already active, timer not restarted (pv_ended_afterrun) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 597.8499589712001 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state plenticore.0.devices.local.Pv_P changed: 1261.0042558462 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state plenticore.0.devices.local.Pv_P changed: 1261.0042558462 (ack = true) 27.07.2026 10:21 debug state plenticore.0.devices.local.Home_P changed: 479 (ack = true) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug [solarExtendedHelper] Extended solar skipped (pump_mode_not_auto) 27.07.2026 10:21 debug [solarHelper] Solar control skipped (Solarmodus = extended) 27.07.2026 10:21 debug [solarHelper] Standard solar paused because solar.control_mode = extended 27.07.2026 10:21 debug state tuya.0.bf2a5653fb1af77850ykut.131 changed: 670 (ack = true) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:21 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state poolcontrol.0.photovoltaic.surplus_active changed: true (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 3492.7739091665 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state plenticore.0.devices.local.Pv_P changed: 3985.7739091665 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state plenticore.0.devices.local.Pv_P changed: 3985.7739091665 (ack = true) 27.07.2026 10:21 debug [photovoltaicHelper] Afterrun already active, timer not restarted (pv_ended_afterrun) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 768.0042558462001 (ack = true) 27.07.2026 10:21 debug state plenticore.0.devices.local.Home_P changed: 493 (ack = true) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.trend.reference_24h_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug state plenticore.0.devices.local.Home_P changed: 486 (ack = true) 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:21 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:21 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:21 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state plenticore.0.devices.local.Pv_P changed: 3488.7145829946 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state plenticore.0.devices.local.Pv_P changed: 3488.7145829946 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 2400.5790849477 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug [solarExtendedHelper] Extended solar skipped (pump_mode_not_auto) 27.07.2026 10:22 debug [solarHelper] Solar control skipped (Solarmodus = extended) 27.07.2026 10:22 debug [solarHelper] Standard solar paused because solar.control_mode = extended 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.trend.reference_7d_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.history.oldest_sample_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.trend.reference_7d_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug state tuya.0.bf2a5653fb1af77850ykut.131 changed: 670 (ack = true) 27.07.2026 10:22 debug state plenticore.0.devices.local.Home_P changed: 494 (ack = true) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 3129.7079911977 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state poolcontrol.0.pump.active_helper changed: photovoltaicHelper (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state poolcontrol.0.photovoltaic.power_surplus_w changed: 2994.7145829946 (ack = true) 27.07.2026 10:22 debug state tuya.0.bf2a5653fb1af77850ykut.131 changed: 670 (ack = true) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug state tuya.0.bf2a5653fb1af77850ykut.106 changed: 7.45 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.orp.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state plenticore.0.devices.local.Pv_P changed: 3744.8757158071 (ack = true) 27.07.2026 10:22 debug [statusHelper] updateSummary skipped (throttle) 27.07.2026 10:22 debug state plenticore.0.devices.local.Pv_P changed: 3744.8757158071 (ack = true) 27.07.2026 10:22 debug state plenticore.0.devices.local.Home_P changed: 489 (ack = true) 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.debug.last_update" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_valid_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.previous_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 info State value to set for "poolcontrol.0.chemistry.ph.input.last_value_at" has to be type "string" but received type "number" 27.07.2026 10:22 debug [photovoltaicInsightsHelper] Inputs, calculation and results updated  -
Alles klar, kein Problem. Vielen Dank schon mal.
-
Version 1.4.4 ist fertig und sollte in den nächsten Stunden über das Repository verfügbar sein.
Zunächst möchte ich mich diesmal dafür entschuldigen, dass dieser Bugfix etwas länger gedauert hat als sonst.
Der Grund war, dass ich den Fehler auf meiner eigenen Anlage einfach nicht nachstellen konnte. Ich nutze nur ein Balkonkraftwerk und dort trat dieses Verhalten nie auf. Deshalb hätte ich den Fehler auf meiner Hardware niemals zuverlässig reproduzieren können.
Dank der ausführlichen Rückmeldungen von Dennis und den bereitgestellten Logdateien konnte ich den Fehler aber Schritt für Schritt eingrenzen. Anschließend habe ich den kompletten Ablauf in einer Testumgebung mit einer virtuellen größeren PV-Anlage und den Werten aus Dennis' Log nachgestellt. Erst dadurch wurde die eigentliche Ursache sichtbar.
Kurz erklärt:
Bei schnellen Änderungen der PV-Erzeugung und des Hausverbrauchs konnte es in seltenen Fällen passieren, dass beide Werte intern nicht mehr als zusammengehöriges Wertepaar verarbeitet wurden. Dadurch konnte der Auto-PV-Modus kurzzeitig mit veralteten Zwischenwerten arbeiten und unter bestimmten Bedingungen einen Nachlauf oder sogar eine Abschaltung auslösen, obwohl eigentlich weiterhin ausreichend PV-Leistung vorhanden war.
Für die Version 1.4.4 habe ich den internen Ablauf deshalb überarbeitet. Die Berechnung wartet jetzt kurz auf zusammengehörige Messwerte und verarbeitet diese anschließend sauber und in der richtigen Reihenfolge. Gleichzeitig wurde sichergestellt, dass ältere Berechnungen keine neueren Ergebnisse mehr überschreiben können.
Für euch als Anwender ändert sich an der Bedienung nichts. Die Berechnung des PV-Überschusses und alle bisherigen Funktionen bleiben unverändert – lediglich der interne Ablauf wurde robuster gemacht.
Ich hoffe sehr, dass damit nun auch das von Dennis gemeldete Problem endgültig behoben ist.
Zum Schluss möchte ich mich noch einmal ganz herzlich bei Dennis bedanken. Ohne seine Geduld, die vielen Tests und die ausführlichen Logdateien wäre dieser Fehler vermutlich noch lange unentdeckt geblieben. Genau solche Rückmeldungen helfen mir dabei, PoolControl Schritt für Schritt weiter zu verbessern und robuster zu machen.
Vielen Dank an alle, die den Adapter testen, Ideen einbringen und mich bei der Weiterentwicklung unterstützen. Genau das macht dieses Projekt für mich so besonders. 😊
-
Version 1.4.4 ist fertig und sollte in den nächsten Stunden über das Repository verfügbar sein.
Zunächst möchte ich mich diesmal dafür entschuldigen, dass dieser Bugfix etwas länger gedauert hat als sonst.
Der Grund war, dass ich den Fehler auf meiner eigenen Anlage einfach nicht nachstellen konnte. Ich nutze nur ein Balkonkraftwerk und dort trat dieses Verhalten nie auf. Deshalb hätte ich den Fehler auf meiner Hardware niemals zuverlässig reproduzieren können.
Dank der ausführlichen Rückmeldungen von Dennis und den bereitgestellten Logdateien konnte ich den Fehler aber Schritt für Schritt eingrenzen. Anschließend habe ich den kompletten Ablauf in einer Testumgebung mit einer virtuellen größeren PV-Anlage und den Werten aus Dennis' Log nachgestellt. Erst dadurch wurde die eigentliche Ursache sichtbar.
Kurz erklärt:
Bei schnellen Änderungen der PV-Erzeugung und des Hausverbrauchs konnte es in seltenen Fällen passieren, dass beide Werte intern nicht mehr als zusammengehöriges Wertepaar verarbeitet wurden. Dadurch konnte der Auto-PV-Modus kurzzeitig mit veralteten Zwischenwerten arbeiten und unter bestimmten Bedingungen einen Nachlauf oder sogar eine Abschaltung auslösen, obwohl eigentlich weiterhin ausreichend PV-Leistung vorhanden war.
Für die Version 1.4.4 habe ich den internen Ablauf deshalb überarbeitet. Die Berechnung wartet jetzt kurz auf zusammengehörige Messwerte und verarbeitet diese anschließend sauber und in der richtigen Reihenfolge. Gleichzeitig wurde sichergestellt, dass ältere Berechnungen keine neueren Ergebnisse mehr überschreiben können.
Für euch als Anwender ändert sich an der Bedienung nichts. Die Berechnung des PV-Überschusses und alle bisherigen Funktionen bleiben unverändert – lediglich der interne Ablauf wurde robuster gemacht.
Ich hoffe sehr, dass damit nun auch das von Dennis gemeldete Problem endgültig behoben ist.
Zum Schluss möchte ich mich noch einmal ganz herzlich bei Dennis bedanken. Ohne seine Geduld, die vielen Tests und die ausführlichen Logdateien wäre dieser Fehler vermutlich noch lange unentdeckt geblieben. Genau solche Rückmeldungen helfen mir dabei, PoolControl Schritt für Schritt weiter zu verbessern und robuster zu machen.
Vielen Dank an alle, die den Adapter testen, Ideen einbringen und mich bei der Weiterentwicklung unterstützen. Genau das macht dieses Projekt für mich so besonders. 😊
@DasBo1975 Heute erst wieder zum Testen gekommen. Leider kann ich bei mir noch keine Entwarnung bezüglich des PV-Modus geben.
Er schaltet noch immer nach ein paar Sekunden ab, obwohl weiter PV-Überschuss vorhanden ist.
Was ich beobachtet habe ist, dass zeitgleich zum Ausschalten der Pumpe die Werte
photovoltaic/last_update
photovoltaic/power_generated_w
photovoltaic/power_house_w
photovoltaic/power_surplus_w
photovoltaic/status_textvom Zeitstempel her aktualisiert werden. Das macht ja auch eigentlich Sinn. Aber irgendwie scheint er sich da immer zu verschlucken. Ich habe keine Ahnung wo ich noch gucken kann.
Sag mir gerne wenn ich noch was testen, überprüfen oder bereitstellen kann.
Vielen Dank
-
@DasBo1975 Heute erst wieder zum Testen gekommen. Leider kann ich bei mir noch keine Entwarnung bezüglich des PV-Modus geben.
Er schaltet noch immer nach ein paar Sekunden ab, obwohl weiter PV-Überschuss vorhanden ist.
Was ich beobachtet habe ist, dass zeitgleich zum Ausschalten der Pumpe die Werte
photovoltaic/last_update
photovoltaic/power_generated_w
photovoltaic/power_house_w
photovoltaic/power_surplus_w
photovoltaic/status_textvom Zeitstempel her aktualisiert werden. Das macht ja auch eigentlich Sinn. Aber irgendwie scheint er sich da immer zu verschlucken. Ich habe keine Ahnung wo ich noch gucken kann.
Sag mir gerne wenn ich noch was testen, überprüfen oder bereitstellen kann.
Vielen Dank
@DasBo1975 Heute erst wieder zum Testen gekommen. Leider kann ich bei mir noch keine Entwarnung bezüglich des PV-Modus geben.
Er schaltet noch immer nach ein paar Sekunden ab, obwohl weiter PV-Überschuss vorhanden ist.
Was ich beobachtet habe ist, dass zeitgleich zum Ausschalten der Pumpe die Werte
photovoltaic/last_update
photovoltaic/power_generated_w
photovoltaic/power_house_w
photovoltaic/power_surplus_w
photovoltaic/status_textvom Zeitstempel her aktualisiert werden. Das macht ja auch eigentlich Sinn. Aber irgendwie scheint er sich da immer zu verschlucken. Ich habe keine Ahnung wo ich noch gucken kann.
Sag mir gerne wenn ich noch was testen, überprüfen oder bereitstellen kann.
Vielen Dank
Schaue ich mir natürlich an. Gib mir ein bisschen.
Eine Frage noch. Deine Schalt-/Messsteckdose ist von HM?
-
@DasBo1975 Heute erst wieder zum Testen gekommen. Leider kann ich bei mir noch keine Entwarnung bezüglich des PV-Modus geben.
Er schaltet noch immer nach ein paar Sekunden ab, obwohl weiter PV-Überschuss vorhanden ist.
Was ich beobachtet habe ist, dass zeitgleich zum Ausschalten der Pumpe die Werte
photovoltaic/last_update
photovoltaic/power_generated_w
photovoltaic/power_house_w
photovoltaic/power_surplus_w
photovoltaic/status_textvom Zeitstempel her aktualisiert werden. Das macht ja auch eigentlich Sinn. Aber irgendwie scheint er sich da immer zu verschlucken. Ich habe keine Ahnung wo ich noch gucken kann.
Sag mir gerne wenn ich noch was testen, überprüfen oder bereitstellen kann.
Vielen Dank
Schaue ich mir natürlich an. Gib mir ein bisschen.
Eine Frage noch. Deine Schalt-/Messsteckdose ist von HM?
Schaue ich mir natürlich an. Gib mir ein bisschen.
Eine Frage noch. Deine Schalt-/Messsteckdose ist von HM?
Moin, ja HmIP
-
Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewählt habe und nicht über den Alias-Datenpunkt. Brachte aber keine Veränderung.
-
Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewählt habe und nicht über den Alias-Datenpunkt. Brachte aber keine Veränderung.
Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewählt habe und nicht über den Alias-Datenpunkt. Brachte aber keine Veränderung.
Hallo Dennis,
danke dir erst einmal, dass du weiterhin so geduldig mit testest.
Da das Problem trotz der bisherigen Änderungen weiterhin auftritt, möchte ich jetzt bewusst nicht noch einmal auf Verdacht etwas an PoolControl ändern. Die bisherigen Analysen haben zwar tatsächlich zwei Fehler im Auto-PV-Bereich aufgedeckt, die inzwischen behoben sind, aber offensichtlich waren diese nicht die eigentliche Ursache für das von dir beobachtete Abschalten.
Deshalb möchte ich jetzt einen anderen Weg gehen und den Ablauf auf deinem System wesentlich genauer protokollieren.
Ich habe dafür ein kleines Diagnose-Skript vorbereitet, das du bitte temporär im ioBroker-JavaScript-Adapter laufen lässt.
Wichtig: Das Skript steuert nichts. Es verändert weder PoolControl noch deine Pumpe oder irgendwelche anderen Datenpunkte. Es beobachtet ausschließlich die für den Auto-PV-Betrieb relevanten Zustände und schreibt das Ergebnis gesammelt in einen eigenen Diagnose-Datenpunkt unter 0_userdata.0.
Du musst im Skript auch keine Datenpunkte anpassen. Es liest die von dir in PoolControl eingestellten Datenpunkte für Pumpenschalter, Pumpenleistung, PV-Erzeugung und Hausverbrauch automatisch aus der Konfiguration von poolcontrol.0 aus.
Bitte geh folgendermaßen vor:
Im JavaScript-Adapter ein neues Skript anlegen.
Den folgenden Code vollständig hineinkopieren.
Skript starten.
Danach den Auto-PV-Modus so testen, wie du es bisher gemacht hast.
Warten, bis die Pumpe wieder unerwartet ausgeht.
Anschließend bitte den Inhalt dieses Datenpunktes kopieren:0_userdata.0.PoolControlDebug.AutoPVTrace
Dort werden die letzten 400 relevanten Ereignisse mit Zeitstempeln im Millisekundenbereich gesammelt.
Mich interessiert dabei vor allem die genaue Reihenfolge: Kommt zuerst der Ausschaltzustand von der HmIP-Steckdose? Setzt PoolControl zuerst seinen internen Pumpenschalter auf AUS? Ändert sich vorher die PV-Berechnung? Oder passiert noch etwas ganz anderes?
Zusätzlich werden unter anderem ack, die Quelle der Stateänderung, Pumpenmodus, aktiver Helper, Pumpenleistung, PV-Erzeugung, Hausverbrauch, Überschuss und der aktuelle Auto-PV-Status festgehalten.
Damit sollten wir beim nächsten Auftreten wesentlich genauer erkennen können, was tatsächlich die Ursache und was nur die Folge des Abschaltens ist.
Hier das Skript:
// PoolControl Auto-PV Diagnose-Trace fuer ioBroker JavaScript-Adapter // Read-only gegenueber PoolControl und Hardware. // Schreibt nur nach 0_userdata.0.PoolControlDebug.AutoPVTrace. const PC = 'poolcontrol.0'; const TRACE_ID = '0_userdata.0.PoolControlDebug.AutoPVTrace'; const MAX_EVENTS = 400; let trace = []; let ids = { pumpSwitch: '', pumpPower: '', pvPower: '', housePower: '' }; const pcStates = [ `${PC}.pump.mode`, `${PC}.pump.active_helper`, `${PC}.pump.pump_switch`, `${PC}.pump.current_power`, `${PC}.pump.pump_max_watt`, `${PC}.pump.error`, `${PC}.photovoltaic.power_generated_w`, `${PC}.photovoltaic.power_house_w`, `${PC}.photovoltaic.power_surplus_w`, `${PC}.photovoltaic.surplus_active`, `${PC}.photovoltaic.status_text`, `${PC}.photovoltaic.afterrun_min`, `${PC}.photovoltaic.last_update`, `${PC}.circulation.daily_remaining`, `${PC}.status.season_active` ]; function v(id) { if (!id) return null; const s = getState(id); return s ? s.val : null; } function nowMs() { const d = new Date(); return d.toTimeString().slice(0, 8) + '.' + String(d.getMilliseconds()).padStart(3, '0'); } function short(id) { return String(id || '').replace(`${PC}.`, ''); } function add(src, s) { const ev = { rt: nowMs(), src: short(src), v: s ? s.val : null, ack: s ? s.ack : null, ts: s ? s.ts : null, lc: s ? s.lc : null, from: s ? s.from : null, q: s && s.q !== undefined ? s.q : null, mode: v(`${PC}.pump.mode`), owner: v(`${PC}.pump.active_helper`), pump: v(`${PC}.pump.pump_switch`), hwPump: v(ids.pumpSwitch), pumpW: v(`${PC}.pump.current_power`), hwPumpW: v(ids.pumpPower), maxW: v(`${PC}.pump.pump_max_watt`), pv: v(`${PC}.photovoltaic.power_generated_w`), house: v(`${PC}.photovoltaic.power_house_w`), surplus: v(`${PC}.photovoltaic.power_surplus_w`), surplusActive: v(`${PC}.photovoltaic.surplus_active`), pvText: v(`${PC}.photovoltaic.status_text`), afterrun: v(`${PC}.photovoltaic.afterrun_min`), error: v(`${PC}.pump.error`), dailyRemaining: v(`${PC}.circulation.daily_remaining`), season: v(`${PC}.status.season_active`) }; if (ids.pvPower) ev.hwPv = v(ids.pvPower); if (ids.housePower) ev.hwHouse = v(ids.housePower); trace.push(ev); while (trace.length > MAX_EVENTS) trace.shift(); setState(TRACE_ID, JSON.stringify(trace), true); } createState(TRACE_ID, '[]', { name: 'PoolControl Auto-PV Trace', type: 'string', role: 'json', read: true, write: true }, () => { setState(TRACE_ID, '[]', true); getObject(`system.adapter.${PC}`, (err, obj) => { const cfg = obj && obj.native ? obj.native : {}; ids.pumpSwitch = String(cfg.pump_switch || '').trim(); ids.pumpPower = String(cfg.pump_current_power_id || '').trim(); ids.pvPower = String(cfg.power_generated_id || '').trim(); ids.housePower = String(cfg.power_house_id || '').trim(); const watchIds = Array.from(new Set([ ...pcStates, ids.pumpSwitch, ids.pumpPower, ids.pvPower, ids.housePower ].filter(Boolean))); add('script.start', { val: { pumpSwitch: ids.pumpSwitch || null, pumpPower: ids.pumpPower || null, pvPower: ids.pvPower || null, housePower: ids.housePower || null }, ack: true, ts: Date.now(), lc: Date.now(), from: 'javascript', q: 0 }); watchIds.forEach(id => { on({ id, change: 'any' }, obj => add(id, obj.state)); }); log( `PoolControl Auto-PV Trace gestartet. Beobachte ${watchIds.length} States. Ausgabe: ${TRACE_ID}`, 'info' ); }); });Wenn die Pumpe ausgegangen ist, brauchst du mir anschließend nur den kompletten Inhalt von
0_userdata.0.PoolControlDebug.AutoPVTrace
zu schicken.
Danach kannst du das Diagnose-Skript wieder stoppen oder löschen.
Ich möchte diesmal wirklich erst sehen, was beim Abschalten auf deinem System genau passiert, bevor ich noch einmal etwas an PoolControl ändere.
Vielen Dank nochmals für deine Geduld und vor allem fürs Testen und Bereitstellen der Informationen. Das hilft mir wirklich sehr bei der Fehlersuche. 🙂
-
Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewählt habe und nicht über den Alias-Datenpunkt. Brachte aber keine Veränderung.
Hallo Dennis,
danke dir erst einmal, dass du weiterhin so geduldig mit testest.
Da das Problem trotz der bisherigen Änderungen weiterhin auftritt, möchte ich jetzt bewusst nicht noch einmal auf Verdacht etwas an PoolControl ändern. Die bisherigen Analysen haben zwar tatsächlich zwei Fehler im Auto-PV-Bereich aufgedeckt, die inzwischen behoben sind, aber offensichtlich waren diese nicht die eigentliche Ursache für das von dir beobachtete Abschalten.
Deshalb möchte ich jetzt einen anderen Weg gehen und den Ablauf auf deinem System wesentlich genauer protokollieren.
Ich habe dafür ein kleines Diagnose-Skript vorbereitet, das du bitte temporär im ioBroker-JavaScript-Adapter laufen lässt.
Wichtig: Das Skript steuert nichts. Es verändert weder PoolControl noch deine Pumpe oder irgendwelche anderen Datenpunkte. Es beobachtet ausschließlich die für den Auto-PV-Betrieb relevanten Zustände und schreibt das Ergebnis gesammelt in einen eigenen Diagnose-Datenpunkt unter 0_userdata.0.
Du musst im Skript auch keine Datenpunkte anpassen. Es liest die von dir in PoolControl eingestellten Datenpunkte für Pumpenschalter, Pumpenleistung, PV-Erzeugung und Hausverbrauch automatisch aus der Konfiguration von poolcontrol.0 aus.
Bitte geh folgendermaßen vor:
Im JavaScript-Adapter ein neues Skript anlegen.
Den folgenden Code vollständig hineinkopieren.
Skript starten.
Danach den Auto-PV-Modus so testen, wie du es bisher gemacht hast.
Warten, bis die Pumpe wieder unerwartet ausgeht.
Anschließend bitte den Inhalt dieses Datenpunktes kopieren:0_userdata.0.PoolControlDebug.AutoPVTrace
Dort werden die letzten 400 relevanten Ereignisse mit Zeitstempeln im Millisekundenbereich gesammelt.
Mich interessiert dabei vor allem die genaue Reihenfolge: Kommt zuerst der Ausschaltzustand von der HmIP-Steckdose? Setzt PoolControl zuerst seinen internen Pumpenschalter auf AUS? Ändert sich vorher die PV-Berechnung? Oder passiert noch etwas ganz anderes?
Zusätzlich werden unter anderem ack, die Quelle der Stateänderung, Pumpenmodus, aktiver Helper, Pumpenleistung, PV-Erzeugung, Hausverbrauch, Überschuss und der aktuelle Auto-PV-Status festgehalten.
Damit sollten wir beim nächsten Auftreten wesentlich genauer erkennen können, was tatsächlich die Ursache und was nur die Folge des Abschaltens ist.
Hier das Skript:
// PoolControl Auto-PV Diagnose-Trace fuer ioBroker JavaScript-Adapter // Read-only gegenueber PoolControl und Hardware. // Schreibt nur nach 0_userdata.0.PoolControlDebug.AutoPVTrace. const PC = 'poolcontrol.0'; const TRACE_ID = '0_userdata.0.PoolControlDebug.AutoPVTrace'; const MAX_EVENTS = 400; let trace = []; let ids = { pumpSwitch: '', pumpPower: '', pvPower: '', housePower: '' }; const pcStates = [ `${PC}.pump.mode`, `${PC}.pump.active_helper`, `${PC}.pump.pump_switch`, `${PC}.pump.current_power`, `${PC}.pump.pump_max_watt`, `${PC}.pump.error`, `${PC}.photovoltaic.power_generated_w`, `${PC}.photovoltaic.power_house_w`, `${PC}.photovoltaic.power_surplus_w`, `${PC}.photovoltaic.surplus_active`, `${PC}.photovoltaic.status_text`, `${PC}.photovoltaic.afterrun_min`, `${PC}.photovoltaic.last_update`, `${PC}.circulation.daily_remaining`, `${PC}.status.season_active` ]; function v(id) { if (!id) return null; const s = getState(id); return s ? s.val : null; } function nowMs() { const d = new Date(); return d.toTimeString().slice(0, 8) + '.' + String(d.getMilliseconds()).padStart(3, '0'); } function short(id) { return String(id || '').replace(`${PC}.`, ''); } function add(src, s) { const ev = { rt: nowMs(), src: short(src), v: s ? s.val : null, ack: s ? s.ack : null, ts: s ? s.ts : null, lc: s ? s.lc : null, from: s ? s.from : null, q: s && s.q !== undefined ? s.q : null, mode: v(`${PC}.pump.mode`), owner: v(`${PC}.pump.active_helper`), pump: v(`${PC}.pump.pump_switch`), hwPump: v(ids.pumpSwitch), pumpW: v(`${PC}.pump.current_power`), hwPumpW: v(ids.pumpPower), maxW: v(`${PC}.pump.pump_max_watt`), pv: v(`${PC}.photovoltaic.power_generated_w`), house: v(`${PC}.photovoltaic.power_house_w`), surplus: v(`${PC}.photovoltaic.power_surplus_w`), surplusActive: v(`${PC}.photovoltaic.surplus_active`), pvText: v(`${PC}.photovoltaic.status_text`), afterrun: v(`${PC}.photovoltaic.afterrun_min`), error: v(`${PC}.pump.error`), dailyRemaining: v(`${PC}.circulation.daily_remaining`), season: v(`${PC}.status.season_active`) }; if (ids.pvPower) ev.hwPv = v(ids.pvPower); if (ids.housePower) ev.hwHouse = v(ids.housePower); trace.push(ev); while (trace.length > MAX_EVENTS) trace.shift(); setState(TRACE_ID, JSON.stringify(trace), true); } createState(TRACE_ID, '[]', { name: 'PoolControl Auto-PV Trace', type: 'string', role: 'json', read: true, write: true }, () => { setState(TRACE_ID, '[]', true); getObject(`system.adapter.${PC}`, (err, obj) => { const cfg = obj && obj.native ? obj.native : {}; ids.pumpSwitch = String(cfg.pump_switch || '').trim(); ids.pumpPower = String(cfg.pump_current_power_id || '').trim(); ids.pvPower = String(cfg.power_generated_id || '').trim(); ids.housePower = String(cfg.power_house_id || '').trim(); const watchIds = Array.from(new Set([ ...pcStates, ids.pumpSwitch, ids.pumpPower, ids.pvPower, ids.housePower ].filter(Boolean))); add('script.start', { val: { pumpSwitch: ids.pumpSwitch || null, pumpPower: ids.pumpPower || null, pvPower: ids.pvPower || null, housePower: ids.housePower || null }, ack: true, ts: Date.now(), lc: Date.now(), from: 'javascript', q: 0 }); watchIds.forEach(id => { on({ id, change: 'any' }, obj => add(id, obj.state)); }); log( `PoolControl Auto-PV Trace gestartet. Beobachte ${watchIds.length} States. Ausgabe: ${TRACE_ID}`, 'info' ); }); });Wenn die Pumpe ausgegangen ist, brauchst du mir anschließend nur den kompletten Inhalt von
0_userdata.0.PoolControlDebug.AutoPVTrace
zu schicken.
Danach kannst du das Diagnose-Skript wieder stoppen oder löschen.
Ich möchte diesmal wirklich erst sehen, was beim Abschalten auf deinem System genau passiert, bevor ich noch einmal etwas an PoolControl ändere.
Vielen Dank nochmals für deine Geduld und vor allem fürs Testen und Bereitstellen der Informationen. Das hilft mir wirklich sehr bei der Fehlersuche. 🙂
@DasBo1975 Moin und vielen Dank.
Wie soll ich dir den Inhalt schicken? Hier für das Forum sind es zu viele Zeichen.
EDIT: habe dir eine Nachricht mit der Datei geschickt
-
Hallo Dennis,
erst einmal vielen Dank, dass du das kleine Diagnose-Skript so schnell ausprobiert und mir die Aufzeichnung zur Verfügung gestellt hast.
Die Daten daraus waren für mich mehr als hilfreich. Ohne diesen detaillierten Mitschnitt hätte ich diesen Fehler vermutlich noch sehr lange gesucht – oder vielleicht überhaupt nicht gefunden. Im normalen Log waren Ursache und Folge einfach nicht eindeutig genug voneinander zu unterscheiden.
Mit dem Diagnose-Skript konnte ich zum ersten Mal ganz genau sehen, was beim Abschalten passiert: Auto-PV hatte die Pumpe korrekt gestartet, ausreichend PV-Überschuss war vorhanden und auch die Haltebedingung war erfüllt. Trotzdem kam der Ausschaltbefehl direkt aus PoolControl. Die HmIP-Steckdose war damit endgültig aus dem Verdacht raus – sie hat nur brav das gemacht, was PoolControl ihr gesagt hat.
Danach ließ sich der eigentliche Übeltäter finden. 😉
PoolControl besitzt für seine verschiedenen Helper bewusst eine Art Zuständigkeits- und Vorrangsteuerung. Vereinfacht gesagt soll jeder Helper wissen, wann er die Pumpe steuern darf und – mindestens genauso wichtig – wann er die Finger davon lassen muss.
Einer hat sich dabei allerdings ein wenig danebenbenommen: Solar Extended.
Solar Extended hat vollkommen richtig erkannt, dass im Modus Auto-PV gerade nicht seine Stunde geschlagen hat. Anstatt sich danach aber einfach zurückzulehnen und Auto-PV seine Arbeit machen zu lassen, hat er sinngemäß gesagt:
„Ich soll die Pumpe gerade nicht einschalten? Na gut, dann mache ich sie eben aus.“ 😄
Genau das war der Fehler.
Dadurch konnte Solar Extended bei seinem nächsten Durchlauf eine von Auto-PV korrekt laufende Pumpe wieder ausschalten – obwohl Auto-PV weiterhin ausreichend Überschuss erkannt hatte und die Pumpe ausdrücklich weiterlaufen lassen wollte.
Das erklärt auch, warum ich das Problem auf meinem eigenen System nicht reproduzieren konnte: Ich verwende die normale Solarsteuerung. Du verwendest Solar Extended – und genau in dieser Kombination mit Auto-PV lag der Fehler.
Ich habe das Verhalten inzwischen gezielt in einer Testumgebung mit deinen Werten nachgestellt und konnte die Abschaltung reproduzieren. Anschließend wurde die Zuständigkeit von Solar Extended korrigiert und derselbe Test erneut durchgeführt. Auto-PV bleibt jetzt unangetastet. Gleichzeitig wurde geprüft, dass Solar Extended im normalen Automatikmodus weiterhin wie vorgesehen die Pumpe ein- und ausschalten kann.
Die Version 1.4.5 mit dieser Korrektur sollte in den nächsten Stunden verfügbar sein.
Und an dieser Stelle auch noch einmal ein großes Dankeschön an dich und natürlich an alle anderen, die PoolControl testen, Rückmeldungen geben, Logs bereitstellen und auch bei solchen hartnäckigen Fehlern dranbleiben.
Gerade dieser Fall zeigt ziemlich schön, wie wertvoll solche Rückmeldungen sind. Ohne deinen Test mit dem Diagnose-Skript hätten wir zwar einige andere echte Schwachstellen gefunden und behoben – aber der eigentliche Fehler, wegen dem wir ursprünglich angefangen hatten zu suchen, hätte sich weiterhin sehr erfolgreich vor uns versteckt. 😉
Vielen Dank für deine Unterstützung!
-
Hallo Dennis,
erst einmal vielen Dank, dass du das kleine Diagnose-Skript so schnell ausprobiert und mir die Aufzeichnung zur Verfügung gestellt hast.
Die Daten daraus waren für mich mehr als hilfreich. Ohne diesen detaillierten Mitschnitt hätte ich diesen Fehler vermutlich noch sehr lange gesucht – oder vielleicht überhaupt nicht gefunden. Im normalen Log waren Ursache und Folge einfach nicht eindeutig genug voneinander zu unterscheiden.
Mit dem Diagnose-Skript konnte ich zum ersten Mal ganz genau sehen, was beim Abschalten passiert: Auto-PV hatte die Pumpe korrekt gestartet, ausreichend PV-Überschuss war vorhanden und auch die Haltebedingung war erfüllt. Trotzdem kam der Ausschaltbefehl direkt aus PoolControl. Die HmIP-Steckdose war damit endgültig aus dem Verdacht raus – sie hat nur brav das gemacht, was PoolControl ihr gesagt hat.
Danach ließ sich der eigentliche Übeltäter finden. 😉
PoolControl besitzt für seine verschiedenen Helper bewusst eine Art Zuständigkeits- und Vorrangsteuerung. Vereinfacht gesagt soll jeder Helper wissen, wann er die Pumpe steuern darf und – mindestens genauso wichtig – wann er die Finger davon lassen muss.
Einer hat sich dabei allerdings ein wenig danebenbenommen: Solar Extended.
Solar Extended hat vollkommen richtig erkannt, dass im Modus Auto-PV gerade nicht seine Stunde geschlagen hat. Anstatt sich danach aber einfach zurückzulehnen und Auto-PV seine Arbeit machen zu lassen, hat er sinngemäß gesagt:
„Ich soll die Pumpe gerade nicht einschalten? Na gut, dann mache ich sie eben aus.“ 😄
Genau das war der Fehler.
Dadurch konnte Solar Extended bei seinem nächsten Durchlauf eine von Auto-PV korrekt laufende Pumpe wieder ausschalten – obwohl Auto-PV weiterhin ausreichend Überschuss erkannt hatte und die Pumpe ausdrücklich weiterlaufen lassen wollte.
Das erklärt auch, warum ich das Problem auf meinem eigenen System nicht reproduzieren konnte: Ich verwende die normale Solarsteuerung. Du verwendest Solar Extended – und genau in dieser Kombination mit Auto-PV lag der Fehler.
Ich habe das Verhalten inzwischen gezielt in einer Testumgebung mit deinen Werten nachgestellt und konnte die Abschaltung reproduzieren. Anschließend wurde die Zuständigkeit von Solar Extended korrigiert und derselbe Test erneut durchgeführt. Auto-PV bleibt jetzt unangetastet. Gleichzeitig wurde geprüft, dass Solar Extended im normalen Automatikmodus weiterhin wie vorgesehen die Pumpe ein- und ausschalten kann.
Die Version 1.4.5 mit dieser Korrektur sollte in den nächsten Stunden verfügbar sein.
Und an dieser Stelle auch noch einmal ein großes Dankeschön an dich und natürlich an alle anderen, die PoolControl testen, Rückmeldungen geben, Logs bereitstellen und auch bei solchen hartnäckigen Fehlern dranbleiben.
Gerade dieser Fall zeigt ziemlich schön, wie wertvoll solche Rückmeldungen sind. Ohne deinen Test mit dem Diagnose-Skript hätten wir zwar einige andere echte Schwachstellen gefunden und behoben – aber der eigentliche Fehler, wegen dem wir ursprünglich angefangen hatten zu suchen, hätte sich weiterhin sehr erfolgreich vor uns versteckt. 😉
Vielen Dank für deine Unterstützung!
@DasBo1975 Super, vielen Dank. Es sieht tatsächlich so aus, dass es aktuell so funktioniert wie es soll. Ich werde das weiter beobachten und Info geben.
Vielen Dank für die immer weitere Entwicklung des Adapters.
-
@DasBo1975 Super, vielen Dank. Es sieht tatsächlich so aus, dass es aktuell so funktioniert wie es soll. Ich werde das weiter beobachten und Info geben.
Vielen Dank für die immer weitere Entwicklung des Adapters.
@DasBo1975 Super, vielen Dank. Es sieht tatsächlich so aus, dass es aktuell so funktioniert wie es soll. Ich werde das weiter beobachten und Info geben.
Vielen Dank für die immer weitere Entwicklung des Adapters.
Das freut mich doch schon mal zu hören
-
@dasbo1975,
wie hast du das mit dem Frostschutz geregelt?
Hält der Frostschutz die Temperatur des Beckens auf +2° oder berücksichtigst er auch Wasserleitungen die teilweise schneller gefrieren als das größere Becken? -
@dasbo1975,
wie hast du das mit dem Frostschutz geregelt?
Hält der Frostschutz die Temperatur des Beckens auf +2° oder berücksichtigst er auch Wasserleitungen die teilweise schneller gefrieren als das größere Becken?@dasbo1975,
wie hast du das mit dem Frostschutz geregelt?
Hält der Frostschutz die Temperatur des Beckens auf +2° oder berücksichtigst er auch Wasserleitungen die teilweise schneller gefrieren als das größere Becken?Hallo Claus,
ich habe den Frostschutz bewusst nicht an der Beckentemperatur festgemacht, sondern an der Außentemperatur.
Sobald die Außentemperatur den eingestellten Frostschutzwert erreicht bzw. unterschreitet, wird die Umwälzpumpe eingeschaltet. Es geht also nicht darum, das komplette Becken auf z. B. +2 °C zu halten, sondern darum, bei Frostgefahr das Wasser in Bewegung zu halten und damit auch die Leitungen und wasserführenden Anlagenteile mit einzubeziehen.
Die Rohrleitungen selbst werden dabei allerdings nicht separat temperaturmäßig überwacht. PoolControl reagiert auf die Außentemperatur als Auslöser für den Frostschutz.
Die zusätzlichen +2 °C sind nur der Abstand zum späteren Abschalten. Wenn der Frostschutz zum Beispiel bei +2 °C anspringt, wird er erst wieder beendet, wenn die Außentemperatur ungefähr +4 °C erreicht hat. Damit soll verhindert werden, dass die Pumpe ständig an und aus schaltet, wenn die Temperatur genau um den Grenzwert herum schwankt.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden