Repository navigation
Modelling plug-in solar that's invisible to the load CT #5067
Replies: 1 comment 1 reply
A good question, thanks. We'll probably get a few more people adopting a similar setup as plug in solar gets more affordable. Are you planning on creating new template PV and Load sensors or are you planning on just adding the additional sensor to the pv_today and load_today lines in apps.yaml. Creating new template sensors would avoid this. In terms of logic it makes sense.
Yes predbat will model this PV as available to charge the battery, but what will happen in practice is that the extra PV will satisfy house load first and you'll only get a small amount exported. It's only going to be on peak solar generation that this will noticeably happen. Predbat re-calculates the plan every 10 minutes, there's quite a lot of variation of solar generation vs forecast so this will just wash out as part of the general 'forecasts are never 100% accurate' |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Modelling plug-in solar that sits downstream of the load CT — is pv_today + load_today the right approach?
System overview
Software
purge_keep_days: 30Inverter / battery
has_reserve_soc: false— no writable reserve register on this modelsupport_discharge_freeze: false— charge freeze only, handled by a custom automationSolar PV (existing)
Solar PV (being added)
Forecasting
solcast_poll_hours: 6.0load_ml_enable/load_ml_source), 28-day training window, 90-day on-disk history,temperature_enable: trueTariffs / grid
num_cars: 0)Load accounting (relevant to the question below)
load_todayissensor.lux_new_home_consumption_daily, which is no longer a raw LuxPower daily register. Those froze mid-day for hours while still reporting fresh polls, which Predbat's gap-fill logic flagged as ~24 zero-load periods a day. It's now anintegrationplatform sensor (trapezoidal,max_sub_interval: 5min) over the live power formula, feeding a daily-cycleutility_meter, mirrored back to the original entity_id so apps.yaml needed no change.iboost_enable: false, butiboost_energy_todayis mapped tosensor.plus1pm_immersion_energywithiboost_energy_subtract: true, so Predbat subtracts real measured diverter energy from historical load for ML accuracy. That subtraction works independently ofiboost_enable.Other custom sensors
sensor.lux_battery_soc_correctedandsensor.lux_soc_max_kwhare template sensors per the LuxPower inverter setup docsautomation.luxpower_freeze_charge) wired tocharge_freeze_service, since the hardware has no discharge freezePredbat mode
best_soc_min0.0kWh,best_soc_keep0.8kWhmetric_battery_cycle0.0p,forecast_plan_hours32,rate_low_threshold0.8 (fixed)Question
I'm adding an 800W plug-in solar microinverter that plugs into a 13A socket, so it's downstream of the CT clamp Predbat reads PV from. Its output is invisible as generation and instead shows up as a drop in measured house consumption.
My plan is to add its daily generation sensor to both
pv_todayandload_today, so that load is grossed back up to its true value and total PV is correct, keeping the energy balance intact. The Solcast side is handled by raising the house site's capacity from 1.0kW to 1.6kW rather than adding a third site.The EcoFlow integration gives power rather than a cumulative counter, so I'd build the daily kWh sensor the same way as the load sensor above — integration platform into a utility_meter — rather than trusting a cloud-side daily total.
Is that the right approach? The one thing I'm unsure about is that Predbat will model this PV as available to charge the battery, which is only indirectly true — surplus at the meter just exports rather than reaching the LuxPower directly. Is that worth worrying about, or does it wash out in practice?
Sanitised apps.yaml below — API keys, account/meter IDs, Solcast site IDs, postcode and the inverter serial have all been removed, so entity IDs read
sensor.lux_*where they'd normally carry the serial.apps.yaml
All reactions