Read Photovoltaic Battery voltage charge

It’s normally…

You must write here your logs so I can view if there are problems with data retrieval or with your setup

Hi, here’s my log.
Tnk

2022-12-28 14:41:26.554 WARNING (SyncWorker_0) [homeassistant.util.yaml.loader] YAML file /home/homeassistant/.homeassistant/configuration.yaml contains duplicate key “sensor”. Check lines 25 and 33
2022-12-28 14:41:26.560 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-12-28 14:41:26.561 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration zcsazzurro which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-12-28 14:41:31.135 WARNING (MainThread) [homeassistant.components.integration.sensor] sensor.power_generating_spent_zcs could not restore last state unknown: [<class ‘decimal.ConversionSyntax’>]
2022-12-28 14:41:45.192 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{% set power = state_attr(‘sensor.fotovoltaico’,‘current’)[‘powerGenerating’] | int(0) %} {{ power }}")
File “/srv/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/template.py”, line 422, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: ‘None’ has no attribute ‘energyCharging’
2022-12-28 14:41:45.318 ERROR (MainThread) [homeassistant.helpers.template_entity] TemplateError(‘UndefinedError: ‘None’ has no attribute ‘energyCharging’’) while processing template ‘Template("{% set energy = state_attr(‘sensor.fotovoltaico’,‘total’)[‘energyCharging’] | float(0) %} {{ energy | round(2) }}")’ for attribute ‘_attr_native_value’ in entity ‘sensor.carica_totale’

Ciao tutti,

has anyone managed one of the follwwing things?

  1. Write data to the Inverter.
    My Idea is to set the inverters power management modes dynamically in dependence to the current prices for energy. E.g. in the middle of the night use power from the grid and in the early morning hours use the battery instead of the grid.
    This should be possible with the manual settings in the inverters settings menu. Yet I do not know if it is possible to switch these modes via modbus.

  2. Hook a modbus logger (/writer?) in between an existing connection between the inverter and a logger by ZCS (Connext)? I have both devices, as the Connext is the link between the inverter and the wallbox, so I need a solution that doesn’t interrupt said connection but still works.

My Setup is:
Inverter: 3-Phase HYD 10000 ZSS: Azzurro - Hybrid Storage Inverter - HYD 10000 ZSS / HYD 20000 ZSS - ZCS Azzurro Inverter
Logger: ZCS Connext: https://www.zcsazzurro.com/inverter/zcs-connext?ol=true
Wallbox: 22kW ZCS Wallbox: https://www.zcsazzurro.com/inverter/electric-vehicle-charging-stations?ol=true

It seems like the Inverter is connected to the Connext via these two connectors in a big block of possible connections. At least that’s what I find in the manuals:
image

Thanks in advance, should anyone be able to help me!

For the first one, it should be matter of analyzing some write registers (you find addresses and descriptions in above-posted sheets) and then doing a little trial-error to check it’s working like intended.
I somewhere read it’s possible to do such a thing, but haven’t had much spare time to test and set it up.

As for the second one, I think your’re gonna have to make the device yourself, since there’s no way of knowing if a message from the inverter is in response to a connext request, or HA. So you’d have to write some caching mechanism at least, to hold connext requests while HYD is talking with HA.
It’s not unfeasible. You could start from an esp8266 and two modbus modules. One should be a master for HYD, the other a slave for connext, and so on…

1 Like

Thanks for your answer!

Wouldn’t a device like this be exactly what I need and what you explained, but prebuilt?
https://www.adfweb.com/home/products/modbus_modbus.asp?frompg=nav3_1
If I understand that correctly it allows several masters to talk to one or more slaves.

My understanding was that I should be able to connect the Connext as one Master and via a RS485 to USB Converter, add Homeassistant as the second?

IDK. It could be, but still I’m concerned about traffic management. From a first look it seems it has collision avoidance rules, but I cannot state how good it is.

Hi, this is an English language forum: How to help us help you - or How to ask a good question

oh, sorry

this is an italian product tho, not sold in other places afaik, is the rule still valid in this case?

i can add the english translation to the original message, keeping this english only would probably mean a lot of users of this device may skip this thread

done, updated with english too

If you search for zucchetti you will get two results. The first topic is the one you just created and the second one was created over 2 years.

https://community.home-assistant.io/search?expanded=true&q=zucchetti

You get the same 2 results if you search for hyd 6000-zss. In other words, there’s only one topic in this entire forum that discusses the device you are using. I suggest you have a look at it and, if it doesn’t already contain the answers you need, post your questions there.

i am aware, i’m also in that thread, the problem is that there is this stupid rule here that doesn’t let me reply more than 3 times in a thread because i am a new user, so the only option is to create a new thread

The rule has a time limit and is designed to prevent new users from potentially spamming a topic.

A moderator has merged your topic into the main one here and, once the time limit has expired, you’ll be able to continue responding in this topic.

12 days? it seems too much

Contact a moderator.

Anyone else having problems since the last Homeassistant update?
To me all entities are unavailable since I updated last night.

@uniqueUsername: they are not only sold in Italy. We have them in Germany, too :wink:

1 Like

Me too I’m having the same issue since the last update… I’m thinking to move to the rs485 direct connection

Hi,
Thanks to all the tips read in this thread I’ve almost successfully integrated a ZCS 1PH HYD5000 ZSS HP inverter.
My inverter is connected with an ethernet adapter.
My configuration is the following
I’ve added to the configuration.yaml file the following line:

modbus: !include modbus.yaml

Then I created a new file called modbus.yaml where I pasted the following code:

- name: "Inverter ZCS"
  type: tcp
  host: IP-INVERTER
  port: 8899
  retry_on_empty: true
  retries: 10
  sensors:

    # Inverter Info
  - name: "ZCS Stato"  #"Operation_Status"
    slave: 1 
    address: 0x0404
    input_type: holding 
    data_type: uint16 
    scan_interval: 320
    lazy_error_count: 5

  - name: "ZCS Prelievo Rete" #"grid_input"
    slave: 1 
    address: 0x0485
    data_type: uint16 
    device_class: power 
    state_class: measurement
    unit_of_measurement: "W" 
    scale: 10
    scan_interval: 24
    precision: 2
    lazy_error_count: 5
    
  - name: "ZCS Rete Immisione Prelievo" #"ongrid_load"
    slave: 1 
    address: 0x0488
    data_type: int16 
    device_class: power 
    state_class: measurement
    unit_of_measurement: "W" 
    scale: 10
    scan_interval: 17
    precision: 2
    lazy_error_count: 5
    
  - name: "ZCS Rete Potenza Attiva" #"ongrid_active_power"
    slave: 1 
    address: 0x048F
    data_type: uint16 
    device_class: power 
    state_class: measurement
    unit_of_measurement: "W" 
    scale: 10
    scan_interval: 13
    precision: 2
    lazy_error_count: 5

  - name: "ZCS Assorbimento Casa"  #"inverter_sysload"
    slave: 1 
    address: 0x04AF
    data_type: uint16 
    device_class: power 
    state_class: measurement
    unit_of_measurement: W
    scale: 10
    scan_interval: 12
    precision: 2
    lazy_error_count: 5

  - name: "ZCS Potenza Stringa 1"   #"pv_1_power"
    slave: 1 
    address: 0x0586
    data_type: uint16 
    device_class: power 
    unit_of_measurement: "W" 
    scale: 10
    scan_interval: 10
    precision: 2
    lazy_error_count: 5

  - name: "ZCS Potenza Stringa 2"   #"pv_2_power"
    slave: 1 
    address: 0x0589
    data_type: uint16 
    device_class: power 
    unit_of_measurement: "W" 
    scale: 10
    scan_interval: 10
    precision: 2
    lazy_error_count: 5

  - name: "ZCS Carico Batteria"   #"battery_power"
    slave: 1 
    address: 0x0606
    data_type: int16
    device_class: power
    state_class: measurement
    unit_of_measurement: W
    scale: 10
    scan_interval: 16
    precision: 2
    lazy_error_count: 5

  - name: "ZCS Temperatura Batteria" # "inverter_temp_battery"
    slave: 1 
    address: 0x607
    input_type: holding 
    data_type: int16 
    device_class: temperature 
    unit_of_measurement: "°C" 
    scan_interval: 290
    lazy_error_count: 5

  - name: "ZCS Stato Carica Batteria"  #"battery_soc"
    slave: 1 
    address: 0x0608
    data_type: uint16 
    device_class: battery
    state_class: measurement
    unit_of_measurement: "%" 
    scan_interval: 72
    lazy_error_count: 5

  - name: "ZCS Salute Batteria"  #"battery_soh"
    slave: 1 
    address: 0x0609
    data_type: uint16 
    device_class: battery
    state_class: measurement
    unit_of_measurement: "%" 
    scan_interval: 1900
    lazy_error_count: 5

  - name: "ZCS Cicli Batteria"  #"battery_cycle"
    slave: 1 
    address: 0x060A
    data_type: uint16
    scan_interval: 2100
    lazy_error_count: 5

  - name: "ZCS Energia Prodotta Totale"  #"total_generation"
    slave: 1 
    address: 0x0686
    data_type: uint32
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: kWh 
    count: 2
    scale: 0.1
    scan_interval: 48
    precision: 1
    lazy_error_count: 5

  - name: "ZCS Energia Consumata Totale"  #"total_consumption"
    slave: 1 
    address: 0x068A
    data_type: uint32
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: kWh 
    count: 2
    scale: 0.1
    scan_interval: 44
    precision: 1
    lazy_error_count: 8

  - name: "ZCS Energia Importata Totale"   #"total_import"
    slave: 1 
    address: 0x068E
    data_type: uint32
    device_class: energy 
    state_class: total_increasing
    unit_of_measurement: kWh 
    count: 2
    scale: 0.1
    scan_interval: 42
    precision: 1
    lazy_error_count: 8

  - name: "ZCS Energia Esportata Totale"   #"total_export"
    slave: 1 
    address: 0x0692
    data_type: uint32
    device_class: energy 
    state_class: total_increasing
    unit_of_measurement: kWh 
    count: 2
    scale: 0.1
    scan_interval: 53
    precision: 1
    lazy_error_count: 8

  - name: "ZCS Carica Batteria Totale"  #"total_battery_charge"
    slave: 1 
    address: 0x0696
    data_type: uint32
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: kWh 
    count: 2
    scale: 0.1
    scan_interval: 39
    precision: 2
    lazy_error_count: 8

  - name: "ZCS Scarica Batteria Totale"  #"total_battery_discharge"
    slave: 1 
    address: 0x069A
    data_type: uint32
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: kWh 
    count: 2
    scale: 0.1
    scan_interval: 34
    precision: 2
    lazy_error_count: 8

This configuration most of the time works great except for some random errors in the values returned by the inverter to Home assistant.
I’m not sure that the problem is the inverter or Home Assistant whatever in the middle.
In the log in Home assistant I have the following entries

Pymodbus: Inverter ZCS: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 8 bytes (0 received)
11:53:55 – (ERROR) Modbus - message first occurred at 16 April 2023 at 16:44:19 and shows up 1191 times


Connection to (10.0.0.22, 8899) failed: timed out
11:45:52 – (ERROR) components/modbus/modbus.py - message first occurred at 16 April 2023 at 17:30:10 and shows up 98 times


Received 2 bytes, unpack error unpack requires a buffer of 4 bytes
08:47:07 – (ERROR) Modbus - message first occurred at 16 April 2023 at 18:14:19 and shows up 11 times

And here an example of the wrong value obtained by home assistant.

So more or less once a day I have to fix manually the wrong values in the STATISTICS tab in the DEVELOPER TOOLS section.

Do you have any idea how can I fix those errors?
Or at least how I can force Home Assistant to discard that single wrong values automatically?

Thanks in advance.
(you can answer me also in Italian of course :pray:)

Hi.

It seems you got working what I also would like to achieve. Could you tell what adapter did you use and how you connected the adapter to the inverter.

Many thanks
Stefan

this one…

But it has been installed directly by the technician because I don’t have good wifi coverage where the inverter has been installed.

Thanks a lot. I have the same adapter installed, only the WLAN version. I will try and see if I get it working. Many thanks for your reply