Editor Version ×
recommended

Pro Edition

free

Brand new interactions and interfaces

Smooth support for design sizes of over 3W

devices or 10W pads

More rigorous design constraints, more

standardized processes

For enterprises, more professional users

Std Edition

Easy to use and quick to get started

The process supports design scales of 300

devices or 1000 pads

Supports simple circuit simulation

For students, teachers, creators

Ongoing

STD PowMr Hybrid Inverter

PowMr Hybrid Inverter

Project tags

License

MIT License

License: MIT License

Mode:

Mode

Schematic/Simulation

Schematic/Simulation

Unlisted

  • 754
  • 0
  • 0
Update time: 2024-09-10 19:38:46
Creation time: 2023-10-10 14:03:12
Description

Description

# ESPHome PowMr Hybrid Inverter ESPHome config for various PowMr Hybrid Inverter models. [[Project GitHub](https://github.com/odya/esphome-powmr-hybrid-inverter)] ## Compatibility All models that are supported by the [**WIFI-VM**](https://powmr.com/products/powmr-wifi-module-with-rs232-remote-monitoring-solution-wifi-vm) device should work: - [**POW-HVM1.5H-12V**](https://powmr.com/products/all-in-one-inverter-charger-1500watt-220vac-12vdc) - **POW-HVM2.0H-12V** - [**POW-HVM2.4H-24V**](https://web.archive.org/web/20230329235125/https://powmr.com/inverters/all-in-one-inverter-chargers/powmr-2400watt-dc-24v-ac-220v-solar-inverter-charger) - [**POW-HVM3.2H-24V**](https://powmr.com/products/all-in-one-inverter-charger-3000w-220vac-24vdc) - [**POW-HVM3.6M-24V**](https://powmr.com/products/hybrid-inverter-charger-3600w-220vac-24vdc) - [**POW-HVM4.2M-24V**](https://powmr.com/products/hybrid-inverter-charger-4200w-220vac-24vdc) - [**POW-HVM6.2M-48V**](https://powmr.com/products/hybrid-inverter-charger-6200w-220vac-48vdc) - [**POW-HVM8.2M**](https://powmr.com/products/hybrid-inverter-charger-8000w-220vac-48vdc) - [**POW-HVM10.2M**](https://powmr.com/products/hybrid-inverter-charger-10200w-200vac-48vdc) ### Tested models - **POW-HVM2.4H-24V** - **POW-HVM10.2M** ## Connection ![PowMr ESP32 connection diagram](https://github.com/odya/esphome-powmr-hybrid-inverter/blob/main/images/powmr_esp32_connection.png "PowMr ESP32 connection diagram") ## ESP8266 This configuration can be used on the ESP8266, but you won't be able to use all the sensors due to the memory limitations of the ESP8266. You can use minimal set of sensors/selects, leaving only the ones you need. You can use "Heap size" sensor of Debug module to determine how much free memory left. Looks like minimum heap size, that ensures stability, is near 6Kb. Although I still strongly recommend using ESP32. ## Usage 1) Create new project subdirectory within your ESPHome configuration directory (let it be `powmr-inverter`, for example) 2) Copy the contents of the `src` repo folder to a newly created project directory. 3) Now, the `main.yaml` file must be located under `<esphome_config>/powmr-inverter` 4) Create file `powmr-inverter.yaml` in the esphome config directory root and copy contents of [example config](/examples/powmr-inverter.yaml) 5) Edit substitutions & customize `powmr-inverter.yaml`. You can add contents of [common_system](/examples/common_system.yaml) & [common_sensors](/examples/common_sensors.yaml) to this file or include them separately following the example. 6) Flash firmware to your ESP32 ## PCB`s There are 2 versions of PCB design available. Advanced version is more compact but needs SMD soldering skills, basic version uses 2.54 parts & modular approach. - Docs for [Basic PCB](pcb/basic/README.md) - Docs for [Advanced PCB](pcb/advanced/README.md) by [@davidebeatrici](https://github.com/davidebeatrici) ## PZEM module In version 1.2, a [PZEM](https://esphome.io/components/sensor/pzem004t) module was added for measuring parameters of the input AC grid. If you do not wish to use it, comment out the include of the corresponding module in the [main.yaml](/src/main.yaml) file. ## Inverter card For easy integration into Home Assistant, you can use the [following snippet](/examples/inverter-card-example.yaml). It compiles all the essential inverter sensors and controls in a compact manner. The following custom plugins are required: [sunsynk-power-flow-card](https://github.com/slipx06/sunsynk-power-flow-card), [stack-in-card](https://github.com/custom-cards/stack-in-card), [tabbed-card](https://github.com/kinghat/tabbed-card), [canary](https://github.com/jcwillox/lovelace-canary).
Inverter card page 1 screenshot Inverter card page 2 screenshot Inverter card page 3 screenshot
## Optimize modbus communications ESPHome reads sequential Modbus registers in one batch. If you have gaps in register addresses, you need to use the `register_count` parameter to skip N registers and continue the batch. [Details in ESPHome docs](https://esphome.io/components/sensor/modbus_controller#modbus-register-count). You can debug your register ranges by setting the global log level to `VERBOSE` and muting all "noisy" components except the `modbus_controller`. ```yaml logger: level: VERBOSE logs: component: ERROR # Fix for issue #4717 "Component xxxxxx took a long time for an operation" modbus_controller: VERBOSE modbus_controller.text_sensor: WARN modbus_controller.sensor: WARN modbus_controller.binary_sensor: WARN modbus_controller.select: WARN ``` After this, the ranges map will be printed in the logs: ```text [15:55:14][C][modbus_controller:307]: ranges [18:41:21][C][modbus_controller:307]: ranges [18:41:21][C][modbus_controller:310]: Range type=3 start=0x1196 count=37 skip_updates=0 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x11BC count=16 skip_updates=0 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x138A count=1 skip_updates=2 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x138F count=1 skip_updates=2 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x1391 count=1 skip_updates=2 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x1399 count=1 skip_updates=2 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x139A count=1 skip_updates=2 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x139E count=1 skip_updates=2 [18:41:21][C][modbus_controller:310]: Range type=3 start=0x13A0 count=1 skip_updates=2 ``` > *In the example above, the sensor registers batches starts from `0x1196` & `0x11BC` (one large batch causes data errors). Select registers starts from `0x138A`.* > *Using batches for selects triggers `Modbus device set offline` warning messages, so you need to read them separately.* You will see gaps in register ranges map. To calculate `register_count`, you need to convert HEX addresses to decimal and subtract them. ## UART debugging - Uncomment debug section in [modules/inverter.yaml](/src/modules/inverter.yaml) or [modules/pzem.yaml](/src/modules/pzem.yaml) to enable the debug output of the UART component ``` # debug: # direction: BOTH # dummy_receiver: false ``` - Increase the log level to `DEBUG` or `VERBOSE` ``` logger: level: WARN ``` ## Notes - Registers map: [registers-map.md](docs/registers-map.md) - Read registers are using little-endian format that doesn't have a native support in ESPHome, so we need a custom function to swap bytes. - Inverter UART pins (TX2 & RX2) are swapped https://github.com/odya/esphome-powmr-hybrid-inverter/issues/25 - Manuals: - [POW-HVM1.5H-12V](docs/POW-HVM2.4H-24V.pdf) - [POW-HVM2.4H-24V](docs/POW-HVM2.4H-24V.pdf) - [POW-HVM2.0H-12V](docs/POW-HVM3.2H-24V.pdf) - [POW-HVM3.2H-24V](docs/POW-HVM3.2H-24V.pdf) - [POW-HVM10.2M](docs/POW-HVM10.2M.pdf) ## References & thanks - https://github.com/leodesigner/powmr_comm Great research on PowMr registers and C++ firmware code with MQTT. Thanks to author, it helps me a lot. - https://github.com/syssi/esphome-smg-ii ESPHome project to monitor and control a ISolar/EASUN SMG II inverter via RS232
Design Drawing

Design Drawing

schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
ID Name Designator Footprint Quantity JLCPCB Part Class link
1 PZEM 2.54-1*4P H1 HDR-TH_4P-P2.54-H-M-W10.4 1 LCSC 2.54-1*4P反弯排针
2 KH-RJ45-58-8P8C RJ4 RJ45-TH_KH-RJ45-58-8P8C 1 LCSC KH-RJ45-58-8P8C https://lcsc.com/eda_search?q=C2683360&%26type=1&ref=editor
3 NODEMCU-32SLUA U2 COMM-TH_NODEMCU-32SLUA 1 lcsc NODEMCU-32SLUA https://atta.szlcsc.com/upload/public/pdf/source/20200715/C111436_7E615125D57381075B07FD61BFD5F595.pdf
4 LOGIC LEVEL CONVERTER U3 LOGIC LEVEL CONVERTER 1 Jakub Topič LOGIC LEVEL CONVERTER
5 RS232TTL_SMALL_v2 U6 RS232TTL_SMALL 1 Andrey Ganzevich RS232TTL_SMALL_v2
6 PZEM-004T_MODUS U4 PZEM-004T 1 Vladimir_2050 PZEM-004T_MODUS
7 XL4005 U8 XL4005 IC 1 aldino pramana XL4005 fix

Unfold

Project Attachments

Project Attachments

Project Members

Project Members

Target complaint
Related Projects
Change a batch
Loading...

Comment

Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn