Skip to content
View in the app

A better way to browse. Learn more.

Power Forum - Renewable Energy Discussion

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Raphael Ramos

Members
  • Joined

  • Last visited

Everything posted by Raphael Ramos

  1. I am trying to integrate Huawei ESM-48100U2 batteries with Home Assistant using ESPHome/Modbus RTU and would appreciate any technical insight regarding protocol details and register maps. What I have discovered/tested so far: Battery: - Huawei ESM-48100U2 - Possible slave ID: 214 - Communication settings: - 9600 baud - 8E1 (8 data bits, EVEN parity, 1 stop bit) Hardware used: - ESP32 - MAX485 - MAX490 - ESPHome Tests performed: ------------------------------------------------ 1) MAX485 RS485 2-wire - Partial communication achieved - Received: - CRC errors - truncated responses - UART echo At some moments I received valid Modbus exceptions: - 0x83 exception 2 - 0x84 exception 1 This indicates: - slave 214 is responding - protocol is likely Modbus RTU - but register/function selection may be wrong ------------------------------------------------ 2) MAX490 RS422 4-wire - Tried separating: - T+/T- - R+/R- Received strange/partial UART responses: - 94 0A 2F FF ... No stable valid Modbus frames. ------------------------------------------------ 3) Important discovery from forum Found this thread: https://powerforum.co.za/topic/16372-huawei-esm-48100b1-changing-slave-id/ Important information found: - Default slave ID = 214 - Communication = 9600 8E1 - Huawei implementation is described as “slightly outside standard Modbus” - Requires repeated polling attempts - Another user succeeded using FTDI RS485 adapter Most important finding: RJ45 pinout: - pins 1 and 4 = A - pins 2 and 3 = B This strongly suggests: - duplicated 2-wire RS485 - NOT classic RS422 full duplex ------------------------------------------------ 4) Registers found in forum Supposed register map: - 0x0000 = busbar voltage - 0x0001 = battery voltage - 0x0002 = current - 0x0003 = SOC - 0x000E = mode ------------------------------------------------ 5) Registers I already tested Tested: - 74 - 802 - 1000 - 1329 Results: - some returned Modbus exceptions - some returned partial responses - still no confirmed valid readings ------------------------------------------------ 6) Current ESPHome setup Using: - modbus_controller - slave 214 - 9600 EVEN - tested function 03 and 04 Examples: - function 03 -> exception 2 - function 04 -> exception 1 ------------------------------------------------ Next step: I will test using a USB RS485 adapter directly on PC with: - QModMaster - Modbus Poll Planned wiring: - Huawei pins 1 + 4 -> A - Huawei pins 2 + 3 -> B Questions: 1) Has anyone successfully integrated ESM-48100U2? 2) Is the register map above correct? 3) Is there any byte swap/endian requirement? 4) Is this really standard Modbus RTU? 5) Which function code should be used?

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.