WillCodeForCats / solaredge-modbus-multi

Home Assistant integration for SolarEdge inverters with Modbus/TCP. For single or multiple inverters, meters, and batteries.
Apache License 2.0
161 stars 15 forks source link

Some entities appear to never be populated #561

Closed Noodleyman closed 4 months ago

Noodleyman commented 4 months ago

Describe the bug

A number of entities which are anticipated to populate with values are reporting unavailable, but it isn't clear why.

I am using a prefix for entities, thus _number.solaredge__ becomes _number.solaredgemodbus__

Entities reporting unavailable:

Other entities from the same device do appear to be collecting data, for example:

Per the template design notes, When an inverter goes offline (returns an error, incomplete read, timeout, or other errors) entities will change state to unavailable so that stale or bad data is not reported:

It is assumed there is an error but it isn't clear what that error is at the moment. It is also assumed the values should populate at least once since the module was enabled (this may be me being incorrect).

Expected behavior

Values other than undefined to be available

Screenshots

image

Battery is detected: image

Diagnostic File

config_entry-solaredge_modbus_multi-e618d9b4098f6cae5cc6371519c59951.json

Debug logs

No response

Home Assistant Version

11.5

solaredge-modbus-multi Version

2.4.12

Installation Type

HAOS

Read the Instructions

Additional Context

Attempting to install Predbat for SE, as described here: https://github.com/springfall2008/batpred/issues/181

Noodleyman commented 4 months ago

I did try to share a debug log, but it reported as too long to attach.

However, debug logs do report the data which the entities seem to not reflect:

2024-03-14 10:02:21.175 DEBUG (MainThread) [custom_components.solaredge_modbus_multi.hub] I1: ac_charge_limit 0x0 <class 'float'>
2024-03-14 10:02:21.176 DEBUG (MainThread) [custom_components.solaredge_modbus_multi.hub] I1: discharge_limit 0x459c4000 <class 'float'>
2024-03-14 10:02:21.176 DEBUG (MainThread) [custom_components.solaredge_modbus_multi.hub] I1: charge_limit 0x459c4000 <class 'float'>
2024-03-14 10:02:21.176 DEBUG (MainThread) [custom_components.solaredge_modbus_multi.hub] I1: command_timeout 0xe10 <class 'int'>

A hex float to decimal converter does put the limits at the anticipated values. 0x459c4000 = 5000w / 5kW which is correct.

I have also tried removing and reinstalling the module without a prefix, but the same issue remains.

Noodleyman commented 4 months ago

anddddddddddddd, closing. I figured it out by checking into the code. for the properties of interest to be populated the solaredge_i1_storage_control_mode value should be set to Remote Control.

WillCodeForCats commented 4 months ago

Controls that require a specific mode to be set will not be enabled outside of that mode. Most of the inverter and battery require it to be in Remote Control.

Noodleyman commented 4 months ago

noted. thanks for the update. I was trying to keep things "as they are" until I am ready to cut over, which caught me off guard

WillCodeForCats commented 4 months ago

I can understand that "unavailable" is not clear when it could be either wrong mode or communication failure, but HA doesn't have any other entity properties I could use to show the difference.