0.315.0
getlago/lago0.315.0Aug 31, 2026by andig
AI Summary
Adds new device integrations (inverters, EV chargers), currency support, and UI customization, alongside security and stability improvements.
Key Highlights
- New device integrations (SMA EV Charger, Solplanet, StecaCharger, etc.)
- Currency additions (BYN, UAH, RUB, KZT)
- UI customization with custom themes and date format preferences
- Experimental features (Remote Access) marked as stable
Breaking Changes
- New device class for Curtailment devices (feed-in limitation)
- MQTT always renders preset timeout
New Features
- 1SINQ OneKey heat pump integration
- Solar inverter integrations (CHINT, Solplanet, Afore)
- Currency list expansion
- UI date format preference
- API DoS protection
- Battery control improvements
Full Release Notes
## Changelog ### Breaking Changes 🚨 * 8661c66fc75b930c7470f5b0c478f537b9327c9b Curtailment devices: new device class for feed-in limitation (BC) (#32416) * 0812904b489219bed3f64743de2c144f657401d7 Mqtt: always render preset timeout (BC) (#33084) ### New Features 💫 * 7c0ddf1828e131950c1266ab56086005552a651d Add 1SINQ OneKey heat pump (sgready via MQTT) (#33069) * 7dd4007cfa5d4496861a728a95aaaf0c0eb3e8e9 Add BYN, UAH, RUB and KZT to currency list (#33259) * dfad373ab30762049185dbee52af42e3c15e6a05 Add CHINT ECH10K-TH-EU inverter (#32858) * 36614fea4634c81e412c5e54a88660938ebea6ab Add SENEC.Connect cloud API (#33029) * bc38df1ed6d80f1459da2becda963189af93f8ea Add Solplanet hybrid inverter (Modbus TCP) (#32888) * 9a87bd105e1b2db5712a508b02e825378754b6b3 Add StecaCharger (#32990) * c745672437a928731173bf305e522150a8e6d24d Afore hybrid: add RS485 (#32961) * 469ccb83ab1ea9b78a5bc7c2e3e590acd7b040c1 EEBus OHPCF: add disablepowerlimiter option (#33071) * 62cca5e885d8c452d18698497f53804909c48c04 Energy Price Forecast CO2: add regions (#33080) * f216a440e1e4a36f43a259f4ae0fd6f310e84777 Energy Price Forecast: add api key (#33081) * 8cf5a44a32eeb679c7a8b24a484036d5fd844ad1 Marstek: add discharge and optimise batterymode (#32571) * e7ab19d7ca25535087bf73c96e5df9479e6315dc SMA EV Charger: add setup instructions (#32862) * 7549beaf44f0d326d56e7f5c357cd3c5aaf84a13 Services: add sunspec/read for reading a point value from a device (#33230) * ea8e2a72c0522f51471891e40ff9f916902e5ada Site: add returnEnergy to aggregated battery state (#33241) * 887ec9ecd25396bb2fb487a0c1c723cfb348652a Solax X1/X3-HAC: add CurrentLimiter (#33181) * 8edf92a103e6ff0d90ee3b84ae577a4f83880a88 Sonoff: add switch socket charger (#33058) * 45f49aac526acc65ff61456cf8aff85b52b7c96e Sungrow: add curtailment (#32976) * 56eccb08ea92fb1a66ee349c229c15b4c2b0a55d Sungrow: add grid and battery returnenergy (#33129) * 28bb5ba859d2ece59056dbfd77d37ce0a074fd04 Tariff: add Energy Price Forecast regions and currencies (#33051) * fb35c0905fc04856fd2d99c1d8aefdb4d49255ed Templates: add ErrNotAvailable default to battery mode switches (#33023) * 0ae85295dcb2025a3dd216eb97d9d237090655fd Templates: add http service for parameter choices (#32951) * 63c8265a9b016176b7be27f03d088aeef36767be Templates: add integration provider link (#32008) * a8c4dfd3722e3ae219102ed56a373665bc3c811a UI Customize: add custom-theme flag for default theme (#33042) * 37d8aecbb2ff73f28d5780f52e44b0c186cf73ca UI: Add date format preference in user interface settings (#29321) * a66fa2fa04afa2c7fdb83af4d9d466200b369e40 Youless: add return energy (#33155) * be4f4b8ce5ec51a5d52c022620307cab73b54765 Zendure SolarFlow 800 Pro: add battery control (#33272) * f693454502a36cfb64a6d72e7f826e92af9e9e78 openWB Pro: add return energy (#33216) * fb120252a072cb3d72689526c5e18685bbd33c18 Škoda: add MyŠkoda public api vehicle (#33234) ### Experimental Features 🧪 * 442113e9ea732db48e55733205c6a880bb00b4fb Remote Access: not experimental any more (#33148) ### Other Changes ☀️ * 769a6a1aa545b143c781754efc22ececd0bda233 API: bound jq evaluation on /api/state against unauthenticated DoS (#33028) * 8905c2777baf2d0045672bd19039d40cdbf7f883 About modal: powered by footer for branded installations, update status badge (#33233) * e7b694e550176d66694d3e50afc385b7d58327be Afore: remove Modbus TCP option (#32964) * 13db309c942b6c3ffe0bf1041aa054e0b0a33e79 Battery boost: resume from hold when limit is lowered (#32999) * 859c9056403dcd2627b3e6e8d35c43612c2e1ce5 Battery control: apply battery mode per battery and only on change (#32967) * 0d0815963cb819ea61809d022d2fa6d79cf39ed0 Charging plan: show strategy settings without dynamic tariff (#33168) * 9f70a185011645238de0d7bba1f55ac0e6f76418 Charts: prevent long-press text selection (#33012) * 7f33bb93174e51ce9a4a58b23556fc4e1bdf2c10 Config UI: hide disabled vehicles from loadpoint default-vehicle dropdown (#33125) * 1a0a05c9add15dfeb60555872ce049d51825c905 DaheimLaden: improve error handling (#33010) * 063088c0702e76dca69f6bb96897528211216072 Demo tariffs: increase forecast to 5 days (#33174) * c28f2ff62319eb3d3b754946c3e8fd7987d2938e Digest auth: reuse challenges across requests (#32842) * 490f209e57287bb64b87f5f6a6687baac1fd3c5c EEBus: apply the configured failsafe limits consistently (#33288) * d379b7802e54acb269a1898b040d97b691b70f44 EEBus: clamp the curtailment percent to the documented maximum (#33300) * 829f11f23ec7ae7ae77c42a6af8864e23ea80f0f EEBus: don't deny pairing while devices are still being configured (#32966) * eeb2f593bf54f09fd564d6dbdd23fe6a2a5e0122 EEBus: keep pairing requests pending while devices are being configured (#33046) * 27bbdce298459e0228aaf103935f348935749401 Energyflow: clip collapsed details to remove phantom scroll area (#33229) * e4e5c2db26acdc0c85d46d3b466df739eb542599 Enovates: verify EMS mode and use actually offered current (#33163) * 9beca9b22f1ceeaef04e697fa669097a4d63694c Go plugin: keep float parameters typed (#33162) * eec0a8f46cf964f10e6e5d0d4dd8ab5c325e7213 GoodWe: list ESA series under hybrid template (#32884) * 2b87fe2b1da173a25e171a08569002a85377e9d0 Grünstromindex: fall back to co2_g_oekostrom when co2_g_standard is null (#33164) * e24ec1a2c5ec1fb231e348901c9114f7d381ba6d History: keep charge and discharge apart in entity legend sums (#33299) * a565f2d85048679a8222ee20b57d04f75e6fd8a5 History: show both directions for all entities of a bidirectional section (#33335) * 6715711d49a290f51e2223afd3bcc262051aa0ce Home Assistant: auto-detect Supervisor instance and token (#33000) * f193eb199af4840a369d95564c8fab95e1fa8003 Home Assistant: link charge status docs (#33260) * dbe100b24bceff14b2aaa5c0b05d5a846185747b HomeWizard: support 1p kWh meters (#33293) * f6e6db9eae5f04fed4d1f1c42a060e5a7db59c37 Issue: remove obsolete number input spinner styles (#33006) * c314e8e838aaf4c7e45ea22d8ce0e0c03a7388a4 Keep permanent sentinel errors distinguishable (#33194) * ebe064ad973f5c66a09931f0f3c0a2d656911e4f Loadpoint: disable PV mode when idle integrated device lacks surplus (#33073) * c1067111e4870212e47db772360378987d015dde Loadpoint: don't reserve surplus when paused by feed-in priority (#33072) * 31591262487f7da1bd128b24bad98e5b8c1dba3c Loadpoint: ignore charge interruption during phase switch (#33109) * bf57d398c21c1a74a075459573e570616ed0dbfd Loadpoint: project continuous device min power shortfall into PV disable gate (#33075) * 72b7e270570241713dbda2c59421acc5d7dcc750 Loadpoint: sync charger phases on vehicle connect (#32962) * e2c59fc6e156cc259b884f929b538d8573eaa690 Meter (SunSpec): read max AC power from nameplate (#32732) * c1960b378a70e769adb88165fa5f1fd073bb3d23 Metrics: fall back to power integration when a meter loses its energy register (#33103) * 24498ad1f6c2d480af555f561de03b664c1d6c37 Modbus templates: share block reads (#32887) * b305af03e95cb09ce1e4de2771fca172437a5cf8 Nissan: switch to MyNISSAN OneID authentication (#33316) * af4d14f65c541c1cc9175dede34c4d73986c6b5d OCPP: keep websocket alive between heartbeats (#33099) * 6b94ac6b01cc9c4999b1d61273148228ecec9fe0 OneKey: make mqtt timeout configurable, default 90s (#33120) * 8abae0fd6888b3cc8e26a9f9d4426800ad492d43 OpenDTU: tolerate missing radio_stats in energy filter (#33279) * ba8596be961d6495dde98cb692e19a27d5583ab3 Optimizer chart: day boundaries with weekday at 00:00 (#32894) * 4cc75b1a45c730d36aa128c8406214c50f78f318 Optimizer: extend horizon to 48h plus end of day (#32893) * 5960e9fcfc2ab134d0f9612de901d70f54685b26 Optimizer: limit precondition demand to required charging duration (#33137) * bb6854b1edb9be1898e84479becfef40e67ff4e0 Optimizer: respect session energy limit when vehicle soc is unknown (#32895) * 8d425d3920afcbad7f4443eb3041a7f600800456 Phases: allow 1p scale-down when the loadpoint never disables (#33214) * 748d36d1306aef31977691207d4120d6cb98400e Phases: disable instead of scaling down to 1p without sufficient surplus (#32991) * 4adbf141d616b7238f3baa3ecd454ce6cf34c6ac Provider auth: require authenticated session for OAuth login/logout (#33115) * d22b67fd183930d3c4654fbd3990dd83feafac01 Reapply "Optimizer: respect session energy limit when vehicle soc is unknown (#32895)" * fa6f757618556cfad5abffdd16ef8519d5d42d13 Revert "Optimizer: respect session energy limit when vehicle soc is unknown (#32895)" * 6d276526a6fdc334b3d9514770b8c38fbd431aae Revert "PV: reserve only min power for higher-priority loadpoints starting up" (#32947) * f7b3f394f3a2ac74daaf22af2355c79579cf04a1 Shelly: no return energy register on gen1 relay and plug meters (#33111) * 47fd73be3393ed7410d5567ec30b29b6c9b06437 Site: feed the optimizer a trailing percentile solar scale (#32849) * a578893eddf20cb47a7a0d93f8a0d388c30fbf8f Site: separate measurement from power calculation in update cycle (#32770) * b15f81a85ac0b369e649f297bdf581b1ceae52c6 Soc: extrapolate from charged energy when vehicle api is unavailable (#33122) * 41319dfa39b164a11154450e998337dcd32fb3ab SolarMax MAX.STORAGE: drop the whole-kWh energy register (#32986) * f4b289f745e84e121814c3d35487becac9416043 Sponsor: include device serial in hardware check metadata (#32927) * 5120f264c6e6aa36b13a08637de6d1994364f9d1 Sungrow: remove coarse energy reading from inverter template (#33321) * 1b909edd9b1d5ca3082b911aaa93d4c9069483f7 Sunspec: serialize access to a shared device tree (#33014) * de0bac2bc840b43cb86bf9569c91f6fb20df9fba Sunspec: share block reads across values on the same connection (#33011) * defe9403de9cd81d29d6c773f93d8e95d9be1c8b Tariff (solar): resample sub-slots along the source curve (#33105) * 9600fc5b9f2582c62216b5d99dbaeb72a46a5feb Tariff: make Energy Price Forecast cacheable (#33049) * de3f8995cdf2b8a10745b7221c58031ae3d1764c Templates: support class-local include files (#32871) * 8ccd72e1412c3a0289d2829a89c821e4bdbd81e2 UI: show inactive phases as dots in phase indicator (#33173) * cba812d884bab26c34ba0865f616a4c08afa4e06 Vehicle settings: compact rows layout (#33169) * adfbd057b0c137842eb19eadc7bf3404afa007c8 Vehicle: don't instantiate disabled vehicles (#32919) * fbbe12a0ec2c898587fe098da7104da29c7da7ca Voltie: only offer phase switching where the power board supports it (#33070) * d10ea1985e68978573e31a3082928d58cbaa6b80 Zaptec Go 2: disable phase switching with APM active (#33255) * 80a6231a118c8c7a5cfd8f3a06b8e7d2cee11db0 [BUGFIX] Update url / backup example curl command (#32984) * 0be2e0d803551125f9bd175e9654972e75de47db api: let Identify return multiple identities (#32949) * 1ea9c3dc339b4a7d2b67d2d981c24ed009daef48 fox-ess-h3-smart: remove limitsoc so batterymode is applied (#33325) * 7d9fe8c997a5c64bb3c8db446e8d4bf6a17a3fd3 my-PV meters: skip TLS verification for local data.jsn requests (#33003) * f43499ea979282f95bf7bb0857b4b64af17a7c8f pvnode: resample against the preceding interval, not the following one (#33102) * 1416134c1d85a4ed97ac28ace7d1e130f1ede591 pvnode: revert to end-labelled interval resampling (#33133) * fd095120d84d1458fd69affc720a88af3f68ed1e warp-ws: use wss when charger URI is https (#33184) ### Bug Fixes 🐞 * e8b547737389eda23666e31ac77b6390ee168452 Cardata: fix retrying failed container setup (#33243) * 7df861f66ef46f97185b772aa0a92f1e005516b6 DaheimLaden: fix firmware init (#33032) * 022171ffdeb86a6126818c1d0e9b68c30b727aba Deye 3p hybrid: fix curtailed script for whole-number limits (#33161) * 48c125e93b1cb4443d3e2a0f0c3fcec48fe1d050 Deye 3p hybrid: fix energy scaling for HV pre-1098 firmware (#33074) * cc92f3938a9513b370033c271f9dba9452aa3a95 Fix site.pvPower estimation for battery without pv (#32930) * b3db9e93fea0bd6fdb20ca3767dbb51cff30430a Fix tariff API route not matching co2 (#33166) * 64d48e58005f67211319db140883c254b1eb2323 Loadpoint: fix config error for disabled loadpoints (#32880) * b5907192f563fcfca8b62f3e56fc37ef78e29669 SunEnergyXT 500: fix battery control (#32866) * 9034f453555c4a0e99c2ccf7bd952581bd12e5d8 Tesla Powerwall Fleet: fix template not selectable in ui (#32934) * 10c646e6685c825ff6940ef529e40d08927cd62f UI: fix blurred energy flow bar labels in Safari (#33144) * 1defa5f7fc078ef270ed7f4fdd404ae5cf4b530f UI: fix docs links after docs site restructuring (#33160) * 99d9adb37f8a91d02c2a177acde06d028bb71d56 Zaptec: fix nil pointer panic when Capabilities observation is missing (#33304) * 20058f6e0d360c0fcccfb69898ad7c584439a406 Zaptec: optional fix for auto-charging (#32996)