🚨 Partition Layout Change
Coming from firmware version 2024.06.03 or older *1), you cannot upgrade to this release (or any future release) by performing an over-the-air (OTA) update using the web interface! Read and follow the upgrade instructions, where additional information is available as well.
If you upgraded to version 2024.08.18 or newer already *2), you should be good to perform an OTA update using the web interface (unless you are using the generic_esp32_4mb_no_ota
firmware variant).
*1) Technically: If you are still using the "old" partition layout where the sketch size is only 1,920 kB. See Info -> System
in the web UI to know your current sketch size.
*2) Only when upgraded using the respective .factory.bin
image over a wired connection to the ESP32, such that the partition layout was actually updated alongside the firmware.
🚀 Features
- Feature: Implement W5500 support
- Feature: Add support for HERF 1 channel inverters
- Feature: ESP heap and temperature details on MQTT and HASS (#1242)
- Feature: DPL: Honor battery-provided discharge power limit (#1198)
- Feature: extend battery discharge limit support (#1245)
- Feature: Support for SBS Unipower batteries (#1199)
- Feature: Inverter radio statistics (rx/tx statistics)
- Feature: Allow reset of radio statistics via mqtt
- Feature: Allow reset of radio statistics via WebApp
- Feature: Publish Radio statistics to home assistant
- Feature: Publish YieldTotal, YieldDay and Power of all inverters to Home Assistant
- Feature: rxen/txen support for RS485 transceiver for SDM power meter (#1269)
- Feature: parse additional Pylontech CAN protocol fields (#1213)
- Feature: Add syslog logger (#1267)
- Feature: Show RSSI of last received packet in radio stats
- Feature: show task details in system info view
- feature: Add support for native pytes CAN protocol (#1196)
- Feature: show "Smart Battery Sense" temperature in web UI (#1292)
🐛 Fixes
- Fix: HTTP power meter custom port (#1333)
- Fix: generic_esp32_8mb firmware did not boot
- Fix: don't republish MQTT powermeter data to MQTT (#1250)
- Fix: WebApp was not reloaded after firmware update
- Fix: Wrong topic in home assistant auto discovery for maxalloc and minfree
- Fix: Saving DTU config values just returned "Values are missing"
- Fix: Unable to set CMT transmit power in WebApp
- Fix: Restart was triggered before all website data was sent
- Fix: typo in HASS auto-discovery metadata for heap stats (#1274)
- Fix: cs_ena_posttrans calculation
- Fix: Only count RF RX packets when packets where sent
- Fix: avoid deprecated setAuthentication() to fix memory exhaustion
- Fix: force websocket clients to authenticate
- Fix: prevent unauthorized access to OnBattery websockets
- Fix: Add state_class to several Home Assistant sensors
- Fix: "Equal brightness" in LED settings does not work correctly
- Fix: default value for discharge current limit
- Fix: typo in Battery.cpp regarding discharge current limit
- Fix: Correct output of wifi disconnect reason code
- Fix: conversion from Kelvin to Centigrade (SmartBatterySense)
- Fix: German translation for Victron MPPT load output
- Fix: comment in pio-scripts/patch_apply.py
🌎 Web Application
- webapp: Update dependencies
- webapp: update dependencies
- webapp: Update dependencies
- webapp: Upgrade tsconfig node18 to node22
- webapp: Parse version string event if update search is not allowed
- webapp documentation moved as well
- webapp: use shell=True in autocompile script
- webapp: Update dependencies
- webapp: Fix html error in eventlog
- webapp: autocompile script: use portable subprocess
- webapp: autocompile script needs to run yarn within webapp dir
- webapp: switch to Node.js v22
- webapp: autocompile script: changes package.json triggers build
- webapp: Update dependencies
- webapp: Fix data type for all range inputs
- webapp: Update dependencies
- webapp: Apply auto format
- webapp: Update dependencies
- webapp: Update dependencies
- webapp: optimize syslog settings
- webapp: Update dependencies
- webapp: Update dependencies
- webapp: Update dependencies
- webapp: Fix eslint issues
- webapp: address eslint issues
- webapp: pin assignment: hide unsupported pins
- webapp: Update dependencies
- webapp: Update dependencies
- webapp: Update dependencies
- webapp: Enable horizontal scrolling for battery view on small screens (#1324)
📚 Documentation
🛠 Under the hood
- Add serial prefix 1410 to HMS_2CH inverters
- Output WiFi disconnect reason in console
- Upgrade arkhipenko/TaskScheduler from git #testing to 3.8.5
- tailor issue templates to OpenDTU-OnBattery
- bug report: allow to select non-release GitHub build
- issue template: asks for firmware variant
- remove test_build.yml: unmaintained and redundant
- changelogs: group webapp-related changes
- actions: consistently use checkout@v4
- actions: use setup-node@v4 as v3 causes warning
- actions: fix a typo
- actions: switch to node version 20 for linting
- actions: run yarn prettier to check web app formatting
- format BatteryAdminView changes introduced by #1245
- actions: enable corepack to use fixed version of yarn
- Github Action: Update node version from 20 to 22
- Merge remote-tracking branch 'tbnobody/master' into development
- Publish ESP heap and temperature details on MQTT
- Publish temperature only if its not NAN
- Added icon to radio statistics
- Decrease restart delay to 1 second
- actions: prevent workflows triggering twice
- Optimize MQTT subscription handling
- Move inverter housekeeping tasks inside the InverterAbstract class
- MQTT Hass: Change char* to String&
- MQTT Hass: Rename caption parameter to name
- MQTT Hass: Change parameter order for publishInverterSensor
- MQTT Hass: Change parameter order for publishDtuSensor
- MQTT Hass: Make publish methods static
- MQTT Hass: Change parameter order for publishDtuBinarySensor
- MQTT Hass: Change parameter order for publishInverterButton
- MQTT Hass: Change parameter order for publishInverterNumber
- MQTT Hass: Harmonise parameter names
- MQTT Hass: Remove no more required checks
- MQTT Hass: Move publishBinarySensor logic into separate method
- MQTT Hass: Reorder binary sensor methods
- MQTT Hass: Move publishSensor logic into separate method
- MQTT Hass: Move yield into the publish method
- MQTT Hass: Add device_type and category to publishInverterBinarySensor
- MQTT Hass: Reorder defines
- MQTT Hass: Move serialization and allocation check into own method
- MQTT Hass: Append dtu prefix topic for each single sensor
- MQTT Hass: Implement category as enum instead of String
- MQTT Hass: Implement device class as enum instead of String
- MQTT Hass: Implement method to add common metadata to json output
- Remove unnecessary CMT SPI inversions
- Remove unnecessary delays
- Add SpiManager library
- Optimize CMT FIFO access
- Change cmt_spi3 implementation from C to C++
- Add Arduino SPI translation
- Use SpiManager for nRF, CMT and W5500
- Use shared SPI bus for CMT and W5500
- Only use a single SPI device for CMT
- Slight adjustments to github bug_report template
- Upgrade github actions/checkout to v4
- GitHub Build Action: Automatically generate littlefs image
- Simplify network callback handling
- Simplify inverter handling
- Merge branch 'pr2306' into dev
- Apply license headers and automatic code formatting to SpiManager
- Apply automatic code formatting
- Added device profile for OpenDTU Fusion v2 PoE
- increase chunkSizeWarningLimit for webapp build (#1287)
- issue template: adjust all remaining occurences of "OpenDTU"
- issue template: fix typo
- issue template: fix phrasing
- issue template: turn environment input into dropdown
- Rename NetworkEventCb to DtuNetworkEventCb to prevent further upgrade issues
- Add default values for ethernet pins in case they are not defined for a specific board
- Take care of different signature of ETH.begin method in Arduino Core 3.x
- Added required include to work with IDF 5
- prevent actions from running twice when pushing to PRs
- issue template: fix typo
- Add connection check for W5500 before full initialization
- Prevent warning on GPIO ISR service registration
- Adjust name of OpenDTU Fusion v2 PoE build environment
- Add device profiles for OpenDTU Fusion v2 PoE with displays
- Remove icon because device_class is set
- Remove unused DEVICE_CLASS_TEMP
- Rename NetworkEventCbList_t to DtuNetworkEventCbList_t for further upgrades
- Replace format strings by platform independent macros
- Remove EMAC related code for devices that don't have one
- Initialize the last rssi value with -127 instead of 0
- Huawei CAN: use SpiManager to claim SPI bus (#1311)
- welcome to hoylabs: update README and URLs
- cpplint: use cpplint version 1.6.1 for now
- Don't set TX timeout to 0 anymore for HW/USB CDC
- Hotfix to not use DMA on SPI3 of ESP32-S2
- massage file handling (pio-scripts/patch_apply.py)
- Upgrade ESPAsyncWebServer from 3.1.2 to 3.2.0
- Upgrade ESPAsyncWebServer from 3.2.0 to 3.3.1
- Upgrade ESPAsyncWebServer from 3.3.1 to 3.3.7
- Upgrade ESPAsyncWebServer from 3.3.7 to 3.3.11
- Upgrade ESPAsyncWebServer from 3.3.11 to 3.3.12
- Upgrade ESPAsyncWebServer from 3.3.12 to 3.3.13
- Upgrade ESPAsyncWebServer from 3.3.13 to 3.3.14
- Upgrade ESPAsyncWebServer from 3.3.14 to 3.3.15
- Upgrade ESPAsyncWebServer from 3.3.15 to 3.3.16
- Upgrade olikraus/U8g2 from 2.35.19 to 2.35.21
- Upgrade olikraus/U8g2 from 2.35.21 to 2.35.27
- Upgrade olikraus/U8g2 from 2.35.27 to 2.35.30
- Upgrade olikraus/U8g2 from 2.35.30 to 2.36.2
- Update espressif32 from 6.8.1 to 6.9.0
- Update bblanchon/ArduinoJson from 7.1.0 to 7.2.0
- avoid deprecated containsKey() method of ArduinoJson 7.2.0
- Merge upstream tag 'v24.9.26' into development
- Merge upstream tag 'v24.9.30' into development
- Merge upstream tag 'v24.10.6' into development
- Merge upstream tag 'v24.10.15' into development
- Prepare Release 2024.10.22
- actions: use RELEASE_TOKEN to create a release