New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SmartLogger 3000A #93
Comments
That is not straightforward, but should be doable. Any chance that we can work out a way for me to access your installation (VPN, Wireguard, whitelisting of an IP)? That would immensely speed up the development cycle. |
What happens if you only mention slave ID 1 and 2 during the installation wizard? Can you post the logs of what happens then? |
With slaveid =1:
with slaveid=2:
|
Ok, I have a suspicion that the issue is not related to the setup itself, but with those commercial inverters using other Modbus addresses, making them incompatible with this integration. Can you download the register definitions, as described in this topic on the Huawei forum and upload them here? That way I can compare and check. |
Here click |
Ok. I make some discover. So as on 2.7 Remapped Modbus definitions acrive power of inverters i found when connecting on slaveid=0 (logger) and read address 51001 for active power of inverter no 1 For read data directly from each inverter I use addresses from modbus v3.pdf and slaveid 1 or 2 - for example active power address 32080/32081 But when I try read timezone register 43006 i get 0 |
Some readed from slave =1 data Filename is number od start of register and contains 100-125 registers. So 3000.csv include data from registers 30000-30125, 32000.csv from 32000 to 32100 etc Hope this helps I use modbuspull from https://www.modbustools.com/download.html |
The strange thing is that the register that I try to read is mentioned in this document, but your logs clearly indicate that an "Illegal data value" exception is being thrown when reading the register: Can you please try to read the registers in the 43xxx range with your modbuspoll tool? |
43000 to 43100 on all 3 slaveid 0,1,2 return 0 on all registers don't ask why :) |
Time Zone I can read from logger registry 40005 (as in documentation for logger) and slaveid=0. Looks like registers 43000 of inverters are not acccessible over logger ?? IMHO best solution is try read 43006 if it fails try 40005 if success then connected device is logger and next access to each inverter values by slaveid 1,2 ... or by slaveid=0 of logger and remaped addresses |
Ok, thanks for the info. I'll need to think a bit over the approach for this. I could ignore the error on the time zone register, but this will have two consequences:
|
For me, it will not matter too much, because I do not have any batteries or optimizers :) But if you want to do something universal, it is probably most sensible to do as I wrote, i.e. reading the time from two registers and depending on which success will be different futher proceeding. |
Can you try again with release 1.1.2? |
After upgrade to 1.1.2 I get error "Setup failed for custom integration huawei_solar: Requirements for huawei_solar not found: ['huawei-solar==2.1.2']",also "Unable to install package huawei-solar==2.1.2" |
I have the same issue with the 1.1.2 release |
Looks like typo mistake - somewhere in code should be 1.1.2 but is 2.1.2 :) |
2.1.2 release is used in manifest.json, but I don't think it's the cause, I just tested it... Edit: it is indeed caused by that line, of you change it into 2.1.1, then it works 🙂 |
Thanks for this prompt solution :) |
Unfortunately still not working, below the logs : With device id=0 (logger)
With deviceid=1 (first inverter)
|
Hi. What IDE You use ? To easy debug, I will try correct something myself but I neded tip what tools use :) |
Hi,
I use VS Code, but feel free to use anything else :-)
I would suggest cloning the following repo:
https://gitlab.com/Emilv2/huawei-solar.git on the develop-branch.
Run `pip install -e .` in the directory with setup.py to install the
development version in your Python installation.
Have a look at the bridge_tst.py file on how to use the library. (this
revision might be more interesting for you:
https://gitlab.com/Emilv2/huawei-solar/-/blob/0b4c70a5e28984dd23c25c33e17cb7e339780416/bridge_tst.py
)
Op wo 10 aug. 2022 om 19:33 schreef bdkacz ***@***.***>:
… Can you try again with release 1.1.2?
Hi. What IDE You use ? To easy debug, I will try correct something myself
but I neded tip what tools use :)
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQM5LFHOQOUXNI2B64RMADVYPRWZANCNFSM54GUZRLQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
When I try debug in vs code I get error "No module named 'huawei_solar.register_names'; 'huawei_solar' is not a package" |
That is why you need to run `pip3 install -e .` in the directory with
setup.py
…On Thu, Aug 11, 2022, 09:29 bdkacz ***@***.***> wrote:
When I try debug in vs code I get error "No module named
'huawei_solar.register_names'; 'huawei_solar' is not a package"
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQM5LAZMUYFMBMFWVFHR53VYSTUJANCNFSM54GUZRLQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Ok after second try it works . So my suggestion is to add the "I'm using smartlogger" checkbox to the adding integration window. I attach the changed code, where I use this information - an additional parameter in the create method and then checking it in place where we read the time zone, I also added a register to the registers, where the logger keeps the time zone. I imagine it so that the user adding the integration selects the checkbox and as the slave id he enters the ID of the inverters, e.g. 1,2. And the integration, seeing the selected checkbox, downloads the time zone from the logger, while the remaining data is read directly from the inverters using their slave_id's |
Can you try to improve your contribution to automatically detect the
smartlogger instead? I don't want to add checkboxes that cause confusion
unless absolutely necessary.
…On Sat, Aug 13, 2022, 11:39 bdkacz ***@***.***> wrote:
That is why you need to run pip3 install -e . in the directory with
setup.py
Ok after second try it works .
So my suggestion is to add the "I'm using smartlogger" checkbox to the
adding integration window. I attach the changed code, where I use this
information - an additional parameter in the create method and then
checking it in the time zone, I also added a register to the registers,
where the logger keeps the time zone.
I imagine it so that the user adding the integration selects the checkbox
and as the slave id he enters the ID of the inverters, e.g. 1,2. And the
integration, seeing the selected checkbox, downloads the time zone from the
logger, while the remaining data is read directly from the inverters using
their slave_id
huawei-solar.zip
<https://github.com/wlcrs/huawei_solar/files/9331240/huawei-solar.zip>
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQM5LCDP3QCHKKBIDCJXTDVY53OZANCNFSM54GUZRLQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Ok I will try :) |
And we have a new code :) |
I cleaned up your code and committed it to a new branch: https://gitlab.com/Emilv2/huawei-solar/-/tree/smartlogger-support Can you please verify that you can successfully run the changes to |
Hi First my mistake - the register should be 51000 not 51001 With register 51000 it detect smartlogger correctly,but it calls await HuaweiSolarBridge.__populate_fields(bridge) and fails with reading register 3000, which not exist in solarlog modbus - so the communication with smartlogger should end on detecting timezone |
smartlogger deifnisitons unfortunatelly does not contain any register that hold model name,serial number etc of solar logger |
Thanks for the feedback, I'll work on this a bit further when I have more time. |
I have decided to not continue working on this, as it is too hard for me to develop this feature without being able to test it against a real SmartLogger. I welcome all pull requests for this feature here and in the underlying library by people that do have a SmartLogger. I won't do any more manual work like incorporating changes contributed via ZIP-files, as has been done earlier in this issue. |
Wonder how many people are running Data Logger + multiple inverters, and would have benefit from this support being added? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
Hi, just read through your comments and sadly realized support was stopped at some point. Any chance to revive it? I do have a SmartLogger 3000 running with 4 Inverters plus battery in our home. |
@bdkacz Just wondering if you ever kept on with trying to get this working with the Smart Logger 3000A ? Revisting this issue and installing the lastest version of the integration I noticed that this now works, with the caveat that it detects the inverter(S) and the optimisers connected to the inverters. This is with option Network connection and Slave ID's of the primary and secondary inverters (i.e. 1, 2), if you try adding the logger ( 0,1,2) then it fails. The one thing it hasn't been able to detect is the smart meter, which I assume its trying to either expecting to find attached to the primary inverter (when its attached to the logger on RS485B1 / B2 that appears as COM3 Address 11), or else its by default scanning for addresses on COM1 only by default, hence the smart meter being on COM3 sees it not detected. SmartLogger 3000A - S/W = V300R023C00SPC132 (waiting to get access to V300R023C00SPC152 released end 6/2023) cc: @fsdd87 |
If of use to anyone... Here's the latest firmware, modbus definitions and release documents: Firmware:SmartMBUS
Inverters
Smart Logger
Modbus Definitions
|
hi, |
If you have power/smart meter connected to the primary inverter, and the inverters are then cascaded (SmartLogger COM1 --> Inverter 1 --> Inverter 2) then the SmartLogger is unable to 'see' the power meter.
Would anyone in this discussion have any programming experience and be able to assist with developing the updates needed to add Smart Logger support? All the registers are detailed above. |
thank you for the quick answer |
@Roving-Ronin if there is only one Inverter connected to the smart logger (power sensor connected to that inverter) will then the registers of the power sensor recognized by the smart logger? |
If you have a Smart Logger based deployment, be it with 1 or (up to) 80 inverters attached to it, the Smart/Consumption Meter (ie DTSU-666H) will ALWAYS be connected to the Smart Logger (COM3 port). Given this the Smart Logger has visibility of the meter (not the inverter) and the Smart Logger then uses this to control functions such as throttling PV production to limit grid exports (such as if you have a 10kW system but only allowed to export 5kW maximum to the grid). Additionally the Modbus registers for the meter are different that when connected to the inverter (such as when system is using WiFi/FE Dongle method), hence WLCRS will not have access/visibility of the power meter (unless this functionality is added by the addition of these different registers). |
i try to find a way to help for a solution
|
As above, unless WLCRS decides to add support for the Smart Loggers (or someone with programming skills continues the Fork to add this functionality) then you will NOT be able to use the Smart Logger. As it currently stands the integration can see the inverters (would assume the batteries also..but I don't have a LUNA ESS so can't confirm) but can not see the DTSU-666H, as it must be wired into the SL instead of the primary inverter. If you want full functionaly available with HA integration, the ONLY way for you to get this is to REMOVE the SmartLogger and swap over to using the WiFi/FE Dongle for connectivity instead. For your two setups... #1 - Remove SmartLogger, rewire DTSU-666H to PIN 7 & 9 of the Primary inverter and remove connect from PIN 2 & 4 (that connect it to SmartLogger). You should then be able to connect dongle to home WiFi AP (or ethernet) and add into Home Assistant. #2 - You don't mention what model the SUN2000 12KTL is... I assume this is also an M1 ? You can also re-wire and connect these up using a WiFi/FE Dongle, replacing the SmartLogger, and it will then be able to be added into HA. The 17KTL that you mention is an 'old model' .. is this an 'SUN2000 17KTL M0' ? According to https://support.huawei.com/enterprise/en/doc/EDOC1100167258/6f202a37/grid-tied-ess-networking?fbclid=IwAR0rHPVZ-4Jr9X9HZtpM8RkhtRtNYkJ5Y_6OWOUweYZx_R7BYGeFj8kkV3U#EN-US_TOPIC_0279010007__section570213564716 this is not supposed to work in a Grid ESS Tied setup, as only M1 / M2 / M3 (and with limitations L1 single phase) inverters may be tied into a cascade. Edit: Scrihab probably worth a read of : #457 IMHO I'll probably be looking to update to EMMA, giving SmartLogger functionality whilst also replacing the DTSU-666H and Dongle... pending IF it works with this integration. |
the 12KTL an 17KTL are older then M0 Series out of Serie 8KTL-20KTL - i think from 2013 https://www.fusionsolar.eu/product/huawei-sun2000-8-12ktl/ i don´t want to put these 2 inverters into cascade with M0 or M1 Series ;-) |
If the '1 x SUN2000 10KTL M1, 1 x SUN2000 12KTL, 1 x SUN2000 17KTL (old Modell), HUAWEI Smart Power Sensor DTSU666-HW/YDS60-80A' setup is working and connects up to FusionSolar via the M1, that then has the old inverters attached to it via RS485... then fine. a) Do you want to have access full to the setup in HA using WCLRS ? If yes, then rewire the DTSU-666H to the primary inverter and remove the SmartLoggers and use the dongle to connect to FusionSolar instead, then assign the dongle a reserved/static IP and connect to it over the home network. b) If you only want to have limited visibility within HA and not be able to see the Power Consumed / Import from Grid / Export / Optimisers etc than continue using SmartLogger. You will also not be able to control much using HA. This will only change if SmartLogger support is added (which seems unlikely given developers comments and no reply to even a post offering to pay for adding this functionality). IMHO given release soon of EMMA hardware that will superceded SmartLogger / Dongle / Power Meters it would also be more useful for Dev to use any efforts to add hardware support to this device (that will be moving to be the default hardware for all new installs). |
System Health details
System Health
Home Assistant Community Store
Home Assistant Cloud
Home Assistant Supervisor
Dashboards
Recorder
Huawei Solar Setup
2x Huawei SUN-60-KTL-M0 inverters connected via rs485 to SmartLogger 3000A with modbus-tcp enabled on logger
Describe the issue
I have a challenge for the author :)
I have a SolarLogger 3000A and 2 inverters connected to it (at address 1 and 2, logger is at address 0), link to the modbus documentation
If I understand the provisions of chapter "2.7 Remapped Modbus definitions", the registers are shifted in relation to the situation when we connect directly to the inverter
Currently, an attempt to establish a connection under any slaveID (0,1,2) results in such records in the logs
Reproduction steps
Relevant debug logs
The text was updated successfully, but these errors were encountered: