Skip to content

Releases: dalathegreat/Battery-Emulator

v12.3.0

Choose a tag to compare

@dalathegreat dalathegreat released this 14 Aug 09:25
b319899

What's Changed 📦

DFRobot Edge101

This release adds support for the new "DFRobot Edge101" hardware.

image

ESPNow v2

The release also updates the ESPNow protocol for external displays from v1 -> v2. External projects connecting to BE will need to update to the v2 protocol off ESPNow to continue functioning

General fixes

The release also significantly improves Wifi strength on multi-AP installs, lots of fixes for BYD Vehicle, Nissan LEAF and Tesla batteries, and significantly improves the MQTT-HomeAutomation integration. Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below before updating

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a version > v10.0.0 into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • BYD Vehicle: Improvement; Source BYD power limits and temperatures from raw CAN datastream for faster update rate by @demon1300 in #2718
  • Stellantis e-CMP: Triple battery support 🔋 🔋 🔋 by @dalathegreat in #2772
  • Nissan LEAF: Balancing status detection based on reported shunts by @nagyrobi in #2662
  • Nissan LEAF: Show detected vehicle generation on the main status page by @nagyrobi in #2794
  • Nissan LEAF: Fixed Hx value being unavailable on on ZE0/AZE0; exposed Hx over MQTT; add QC & AC charge count; remove BMS ID; faster startup; cosmetics by @nagyrobi in #2790
  • Tesla S/3/X/Y: Stop overwriting Tesla gateway message defaults with zeros on fresh installs by @ekholm in #2724
  • Tesla S/3/X/Y: Fix BMS signal values by @greenoem in #2807
  • Tesla Legacy: Allow deeper discharge on Legacy Tesla by @dalathegreat in #2814
  • Improvement: Add config option to allow tuning of charge limits (Ford/CMFA/Kangoo) by @dalathegreat in #2796
  • BMW iX, DTC: Add DTC 21F151 by @dalathegreat in #2815

Inverters :zap

  • Fronius: Add total energy amount & BMS temperature to BYD protocol registers by @malec1984 in #2781

Hardware 🤖

  • Added "DFRobot Edge101" new Battery-Emulator hardware support by @ngehrsitz in #2722
  • LilyGo T-2CAN: Move BMS Power to GPIO45 on "T-2CAN FD" to avoid pin conflict by @brynrichards in #2789

Connectivity :w

  • BETA: Streaming CAN logging over WiFi by @jonny5532 in #2769
  • ESPNow: Upgrade ESP-NOW from v1 to v2 by @nagyrobi in #2700
  • Wi-Fi: Log AP device connections by @ngehrsitz in #2787
  • Wi-Fi 🛜: Significantly improved signal strength on multi AP networks by @nagyrobi in #2797
  • Wi-Fi: UI and Logs enhancements around how Wi-Fi information is displayed by @nagyrobi in #2805
  • MQTT: Log publish failures once per outage, fix mislabelled event log by @nagyrobi in #2792
  • MQTT: Added HW name and SW version, mark emulator entities as diagnostic type by @nagyrobi in #2795
  • MQTT: HX value from Nissan LEAF available via MQTT by @nagyrobi in #2790
  • MQTT: Publish optional heap metric diagnostics for Home Assistant if user desires so by @nagyrobi in #2811
  • MQTT: Run Home Assistant autodiscovery only on demand and after firmware updates by @nagyrobi in #2803

Housekeeping 🧹

  • Safety: ⚠️ Make UPDATE events lower priority than ERROR ones by @jonny5532 in #2786
  • Library 📚 Update ESP32 to v3.3.11 by @dalathegreat in #2766
  • Improvement: Comment out logging for verbose MQTT errors and messages by @nagyrobi in #2767
  • Improvement: Calculate uptime strings without ctime by @ngehrsitz in #2771
  • Improvement: Make core time arithmetic width-deterministic (uint32_t) by @ekholm in #2709
  • Improvement: Fix two test-order dependencies, and make CI able to see them by @ekholm in #2785
  • Improvement: Change identify_build.py to generate a header instead of using defines by @jonny5532 in #2791
  • Improvement: Logging: Remove duplicate log entries and add syslog notice severity by @nagyrobi in #2798
  • Improvement: Performance; Gate time measurement macros on the profiling setting by @nagyrobi in #2802
  • Improvement: Sync settings-page defaults with boot defaults (6 mismatches) by @ekholm in #2697
  • Improvement: Link the status page title to the documentation site by @nagyrobi in #2812
  • Github: Add size report to job summary by @ngehrsitz in #2768
  • Github: Autodetect build version by @ngehrsitz in #2788
  • Github: Build speedup by removing compiler build, move werror to all builds by @dalathegreat in #2806
  • Unit test: Cover the contactor closing sequence, its startup inhibit and its fault latch by @ekholm in #2776

New Contributors

Full Changelog: v12.2.0...v12.3.0

v12.2.0

Choose a tag to compare

@dalathegreat dalathegreat released this 07 Aug 08:52
3d267b8

What's Changed 📦

🔋 This release adds support for new batteries: Volkswagen MQB support & MG 50kWh LFP support & Double battery MG Gen1 support

image

💥 This version also adds collision reset for Volkswagen MEB, removing the need to connect ODIS tool to perform collision clear!

image

⚡ BYD Vehicle batteries also no longer throw serious electrical leakage DTC error codes, with the introduction of the new iso-disable feature!

image

📜 DTC reading via More Battery Info is also added for Volvo SPA, and CMFA EV Platform

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below before updating

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a version > v10.0.0 into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • New battery 🔋 VW MQB Evo 2024+ based on MEB by @malec1984 in #2754
  • Volkswagen MEB: Implement BMS crash reset, ODIS no longer required to clear crashed batteries by @malec1984 in #2730
  • Volkswagen MEB: Optimize CRC8 calculation by @malec1984 in #2744
  • Volkswagen MEB: Optimize MEB HTML strings by @malec1984 in #2757
  • Safety ⚠️ Double/Triple battery setups now clamp power down to inverter sent value properly. Risk of exceeding battery limits without this fix! By @jonny5532 in #2739
  • Nissan LEAF: Under the hood changes to DTC reads by @nagyrobi in #2734
  • BYD Vehicle: Feature - Added turning off batteries own isolation testing by default, to avoid P1A0000 "Serious Electrical Leakage Fault" and reduced charge/discharge power by @demon1300 in #2755
  • BYD Vehicle: Added few DTC-descriptions by @germanfrau in #2743 & #2747
  • Volvo SPA: Added DTC Code reading to More Battery Info page by @dalathegreat in #2721
  • CMFA Platform: Added DTC Code reading to More Battery Info page by @jonny5532 in #2741
  • MG HS/MG5/MarvelR UDS refactor: Rebases the MG HS integration on the new UdsCanBattery subclass. It also renames it MG-GEN1 since it now supports ZS/MG5/MarvelR by @jonny5532 in #1941
  • MG Gen1: Add support for 50kWh LFP pack by @jonny5532 in #2764
  • Renault Zoe Gen1: Fixed a bug that caused total pack voltage to be ~3V too large by @Dibblah1 in #2753
  • Battery polling improvements under the hood to reduce codesize

Inverters ⚡

  • Add "Inverter is offgrid" checkbox that downgrades some faults to warnings to make offgrid operation more reliable by @ekholm in #2726

Hardware 🤖

  • Refactor SD support to use SPI for significantly lower resource usage by @ngehrsitz in #2761

Housekeeping 🧹

Full Changelog: v12.1.0...v12.2.0

v12.1.0

Choose a tag to compare

@dalathegreat dalathegreat released this 02 Aug 19:23
3ae740f

What's Changed 📦

This release adds DTC reading for Nissan LEAF and Ford EV batteries. This functionality is available from the "More Battery Info" page.

image

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below before updating

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a version > v10.0.0 into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • Nissan LEAF: Feature: Added Read battery DTCs via More Battery Info page by @nagyrobi in #2681
  • Ford Mach-E: Feature: Added Read battery DTCs via More Battery Info page by @dalathegreat in #2690
  • Ford Mach-E: Add more CAN sending towards battery to reduce amount of DTCs active by @dalathegreat in #2702
  • BYD Vehicle: Improvement: Source cell min/max from 0x446 broadcast, drop redundant UDS polls by @demon1300 in #2706
  • BYD vehicle: Add P1A4800 & U012100 DTC-description by @germanfrau in #2695 & #2696
  • FoxESS battery: Refresh CAN keep-alive properly and stop overwriting BMS-reported voltage limits by @ekholm in #2710
  • Allow BMS reset off time up to 600 seconds instead of 60 seconds max by @nagyrobi in #2685

Inverters ⚡

  • Sungrow SBRXXX: Report charge stop status properly by @aferrara in #2719

Hardware 🤖

  • Basic support for Stark LED RGB addon by @StarkJohan in #2676
  • Equipment stop: Safety ⚠️ Wait 7seconds max for zero current before opening contactors, to avoid welded contactors when using equipment stop by @ekholm in #2713

Connectivity 🛜

  • MQTT: Bugfix, value_template include default handling for missing keys by @nagyrobi in #2698

Housekeeping 🧹

  • Github Actions: Cache custom_sdkconfig image for faster builds by @jonny5532 in #2704
  • Github Actions: Fix failure reporting in the build step by @ngehrsitz in #2720
  • Cleanup: Remove dead build_cxxflags lines: RTTI is already disabled by the IDF default by @ekholm in #2693
  • Bugfix: Deduplicate CAN aliveness checks and fix shared corrupted-CAN warning being cleared by healthy batteries by @ekholm in #2688
  • Improvement: Make absolute millis() comparisons wrap-safe (49.7-day rollover) by @ekholm in #2707

New Contributors

Full Changelog: v12.0.0...v12.1.0

v12.0.0

Choose a tag to compare

@dalathegreat dalathegreat released this 27 Jul 09:20
44a5e5e

What's Changed 📦

Version 12 is a new major release of the Battery-Emulator, with many enhancements and MQTT changes that might require attention when updating. Please familiarize yourself with the release notes carefully before OTA updating to this version.

-MQTT: reduced memory usage and improved reliability

This release significantly lowers the heap usage of the MQTT module, with the biggest gains on double and triple battery setups, and fixes a bug where batteries 2 and 3 reported battery 1's charged and discharged energy totals. Cell voltages and balancing states are now published every 60 seconds instead of every 5, combined into a single message, while all live values — power, current, battery voltage, SOC, and cell min/max/delta — continue to update at the normal publish interval. Availability on the /status topic is now published retained once on connect, following the standard last-will pattern.

Two changes affect existing setups. Battery 2 and 3 values have moved from suffixed keys on <name>/info (such as SOC_2) to their own topics, <name>/info_2 and <name>/info_3, using plain un-suffixed keys. The separate balancing_data* topics have been removed, with that data now included in spec_data* under the cell_balancing key, ensuring perfect sync with cell_voltages. Home Assistant autodiscovery users need to take no action, as entities migrate automatically; only manually configured MQTT sensors, Node-RED flows, and similar integrations need updating.

-Inverter Charge Taper 📉

This releases implements an optional, battery-integration-independent charge power taper based on scaled SOC: the allowed charge power is linearly reduced from full at (100% − band) down to 0 W at 100% scaled SOC, with an optional configurable floor (minimum charge power held through the tail of the band). Configurable via a new checkbox next to the existing low pass filter setting, with taper band (percent) and floor (W) fields shown only when enabled.

⚠️ IMPORTANT NOTE: For integrations using estiamated charge power (Tesla S/3/X/Y, Relion LV, BMW iX, BMW PHEV, Kia64FD, RJXZS, GEELY SEA) This new charge taper is MANDATORY and will automatically be enabled. It replaces the old method of ramping down the allowed charge power at high SOC that was individually implemented in each feature. Users should pay close attention to the new settings, since on an estimated charge power install you are the deciding factor how much power can be extracted from the battery. Estimated integrations are inherently less safe to operate due to this. Checkout the instructions here:

image

-Periodic BMS reset improvements

Periodic BMS reset can now be performed at either 24h (default), or a 48h interval. There are now also two optional guards, shown in the web UI only when the periodic reset is enabled. Why do we need the setting? It's observed that for example AZE0 likes to finish balancing. If BMS rebooted during balance, it won't restart. ZE1 can overbalance, so it may be wise to intrerrupt it daily. The user has to have a choice here to improve battery balancing operation

image

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a version > v10.0.0 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • Ford: Adjust cell temperature offset to make temperatures more reasonable by @TheOfficialBatteryMan in #2583
  • Ford: Safety ⚠️ Use actual battery charge/discharge limits instead of user estimated values by @dalathegreat in #2580
  • MEB Battery: Implement BMS Reset from webserver interface by @malec1984 in #2638
  • Nissan LEAF: Safety; Adjust battery voltage limits for top charge by @nagyrobi in #2657
  • Nissan LEAF: Bugfix: Fixed a bug where info for double/triple batteries would not be visible on the More Battery Info page by @nagyrobi in #2670
  • BYD Vehicle: Speed up sourcing of pack voltage & current from CAN / add insulation resistance by @demon1300 in #2656
  • Dyness Pylon: Corrected calculation of cell voltages by @tekampe-oss in #2679
  • Safety: ⚠️ Make interconnect check more reliable for double/triple batteries by @dalathegreat in #2357
  • Improvement: Add guards to periodic BMS reset and add 48h option by @nagyrobi in #2668
  • Fake battery: Support triple setup, mirror pack voltage, fake balancing by @nagyrobi in #2659
  • Fake battery: A bit more realistic by @nagyrobi in #2669

Inverters ⚡

  • Feature: 🔨📉🔋SOC-based, universal charge power taper towards inverter by @nagyrobi in #2628
  • Make SOC-based charge taper 🔨📉🔋 mandatory for estimated power battery integrations by @nagyrobi in #2637
  • Improvement: Remove old charge power rampdowns in favour of the new inverter based "SOC-based charge taper" by @dalathegreat in #2678
  • Added "Inverter detected" event for Modbus and RS485 inverters by @nagyrobi in #2634
  • Solax: Tidy log output by @jonny5532 in #2631
  • Fronius: Allow faster reboots by reporting STANDBY until DC bus is live by @nagyrobi in #2666
  • VCU Zombie: VCU mode bitmapping fixes by @dalathegreat in #2647
  • Sungrow: SBR cleanup and updates by @aferrara in #2675

Connectivity 🛜

  • MQTT: Significantly reduce heap usage, especially on double/triple battery setups by @nagyrobi in #2643
  • MQTT: Improvement: Add generic MQTT autodiscovered Insulation Resistance sensor by @nagyrobi in #2671
  • MQTT: Add configurable Home Assistant MQTT discovery topic by @StarkJohan in #2592
  • Syslog: Allow syslog server to run on low flash boards by @nagyrobi in #2645

Housekeeping 🧹

  • Feature: Make CPU temperature configurable, with an offset by @dalathegreat in #2639
  • Improvement: Remove obsolete "Use CanFD as classic CAN:" setting by @dalathegreat in #2646
  • Improvement: Apply user current caps to low pass filter input by @nagyrobi in #2627
  • Improvement: Skip unchanged values in NVS settings store to reduce flash writes and prevent task overruns by @nagyrobi in #2625
  • Improvement: Web UI: Only offer double/triple battery for integrations that support it by @nagyrobi in #2661
  • Improvement: Make core-task CAN logging non-blocking to prevent task overruns by @nagyrobi in #2624
  • Bugfix, NVM: allow max charge/discharge to be set to 0 by @jonny5532 in #2633
  • Improvement: Make sure we don't try to send to uninitialized CAN interfaces by @jonny5532 in #2630
  • Fix measure-firmware-size artifact filter by @ngehrsitz in #2642
  • Make USB debug logging non-blocking to prevent task overruns by @nagyrobi in #2640
  • Unifiy build & release (uncompressed) by @ngehrsitz in #2615
  • Remove checkprogsize rebuild by @ngehrsitz in #2653
  • Update gitignore file by @dalathegreat in #2667
  • Fix inverter CAN alive-event handling in update_machineryprotection by @ekholm in #2677
  • Bugfix: missing newline on truncated log lines by @nagyrobi in #2680
  • Bump actions/setup-python from 6 to 7 by @dependabot[bot] in https://gi...
Read more

v11.1.0

Choose a tag to compare

@dalathegreat dalathegreat released this 17 Jul 15:21
128ac16

What's Changed 📦

This release adds initial support for CCS charging. It also significantly improves connectivity, and Volkswagen MEB platform support with DTC reading.

Stark CMR, a chargebyte CCF and a 4kW Fronius Primo working together
image

Volkswagen MEB, diagnosing DTCs without ODIS directly in Webserver
image

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a version > v10.0.0 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • FEATURE: Add support for bidirectional charging via CCS by @M4GNV5 in #2460
  • MEB Battery: Add DTC reading via More Battery Info page by @malec1984 in #2573
  • MEB Battery: Read SoH from BMS by @malec1984 in #2614
  • MEB Battery: Add sending of Klima_07 message to reduce number of DTCs by @dalathegreat in #2589
  • Nissan Leaf: Improvement, balancing status now properly reported by @nagyrobi in #2588
  • Pylon HV: Fix Pylon protocol compatibility with GCE and similar BMS by @BatteryPlug in #2622
  • Tesla S/3/X/Y: 106s cell detect + Lower flash usage (Digital HVIL optimized) by @dalathegreat in #2578
  • Flash optimization: Combine BYD/MEB DTC renderers together to save resources by @jonny5532 in #2579

Connectivity 🛜

  • Improvement: Wipe RF PHY calibration data on factory reset and network reset by @nagyrobi in #2598
  • Improvement: Static IP single-field IP entry, add missing DNS server setting by @nagyrobi in #2581
  • Improvement: Cybersecurity, warn when AP starts with default password, log provisioning window expiry by @nagyrobi in #2593
  • Bugfix: Disable WiFi driver persistence which may cause task stalls by @nagyrobi in #2591
  • Bugfix: MQTT HA entity discovery issues and add third battery support for MQTT by @nagyrobi in #2577
  • Bugfix: Remove double mDNS init 🐛 by @nagyrobi in #2616
  • Feature: Adds the "Battery charging! (Inverter limiting)" info via MQTT sensors by @StarkJohan in #2604

Inverters :zap

  • Bugfix: 🐛 Apply inverter limits low pass filter to power limits by @nagyrobi in #2621

Hardware 🤖

  • Safety: ⚠️ Hold BMS_POWER pins active across reset/OTA reboot by @nagyrobi in #2525

Housekeeping 🧹

  • Improvement/Syslog 📜 pre-connectivity log backlog; task name as app name by @nagyrobi in #2585
  • Improvement: Reduce header dependencies by moving #includes about, also save flash by @jonny5532 in #2609
  • GitHub: Bump marocchino/sticky-pull-request-comment from 2 to 3 by @dependabot[bot] in #2595
  • GitHub: Bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #2596
  • GitHub: Remove extraneous + signs from measure action by @jonny5532 in #2610
  • GitHub: Improve binary size tracking v3 by @ngehrsitz in #2594
  • GitHub: Make firmware size report clearer, add links by @jonny5532 in #2606

New Contributors

Full Changelog: v11.0.0...v11.1.0

v11.0.0

Choose a tag to compare

@dalathegreat dalathegreat released this 11 Jul 12:55
e6943f7

What's Changed 📦

Version 11 is a new major release of the Battery-Emulator, with many wireless cybersecurity enhancements and MQTT changes that might require attention when updating. Please familiarize yourself with the release notes before OTA updating to this version.

  • This release brings us several cybersecurity improvements. From now on, when the Wi-Fi access point (AP) is running with the factory-default password (123456789), and no client connects to it, it is automatically disabled after 5 minutes (raising a corresponding event). If a custom AP password has been set, behavior is unchanged and the AP stays enabled indefinitely. Limiting the default-password AP to a short provisioning window mitigates the attack vector while keeping first-time setup and recovery access fully functional. The log window had Wi-Fi/AP passwords printed in cleartext, in the settings UI the Wi-Fi/AP/MQTT/HTTP-auth password fields rendered the stored value into their HTML value attribute making it possible for malicious actors to read them. This has changed so that these fields remain empty, and when submitting the form without any of these filled, they will not be changed.

  • Long-pressing the board BOOT/FLA button at runtime brings three new features useful for on-site work and troubleshooting: long-press 5 to 15s starts the AP if it's not on (perfect to restart the provisioning window introduced above); 15s to 30s will wipe the Wi-Fi client settings and reboot with AP on (useful when local network changes, or runs in trouble); long-press more than 30s will perform a full factory reset and reboot (a physical, UI-independent recovery of last resort). All actions are decided on button release, based on how long it was held. Color led blinks white at various speeeds to confirm the selected stage (slow-, mid-, and fast blink respectively).

  • MQTT possible breaking change ⚠️ From now on Battery Emulator always sets a hostname, which defaults to battery-emulator-xxxx (the last two bytes of its MAC address lowercase). This value is used to identify the device on all the supported platforms: this will be the SSID of the AP, the broadcasted mDNS name, the identifier in the DHCP lease request, the value for "MQTT topic name", "Prefix for MQTT object ID," "HA device name", "HA device ID", and the host identifier in the syslog messages. Consequently, the "Customized MQTT topics" checkbox and its four dependent fields ("MQTT topic name", "Prefix for MQTT object ID," "HA device name", "HA device ID"), the "Access point name:" field were removed from the web interface. This counts as a breaking change: if you rely on MQTT for your automations related to Battery Emulator, prepare for the potential adjustments (tip: if you used the same value for the four custom MQTT topics, you'll likely get away easy by setting that as Hostname from now on). This not only makes long term usage more straightforward especially when multiple emulators are in use, but also significantly reduced flash space requirements.

  • Display support (128x64 OLED) has been removed for "LilyGo T‐CAN485". This breaking change also frees up the GPIOs - but please don't be disappointed by this - support for ESPNow v2 is in the works, which has many more advantages for display usage: a plethora of full-color display types will be able to show data even from multiple nearby emulators, much more data (including individual cell voltages) in a customizable interactive form, in a safer manner without physical connection.

  • A new logging backend has been added: syslog. This self-contained solution introduces no new libraries, no new sink patterns: reuses the same engine that was already in for USB / web / SD logging thus it was very cheap to add. The big benefit here is that events happening in Battery Emulator can be logged independently from the system (even on a NAS which supports log receiving for free) making troubleshooting easier on long term.

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a version > v10.0.0 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

Hardware 🤖

  • Feature: Add CAN bus error detection and handling, and allow NativeCAN bus-off recovery by @jonny5532 in #2568
  • Safety: Wait for Battery3 current to drop to 0A to pause/reset checks by @jonny5532 in #2553
  • Safety: Make Equipment Stop STOP/RESUME explicit by @jonny5532 in #2554
  • Safety: Skip BMS reset incase Equipment Stop is active by @dalathegreat in #2549
  • Safety: Do a graceful restart for reboot/MQTT/OTA, keeping CAN active to avoid any welded contactors by @jonny5532 in #2551

Connectivity

  • Improvement: MQTT and AP UI reductions, settings page UI by @nagyrobi in #2562
  • Feature: long-press board BOOT button to start AP or factory reset by @nagyrobi in #2541
  • Cybersecurity: Don't expose passwords in web log and settings page by @nagyrobi in #2534
  • Cybersecurity: Provisioning window for AP with default pass by @nagyrobi in #2566

Housekeeping 🧹

  • Feature: Add general logging to a syslog server by @nagyrobi in #2555
  • Update short SHA length in firmware rename step by @nagyrobi in #2548
  • Improvement: Flash reduction by @dalathegreat in #2550
  • Improvement: Guard display against SMALL_FLASH_DEVICE to save flash usage by @nagyrobi in #2565
  • Improvement: Union datalayer entries, rejig constructors, to save Flash+RAM by @jonny5532 in #2570
  • Improvement: Remove unnecessary initializations for extended_datalayer by @dalathegreat in #2572
  • Github: Make compile action use more caches for faster builds by @jonny5532 in #2559
  • GitHub: Fix PR measure action to use correct base commit by @jonny5532 in #2569
  • Github: New GitHub action to measure and report firmware size of PRs by @jonny5532 in #2547

New Contributors

Full Changelog: v10.13.0...v11.0.0

v10.13.0

Choose a tag to compare

@dalathegreat dalathegreat released this 05 Jul 11:36
9f07a74

What's Changed 📦

This release contains several MQTT improvements. MQTT users especially should check out each PR listed below for more information. In particular for cell voltages display precision to be 3 in HA, BE device instance needs to be deleted from HA MQTT integration, and then BE needs to be rebooted, in order to be re-discovered with the new entity settings

This release also adds DTC reading and clearing for BYD Vehicles, which will help develop the integration further, and aid troubleshooting misbehaving BYD packs.

image

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a v10 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

Hardware 🤖

Connectivity

  • MQTT: Fixed an issue where SET_LIMITS discharge limit compared against wrong (charge) setpoint by @nagyrobi in #2509
  • MQTT: Set suggested display precision to 3 and proper icon for cell voltages in HA discovery by @nagyrobi in #2510
  • MQTT: Add state_class assignment for balancing_active_cells autodiscovery sensor by @nagyrobi in #2508
  • MQTT: Feature; Complete MDI icon coverage for HA autodiscovery entities by @nagyrobi in #2516

Housekeeping 🧹

  • DTC feature: JSON files documentation by @malec1984 in #2504
  • Bump actions/cache from 5 to 6 by @dependabot[bot] in #2515
  • Actions improvement: rename firmware.bin inside ZIP with PR# and short SHA for clarity by @nagyrobi in #2523

New Contributors

Full Changelog: v10.12.0...v10.13.0

v10.12.0

Choose a tag to compare

@dalathegreat dalathegreat released this 23 Jun 12:08
500ccab

What's Changed 📦

This release adds support for running 2x CAN-FD interfaces at same time. This enabled triple CAN support on several hardware boards. Notably the Stark CMR can now be retrofitted with a MCP2518FD chip, to make it a 3-CAN board (and 2xFD interfaces at same time!) 🔋 🔋 🔋

This release also adds the first official stable version for the BEcom hardware 🤖

⚠️ This release also fixes critical bugs related to contactor control in triple battery setups, along with improving overall safety by now waiting until communication with battery has been established before engaging GPIO controlled contactors.

We also added a notification system inside the webserver, where users will be notified once a new version of Battery-Emulator is available.
image

There is also a new checkbox for extending the CAN inverter communication timeout. Some inverters (Like Sungrow and offgrid Deye), need a longer than 60 second timeout. If you encounter CAN_INVERTER_MISSING and you are sure communication works, you can now enable the new "Allow longer CAN timeout" option, which triples the timeout period

image

Apart from all this, there are several other bugfixes and enhancements. Please check out the full list of changes below

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a v10 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • Tesla S/3/X/Y: Bugfix; Fix initialization for double battery by @dalathegreat in #2471
  • Kia EGMP: Allow float charging between 99-100% by @dalathegreat in #2432
  • Bugfix: Interconnect contactor battery 3 was not working on triple battery setups by @dalathegreat in #2493
  • Safety ⚠️ We now wait with engaging GPIO controlled contactors until battery communication is established by @dalathegreat in #2494
  • BMW SBOX: Speed up CAN sending from 20ms to 10ms by @dalathegreat in #2495

Inverters ⚡

  • All inverters: Added "Long inverter CAN timeout" config option to webserver by @dalathegreat in #2466
  • Safety ⚠️ Added 20 mV hysteresis to per-cell overvoltage charge cut to avoid inverters constantly charge/stop/charge/stop cycling by @demon1300 in #2486
  • Solax: Fix inverter contactor webserver save workaround by @frenetic1 in #2477
  • SMA: Startup grace period for SMA inverter CAN watchdog by @lenvm in #2483

Hardware 🤖

  • T-2CAN: Add-on MCP2518FD for T-2CAN board, freq autodetection by @jonny5532 in #2469
  • Stark CMR: Add-on MCP2518FD for Stark board by @jonny5532 in #2492
  • All HW: Add-on CAN Crystal frequency now autodetected, configuration removed from webserver by @jonny5532 in #2469
  • BEcom: Add BEcom images to release, update python version to latest by @dalathegreat in #2478
  • Add SMA contactor input for Waveshare by @dalathegreat in #2496

Housekeeping 🧹

  • Feature: Add notification in Webserver when new BE release is available by @demon1300 in #2481
  • OTA: Pause battery usage before OTA restarting to avoid contactor wear by @jonny5532 in #2489
  • Cybersecurity: Improve Webserver interface logout handling by @DeadmaroZ-TLOTL in #2480
  • Bump actions/checkout from 6 to 7 by @dependabot[bot] in #2490
  • Unit test: ensure compatibility with AppleClang/macOS by @lenvm in #2482

Full Changelog: v10.11.0...v10.12.0

v10.11.0

Choose a tag to compare

@dalathegreat dalathegreat released this 16 Jun 19:53
4e65a8d

What's Changed 📦

This release improves cybersecurity, by adding the possibility to lock the webserver behind an username/paassword. It also adds new features such as contactor control for BYD batteries, support for double-Tesla battery setups, and much more. It also starts the Diagnostic Trouble Code (DTC) refactoring project, which aims to offload DTC descriptions to the repository, instead of consuming precious flash storage space. This means the old flash limited ESP32 boards like LilyGo T-CAN485 will now benefit from the previously featuregated DTC descriptions in integrations such as BMW iX / PHEV. DTC information is read from the internet instead of from flash. Massive thanks to @malec1984 & @jonny5532 for the work!

image

The new option to enable username/password for the webserver

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a v10 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

  • Added support for Double Tesla S/3/X/Y Battery + Cellmonitor fix by @nizmot in #2378
  • Tesla S/3/X/Y: Hide NOT_ACTIVE faults on Tesla HTML by @jonny5532 in #2410
  • Relion LV: Add contactor control via CAN by @dalathegreat in #2361
  • Relion LV: Bugfix, handle battery3 contactor closing properly by @dalathegreat in #2413
  • MG5/ZS/MarvelR general stability fixes by @jonny5532 in #2417
  • BYD Batteries: Added full contactor control via CAN/Webserver (previosly we could only close contactors and never open them) by @demon1300 in #2453
  • BYD Batteries: Fixed crash that occured when double battery was enabled by @demon1300 in #2427
  • BYD Batteries: Feature: Extend BYD auto-SOC-calibration and diagnostics to second battery by @demon1300 in #2431
  • Ford: Improve scaling of values in more battery info page by @dalathegreat in #2418
  • Ford: Add missing enumeration for rebalance status by @dalathegreat in #2452
  • Tesla Legacy: Add more BMS reset commands by @dalathegreat in #2425
  • Feature: Add DTC clearing for many battteries (Nissan/Renault/etc.) by @dalathegreat in #2443
  • BMW PHEV: Contactor control, balancing, isolation & DTCs implemented by @wjcloudy in #2462

Inverters ⚡

  • Solax: Multiple tesla batteries now possible to run with new contactor control dropdown option by @frenetic1 in #2211
  • Kostal: Fixed an issue where battery->update_values() was called too often by @mbuhansen in #2463

Hardware 🤖

  • Waveshare: Add GPIO 1/2 configurable option for status LED or I2C display by @demon1300 in #2412
  • Waveshare: Add MEB precharge pins to HAL by @dalathegreat in #2421
  • BECom: Add second MCP2518 (CAN-FD2) interface option by @jonny5532 in #2068

Housekeeping 🧹

New Contributors

Full Changelog: v10.10.1...v10.11.0

v10.10.1

Choose a tag to compare

@dalathegreat dalathegreat released this 04 Jun 08:01
9512d2c

What's Changed 📦

NOTE: Same release note as v10.10.1, this release just fixes the broken More Battery Info page
This release adds support for Dyness Tower batteries, adds support for automatic SOC calibration for BYD batteries, and turbocharges the Ford Mustang MachE integration with More Battery Info+DTC clear. The release also contains many improvements, see the full release notes below!

Taking this release into use ⚙️

Important

In order to OTA update to this version, you already need to be on a v10 release!

Note that v10 was a major new release of the Battery-Emulator software. The first time when taking a v10 version into use, you are required to perform an initial one time USB setup via this webpage! This is because we changed the flash frequencies, partitioning layouts and other under the hood changes to ensure longterm system stability. After any v10 has been installed via USB, following 10.X.X releases can be updated over the air.

Quickstart video: https://youtu.be/sR3t7j0R9Z0

Batteries 🔋

Inverters ⚡

  • Foxess: Reduce flash usage and add reverse engineering comments by @dalathegreat in #2402
  • Solax: Add MAC-derived battery identities, which improves Solax Cloud visibility by @Dibblah1 in #2383

Connectivity 🛜

Hardware 🤖

Housekeeping 🧹

New Contributors

Full Changelog: v10.9.0...v10.10.0