-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DC voltage shows -0.0 V regardless of output #94
Comments
Strange. I have reports it works with latest version. Do you have errors/warnings in the full HA log? Tagging @ivanfmartinez also here. Can you please enable debug on the integration page, so I can check what's going on with the MPPT addresses? Enable it, and after 5m disable it, it will download you the log. Also: on qmodmaster, please enable the rows/columns on the borders (the green table button next to settings on the bar) so I can see the offsets? Also, read from address 40100 for 120 registers and provide screenshot and do the same for address 41100 (for 120 registers again). Thanks. |
I finally got to make screenshots with a working inverter. I realised I made a mistake when I opened this bug report. DC power output works flawlessly, but the DC voltage does not appear to change. Knowing this, I will change the name of this bug report accordingly. I do observe some issues with certain integrations (smart tv, local tuya, etc.), but I think those are not relevant to this solar system. I made the screenshots, but the address 41100 cannot be read from my inverter. Thank you. |
From your debug log it correctly recognizes that it can't find Model 160 at the default address (40122) so it tries at the address 41104, and it finds it. So the sensors have to be correctly updated. 2023-12-15 14:27:35.712 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) Base Address: 40000
2023-12-15 14:27:35.712 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) Model not 160 try another offset - multi_mppt_id: 120
2023-12-15 14:27:35.732 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) Slave ID: 254
2023-12-15 14:27:35.733 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) Base Address: 40000
2023-12-15 14:27:35.733 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) Model is 160 (UNO-DM/REACT2) - multi_mppt_id: 160
2023-12-15 14:27:35.733 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) mppt_nr 1
2023-12-15 14:27:35.733 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_rt_160) Completed
2023-12-15 14:27:35.733 DEBUG (MainThread) [custom_components.abb_powerone_pvi_sunspec] Closing Modbus TCP connection Here's the relevant code that implements the check and changes offset for UNO-DM-PLUS and REACT2 inverters. # Model 160 has different offset for UNO-DM-PLUS and REACT2 inverters
# need to check and try the specific offset address (start address is 41104)
if multi_mppt_id != 160:
_LOGGER.debug("(read_rt_160) Model not 160 try another offset - multi_mppt_id: %d", multi_mppt_id)
try:
# try address 41104 for UNO-DM-PLUS and REACT2
read_model_160_data = self.read_holding_registers(slave=self._slave_id, address=(self._base_addr + 1104), count=42)
_LOGGER.debug("(read_rt_160) Slave ID: %s", self._slave_id)
_LOGGER.debug("(read_rt_160) Base Address: %s", self._base_addr)
except ModbusException as modbus_error:
_LOGGER.debug(f"Read M160 modbus_error: {modbus_error}")
raise ModbusError() from modbus_error
# No connection errors, we can start scraping registers
decoder = BinaryPayloadDecoder.fromRegisters(
read_model_160_data.registers, byteorder=Endian.BIG
)
# register 122
multi_mppt_id = decoder.decode_16bit_int()
if multi_mppt_id != 160:
_LOGGER.debug("(read_rt_160) Model not 160 (UNO-DM/REACT2) - multi_mppt_id: %d", multi_mppt_id)
return False
else:
_LOGGER.debug("(read_rt_160) Model is 160 (UNO-DM/REACT2) - multi_mppt_id: %d", multi_mppt_id)
else:
_LOGGER.debug("(read_rt_160) Model is 160 - multi_mppt_id: %d", multi_mppt_id) I have added a couple of debug log lines to that code, and realased a new Install it, and capture debug logs as you did before, then send it so we can also see the data from the registries. |
I have installed the beta version and captured new logs. |
As you can see from the log, DC1Volt is correctly read: value 203. So I don't understand why you see -1. The registers are correctly read.
|
Ok, I think I found the issue. Can you test beta.3 from HACS and capture the debug log again? Let me know if DC Voltage is finally correct. Thanks. |
Thanks for helping me solve this one. Happy new year. :) |
I have only tried v3.3.0 of the integration, so have no info on previous versions. My inverter has the option to connect two strings, but I only have one connected.
So far the integration works well (kudos for it) except the missing DC power.
Thanks in advance!
Inverter
ABB UNO-DM-2.0-TL-PLUS-SB-Q (single phase)
2201A firmware
Integration options
Modbus address: 254
Register map base address: 40000
TCP port: 502
The text was updated successfully, but these errors were encountered: