The purpose of this project is to read data via Zigbee from APS Systems inverters. The program can pair and poll YC600 QS1 and DS3(-L-M-S verified) inverters, up to 9 pieces. The read values are displayed on a web page and sent via mosquitto in a user-defined Json format.
The program has a lot of smart features. All settings can be done via the webinterface. It has a console that can be used for debugging and sending/receiving zigbee messages.
See the WIKI for information on building it, the working, etc.
See it in action on YouTube
This program runs on different platforms, there is ESP32-ECU and RPI-ECU that runs on a Raspberry (Zero). Each have its advantages over the others. If you have many inverters you are probably better off with the ESP32 or Raspberry implementation.
You can use the provided binary but if you must compile it yourself: Use arduino ide with the esp822 version 2.7.1 installed under boardmanager. The ota updates won't work with other versons.
Please note: by popular demand I have published the code here but i do not feel responsible for problems as to compiling. Impossible for me to know why it doesn't compile in your situation.
aug 2 2024: There is a new version 10_9a available, see changelog. This is a beta version not yet tested.
Download ESP_ECU-v10_9a;
july 26 2023: There is a new version 10_8 available, see changelog.
Download ESP-ECU-v10_8
july 30 2023: There is package available with all necessary files, like software for the zigbee, a serial communicater etc.
Download ESP-ECU-ADDON
Download the zigbee firmware CC25XX-FIRMWARE
In case someone wants to print the housing, here is an stl file
This is for a nodemcu board 31x58mm.
It is nothing more than an esp device like nodemcu, wemos or its relatives and a prepared cc2530, cc2531 zigbee module. And a powersupply. The zigbeemodule should be flashed with a firmware that is developped by kadsol : CC25xx_firmware. The firmware is also available here. Much more info as to the development of this software can be found here https://github.com/Koenkk/zigbee2mqtt/issues/4221.
For info on how to build and use it, please see the WIKI
APS works with their own zigbee implementation. The ESP-ECU sends zigbee commands (wireless) to the inverters and analyzes the answers, extracting the values. The ESP communicates with the zigbee module through the alternative serial port (wired). The ESP-ECU starts a coordinator (an entity that can start a zigbee network). The coordinator binds the inverters and sends the poll requests to them. The interesting values are send via mqtt and displayed on the main page.
version ESP-ECU_V10_9a:
version ESP-ECU_V10:
version ESP-ECU_V9_14:
version ESP-ECU_V9_13b:
version ESP-ECU_V9_12:
version ESP-ECU_V9_9:
version ESP-ECU_V9_6c:
version ESP-ECU_V9_5:
version ESP-ECU_V9_4:
version ESP-ECU_V9_3:
version ESP-ECU_V9_2:
As of version 8 the value of total energy is no longer directly comming from the inverter's register. Instead all energy increases are added up in a total energy value. This way that value is not sensitive to inverter resets that will happen in twilight or due to an eclips etc.