Skip to content

This project facilitates communication between APS solar inverters and an ESP32 using a Zigbee CC2530 module. Developed with the Arduino framework on PlatformIO, it enables remote monitoring and control of the inverter's parameters via Zigbee protocol.

License

Notifications You must be signed in to change notification settings

technoo10201/ESP32-read-APS-inverters-platformio

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 read APS inverters

This project is derived from the project ESP-ECU. The reason to try this on a more powerfull platform is that the ESP8266 was running on the top of its capabilities, especially when more than 5 inverters were connected. Comparison in free heap between esp and esp32 show that this is more than 7x higher for the esp32.
The ESP32 has another big advantage over the ESP8266, the presence of a second uart. We can use one uart for the zigbee moduele and we have the other UART available for debugging on the serial monitor via usb. This way it is easyer to debug. I can use this project to test things out that could lead to improvements for the ESP8266 project.

See it in action on YouTube

status

The system has been tested in practice with a YC600, QS1 and DS3 inverters and it works fine.

purpose

The system is intended for reading APS Systems inverters. The program can pair and poll YC600 QS1 and DS3 inverters, up to 9 pieces. The read values are displayed on a web page and sent via mosquitto in a Json format.

Please see the WIKI for information on building it, the working, etc.

downloads

May 27 2024: There is a new version ESP32-ECU_v0_9 Please see changelog.



The frontpage:
frontpage

The details page:
details

features

  • Simply to connect to your wifi
  • Easy add, delete and pair inverters
  • automatic polling or on demand via mqtt or http
  • data can be requested via http and mosquitto
  • There are 5 different mqtt json formats
  • Fast asyc webserver
  • a serial- and a web console to send commands and debugging
  • Smart timekeeping
  • A lot of system info on the webpage
  • Easy firmware update "Over The Air"

the hardware

It is nothing more than an esp32 device 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 Koenkk/zigbee2mqtt#4221.

For info on how to build and use it, please see the wiki

how does it work

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. The ecu sends a message that there is new data and the webpage reacts by requesting the new data.

example of a sensor in Domoticz:
graph2

changelog

version ESP32-ECU_V0_9:

  • fixed a bug in the html of the inverterspage
  • introduced an improved debugging method

version ESP32-ECU_V0_8:

  • fixed a bug related to the working of the button

version ESP32-ECU_V0_7:

  • more efficient communication browser/server (events driven)
  • minimized all webpages and javascripts
  • improved menu and browsing on the ecu website

version ESP32-ECU_V0_5:

  • more efficient use of the memory
  • Use of arduinoJson

version ESP32-ECU_V0_4:

  • Banned all string operations in main processes
  • Some webpages improved.

version ESP32-ECU_V0_3b:

  • some security updates (maintenance from outside the own network)
  • fine-tuned the pairing process
  • redesigned the important processes to gain more free heap.
  • some cosmetics and small bugs

version ESP32-ECU_V0_1d:

  • replaced elegantOta with my own implentation
  • fixed a bug in the pairing proces
  • solved system crashed due to string operations
  • fixed a bug in the pairing proces

version ESP32-ECU_V0_1a: Relative to the esp8266:

  • new frontpage with buttons to inverter details
  • removed the websocket console to relieve the webserver
  • added a serial console to issue commands

About

This project facilitates communication between APS solar inverters and an ESP32 using a Zigbee CC2530 module. Developed with the Arduino framework on PlatformIO, it enables remote monitoring and control of the inverter's parameters via Zigbee protocol.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 87.7%
  • C 12.3%