Closed Roving-Ronin closed 1 month ago
FYI Huawei have released an installation videa for the EMMA devices, and a new User Guide that includes updating network information.
Note: The EMMA is a device that manages energy in a home with a PV system. It can implement unified scheduling and management of home energy. The EMMA has two models:
EMMA-A01: Only PV and ESS features are supported. Plant-level power control functions, such as maximum self-consumption and grid-tied point control, are supported for unified scheduling of home energy and plant-level energy optimization, further improving the PV energy utilization
EMMA-A02: Features of PV, ESSs, smart chargers, and smart loads are supported. In addition to unified scheduling of home energy, the EMMA-A02 can connect to smart loads such as chargers, SG Ready heat pumps, and smart switches. Users can set the reservation time to charge vehicles and heat water in advance at the specified time. In addition, users can set the priority to use PV energy for devices as required to make the best use of PV energy.
EMMA Installation Video: https://support.huawei.com/enterprise/en/doc/EDOC1100338746?idAbsPath=7639526%7C258788303%7C258788491%7C258789989%7C23205712%7C256539983
[EMMA-(A01, A02) User Manual - 2023-10-31 - v02.pdf](https://github.com/wlcrs/huawei_solar/files/13445816/EMMA-.A01.A02.User.Manual.-.2023-10-31.-.v02.pdf) from https://support.huawei.com/enterprise/en/doc/EDOC1100325377/9a24721e/networking
Comments:
Updated network diagrams appear to confirm that the EMMA will replace the sDongle as the (default?) method to provide connectivity for inverters/site to FusionSolar, whilst the DDSU/DTSU-666 meters will also be superceded with the EMMA providing this functionality also (option to use inbuilt CT's <63A or connect external CT's for >63A systems).
There is only reference to modbus-tcp in relation to certificates and authenticating with 'peer NMS' and FusionSolar.
Looking at the RS485 details, it has an RS485 A and B, with A going to the inverter/cascade and B for '3rd party devices'. Previously on the SmartLogger devices this meant the DDSU/DTSU-666 meter, however this functionality is now inbuilt to EMMA, To date EMMA documentation has zero reference to connecting to a SmartLogger device (IMHO looks like EMMA will be pitched at home users and IF anyone needs a SL that is for more commercial installations where a DDSU/DTSU is not used/needed). Pending more information about EMMA and its modbus-tcp specifics, given metion of it and prior support in the sDongle it must have it, but as a fallback there is the question of could RS485-B be used as method to connect and Elfin modbus-tcp appliance if needed as a 'last resort'?
Hi, just to understand, I did nowhere see a configuration with cascaded inverters. Did Huawei mention anywhere how this EMMA would work in that case. To me it looks like a combination of a smart meter (DTSU666-H) with the smart logger (SmartLogger 3000 which seems to be intended for larger PV systems) or Smart Module (Smart Module 1000). Honestly, Huawei is terrible in naming devices so that it doesn't confuse the heck out of people... SmartMeter, SmartLogger, SmartModule, SmartDongle and now EMMA....
@torwag the EMMA appliance is a replacement option for the DDSU/DTSU-666H, USB sDongle etc so from an inverters persepctive is doesn't matter is its 1 or 3 inverters in a cascade. Instead of wiring in the DDSU/DTSU-666H in future you'll connect the EMMA via that RS485 port.
Also read the prior posts carefully and you'll notice at the bottom of 'Figure 2-2' it mentions:
"Inverters connect to the EMMA over RS485. A maximum of three inverters can be connected in parallel"
Worth noting also is that since that post, Huawei / Shelly have also announced that EMMA can integrate with some of their devices, see:
Hello EMMA is now available in Europe
When do you want to start the integration? Thank you Mark
@MarkusKAuatria
Do you have an EMMA installed already and are offering to install the current WLCRS integration version and see if it 'mostly' works already (assuming it uses the same modbus registers as the DDSU/DTSU-666H for the power meter data)? Post that your able to provide WLCRS with remote access to your setup to allow him to develop and test, for any new modbus registers that are required?
Hello I have already installed EMMA-A02. YES, I can give you remote access from my HASSIO test system. I would like to send you the login details on a private channel (Email, Telegram,...) I'm looking forward to a good collaboration
Konfiguration ->EMMA-A02
--> SUN2000-10KTL-M1 (Modbus 1) ---> 1. LUNA2000-15-S0 (15kw) ---> 2. LUNA2000-15-S0 (15kw)
--> SUN2000-5KTL-M1 (Modbus 2) ---> 14x SUN2000-450W-P
Attention Emma is connected via pin 2/3 and not via PIN 5/7 like the DTSU
@MarkusKAuatria Have you tried installing the integration yet, any luck ? If so, what information do you see, or are their any logs ?
"Emma is connected via pin 2/3 and not via PIN 5/7 like the DTSU"
PIN 5 ias 'shielding ground' (shared with LUNA also) with PIN7 (485A2) and PIN9 (RS485B2) being used to connect to the DTSU-666H. Are you sure that EMMA is correctly wired though with it using PIN 2 (RS485B1-1 'Differential -') and PIN 3 (RS485A1-2 'Differential +'), apart from these being from different pairs, the Huawei documentation shows it as PIN 1 (+) and PIN 3 (-) , that is also the A1/B1 pair previously used to cascade (i.e. out from 1&3 from higher up modbus device, that then goes into 2&4 from lower device in the cascade)? See diagram posted earlier/above, from the EMMA manual.
Note: This would mean that EMMA now would become the Modbus Master, with the 'primary' inverter now becoming a modbus slave to it. This requires confirming the modbus ID# of EMMA and the inverters, as installation may now change to be using ID# of EMMA, then Primary inverter and lastly seconary inverter. i.e. if originally inverters installed with Primary inverter is ID#1, Secondary is ID#2 and when EMMA was installed it just assumed ID#3. Then installing the integration would now mean needing to use ID 3,1,2 (whereas previously the sDongle didn't have an ID and you just entered it as 1,2).
Hoping that Huawei used the same modbus registers that the DDSU/DTSU-666H meter uses, meaning the Smart Meter part of EMMA will work with WLCRS. I haven't see any updated information as to Modbus Registers for EMMA, and IF it adds any new ones to 'share' whatever additional data has / provides access to.
@MarkusKAuatria Do you have an account on https://community.home-assistant.io/ ? I can send you my contact details via private message over there.
Can you also download the latest (and current only) file from https://support.huawei.com/enterprise/en/fusionsolar/smarthems-pid-256539983/software/ and upload it here? For SUN2000 software downloads, the ZIP-files with the firmware updates also include PDF's with documentation on how the available modbus registers look like. As I do not own such a device, I do not have access to those downloads.
@wlcrs My https://community.home-assistant.io/ account ist the same as the GITHUB account (I changed it now)
@Roving-Ronin Sorry it is 7 and 9 The Modbus Adress from EMMA is 0 so it is 0,1,2
Just out of curiosity, what would be the benefit of the EMMA for home assistant integration? As I understood, the "smart" features would be why we connect it to home assistant in the first place. If the connection would be easier, that would be a win, I'm just in the middle of setting up a dedicated Rpi-based home assistant server (as remote unit to the main server). Dealing with (in my case) three wifi dongles for three inverters, is a bit a hassle right now, as HaOS doesn't come with the wifi kernel modules yet. As usual I was stupid selecting the "wrong" wifi sticks 😉
@torwag EMMA combines the modbus access and network connectivity (WiFi and Ethernet) previously provided by the sDongle, the DDSU/DTSU-666H smart meter functions into one unit, whilst then also adding support and connectivity for the Huawei EV charger(s), Load Shedding/Control (via select Shelly devices) and abilty to access cloud data (e.g. forecasts) and your usage trends to provide some 'intelligence' to a Huawei installation.
Yes WLCRS + HA users will still be taking this a step further and pulling in their own data and making automations etc, but the main thing is EMMA appears to be 'the' preferred solution for adding network connectivity, and smart/consumption meter to Huawei installs going forward (vs multiple seperate items). Huawei is also pushing this by the fact that the new Backup Box (aka the SmartGuard) includes an EMMA built into it. From a business perspective for Huawei it also means they are moving from having to buy another vendors consumption meter and work with it, to now producing and selling their own meter (and extra functionality) that they control the IP for, meaning better profits potentially but also potentially reducing their support costs (from issues arising from DDSU/DTSU-666H).
BTW trying to remember, was your setup the one with 3 inverters, with each essentially going to seperate users/apartments? Otherwise, why don't you just cascase them all together (bit of Cat5e cable), the only need 1 sDongle connection for the lot and 1 DDSU/DTSU-666H meter? Are you linking the 'remote' HA to the main server? Have you looked at: https://github.com/custom-components/remote_homeassistant
@MarkusKAuatria Where you able to get a hold of the file that Thijs (WLCRS) was after, containing the modbus definitions? Did you have any luck trying to install WLCRS integration and entering ID# 0,1,2 ? (would be nice if that works, confirming the EMMA is just passing through the inverter / optimiser / battery modbus registers like the existing connection methods do, even though you'd have to presume EMMA has some additional ones for itself, let alone the Smart EV charger ones).
I've received access details from Markus. The EMMA device does not have any open TCP ports at the moment, so he will need to check if he can access a setting to fix this (which seems to be available according to a screenshot from the manual ).
Alternatively, the EMMA-device also exposes a serial Modbus RTU interface on 2 pins (cfr. bottom screenshot of https://github.com/wlcrs/huawei_solar/issues/498#issuecomment-1823788453). So that is another scenario that we can explore if necessary.
Hello, now that there should be more EMMAs in the field, have you received any new information about possible ways to access EMMA? :)
I hope Huawei won't keep it closed to third-party apps for querying their devices.
The EMMA device I had access to via Markus does not answer to any queries: not via TCP, not via RTU (serial). We haven't been able to obtain instructions on how we can locally connect to a solar installation with EMMA from Huawei.
I would urge everybody considering to order a Huawei Solar installation with EMMA device to first contact Huawei to verify if a local Modbus-connection is supported. If possible, please obtain a manual on how to achieve this and share it with me here.
Oh, that's too bad, that is certainly not an optimal situation. I have also tried to get information on the topic as a potential future Huawei customer. Huawei's technical support didn't provide any information because I am not a customer (couldn't provide a device serial no) and referred me to a distributor. The distributor also didn't want to tell me anything because I am an end user.
I guess a Huawei device owner would have to open a service request.
Hallo These were the last two feedbacks from HUAWEI Support
(Freitag, 5. April 2024 15:08) Unfortunately, we do not have any guideline about how access works exactly and how the individual services can be accessed (Modbus TCP, MQTT, web,...) especially for EMMA-A02.
(Friday, 5 April 2024 14:30) Please be advised that we created related SR NO. xxxxxxx and we will come back with a resolution as soon as possible. Kindly ask you to choose the option “Reply All” when communicating with our engineers in order to track your response easily.
Hi,
And did you get a chance to try to connect through the inverter Wifi? It should be Independant from the EMMA no?
BR Thomas Le 5 juin 2024 à 17:07 +0200, Markus @.***>, a écrit :
Hallo These were the last two feedbacks from HUAWEI Support
• > Unfortunately, we do not have any guideline about how access works exactly and how the individual services can be accessed (Modbus TCP, MQTT, web,...) especially for EMMA-A02. • > Please be advised that we created related SR NO. xxxxxxx and we will come back with a resolution as soon as possible. Kindly ask you to choose the option “Reply All” when communicating with our engineers in order to track your response easily.
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
@tmenguy the issue is adding support for EMMA, especially given in future installations it replaces the sDongle, DDSU/DTSU-666H consumption meter and becomes the primary means for communication for the plant (that also has 2 x M1 3p inverters).
Yes, and I was looking at adding an EMMA to my existing installation (with the new backup box ... but it is not 3phases for now it seems). But correct me if I'm wrong: it will replace the meter and Sdongle all at once, but the inverter wifi will stay no? so perhaps there is a way to still connect through it? (Or perhaps I'm completely dumb here and it is the Sdongle that was creating all the modbus connection and the inverter wifi was only a way to access the Sdongle capabilities, and the inverter is only a pass through. But if not it means at least the inverter inner meter and commands could still be available through the wifi no? )
@tmenguy The EMMA-A02 is available to support 3p, with AC voltage options of: 1P2W: 100 ~ 240 V, 50 / 60 Hz 3P3W: 346 ~ 415 V, 50 / 60 Hz 3P4W: 346 ~ 415 V, 50 / 60 Hz
The SmartGuard documentation has started mentioning a 'SmartGuard-63A-T0' with T0 = Three-phase Whole Home Backup system. See:
Networking Quick Guide: https://support.huawei.com/enterprise/en/doc/EDOC1100366779?idPath=258788303|258788483|258789967|21102414|21571652
Be aware though, that whilst it mentions 'whole home backup' have a look at the wiring diagram:
You'll note that it refers to 'Backup Load' and 'Non Backup Load', then have a look at the new 5k-12k MAP0 inverter series manual, with some handy networking diagrams on page 17-18: https://support.huawei.com/enterprise/en/doc/EDOC1100366802?idPath=258788305|254827209|258792409|22755755
From this it appears the SmartGuard-63A-T0 will allow connecting the grid feed into it and then attaching the (bulk of the) house to its protected output up to 63A, so its now inline between your previous grid feed and the switchboard. You could then attach your 3p HVAC/Ducted Aircon unit to the unprotected circuit. Idea appears to be that you are protected this way and then can add an Automatic Transfer Switch (ATS) in to allow cutting over from a grid/mains feed to having a generator kick in, so your LUNA ESS + SmartGuard 'protects' the house for the 20ms until the generator kicks in automatically.
Note that is with the MAP0 inverters and typically it costs a few extra $ for a 3p with a automatic start. If you have the $ for a 3p generator and already have a M1 inverter(s), you could just have an ATS / Manual Transfer Switch (that don't cost much) installed and rely upon the LUNA covering you for a few minutes and walking outside and manually starting the generator.
Hello, the new backup box Smartguard can also only supply 1 phase. The 3-phase designation refers to the inverter. There will be a real 3-phase backup box from Huawei in the future, but it will not be able to work together with the inverters currently on the market. There will be a new inverter for this backup box. The reason is that the current inverters are not unbalanced load capable.
@Roving-Ronin thanks a lot for the, as always very detailed answer, I've seen only the S0 and not the T0 smartGuard, but loosing HA connection may be a no brainer to me if we don't find a way to connect to EMMA. and well what you say @ismiregal17 is even worse then .... it means no true 3p backup for any of our current inverters (even my brand new MB0) ...something I completely missed, and well not happy at all (well I will survive probably :) )
@ismiregal17 "The reason is that the current inverters are not unbalanced load capable."
Good point, overlooked that....
Hi all, I've just installed Huawei SmartGuard-63A-S0 with EMMA-A02 and updated it the latest version that allowed me to open 502 port. I've tried everything connecting to it via Modbus but no luck. Anything that I could do to help this move on?
I'm still pulling data though the Inverter AP
I updated my EMMA-A02 to the latest version and now I got the following screen for adding a third party management system..
Does anyone has any info or manual regarding the communication with third party management systems?
I've implemented initial support for EMMA devices, but as I do not own this device, I was not able to properly test this. I don't want to do a release before I have confirmation that it works.
To test:
0/ make sure that the firmware version of your EMMA is V100R024C00SPC100 or higher. 1/ turn off TLS encryption for Modbus TCP:
2/ download the repository ZIP file: https://github.com/wlcrs/huawei_solar/archive/refs/heads/main.zip
3/ extract the ZIP archive and rename the folder to huawei-solar
4/ put it in the config/custom_components
folder of your Home Assistant.
5/ follow instructions from README: https://github.com/wlcrs/huawei_solar?tab=readme-ov-file#installation
If the documentation is correct, the EMMA will always be device 0. You need to lookup and add the slave ids of your inverters yourself, as they were chosen by your installer.
If I didn't make any error (which is highly unlikely), the integration should properly initialize.
If it fails, then please post the relevant parts of the full logs with the errors (buttons on the bottom of the Logs page).
If you don't see anything in the logs, then add the following to your configuration.yaml
and try again:
logger:
logs:
pymodbus: debug
huawei_solar: debug
homeassistant.components.huawei_solar: debug
@wlcrs I have tried it but unfortunately it does not work.
This error was caused by a custom integration
Logger: custom_components.huawei-solar.config_flow Quelle: custom_components/huawei-solar/config_flow.py:410 Integration: huawei-solar Erstmals aufgetreten: 19:03:43 (Incidents 5): Last logged 19:04:30
Unexpected exception while connecting via ModbusTCP Traceback (most recent call last): File "/config/custom_components/huawei-solar/config_flow.py", line 410, in async_step_setup_network info = await validate_network_setup( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/huawei-solar/config_flow.py", line 104, in validate_network_setup bridge = await HuaweiSolarBridge.create( ^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: HuaweiSolarBridge.create() got an unexpected keyword argument 'host'
Going to verify the tls. L.E. Checked and SSL is off.
Firmware is ok config # nc -vz 192.168.1.11 502 192.168.1.11 (192.168.1.11:502) open
I've deleted the invertor set to 192.168.200.1 I can't even add that one same error with port 6607. So its not related to emma. 1.5.0.a1 has 94 entities found vs 88 I had previously. Can't seem to find yet the difference. But I can't add EMMA on any ID 0,1,2, even 123 slave as Invertor is being mentioned in Fusion Solar Web.
2024-08-03 21:23:31.734 DEBUG (MainThread) [pymodbus.logging] handle: [b'\xff\xff', b'\xfb\xc0'] 2024-08-03 21:23:31.734 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x03\xc5'] 2024-08-03 21:23:31.734 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x03+'] 2024-08-03 21:23:31.785 DEBUG (MainThread) [pymodbus.logging] Adding transaction 30 2024-08-03 21:23:31.785 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-03 21:23:31.785 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1e 0x0 0x0 0x0 0x6 0x0 0x3 0x93 0x80 0x0 0x1c 2024-08-03 21:23:31.805 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x1e 0x0 0x0 0x0 0x3b 0x0 0x3 0x38 0x3 0xc 0x0 0x0 0x0 0x2 0x11 0x8c 0xff 0xea 0xff 0xff 0xfb 0xe8 0x0 0x0 0x27 0x10 0x0 0x0 0x27 0x10 0x0 0x0 0x23 0x28 0x0 0x0 0x23 0x28 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x80 0xe0 0x0 0x3 0x77 0x4e 0x0 0x0 0x3 0xc5 0x0 0x0 0x3 0x2b old_data: addr=None 2024-08-03 21:23:31.805 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x1e 0x0 0x0 0x0 0x3b 0x0 0x3 0x38 0x3 0xc 0x0 0x0 0x0 0x2 0x11 0x8c 0xff 0xea 0xff 0xff 0xfb 0xe8 0x0 0x0 0x27 0x10 0x0 0x0 0x27 0x10 0x0 0x0 0x23 0x28 0x0 0x0 0x23 0x28 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x80 0xe0 0x0 0x3 0x77 0x4e 0x0 0x0 0x3 0xc5 0x0 0x0 0x3 0x2b 2024-08-03 21:23:31.805 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-03 21:23:31.805 DEBUG (MainThread) [pymodbus.logging] Getting transaction 30 2024-08-03 21:23:31.805 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-03 21:23:31.805 DEBUG (MainThread) [pymodbus.logging] [780, 0, 2, 4492, 65514, 65535, 64488, 0, 10000, 0, 10000, 0, 9000, 0, 9000, 0, 0, 0, 0, 0, 3, 32992, 3, 30542, 0, 965, 0, 811] 2024-08-03 21:23:31.806 DEBUG (MainThread) [pymodbus.logging] handle: [b'\xff\xff', b'\xfb\xe8'] 2024-08-03 21:23:31.806 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x03', b'\x80\xe0'] 2024-08-03 21:23:31.806 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x03', b'wN'] 2024-08-03 21:23:31.806 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x03\xc5'] 2024-08-03 21:23:31.806 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x03+'] 2024-08-03 21:23:32.491 ERROR (MainThread) [custom_components.huawei_solar.config_flow] Unexpected exception while connecting via ModbusTCP Traceback (most recent call last): File "/config/custom_components/huawei_solar/config_flow.py", line 410, in async_step_setup_network info = await validate_network_setup( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/huawei_solar/config_flow.py", line 104, in validate_network_setup bridge = await HuaweiSolarBridge.create( ^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: HuaweiSolarBridge.create() got an unexpected keyword argument 'host' 2024-08-03 21:23:32.818 ERROR (MainThread) [custom_components.huawei_solar.config_flow] Unexpected exception while connecting via ModbusTCP Traceback (most recent call last): File "/config/custom_components/huawei_solar/config_flow.py", line 410, in async_step_setup_network info = await validate_network_setup( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/huawei_solar/config_flow.py", line 104, in validate_network_setup bridge = await HuaweiSolarBridge.create( ^^^^^^^^^^^^^^^^^^^^^^^^^
@ismiregal17 @dragosmd Thank for your the feedback. I fixed that bug in the config flow. Hopefully you can add the integration successfully now.
@wlcrs So far no: Only thing to mention my SmartGuard Part is still on V100R023C10SPC103 found out now that there is also a V100R024C00SPC100 for it. I'll update tomorrow morning since its not available via web. Emma is with the latest version.
2024-08-03 22:48:14.478 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.11:502. 2024-08-03 22:48:14.479 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-03 22:48:14.480 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-03 22:48:14.480 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-03 22:48:14.490 DEBUG (MainThread) [pymodbus.logging] -> transport: received eof 2024-08-03 22:48:14.490 DEBUG (MainThread) [pymodbus.logging] Connection lost comm due to None 2024-08-03 22:48:14.491 DEBUG (MainThread) [pymodbus.logging] callback_disconnected called: None 2024-08-03 22:48:14.491 DEBUG (MainThread) [pymodbus.logging] Wait comm 1000000 ms before reconnecting. 2024-08-03 22:48:15.766 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:15.767 ERROR (MainThread) [backoff] Giving up _do_read(...) after 6 tries (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:15.767 ERROR (MainThread) [huawei_solar.huawei_solar] Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 365, in _do_read raise ConnectionInterruptedException(message) huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 167, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 116, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 239, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 276, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 419, in _read_registers return await _do_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 159, in retry await _call_handlers(on_giveup, details, exception=e) File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 37, in _call_handlers await handler(details) File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 16, in f return coro_or_func(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 341, in backoff_giveup raise ReadException( huawei_solar.exceptions.ReadException: Failed to read register 43006 after 6 tries 2024-08-03 22:48:15.981 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:15.982 INFO (MainThread) [backoff] Backing off _do_read(...) for 1.0s (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:16.983 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:16.984 INFO (MainThread) [backoff] Backing off _do_read(...) for 2.0s (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:18.985 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:18.985 INFO (MainThread) [backoff] Backing off _do_read(...) for 4.0s (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:18.985 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.11:502. 2024-08-03 22:48:18.985 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-03 22:48:18.987 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-03 22:48:18.987 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-03 22:48:18.999 DEBUG (MainThread) [pymodbus.logging] -> transport: received eof 2024-08-03 22:48:18.999 DEBUG (MainThread) [pymodbus.logging] Connection lost comm due to None 2024-08-03 22:48:18.999 DEBUG (MainThread) [pymodbus.logging] callback_disconnected called: None 2024-08-03 22:48:19.000 DEBUG (MainThread) [pymodbus.logging] Wait comm 1000000 ms before reconnecting. 2024-08-03 22:48:22.986 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:22.986 INFO (MainThread) [backoff] Backing off _do_read(...) for 8.0s (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:30.987 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:30.988 INFO (MainThread) [backoff] Backing off _do_read(...) for 16.0s (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:46.989 ERROR (MainThread) [huawei_solar.huawei_solar] Modbus client is not connected to the inverter. NoneType: None 2024-08-03 22:48:46.990 ERROR (MainThread) [backoff] Giving up _do_read(...) after 6 tries (huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.) 2024-08-03 22:48:46.990 ERROR (MainThread) [huawei_solar.huawei_solar] Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 365, in _do_read raise ConnectionInterruptedException(message) huawei_solar.exceptions.ConnectionInterruptedException: Modbus client is not connected to the inverter.
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 167, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 116, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 239, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 276, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 419, in _read_registers return await _do_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 159, in retry await _call_handlers(on_giveup, *details, exception=e) File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 37, in _call_handlers await handler(details) File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 16, in f return coro_or_func(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 341, in backoff_giveup raise ReadException( huawei_solar.exceptions.ReadException: Failed to read register 43006 after 6 tries
Unfortunately not yet
1. This error was caused by a custom integration
Logger: pymodbus.logging Source: custom_components/huawei_solar/config_flow.py:104 Integration: Huawei Solar (documentation, problems) First occurred: 06:55:01 (1 occurrences) Last logged: 06:55:01
Failed to connect [Errno 111] Connect call failed ('192.168.178.50', 502)
2. Logger: huawei_solar.huawei_solar Quelle: /usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py:162 Erstmals aufgetreten: 06:55:06 (1 Vorkommnisse) Zuletzt protokolliert: 06:55:06
Timeout while waiting for connection. Reconnecting... Traceback (most recent call last): File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for return await fut ^^^^^^^^^ File "/usr/local/lib/python3.12/asyncio/locks.py", line 212, in wait await fut asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 157, in _communication_lock await asyncio.wait_for( File "/usr/local/lib/python3.12/asyncio/tasks.py", line 519, in wait_for async with timeouts.timeout(timeout): File "/usr/local/lib/python3.12/asyncio/timeouts.py", line 115, in aexit raise TimeoutError from exc_val TimeoutError
3. Logger: huawei_solar.huawei_solar Quelle: /usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py:203 Erstmals aufgetreten: 06:55:06 (1 Vorkommnisse) Zuletzt protokolliert: 06:55:06
Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for return await fut ^^^^^^^^^ File "/usr/local/lib/python3.12/asyncio/locks.py", line 212, in wait await fut asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 199, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 118, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 271, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 308, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 444, in _read_registers async with self._communication_lock(): File "/usr/local/lib/python3.12/contextlib.py", line 210, in aenter return await anext(self.gen) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 157, in _communication_lock await asyncio.wait_for( File "/usr/local/lib/python3.12/asyncio/tasks.py", line 519, in wait_for async with timeouts.timeout(timeout): File "/usr/local/lib/python3.12/asyncio/timeouts.py", line 115, in aexit raise TimeoutError from exc_val TimeoutError
4. Logger: pymodbus.logging Quelle: runner.py:190 Erstmals aufgetreten: 06:55:06 (1 Vorkommnisse) Zuletzt protokolliert: 06:55:06
Failed to connect [Errno 111] Connect call failed ('192.168.178.50', 502)
5. Logger: homeassistant.components.sensor.recorder Quelle: components/sensor/recorder.py:486 Integration: Sensor (Dokumentation, Probleme) Erstmals aufgetreten: 06:55:10 (1 Vorkommnisse) Zuletzt protokolliert: 06:55:10
The unit of sensor.sun2000_5ktl_m1_reactive_output_power (var) cannot be converted to the unit of previously compiled statistics (kVar). Generation of long term statistics will be suppressed unless the unit changes back to kVar or a compatible unit. Go to https://my.home-assistant.io/redirect/developer_statistics to fix this
@wlcrs not sure if the Emma is ready for it :) I have a RS485 to ETH mounted RS485A1 B1 for some time on the same port as EMMA is connected to the inverter.
If I test connecting to RS485 with Slave 0 I get the following output:
2024-08-04 21:09:08.492 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.6:502. 2024-08-04 21:09:08.492 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-04 21:09:08.494 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-04 21:09:08.494 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:09:09.995 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:09:09.995 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:09:09.995 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:09:19.996 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:09:19.996 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:09:19.996 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:09:29.996 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:09:29.997 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:09:29.997 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0 x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:09:40.000 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:09:40.000 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:09:40.000 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:09:50.001 DEBUG (MainThread) [pymodbus.logging] Connection lost comm due to Server not responding 2024-08-04 21:09:50.001 DEBUG (MainThread) [pymodbus.logging] callback_disconnected called: Server not responding 2024-08-04 21:09:50.001 ERROR (MainThread) [huawei_solar.huawei_solar] Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 167, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 116, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 239, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 276, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 419, in _read_registers return await _do_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 367, in _do_read response = await self._client.read_holding_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/pymodbus/client/base.py", line 183, in async_execute raise ModbusIOException( pymodbus.exceptions.ModbusIOException: Modbus Error: [Input/Output] ERROR: No response received after 3 retries
If I test with Slave 0,1 2024-08-04 21:14:30.976 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.6:502. 2024-08-04 21:14:30.976 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-04 21:14:30.978 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-04 21:14:30.978 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:14:32.479 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:14:32.479 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:14:32.479 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:14:42.481 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:14:42.481 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:14:42.481 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:14:52.481 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:14:52.482 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:14:52.482 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:15:02.483 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:15:02.483 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:15:02.483 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:15:12.484 DEBUG (MainThread) [pymodbus.logging] Connection lost comm due to Server not responding 2024-08-04 21:15:12.484 DEBUG (MainThread) [pymodbus.logging] callback_disconnected called: Server not responding 2024-08-04 21:15:12.484 ERROR (MainThread) [huawei_solar.huawei_solar] Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 167, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 116, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 239, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 276, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 419, in _read_registers return await _do_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 367, in _do_read response = await self._client.read_holding_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/pymodbus/client/base.py", line 183, in async_execute raise ModbusIOException( pymodbus.exceptions.ModbusIOException: Modbus Error: [Input/Output] ERROR: No response received after 3 retries
Just slave1 - aka inverter: 2024-08-04 21:15:56.486 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.6:502. 2024-08-04 21:15:56.486 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-04 21:15:56.488 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-04 21:15:56.488 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:15:57.989 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-04 21:15:57.989 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:15:57.989 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x3 0xa7 0xfe 0x0 0x1 2024-08-04 21:15:58.074 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x3 0x2 0x0 0x78 old_data: addr=None 2024-08-04 21:15:58.074 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x3 0x2 0x0 0x78 2024-08-04 21:15:58.074 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-04 21:15:58.074 DEBUG (MainThread) [pymodbus.logging] Getting transaction 1 2024-08-04 21:15:58.074 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-04 21:15:58.074 DEBUG (MainThread) [pymodbus.logging] [120] 2024-08-04 21:15:58.125 DEBUG (MainThread) [pymodbus.logging] Adding transaction 2 2024-08-04 21:15:58.126 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:15:58.126 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x2 0x0 0x0 0x0 0x6 0x1 0x3 0x75 0x30 0x0 0x41 2024-08-04 21:15:58.360 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x2 0x0 0x0 0x0 0x85 0x1 0x3 0x82 0x53 0x55 0x4e 0x32 0x30 0x30 0x30 0x2d 0x36 0x4b 0x54 0x4c 0x2d 0x4c 0x31 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x48 0x56 0x32 0x32 0x39 0x30 0x32 0x39 0x39 0x34 0x30 0x38 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x30 0x31 0x30 0x37 0x35 0x33 0x34 0x35 0x2d 0x30 0x31 0x35 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x56 0x32 0x30 0x30 0x52 0x30 0x30 0x31 0x43 0x30 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x56 0x32 0x30 0x30 0x52 0x30 0x30 0x31 0x43 0x30 0x30 0x53 0x50 0x43 0x31 0x34 0x32 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 old_data: addr=None 2024-08-04 21:15:58.360 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x2 0x0 0x0 0x0 0x85 0x1 0x3 0x82 0x53 0x55 0x4e 0x32 0x30 0x30 0x30 0x2d 0x36 0x4b 0x54 0x4c 0x2d 0x4c 0x31 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x48 0x56 0x32 0x32 0x39 0x30 0x32 0x39 0x39 0x34 0x30 0x38 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x30 0x31 0x30 0x37 0x35 0x33 0x34 0x35 0x2d 0x30 0x31 0x35 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x56 0x32 0x30 0x30 0x52 0x30 0x30 0x31 0x43 0x30 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x56 0x32 0x30 0x30 0x52 0x30 0x30 0x31 0x43 0x30 0x30 0x53 0x50 0x43 0x31 0x34 0x32 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 2024-08-04 21:15:58.360 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-04 21:15:58.361 DEBUG (MainThread) [pymodbus.logging] Getting transaction 2 2024-08-04 21:15:58.361 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-04 21:15:58.361 DEBUG (MainThread) [pymodbus.logging] [21333, 20018, 12336, 12333, 13899, 21580, 11596, 12544, 0, 0, 0, 0, 0, 0, 0, 18518, 12850, 14640, 12857, 14644, 12344, 0, 0, 0, 0, 12337, 12343, 13619, 13365, 11568, 12597, 0, 0, 0, 0, 22066, 12336, 21040, 12337, 17200, 12288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22066, 12336, 21040, 12337, 17200, 12371, 20547, 12596, 12800, 0, 0, 0, 0, 0, 0] 2024-08-04 21:15:58.411 DEBUG (MainThread) [pymodbus.logging] Adding transaction 3 2024-08-04 21:15:58.412 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-04 21:15:58.412 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x3 0x0 0x0 0x0 0x6 0x1 0x3 0x75 0x77 0x0 0x1 2024-08-04 21:15:58.602 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x3 0x0 0x0 0x0 0x5 0x1 0x3 0x2 0x0 0x2 old_data: addr=None 2024-08-04 21:15:58.603 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x3 0x0 0x0 0x0 0x5 0x1 0x3 0x2 0x0 0x2 2024-08-04 21:15:58.603 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-04 21:15:58.603 DEBUG (MainThread) [pymodbus.logging] Getting transaction 3 2024-08-04 21:15:58.603 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-04 21:15:58.603 DEBUG (MainThread) [pymodbus.logging] [2]
You need to set the client adress to a valid value.
The default 0.0.0.0
did not work for me.
Hello and what value is that?
@StefanOltmann can you paste your settings , firmware and a working output? I have my doubts since I can't query it directly from .
@dragosmd Unfortunately, I don't have specific settings to share.
I use my own script, which you can find a working sample here: https://github.com/StefanOltmann/emma_modbus_test/blob/main/src/main/kotlin/Main.kt
I wanted to share an important finding not mentioned above: You can't leave the client IP set to 0.0.0.0
. Instead, you need to set it to the IP address of the client requesting the values. This means that only one client can use the Modbus at a time, but I believe this is the case for most of us anyway.
The firmware is of course the recent v24 as the older ones don't have a Modbus option to activate in the settings.
@StefanOltmann I've set all kinds of IPs in MODBUS Page Emma has 192.168.1.11. Tested with 192.168.1.2 that is HA, 192.168.1.0/ 255.255.255.255 or 0.0.0.0 non of them are working.
So in my case its not related to that TCP IP. Cause as I mentioned I have a rs485 to eth connected directly to emma and that doesn't work also. I don't say its not working at all. Its not working with the libraries provided by @wlcrs
@dragosmd
If HA is running on 192.168.1.2 this is exactly what you should enter as client IP.
Did you try to run my script to see if that is working for you? Just to come closer to the main issue.
If HA is running on 192.168.1.2 ... this is exactly what you should enter as client IP. Used that no luck. If you send me the details on how to run it and what packages I need to install, gladly
You can run my script from IDE using IntelliJ IDEA.
For me it's working as expected with Emma a02: Set Client IP to your HA-IP, disable TLS and set the right Slave-ID - in my case which is a default setup it is 2.
@andheller123 where did you extract the slave-id ? none work for me. Slave 123 as show in fusion solar, extract 3 entities: Inverter, Batteries with just 3 options that are unavailable after query and Battery-1 with no entities. nothing related to EMMA. 3 devices - 43 entities vs 4 with 91 if I querry the inverter.
@wlcrs If I set slave 0,123 it doesn't work:
2024-08-06 18:44:52.936 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.11:502. 2024-08-06 18:44:52.936 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-06 18:44:52.937 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-06 18:44:52.937 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:44:54.439 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-06 18:44:54.439 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:44:54.439 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-06 18:44:54.443 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x1 0x0 0x0 0x0 0x3 0x0 0x83 0x3 old_data: addr=None 2024-08-06 18:44:54.443 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x1 0x0 0x0 0x0 0x3 0x0 0x83 0x3 2024-08-06 18:44:54.443 DEBUG (MainThread) [pymodbus.logging] Factory Response[131] 2024-08-06 18:44:54.443 DEBUG (MainThread) [pymodbus.logging] Getting transaction 1 2024-08-06 18:44:54.443 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 18:44:54.443 ERROR (MainThread) [huawei_solar.huawei_solar] Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 167, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 116, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 239, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 276, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 419, in _read_registers return await _do_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 394, in _do_read raise ReadException( huawei_solar.exceptions.ReadException: Got error while reading from register 43006 with length 1: Exception Response(131, 3, IllegalValue) 2024-08-06 18:45:05.652 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.11:502. 2024-08-06 18:45:05.652 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-06 18:45:05.653 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-06 18:45:05.653 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:45:07.155 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-06 18:45:07.156 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:45:07.156 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x0 0x3 0xa7 0xfe 0x0 0x1 2024-08-06 18:45:07.158 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x1 0x0 0x0 0x0 0x3 0x0 0x83 0x3 old_data: addr=None 2024-08-06 18:45:07.158 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x1 0x0 0x0 0x0 0x3 0x0 0x83 0x3 2024-08-06 18:45:07.159 DEBUG (MainThread) [pymodbus.logging] Factory Response[131] 2024-08-06 18:45:07.159 DEBUG (MainThread) [pymodbus.logging] Getting transaction 1 2024-08-06 18:45:07.159 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 18:45:07.159 ERROR (MainThread) [huawei_solar.huawei_solar] Aborting client creation due to error. Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 167, in create await huawei_solar._initialize() File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 116, in _initialize self.time_zone = (await self.get(rn.TIME_ZONE)).value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 239, in get return (await self.get_multiple([name], slave))[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 276, in get_multiple response = await self._read_registers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 419, in _read_registers return await _do_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry ret = await target(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/huawei_solar/huawei_solar.py", line 394, in _do_read raise ReadException( huawei_solar.exceptions.ReadException: Got error while reading from register 43006 with length 1: Exception Response(131, 3, IllegalValue)
If I choose slave 123,0 2024-08-06 18:45:17.842 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.11:502. 2024-08-06 18:45:17.842 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-06 18:45:17.844 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-06 18:45:17.844 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:45:19.345 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1 2024-08-06 18:45:19.345 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:45:19.345 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x1 0x0 0x0 0x0 0x6 0x7b 0x3 0xa7 0xfe 0x0 0x1 2024-08-06 18:45:19.348 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x1 0x0 0x0 0x0 0x5 0x7b 0x3 0x2 0x1 0xe0 old_data: addr=None 2024-08-06 18:45:19.348 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0x1 0x0 0x0 0x0 0x5 0x7b 0x3 0x2 0x1 0xe0 2024-08-06 18:45:19.348 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-06 18:45:19.348 DEBUG (MainThread) [pymodbus.logging] Getting transaction 1 2024-08-06 18:45:19.348 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 18:45:19.348 DEBUG (MainThread) [pymodbus.logging] [480] 2024-08-06 18:45:19.399 DEBUG (MainThread) [pymodbus.logging] Adding transaction 2 2024-08-06 18:45:19.399 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 18:45:19.399 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0x2 0x0 0x0 0x0 0x6 0x7b 0x3 0x75 0x30 0x0 0x41 2024-08-06 18:45:19.402 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0x2 0x0 0x0 0x0 0x85 0x7b 0x3 0x82 0x53 0x55 0x4e 0x32 0x30 0x30 0x30 0x2d 0x36 0x4b 0x54 0x4c 0x2d 0x4c 0x31 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x48 0x56 0x32 0x32 0x39 0x30 0x32 0x39 0x39 0x34 0x30 0x38 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x30 0x31 0x30 0x37 0x35 0x33 0x34 0x35 0x2d 0x30 0x31 0x35 0x ......... ........ 2024-08-06 18:45:22.724 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 18:45:22.724 DEBUG (MainThread) [pymodbus.logging] [1] 2024-08-06 18:45:22.745 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_input_power already exists - ignoring sensor.inverter_input_power 2024-08-06 18:45:22.747 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_day_active_power_peak already exists - ignoring sensor.inverter_day_active_power_peak 2024-08-06 18:45:22.747 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_active_power already exists - ignoring sensor.inverter_active_power 2024-08-06 18:45:22.747 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_efficiency already exists - ignoring sensor.inverter_efficiency 2024-08-06 18:45:22.748 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_device_status already exists - ignoring sensor.inverter_device_status 2024-08-06 18:45:22.748 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_startup_time already exists - ignoring sensor.inverter_startup_time 2024-08-06 18:45:22.748 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_shutdown_time already exists - ignoring sensor.inverter_shutdown_time 2024-08-06 18:45:22.748 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_accumulated_yield_energy already exists - ignoring sensor.inverter_total_yield 2024-08-06 18:45:22.749 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_total_dc_input_power already exists - ignoring sensor.inverter_total_dc_input_energy 2024-08-06 18:45:22.749 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_hourly_yield_energy already exists - ignoring sensor.inverter_hourly_yield 2024-08-06 18:45:22.749 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_daily_yield_energy already exists - ignoring sensor.inverter_daily_yield 2024-08-06 18:45:22.749 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_state_1 already exists - ignoring sensor.inverter_inverter_state 2024-08-06 18:45:22.749 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_state_2#0 already exists - ignoring sensor.inverter_locking_status 2024-08-06 18:45:22.749 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_state_2#1 already exists - ignoring sensor.inverter_pv_connection_status 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_state_2#2 already exists - ignoring sensor.inverter_dsp_data_collection 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_state_3#0 already exists - ignoring sensor.inverter_off_grid_status 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_state_3#1 already exists - ignoring sensor.inverter_off_grid_switch 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_ALARMS already exists - ignoring sensor.inverter_alarms 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_pv_01_voltage already exists - ignoring sensor.inverter_pv_1_voltage 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_pv_01_current already exists - ignoring sensor.inverter_pv_1_current 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_pv_02_voltage already exists - ignoring sensor.inverter_pv_2_voltage 2024-08-06 18:45:22.750 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_pv_02_current already exists - ignoring sensor.inverter_pv_2_current 2024-08-06 18:45:22.751 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_state_of_capacity already exists - ignoring sensor.batteries_state_of_capacity 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_running_status already exists - ignoring sensor.batteries_status 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_bus_voltage already exists - ignoring sensor.batteries_bus_voltage 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_bus_current already exists - ignoring sensor.batteries_bus_current 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_charge_discharge_power already exists - ignoring sensor.batteries_charge_discharge_power 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_total_charge already exists - ignoring sensor.batteries_total_charge 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_total_discharge already exists - ignoring sensor.batteries_total_discharge 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_current_day_charge_capacity already exists - ignoring sensor.batteries_day_charge 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_current_day_discharge_capacity already exists - ignoring sensor.batteries_day_discharge 2024-08-06 18:45:22.752 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_huawei_luna2000_time_of_use_charging_and_discharging_periods already exists - ignoring sensor.batteries_tou_charging_and_discharging_periods 2024-08-06 18:45:22.753 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_storage_fixed_charging_and_discharging_periods already exists - ignoring sensor.batteries_fixed_charging_periods 2024-08-06 18:45:22.753 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV1234567890_forcible_charge_discharge_write already exists - ignoring sensor.batteries_forcible_charge 2024-08-06 18:45:22.774 DEBUG (MainThread) [pymodbus.logging] Adding transaction 20
I've just published a new version which works around the different behavior towards datetime registers by EMMA. Can you test again with the lastest commit on the main branch?
Could anyone please help me find the location where to enable Modbus TCP? I guess it is only available in the installer account? My installer did not find the settings.
Is it just in the mobile app or on the web as well?
Screenshots would be perfect.
And thank you in advance.
@dernicc Local EMMA connection, Installer Account: Set / Communication Settings / ModBus TCP ( this works only on 24SPC100 firmware )
@wlcrs Redownloaded restarted: Should EMMA entities appear? still configured as Slave: 123,0 2024-08-06 21:13:37.060 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-06 21:13:37.060 DEBUG (MainThread) [pymodbus.logging] Getting transaction 81 2024-08-06 21:13:37.060 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 21:13:37.060 DEBUG (MainThread) [pymodbus.logging] [408] 2024-08-06 21:13:37.060 DEBUG (MainThread) [huawei_solar.bridge] Batch update of the following registers: storage_state_of_capacity, storage_running_status, storage_bus_voltage, storage_bus_current, storage_charge_discharge_power, storage_total_charge, storage_total_discharge, storage_current_day_charge_capacity, storage_current_day_discharge_capacity 2024-08-06 21:13:37.060 DEBUG (MainThread) [huawei_solar.huawei_solar] Sleeping for 0.049498 seconds before making next call. 2024-08-06 21:13:37.111 DEBUG (MainThread) [huawei_solar.huawei_solar] Reading register 37760 with length 28 from slave 123 2024-08-06 21:13:37.111 DEBUG (MainThread) [pymodbus.logging] Adding transaction 82 2024-08-06 21:13:37.111 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -
grep for ERROR: ady exists - ignoring sensor.inverter_inverter_state 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_2#0 already exists - ignoring sensor.inverter_locking_status 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_2#1 already exists - ignoring sensor.inverter_pv_connection_status 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_2#2 already exists - ignoring sensor.inverter_dsp_data_collection 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_3#0 already exists - ignoring sensor.inverter_off_grid_status 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_3#1 already exists - ignoring sensor.inverter_off_grid_switch 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_ALARMS already exists - ignoring sensor.inverter_alarms 2024-08-06 21:15:16.696 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_01_voltage already exists - ignoring sensor.inverter_pv_1_voltage 2024-08-06 21:15:16.697 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_01_current already exists - ignoring sensor.inverter_pv_1_current 2024-08-06 21:15:16.697 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_02_voltage already exists - ignoring sensor.inverter_pv_2_voltage 2024-08-06 21:15:16.697 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_02_current already exists - ignoring sensor.inverter_pv_2_current 2024-08-06 21:15:16.698 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_state_of_capacity already exists - ignoring sensor.batteries_state_of_capacity 2024-08-06 21:15:16.698 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_running_status already exists - ignoring sensor.batteries_status 2024-08-06 21:15:16.698 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_bus_voltage already exists - ignoring sensor.batteries_bus_voltage 2024-08-06 21:15:16.698 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_bus_current already exists - ignoring sensor.batteries_bus_current 2024-08-06 21:15:16.698 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_charge_discharge_power already exists - ignoring sensor.batteries_charge_discharge_power 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_total_charge already exists - ignoring sensor.batteries_total_charge 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_total_discharge already exists - ignoring sensor.batteries_total_discharge 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_current_day_charge_capacity already exists - ignoring sensor.batteries_day_charge 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_current_day_discharge_capacity already exists - ignoring sensor.batteries_day_discharge 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_huawei_luna2000_time_of_use_charging_and_discharging_periods already exists - ignoring sensor.batteries_tou_charging_and_discharging_periods 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_fixed_charging_and_discharging_periods already exists - ignoring sensor.batteries_fixed_charging_periods 2024-08-06 21:15:16.699 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_forcible_charge_discharge_write already exists - ignoring sensor.batteries_forcible_charge 2024-08-06 21:15:16.700 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_battery_temperature already exists - ignoring sensor.battery_1_temperature 2024-08-06 21:15:16.701 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_state_of_capacity already exists - ignoring sensor.battery_1_state_of_capacity 2024-08-06 21:15:16.701 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_charge_discharge_power already exists - ignoring sensor.battery_1_charge_discharge_power 2024-08-06 21:15:16.889 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_active_power_fixed_value_derating already exists - ignoring number.inverter_power_derating 2024-08-06 21:15:16.889 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_maximum_charging_power already exists - ignoring number.batteries_maximum_charging_power 2024-08-06 21:15:16.889 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_maximum_discharging_power already exists - ignoring number.batteries_maximum_discharging_power 2024-08-06 21:15:16.889 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_charging_cutoff_capacity already exists - ignoring number.batteries_end_of_charge_soc 2024-08-06 21:15:16.889 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_discharging_cutoff_capacity already exists - ignoring number.batteries_end_of_discharge_soc 2024-08-06 21:15:16.891 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_backup_power_state_of_charge already exists - ignoring number.batteries_backup_power_soc 2024-08-06 21:15:16.891 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_grid_charge_cutoff_state_of_charge already exists - ignoring number.batteries_grid_charge_cutoff_soc 2024-08-06 21:15:16.891 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_power_of_charge_from_grid already exists - ignoring number.batteries_grid_charge_maximum_power 2024-08-06 21:15:26.533 ERROR (MainThread) [custom_components.huawei_solar] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.huawei_solar.update_coordinator.HuaweiSolarUpdateCoordinator object at 0x7fdf278285f0>> 2024-08-06 21:15:26.786 ERROR (MainThread) [custom_components.huawei_solar] Error fetching HV2290299408_config_data_update_coordinator data: Could not update HV2290299408 values: Got error while reading from register 47200 with length 51: Exception Response(131, 3, IllegalValue) 2024-08-06 21:15:26.787 ERROR (MainThread) [custom_components.huawei_solar] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <c 2024-08-06 21:11:37.435 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x17p'] 2024-08-06 21:11:37.435 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x01\xfa'] 2024-08-06 21:11:37.435 DEBUG (MainThread) [pymodbus.logging] handle: [b'f\xb1', b'\xcc\x94'] 2024-08-06 21:11:37.435 DEBUG (MainThread) [pymodbus.logging] handle: [b'\xff\xff', b'\xff\xff'] 2024-08-06 21:11:37.435 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x18', b'\xd6\xd1'] 2024-08-06 21:11:37.435 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x1a', b'|\x0e'] 2024-08-06 21:11:37.436 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\x00\t'] 2024-08-06 21:11:37.436 DEBUG (MainThread) [pymodbus.logging] handle: [b'\x00\x00', b'\n\x12'] 2024-08-06 21:11:37.436 DEBUG (MainThread) [custom_components.huawei_solar] Finished fetching HV2290299408_inverter_data_update_coordinator data in 0.061 seconds (success: True) 2024-08-06 21:11:37.439 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved (None) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 255, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/huawei_solar/sensor.py", line 1105, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1007, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1133, in _async_write_ha_state state, attr, capabilities, shadowed_attr = self.async_calculate_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1068, in async_calculate_state state = self._stringify_state(available) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1013, in _stringify_state if (state := self.state) is None: ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/sensor/init.py", line 586, in state raise ValueError( ValueError: Invalid datetime: sensor.inverter_startup_time provides state '2024-08-06 02:11:16', which is missing timezone information
@wlcrs 2nd Update. Deleted the folder, unzip again. added Slave: 0,123 Emma appeared:
Entities still not being populated:
2024-08-06 21:27:39.002 DEBUG (MainThread) [huawei_solar.huawei_solar] Sleeping for 0.048491 seconds before making next call. 2024-08-06 21:27:39.003 ERROR (MainThread) [custom_components.huawei_solar] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.huawei_solar.update_coordinator.HuaweiSolarUpdateCoordinator object at 0x7f13c9fcdfa0>> Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 137, in _handle_timer_finish await task File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 288, in async_refresh await self._async_refresh(log_failures=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/huawei_solar/sensor.py", line 1378, in _handle_coordinator_update self._attr_extra_state_attributes.clear() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'HuaweiSolarFixedChargingPeriodsSensorEntity' object has no attribute '__attr_extra_state_attributes'. Did you mean: '_attr_extra_state_attributes'? 2024-08-06 21:27:39.051 DEBUG (MainThread) [huawei_solar.huawei_solar] Reading register 37760 with length 28 from slave 123 2024-08-06 21:27:39.051 DEBUG (MainThread) [pymodbus.logging] Adding transaction 23
2024-08-06 21:37:16.341 DEBUG (MainThread) [custom_components.huawei_solar] Finished fetching HV2290299408_inverter_data_update_coordinator data in 0.087 seconds (success: True) 2024-08-06 21:37:16.344 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved (None) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 255, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/huawei_solar/sensor.py", line 1105, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1007, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1133, in _async_write_ha_state state, attr, capabilities, shadowed_attr = self.async_calculate_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1068, in async_calculate_state state = self._stringify_state(available) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1013, in _stringify_state if (state := self.state) is None: ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/sensor/init.py", line 586, in state raise ValueError( ValueError: Invalid datetime: sensor.inverter_startup_time provides state '2024-08-06 02:11:16', which is missing timezone information
Can you please test again with the latest changes?
(yes, this is annoying. This is why I always said that I didn't want to develop against devices that I cannot directly access).
annoying no :) cause I'm searching for emma features so its my interest to help. I have another specialty in this domain but I can help how I know/can. Redownloaded. Logs and pictures attached. Battery entities especially numbers still empty. Inverter PV1, On grid fixed. as for later Emma registry can I help add some of them? with some guidance as well? I would like the info from some registry and the on-grid / off-grid switch for example
I'm querying 1.11 502 Emma with slave 0,123 and 200.1 6607 Slave 0 for the inverter cause I still have the power-meter attached and a lot of automation triggered by its values.
2024-08-06 22:13:00.452 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.1.11:502. 2024-08-06 22:13:00.452 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-06 22:13:00.453 DEBUG (MainThread) [pymodbus.logging] Connecting to 192.168.200.1:6607. 2024-08-06 22:13:00.453 DEBUG (MainThread) [pymodbus.logging] Connecting comm 2024-08-06 22:13:00.474 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-06 22:13:00.474 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 22:13:00.475 DEBUG (MainThread) [pymodbus.logging] Connected to comm 2024-08-06 22:13:00.475 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer -
2024-08-06 22:13:01.975 DEBUG (MainThread) [pymodbus.logging] Adding transaction 1
2024-08-06 22:13:02.714 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 22:13:02.714 DEBUG (MainThread) [pymodbus.logging] [0] 2024-08-06 22:13:02.740 DEBUG (MainThread) [pymodbus.logging] Adding transaction 15 2024-08-06 22:13:02.740 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 22:13:02.740 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0xf 0x0 0x0 0x0 0x6 0x7b 0x3 0xb8 0xc3 0x0 0x1 2024-08-06 22:13:02.742 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0xf 0x0 0x0 0x0 0x5 0x7b 0x3 0x2 0x0 0x1 old_data: addr=None 2024-08-06 22:13:02.742 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0xf 0x0 0x0 0x0 0x5 0x7b 0x3 0x2 0x0 0x1 2024-08-06 22:13:02.742 DEBUG (MainThread) [pymodbus.logging] Factory Response[ReadHoldingRegistersResponse': 3] 2024-08-06 22:13:02.743 DEBUG (MainThread) [pymodbus.logging] Getting transaction 15 2024-08-06 22:13:02.743 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 22:13:02.743 DEBUG (MainThread) [pymodbus.logging] [1] 2024-08-06 22:13:02.751 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.battery_1_day_discharge (<class 'custom_components.huawei_solar.sensor.HuaweiSolarSensorEntity'>) is using state class 'total_increasing' which is impossible considering device class ('energy_storage') it is using; expected None or one of 'measurement'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/wlcrs/huawei_solar/issues 2024-08-06 22:13:02.765 DEBUG (MainThread) [pymodbus.logging] Adding transaction 9
2024-08-06 22:13:03.114 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 22:13:03.165 DEBUG (MainThread) [pymodbus.logging] Adding transaction 12 2024-08-06 22:13:03.165 DEBUG (MainThread) [pymodbus.logging] Resetting frame - Current Frame in buffer - 2024-08-06 22:13:03.165 DEBUG (MainThread) [pymodbus.logging] send: 0x0 0xc 0x0 0x0 0x0 0x3f 0x0 0x41 0x25 0x3b 0x14 0x9d 0x7f 0xab 0x1e 0x4e 0x5e 0x4b 0x38 0x49 0xa5 0x86 0x93 0xbc 0x85 0xf7 0x9 0x69 0x6e 0x73 0x74 0x61 0x6c 0x6c 0x65 0x72 0x20 0xf3 0xe4 0x10 0xdb 0x7d 0x66 0x83 0xed 0xd1 0x26 0xb1 0x4d 0xe6 0x5a 0x8e 0x63 0xdf 0x6e 0xf6 0xb4 0x29 0x8d 0xc1 0x8c 0xcf 0x74 0xe6 0x46 0x14 0xb3 0x2a 0x6e 2024-08-06 22:13:05.197 DEBUG (MainThread) [pymodbus.logging] recv: 0x0 0xc 0x0 0x0 0x0 0x58 0x0 0x41 0x25 0x54 0x0 0x20 0xd9 0xce 0x98 0xed 0x2 0x85 0x67 0x67 0x5 0xcd 0x16 0xad 0x31 0x11 0x9f 0xea 0x2a 0xd7 0x93 0xcf 0x6b 0xbd 0xa8 0x3c 0xe6 0x6b 0xd4 0xf8 0x13 0x56 0xb8 0xd1 0x1 0x0 0xc9 0x47 0xb4 0x4b 0xc7 0xeb 0x6f 0x55 0xef 0x88 0x5b 0xf 0x35 0x9 0xa6 0x64 0x7a 0x94 0xdc 0x2 0x73 0x6d 0x24 0x33 0xd 0x69 0x37 0x9a 0x25 0x8c 0x2 0xe 0xff 0x56 0x64 0x70 0xc1 0xa6 0x30 0xe1 0x27 0x6 0xa0 0xe5 0x35 0xea 0xb0 0xd6 old_data: addr=None 2024-08-06 22:13:05.197 DEBUG (MainThread) [pymodbus.logging] Processing: 0x0 0xc 0x0 0x0 0x0 0x58 0x0 0x41 0x25 0x54 0x0 0x20 0xd9 0xce 0x98 0xed 0x2 0x85 0x67 0x67 0x5 0xcd 0x16 0xad 0x31 0x11 0x9f 0xea 0x2a 0xd7 0x93 0xcf 0x6b 0xbd 0xa8 0x3c 0xe6 0x6b 0xd4 0xf8 0x13 0x56 0xb8 0xd1 0x1 0x0 0xc9 0x47 0xb4 0x4b 0xc7 0xeb 0x6f 0x55 0xef 0x88 0x5b 0xf 0x35 0x9 0xa6 0x64 0x7a 0x94 0xdc 0x2 0x73 0x6d 0x24 0x33 0xd 0x69 0x37 0x9a 0x25 0x8c 0x2 0xe 0xff 0x56 0x64 0x70 0xc1 0xa6 0x30 0xe1 0x27 0x6 0xa0 0xe5 0x35 0xea 0xb0 0xd6 2024-08-06 22:13:05.198 DEBUG (MainThread) [pymodbus.logging] Factory Response[PrivateHuaweiModbusResponse': 65] 2024-08-06 22:13:05.198 DEBUG (MainThread) [pymodbus.logging] Getting transaction 12 2024-08-06 22:13:05.198 DEBUG (MainThread) [pymodbus.logging] Very short frame (NO MBAP): wait for more data 2024-08-06 22:13:05.199 ERROR (MainThread) [homeassistant.components.select] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_excess_pv_energy_use_in_tou already exists - ignoring select.batteries_excess_pv_energy_use_in_tou 2024-08-06 22:13:05.199 ERROR (MainThread) [homeassistant.components.select] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_working_mode_settings already exists - ignoring select.batteries_working_mode 2024-08-06 22:13:05.202 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_input_power already exists - ignoring sensor.inverter_input_power 2024-08-06 22:13:05.202 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_line_voltage_A_B already exists - ignoring sensor.inverter_a_b_line_voltage 2024-08-06 22:13:05.205 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_day_active_power_peak already exists - ignoring sensor.inverter_day_active_power_peak 2024-08-06 22:13:05.205 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_active_power already exists - ignoring sensor.inverter_active_power 2024-08-06 22:13:05.206 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_efficiency already exists - ignoring sensor.inverter_efficiency 2024-08-06 22:13:05.206 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_internal_temperature already exists - ignoring sensor.inverter_internal_temperature 2024-08-06 22:13:05.206 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_device_status already exists - ignoring sensor.inverter_device_status 2024-08-06 22:13:05.207 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_startup_time already exists - ignoring sensor.inverter_startup_time 2024-08-06 22:13:05.207 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_shutdown_time already exists - ignoring sensor.inverter_shutdown_time 2024-08-06 22:13:05.207 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_accumulated_yield_energy already exists - ignoring sensor.inverter_total_yield 2024-08-06 22:13:05.207 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_total_dc_input_power already exists - ignoring sensor.inverter_total_dc_input_energy 2024-08-06 22:13:05.207 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_hourly_yield_energy already exists - ignoring sensor.inverter_hourly_yield 2024-08-06 22:13:05.208 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_daily_yield_energy already exists - ignoring sensor.inverter_daily_yield 2024-08-06 22:13:05.208 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_1 already exists - ignoring sensor.inverter_inverter_state 2024-08-06 22:13:05.208 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_2#0 already exists - ignoring sensor.inverter_locking_status 2024-08-06 22:13:05.208 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_2#1 already exists - ignoring sensor.inverter_pv_connection_status 2024-08-06 22:13:05.208 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_2#2 already exists - ignoring sensor.inverter_dsp_data_collection 2024-08-06 22:13:05.208 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_3#0 already exists - ignoring sensor.inverter_off_grid_status 2024-08-06 22:13:05.209 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_state_3#1 already exists - ignoring sensor.inverter_off_grid_switch 2024-08-06 22:13:05.209 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_ALARMS already exists - ignoring sensor.inverter_alarms 2024-08-06 22:13:05.209 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_01_voltage already exists - ignoring sensor.inverter_pv_1_voltage 2024-08-06 22:13:05.210 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_01_current already exists - ignoring sensor.inverter_pv_1_current 2024-08-06 22:13:05.210 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_02_voltage already exists - ignoring sensor.inverter_pv_2_voltage 2024-08-06 22:13:05.210 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_pv_02_current already exists - ignoring sensor.inverter_pv_2_current 2024-08-06 22:13:05.215 ERROR (MainThread) [homeassistant.components.switch] Platform huawei_solar does not generate unique IDs. ID HV2290299408_startup already exists - ignoring switch.inverter_inverter_on_off 2024-08-06 22:13:05.215 ERROR (MainThread) [homeassistant.components.switch] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_charge_from_grid_function already exists - ignoring switch.batteries_charge_from_grid
d_charging_and_discharging_periods already exists - ignoring sensor.batteries_fixed_charging_periods 2024-08-06 22:13:05.728 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_forcible_charge_discharge_write already exists - ignoring sensor.batteries_forcible_charge 2024-08-06 22:13:05.729 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_current_day_charge_capacity already exists - ignoring sensor.battery_1_day_charge 2024-08-06 22:13:05.729 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_current_day_discharge_capacity already exists - ignoring sensor.battery_1_day_discharge 2024-08-06 22:13:05.730 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_battery_temperature already exists - ignoring sensor.battery_1_temperature 2024-08-06 22:13:05.730 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_state_of_capacity already exists - ignoring sensor.battery_1_state_of_capacity 2024-08-06 22:13:05.730 ERROR (MainThread) [homeassistant.components.sensor] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_unit_1_charge_discharge_power already exists - ignoring sensor.battery_1_charge_discharge_power 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_maximum_charging_power already exists - ignoring number.batteries_maximum_charging_power 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_maximum_discharging_power already exists - ignoring number.batteries_maximum_discharging_power 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_charging_cutoff_capacity already exists - ignoring number.batteries_end_of_charge_soc 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_discharging_cutoff_capacity already exists - ignoring number.batteries_end_of_discharge_soc 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_backup_power_state_of_charge already exists - ignoring number.batteries_backup_power_soc 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_grid_charge_cutoff_state_of_charge already exists - ignoring number.batteries_grid_charge_cutoff_soc 2024-08-06 22:13:05.791 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_storage_power_of_charge_from_grid already exists - ignoring number.batteries_grid_charge_maximum_power
2024-08-06 22:13:05.790 ERROR (MainThread) [homeassistant.components.number] Platform huawei_solar does not generate unique IDs. ID HV2290299408_active_power_fixed_value_derating already exists - ignoring number.inverter_power_derating
Describe your feature request
As per the wall charger feature request, this 'issue' is intended as a location for people to be able to start gathering information and discussing how it works and how it may potentially be supported in the integration.
Given that the EMMA in future will be the preferred method of installation for Huawei Solar installations, with it :
Hopefully Huawei will be utilising the same modbus registers used on the DDSU/DTSU-666H meters, to provide themselves with maximum compatibility for existing installations upgrading, that will allow for 'out of the box' compatibility with WLCRS. However this needs to be confirmed when documentation is published detailing the modbus register definitions for EMMA. As EMMA is adding additional functionality, it would be a good expectation that there may be additional modbus registers added to EMMA, that would then need to be reviewed and see if any are 'worthwhile' or of use to request being added to WLCRS.
To date documentation published on EMMA is: EMMA-(A01, A02) User Manual.pdf v01 - Superceded FusionSolar App Quick Guide (EMMA).pdf Huawei - EMMA Quick Installation Guide.pdf
Proper usage