[APP][Pro] Homewizard πŸ§™β€β™‚οΈ

Will investigate when I am back from my vacation.

Proost, have a Nice holliday

@Jeroen_Tebbens Enjoy your vacation.:+1:t2:

@micke_011 thank you for your donation :smiling_face:

:memo: Latest Updates (v3.15.37) test/beta

Battery Policy β€” PV Forecast & Learning

  • Yield-factor normalisation (v1 + v2) β€” Yield factors learned while radiation_bias_factor > 1.5 was active were systematically under-calibrated (biased radiation as baseline). One-time reset so they re-learn against unbiased radiation. v2 also resets the bias factor itself, which had been artificially inflated to the cap by the miscalibrated yield factors
  • (optional) Solcast moved to _updateWeather β€” Solcast forecast is now fetched on every weather update (including when policy is disabled), keeping the PV chart current at all times. If you have no Solcast API key it will stick to Open Meteo without adjustments.
  • Intraday PV scaling tuned β€” Lower learning weights for intraday correction; prevents overreaction to temporary deviations early in the day
  • Cycle recorded on dischargeβ†’charge transition β€” Battery cycles are now also recorded when SoC never reaches 0% (typical on PV-heavy days): trigger is the transition from discharging to charging once β‰₯ 0.3 kWh has been discharged

Battery Policy β€” Battery Mode Camera

  • Predictive modes visible in camera β€” In predictive mode (Homewizard Slim Laden active) modes were not recorded because the policy does not run. The slot interval now also records mode + SoC when policy is disabled, so switches between predictive_charge, predictive_discharge, predictive_zero and predictive_standby become visible in the Battery Modes webcam

Memory & Stability

  • Startup crash fix (v3.15.35) β€” homey.settings.set allocates ~30 MB V8 heap per call regardless of payload size. With multiple devices initialising concurrently, heap peaked at 70+ MB β†’ Memory Warning. All drivers now use a serialised write queue (8 s between writes). Rebuildable UI state (planning, explainability, weather) lives in _liveState in memory and is served via api.js β€” never written to homey.settings
  • Settings page live-state β€” Homey.get on the settings page now automatically merges in-memory live-state via a GET /getLiveState API call. Existing render code requires no changes
  • SDM230_v2 / SDM630_v2 polling spread (v3.15.36) β€” When multiple SDM devices are present, the first poll is spread across the polling interval to avoid simultaneous HTTP requests
  • Initial weather and policy deferred β€” Weather fetch deferred to T+30 s, first policy check to T+45 s after startup. Prevents a cumulative heap peak of 70+ MB during the onInit cascade on setups with many devices
  • Device-type counter in memory log β€” [MEM] log line now shows instance counts per driver type (energy_v2=2 plugin_battery=1 …) to speed up triage of crashes from users with different device configuration
  • Heatlink fix β€” User reported issue heatlink not properly detecting target temperature changes (due to long polling interval)

:memo: Latest Updates (v3.15.38) test / beta

Battery Cycle Tracking

  • Cycle accumulators survive restarts β€” _cycleKwhDischarged, _cycleRevenue and _cycleCost are now persisted to device store (alongside _costEnergy/_costAvg). Previously a restart during an active discharge silently reset all accumulators to zero, causing the evening discharge to be missing from cycle history and ROI tracking
  • RTE learning cycle fix β€” Balance guard lowered from 1.45 β†’ 1.40. The old threshold (1.45) meant the minimum measurable RTE at guard-passage was 1/1.45 = 68.9%, just below the 70% floor β€” so every measurement that barely passed the guard was immediately discarded. With 1.40 the minimum is 71.4%, ensuring a valid measurement every time the guard passes

Battery Policy

  • Negative price β†’ always charge to full β€” When spot price is negative, the mapper now returns to_full regardless of PV state. Charging at negative prices earns money, so PV-mode guards (zero_charge_only, pvStoreWins) are bypassed

UI

  • Learning status always current β€” learning_status is now written on every _updateWeather call (hourly), not only when the optimizer runs. Previously, with policy disabled or in predictive mode, the Leerdagen/coverage/PV-accuracy pills in the settings UI would show stale values

41cca1ef-9cf1-4569-bb4c-6c0893c8ebc0
If I change my heatlink temperature automatically or manually, it will be adjusted first and then reset back to the old temperature. And then he goes to the fixed value.

Use test version. Heatlink fix has been added there.

Hey Jeroen, quick questionβ€”I can’t figure out how to change the P1 meter to the 3-phase meter data in the battery policy. Which repair tool should I be using for this?

No support added for 3 phase. Not sure even why it needs 3 phase as battery policy should act on overall self usage and if that is 1 or 3 phases that doesn’t matter. The battery policy looks at grid usage and batteries and your solar.

Installed the test version.
Tested it and for now it is working.
Thanks.

Minor tweak suggestion; there is a mix of English/Dutch in the configuration settings, my Homey is configured in English and some tabs are in Dutch.

Yes am aware, yet HW plugin battery is mostly dutch users at this moment. But I’ll put it on my to do list.

Hi Jeroen, as of yesterday the Battery app remains in stand-by although there is a large export to the grid.

=== HomeWizard Battery Policy β€” Support Info ===
Tijdstip: 2026-04-30T08:39:17.054Z

-– Batterij β€”
Aantal: 3 Capaciteit: 8.06 kWh
Max laad: 2400W Max ontlaad: 800W
SoC nu: 9% Modus nu: standby

-– PV β€”
Capaciteit: 6500W Geleerde slots: 56/96
PR instelling: 0.75 PV actief: true

-– Instellingen β€”
Beleidsmodus: balanced-dynamic Tarieftype: dynamic
Strict min/max: true
Max laadprijs: €0.120 Min ontlaadprijs: €0.160
Min SoC: 0% Max SoC: 100%
EfficiΓ«ntie: 0.78 Cycluskosten: €0.075/kWh

-– Laatste policy run (v3.15.52) β€”
Tijdstip: 2026-04-30T08:36:58.369Z
Prijs: €0.133 SoC: 9% Huidig verbruik: 0W
Scores: laden=0 ontladen=0 behoud=0
Beslissing: standby β†’ standby
Break-even: €0.000 Gem. kostprijs: €-0.024
Optimizer: standby
Prijsrange 12h: €0.088 – €0.355

Yes there is a bug in the test version that blocks the planning. Where it should either charge or discharge but it doesnt. I also have another user facing same issues.
I am currently a bit blocked fixing as I am part of the closed beta for Homewizard SlimLaden so my battery and P1 set up is not controlled by the code so hard troubleshooting/fix the problem.
For now turn the battery policy off and make it zero or perhaps you have your own flows to put the battery in your desired state. When I got the fix done I will communicate.

Will do, Thanks and succes with testing.