0.315.0
Mesh-LLM/mesh-llm0.315.0Aug 31, 2026by andig
AI Summary
Major release adding support for various energy devices including heat pumps, inverters, and currency support, alongside breaking changes to device classes and MQTT presets.
Key Highlights
- Added 1SINQ OneKey heat pump and SENEC.Connect cloud API support
- Added BYN, UAH, RUB, and KZT currencies to the list
- Added new device class for feed-in limitation (BC)
- Added Solax X1/X3-HAC CurrentLimiter and Solplanet hybrid inverter support
- Experimental Remote Access feature promoted to stable
Breaking Changes
- Curtailment devices: new device class for feed-in limitation (BC)
- Mqtt: always render preset timeout (BC)
New Features
- 1SINQ OneKey heat pump support (sgready via MQTT)
- BYN, UAH, RUB, and KZT currency list
- CHINT ECH10K-TH-EU inverter
- SENEC.Connect cloud API
- Solplanet hybrid inverter (Modbus TCP)
- Energy Price Forecast regions and API keys
- Sungrow curtailment and return energy
- Solax X1/X3-HAC CurrentLimiter
- Sonoff switch socket charger
- Zendure SolarFlow 800 Pro battery control
- openWB Pro return energy
- Škoda MyŠkoda public API vehicle
- UI date format preference
- EEBus disablepowerlimiter option
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)