-
-
Notifications
You must be signed in to change notification settings - Fork 95
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
[Bug]: Growatt - 'MOD x' Unknown state on all entities after upgrade #979
Comments
Same here, tried everything. I use some of the enteties in my automatisations which don’t work also anymore. |
Update 8-8 : Deleted the last version of Solax en manually installed version 2024.05.07 through zip file.
Now everyting is working again. Also (for now) disabled automatic polling for updates for the Solax integration. |
Same problem here, upgraded to latest solax-modbus version 2024.08.8 and HA 2024.8.1 and got entity result unknowns. Deleted the device and tried to recreate it again, just get unknowns still. Growatt 15KTL3-X using modbus TCP via a waveshare RS485-ethernet gateway. My own modbus entities I have created myself (before the solax integration worked with my inverter) still works as expected, so this seems to be a solax-modbus problem. I downgraded to 2024.05.7 and now everything works again. |
I have the same problem. I enabled debug logs and saw these lines
Not sure if it helps, but at least it says that it wasn't able to read some registers. I have another integration also for my Inverter and that works. So something happened to SolaX with the 2024.8 release |
I have the same problem. |
Just released 2024.08.12 removing "Inverter Module" may or may not help. |
For me the last version doesnt solve the problem. |
@cracyfloyd what errors are you getting in the error log? |
Here is a debug log after restart. |
Another Error log: |
When debugging the code I get an exception that is not visible in the logs. I've tried to found out why this happens but cannot understand why.
|
I can confirm that removing |
Just released 2024.08.13 |
Confirming that the 2024.08.13 solved the unknown state. However import and export on MOD inverter are still missing |
Were they there previously? Or have they always been missing? |
Always missing to my knowledge. We actually discussed this in a previous post/ticket. Something that you where missing the correct address from Growatt. |
It might be worth either yourself @Zvolli or @JohNan / @TonyMathiesen to try and add The MOD inverters seem to overlap the two main register sets. (GEN2, GEN3 & GEN4 aren't actual Generation differences like on SolaX, but I'm trying to split the register sets out somehow) |
Yes you are right. There are overlapping registers making it tricky to understand with the limited documentation available. What I have found os far for the the MOD TL-XH (most likely the same for TL-X): I have gotten the majority for them to work and added some additional to my plugin_growatt.py file. |
I think @iobrokerneu with #791 maybe able to help as well. Hopefully with the 4 of you we can get better support of the MOD series. Or at least further break down the differences if there are any? |
Sure I’ll do whatever I can from my side 😊 |
For Growatt MOD TL-XH (likely also TL-X) GEN3 changes to the plugin file: Adds configuration: Adds sensor for: Removes sensor for: Removes from config catagory, as they are sensor / readouts to update the value of the configuration entities or see current state: Correct typo: |
@Zvolli After several hours yesterday I have also managed to get the Time Slot 1 to work for setting the priority mode: init.py file If you or other know how to program these files, then I can share what I did to get it to work 😉 I believe my hack of these files is not the way to do it. |
It sounds very interesting. I have a MID 20KTL3-XH (BP) inverter and I think it is the same issues. Could you share your edited files? |
@ABRUUS Sure.. To explain how it is working. First explaining bits from the documentation: I have added Time 1 Start and Time 1 End under configuration, and in these fields I input (from an automation) the decimal input to set them. Important: Set start first, and then immediate after end time. If not done within seconds or with overlapping times from the other time slots, then the inverter will not accept the change. Then I created some helpers to be able to set the inputs with correct decimals (bits). Green is controlled directly from plugin, yellow is helpers: plugin_growatt.py ( https://pastebin.com/KRa1m9SX ) In general that could be sufficient and also work with "option_dict = TIME_OPTIONS_GEN4" as they follow same build up. At least for 3039. However 3038 there we need to add based on bits. This is where I need someone to make this right. What I did is: file: init.py file: const.py This allows me to set the registers with an automation which translates the helpers into the decimals that needs to go into the register and verify settings on next read 😉 .. I know that it is not so pretty yet... |
Very nice job @TonyMathiesen! These modifications actually make it possible to set the SOC (min, max, discharge and charge power). The only thing I’m not able to control is the priority. It automatically switch back when I try to set it. Does it work with your inverter? The time slot also seems to be in another layout. Did you do something to integrate the helpers or are they included in the files? Growatt MID KTL3-XH (BP) is a hybrid inverter and also returns serial DN1 like the MOD. |
@ABRUUS I have made pull request to add the EMS / Battery controls in pull request #1025 and some other updates and corrections. I have removed the selector for priority, as it is not the way to change mode for TL-XH. I have kept the sensor to see current mode. In the comment above https://github.com/wills106/homeassistant-solax-modbus/issues/979#issuecomment-2316075923:
.. And this is where the other files modifications come in, as time_1_start then comes over 32768. An example: |
Hi all, I’m new to GitHub and I’m not sure if I post it in the correct discussion. @Zvolli mentioned above the export (grid limit) functionality not working correctly and I had the same issue. This link describes the fallback register 3000 for grid limitation. Also the fallback register is described in this document, however the description is very poor. I’ve added the follow code to make it work. But I’m not sure if I did it correct with the GEN version thing. GrowattModbusNumberEntityDescription( And GrowattModbusSensorEntityDescription( |
Hi @JeroenZwartAssen When I want to disable export if negative price, then I set to "Meter 1" and +1% percent. The reason I select +1% instead of 0%, is that I notice on my main meter that if 0% then it imports a tiny amount and I would rather export a tiny amount instead of paying higher price of a tiny amount import. |
@TonyMathiesen thank you for your reply. I don’t know if it’s important to mention. I don’t have a external meter installed. |
By external meter, do you mean that you don't have a smart meter connected just after your main circuit breaker? Because in that case you cannot use export limitation. It needs either a smart meter or some CT clamps connected, otherwise the inverter does not know how to adjust. It is also required in order to compensate between the three phases. I don't know if yours are 3 phase or single phase. |
@TonyMathiesen, that does make sense. I have a 3 phase setup. |
@JeroenZwartAssen I agree with you, the documentation from Growatt could be a lot better. And also I'm new to github, made my first pull request today 😂 I got my system installed two weeks ago and have spend the last week on trying to understand how it is working and now I have the majority working through this integration. One can limit export if there is a meter or CT clamps. With the added battery control you can now control when to charge or discharge with automations. I also can set the mode to charge from the grid in a given time frame if necessary, however not yet in the integration as it requires a bit more work. You should consider adding a meter or clamps, as with the 3 phase it can adjust by itself if you consume more on one phase and adjust accordingly. |
Describe the bug
After upgrading to 2024.08.6 all entities are in a "unknown" state. Followed instructions after warning by removing SolaX and re-install but this had no effect. Tried uninstalling and downgrade to 2024.08.2 but it is downloading 202.08.6 version regardless.
Integration Version
2024.08.6
Homeassistant core version
2024.7.4
Inverter brand
Growatt
Plugin used
plugin_growatt.py
Serial prefix
DL1.0ZBAA�
Connection Method
ESP32 modus bridge for RS485
Detailed Error Log
home-assistant_2024-08-05T08-08-42.780Z.log
_Logger: homeassistant.components.sensor
Source: helpers/entity_platform.py:364
integration: Sensor (documentation, issues)
First occurred: 8:55:05 AM (1 occurrences)
Last logged: 8:55:05 AM
Error while setting up growatt_server_api platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 364, in _async_setup_platform
await asyncio.shield(awaitable)
File "/config/custom_components/growatt_server_api/sensor.py", line 88, in async_setup_entry
devices, plant_id = await hass.async_add_executor_job(get_device_list, api, config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/growatt_server_api/sensor.py", line 51, in get_device_list
user_id = login_response["user"]["id"]
~~~~~~~~~~~~~~^^^^^^^^
KeyError: 'user'
Logger: aiohttp.server
Source: /usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py:421
First occurred: 8:59:30 AM (5 occurrences)
Last logged: 9:54:39 AM_
_Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 350, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "aiohttp/_http_parser.pyx", line 557, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message:
Invalid method encountered:
Additional context
No response
The text was updated successfully, but these errors were encountered: