Alpha ESS inverter and battery data to Modbus without Cloud (locally)

Hello, in this post I would like to show you how you can easily get all the data from your PV system (grid meeter/backup box, batteries, inverter) via the Ethernet connection of your inverter.

All you have to do is create the following yaml files and restart HomeAssistant.

  1. If it doesn’t already exist, create a folder called packages, in this folder create the file integration_alpha_ess.yaml

image

  1. Copy the following content into the integration_alpha_ess.yaml file
modbus:
  - name: modbuspvsystem
    type: tcp
    host: !secret alphaess_modbus_host_ip
    port: !secret alphaess_modbus_host_port
    message_wait_milliseconds: 5 # waittime between 2 messages
    timeout: 10 # timeout in seconds before connection is closed
    delay: 1 # delay in seconds at startup

#Registerdefinition: https://alphaess.de/Public/Uploads/uploadfile/files/20230926/AlphaESS_Register_Parameter_List.pdf
#Beispielconfig für ioBroaker: https://github.com/ioBroker/modbus-templates/blob/4241d2b1c3f68d0408561834efa9653f1ee6a343/PV-Inverter/Alpha-ESS/holding_register.txt
    #definition of sensors
    sensors:
#Power L1,L2,L3
      - name: PV Power L1
        unique_id: PV_Power_L1
        slave: !secret alphaess_modbus_slaveId
        address: 27
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
      - name: PV Power L2
        unique_id: PV_Power_L2
        slave: !secret alphaess_modbus_slaveId
        address: 29
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
      - name: PV Power L3
        unique_id: PV_Power_L3
        slave: !secret alphaess_modbus_slaveId
        address: 31
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
# Power from/to Grid
      - name: PV total active power
        unique_id: PV_total_active_power
        slave: !secret alphaess_modbus_slaveId
        address: 33
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
#Battery
    #Power
      - name: PV Power battery
        unique_id: PV_Power battery
        slave: !secret alphaess_modbus_slaveId
        address: 294
        input_type: holding
        data_type: int16
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
    #voltage
      - name: PV Battery voltage
        unique_id: PV_Battery_voltage
        slave: !secret alphaess_modbus_slaveId
        address: 256
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #SOC
      - name: PV Battery SOC
        unique_id: PV_Battery_SOC
        slave: !secret alphaess_modbus_slaveId
        address: 258
        input_type: holding
        data_type: int16
        unit_of_measurement: "%"
        device_class: battery
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Min Cell temperature
      - name: PV Battery Min Cell temperature
        unique_id: PV_BBattery_Min_Cell_temperature
        slave: !secret alphaess_modbus_slaveId
        address: 269
        input_type: holding
        data_type: uint16
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Max Cell temperature
      - name: PV Battery Max Cell temperature
        unique_id: PV_BBattery_Max_Cell_temperature
        slave: !secret alphaess_modbus_slaveId
        address: 272
        input_type: holding
        data_type: uint16
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #remaining term
      - name: PV Battery remaining term
        unique_id: PV_Battery_remaining_term
        slave: !secret alphaess_modbus_slaveId
        address: 295
        input_type: holding
        data_type: int16
        unit_of_measurement: minutes
        state_class: measurement
        scan_interval: 60
        scale: 1
        precision: 2
    #Battery capacity
      - name: PV Battery capacity
        unique_id: Battery_capacity
        slave: !secret alphaess_modbus_slaveId
        address: 281
        input_type: holding
        data_type: uint16
        unit_of_measurement: kWh
        device_class: energy
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 1
    #charging energy
      - name: PV Battery charging energy
        unique_id: PV_Battery_charging_energy
        slave: !secret alphaess_modbus_slaveId
        address: 288
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Discharge energy
      - name: PV Battery discharge energy
        unique_id: PV_Battery_discharge_energy
        slave: !secret alphaess_modbus_slaveId
        address: 290
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.1
        precision: 2
#Inverter
    #Power
      - name: PV Power Inverter
        unique_id: PV_Power_Inverter
        slave: !secret alphaess_modbus_slaveId
        address: 1036
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 10
        scale: 1
        precision: 2
    #Temperatur
      - name: PV Inverter temperature
        unique_id: PV_Inverter_temperature
        slave: !secret alphaess_modbus_slaveId
        address: 1077
        input_type: holding
        data_type: int16
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2



#generator
  #String1
    #Power
      - name: PV Power String1
        unique_id: PV_Power_String1
        slave: !secret alphaess_modbus_slaveId
        address: 1055
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #voltage
      - name: PV voltage String1
        unique_id: PV_voltage_String1
        slave: !secret alphaess_modbus_slaveId
        address: 1053
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #current
      - name: PV current String1
        unique_id: PV_current_String1
        slave: !secret alphaess_modbus_slaveId
        address: 1054
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
  #String2
    #Power
      - name: PV Power String2
        unique_id: PV_Power_String2
        slave: !secret alphaess_modbus_slaveId
        address: 1059
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #voltage
      - name: PV voltage String2
        unique_id: PV_voltage_String2
        slave: !secret alphaess_modbus_slaveId
        address: 1057
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #current
      - name: PV current String2
        unique_id: PV_current_String2
        slave: !secret alphaess_modbus_slaveId
        address: 1058
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
  #String3
    #Power
      - name: PV Power String3
        unique_id: PV_Power_String3
        slave: !secret alphaess_modbus_slaveId
        address: 1063
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #voltage
      - name: PV voltage String3
        unique_id: PV_voltage_String3
        slave: !secret alphaess_modbus_slaveId
        address: 1061
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #current
      - name: PV current String3
        unique_id: PV_current_String3
        slave: !secret alphaess_modbus_slaveId
        address: 1062
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
  #String4
    #Power
      - name: PV Power String4
        unique_id: PV_Power_String4
        slave: !secret alphaess_modbus_slaveId
        address: 1067
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #voltage
      - name: PV voltage String4
        unique_id: PV_voltage_String4
        slave: !secret alphaess_modbus_slaveId
        address: 1065
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #current
      - name: PV current String4
        unique_id: PV_current_String4
        slave: !secret alphaess_modbus_slaveId
        address: 1066
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2 
      
#ENERGY MEASUREMENTS STATISTIC
      - name: PV Grid feed
        unique_id: PV_Grid_feed
        slave: !secret alphaess_modbus_slaveId
        address: 16
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.01
        precision: 2
      - name: PV Grid purchase
        unique_id: PV_Grid_purchase
        slave: !secret alphaess_modbus_slaveId
        address: 18
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.01
        precision: 2

      - name: PV Generator energy
        unique_id: PV_Generator_energy
        slave: !secret alphaess_modbus_slaveId
        address: 1086
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.1
        precision: 2

      
        
    #GRID Meter
    #Rate of gridmeter
      - name: PV Gridmeter CT Rate
        unique_id: PV_GridMeter_CT_Rate
        slave: !secret alphaess_modbus_slaveId
        address: 1
        input_type: holding
        data_type: uint16
        state_class: measurement
        scan_interval: 60
        scale: 1
        precision: 1
      - name: PV PVMeter CT Rate
        unique_id: PV_PVMeter_CT_Rate
        slave: !secret alphaess_modbus_slaveId
        address: 129
        input_type: holding
        data_type: uint16
        state_class: measurement
        scan_interval: 60
        scale: 1
        precision: 1

  1. Add the following entries to secrets.yaml
alphaess_modbus_host_ip: 192.168.10.10 #TODO: Set ip adress of Alpha Ess Storage system
alphaess_modbus_host_port: 502 #Set port of Alpha Ess system - default: 502
alphaess_modbus_slaveId: 85 #Set slaveId of Alpha Ess system - default: 85
  1. Configure in the configuration.yaml that your system should use the packages in the package folder
homeassistant:
  packages: !include_dir_named packages
  1. Finally, all you need to do is restart your HomeAsistant and the entities should appear under Settings → Devices and Services → Entities
2 Likes

Für alle deutschsprachigen hier die Config der Sensoren auf deutsch:

modbus:
  - name: modbuspvsystem
    type: tcp
    host: !secret alphaess_modbus_host_ip
    port: !secret alphaess_modbus_host_port
    message_wait_milliseconds: 5 # waittime between 2 messages
    timeout: 10 # timeout in seconds before connection is closed
    delay: 1 # delay in seconds at startup

#Registerdefinition: https://alphaess.de/Public/Uploads/uploadfile/files/20230926/AlphaESS_Register_Parameter_List.pdf
#Beispielconfig für ioBroaker: https://github.com/ioBroker/modbus-templates/blob/4241d2b1c3f68d0408561834efa9653f1ee6a343/PV-Wechselrichter/Alpha-ESS/holding_register.txt
    #definition of sensors
    sensors:
#Leistung L1,L2,L3
      - name: PV Leistung L1
        unique_id: PV_Leistung_L1
        slave: !secret alphaess_modbus_slaveId
        address: 27
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
      - name: PV Leistung L2
        unique_id: PV_Leistung_L2
        slave: !secret alphaess_modbus_slaveId
        address: 29
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
      - name: PV Leistung L3
        unique_id: PV_Leistung_L3
        slave: !secret alphaess_modbus_slaveId
        address: 31
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
# Leistung vom/zum Netz
      - name: PV Gesammtwirkleistung
        unique_id: PV_Gesammtwirkleistung
        slave: !secret alphaess_modbus_slaveId
        address: 33
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
#Batterie
    #Leistung
      - name: PV Leistung Batterie
        unique_id: PV_Leistung Batterie
        slave: !secret alphaess_modbus_slaveId
        address: 294
        input_type: holding
        data_type: int16
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2
    #Spannung
      - name: PV Batteriespannung
        unique_id: PV_Batteriespannung
        slave: !secret alphaess_modbus_slaveId
        address: 256
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #SOC
      - name: PV Batterie Ladezustand
        unique_id: PV_Batterie Ladezustand
        slave: !secret alphaess_modbus_slaveId
        address: 258
        input_type: holding
        data_type: int16
        unit_of_measurement: "%"
        device_class: battery
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Min_Temp
      - name: PV Batterie Min Zelltemperatur
        unique_id: PV_BBatterie_Min_Zelltemperatur
        slave: !secret alphaess_modbus_slaveId
        address: 269
        input_type: holding
        data_type: uint16
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Max_Temp
      - name: PV Batterie Max Zelltemperatur
        unique_id: PV_BBatterie_Max_Zelltemperatur
        slave: !secret alphaess_modbus_slaveId
        address: 272
        input_type: holding
        data_type: uint16
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Restlaufzeit
      - name: PV Batterie Restlaufzeit
        unique_id: PV_Batterie_Restlaufzeit
        slave: !secret alphaess_modbus_slaveId
        address: 295
        input_type: holding
        data_type: int16
        unit_of_measurement: minutes
        state_class: measurement
        scan_interval: 60
        scale: 1
        precision: 2
    #Kapazität
      - name: PV Batteriekapazitaet
        unique_id: PV_Batteriekapazitaet
        slave: !secret alphaess_modbus_slaveId
        address: 281
        input_type: holding
        data_type: uint16
        unit_of_measurement: kWh
        device_class: energy
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 1
    #Ladeenergie
      - name: PV Batterie Ladeenergie
        unique_id: PV_Batterie_Ladeenergie
        slave: !secret alphaess_modbus_slaveId
        address: 288
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.1
        precision: 2
    #Entladeenergie
      - name: PV Batterie Entladeenergie
        unique_id: PV_Batterie_Entladeenergie
        slave: !secret alphaess_modbus_slaveId
        address: 290
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.1
        precision: 2
#Wechselrichter
    #Leistung
      - name: PV Leistung Wechselrichter
        unique_id: PV_Leistung_Wechselrichter
        slave: !secret alphaess_modbus_slaveId
        address: 1036
        input_type: holding
        data_type: int32
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scan_interval: 10
        scale: 1
        precision: 2
    #Temperatur
      - name: PV Wechselrichtertemperatur
        unique_id: PV_Wechselrichtertemperatur
        slave: !secret alphaess_modbus_slaveId
        address: 1077
        input_type: holding
        data_type: int16
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement
        scan_interval: 60
        scale: 0.1
        precision: 2



#Generator
  #String1
    #Leistung
      - name: PV Leistung String1
        unique_id: PV_Leistung_String1
        slave: !secret alphaess_modbus_slaveId
        address: 1055
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #Spannung
      - name: PV Spannung String1
        unique_id: PV_Spannung_String1
        slave: !secret alphaess_modbus_slaveId
        address: 1053
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #Strom
      - name: PV Strom String1
        unique_id: PV_Strom_String1
        slave: !secret alphaess_modbus_slaveId
        address: 1054
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
  #String2
    #Leistung
      - name: PV Leistung String2
        unique_id: PV_Leistung_String2
        slave: !secret alphaess_modbus_slaveId
        address: 1059
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #Spannung
      - name: PV Spannung String2
        unique_id: PV_Spannung_String2
        slave: !secret alphaess_modbus_slaveId
        address: 1057
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #Strom
      - name: PV Strom String2
        unique_id: PV_Strom_String2
        slave: !secret alphaess_modbus_slaveId
        address: 1058
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
  #String3
    #Leistung
      - name: PV Leistung String3
        unique_id: PV_Leistung_String3
        slave: !secret alphaess_modbus_slaveId
        address: 1063
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #Spannung
      - name: PV Spannung String3
        unique_id: PV_Spannung_String3
        slave: !secret alphaess_modbus_slaveId
        address: 1061
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #Strom
      - name: PV Strom String3
        unique_id: PV_Strom_String3
        slave: !secret alphaess_modbus_slaveId
        address: 1062
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
  #String4
    #Leistung
      - name: PV Leistung String4
        unique_id: PV_Leistung_String4
        slave: !secret alphaess_modbus_slaveId
        address: 1067
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2  
    #Spannung
      - name: PV Spannung String4
        unique_id: PV_Spannung_String4
        slave: !secret alphaess_modbus_slaveId
        address: 1065
        input_type: holding
        data_type: int16
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2
    #Strom
      - name: PV Strom String4
        unique_id: PV_Strom_String4
        slave: !secret alphaess_modbus_slaveId
        address: 1066
        input_type: holding
        data_type: int16
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
        scan_interval: 5
        scale: 0.1
        precision: 2  
  #Generatorleistung
      - name: PV Generatorleistung
        unique_id: PV_Generatorleistung
        slave: !secret alphaess_modbus_slaveId
        address: 161
        input_type: holding
        data_type: uint32
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scan_interval: 5
        scale: 1
        precision: 2    
 


      
#ENERGY MEASUREMENTS STATISTIC
      - name: PV Einspeisung
        unique_id: PV_Einspeisung
        slave: !secret alphaess_modbus_slaveId
        address: 16
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.01
        precision: 2
      - name: PV Bezug
        unique_id: PV_Bezug
        slave: !secret alphaess_modbus_slaveId
        address: 18
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.01
        precision: 2

      - name: PV Modulertrag
        unique_id: PV_Modulertrag
        slave: !secret alphaess_modbus_slaveId
        address: 1086
        input_type: holding
        data_type: uint32
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scan_interval: 60
        scale: 0.1
        precision: 2

      
        
    #GRID Meter
    #Rate of gridmeter
      - name: PV Gridmeter CT Rate
        unique_id: PV_GridMeter_CT_Rate
        slave: !secret alphaess_modbus_slaveId
        address: 1
        input_type: holding
        data_type: uint16
        state_class: measurement
        scan_interval: 60
        scale: 1
        precision: 1
      - name: PV PVMeter CT Rate
        unique_id: PV_PVMeter_CT_Rate
        slave: !secret alphaess_modbus_slaveId
        address: 129
        input_type: holding
        data_type: uint16
        state_class: measurement
        scan_interval: 60
        scale: 1
        precision: 1
1 Like

If you are missing any values ​​in my configuration, take a look at the documentation for the Modbus register directly from AlphaESS (https://alphaess.de/Public/Uploads/uploadfile/files/20230926/AlphaESS_Register_Parameter_List.pdf) or in the config for the IO Broaker from Gaspode69 (https://github.com/ioBroker/modbus-templates/blob/4241d2b1c3f68d0408561834efa9653f1ee6a343/PV-Wechselrichter/Alpha-ESS/holding_register.txt). You can then simply add these values ​​to the package

I’ve started enhancing that and documenting the whole lot from scratch here:
https://projects.hillviewlodge.ie/alphaess/

2 Likes

I have an Alpha ESS Storion-SMILE-T10, I managed to get the ModBus communication working. But when I want to modify the registers, the device does not respond to the command and ends with a timeout.
Am I doing something wrong or do I need to enable the write somewhere first?
Reading:
send: 0x55 0x3 0x8 0x50 0x0 0x1 0x8b 0xaf
recv: 0x55 0x3 0x2 0x0 0x6e 0x8 0x64
Saves:
send: 0x55 0x6 0x8 0x50 0x0 0xd2 0x6 0x32

Thank you for your help

I learned today from ESS support that Storion-SMILE-T10 has only the possibility of reading via ModBus (changing values - writing is not possible). Does writing on this system work for anyone?

I’m afraid it doesn’t work.
Alpha is notoriously bad in allowing the customer to do anything. Seems, this is also true for the modbus connection.

finally its working. since i switched from iobroker to home assistant some years ago, i hoped for a home assistant only solution, that isnt depending on the alphaess cloud api, without diving into modbus myself.
thank you very much :slight_smile:

2 Likes

i ran into modbus connection troubles, because i wanted ha and evcc.io both using the modbus data, but the alphaess modbus server doesnt really allow multiple connections. i solved it with help of an ha addon: modbusproxy: GitHub - Akulatraxas/ha-modbusproxy: Hassio Addon packaging modus-proxy. its now working flawlessly.

1 Like

Hi,
das Scribt funktioniert auf Anhieb. Vielen Dank zunächst mal fürs teilen.
Ich habe aber festgestellt, dass die angezeigte Generator Leistung nicht passt. Zumindest wenn ich die App als Referenz nehme. Aktueller Messwert

  • App: 1,93 kW
  • dein Scribt: 964 W

Pi mal Auge würde ich sagen, dass es ziemlich genau die Hälte der Leistung anzeigt. Kann dies mit dem Attribut “scale” oder “precision” in deinem Scribt zu tun haben?

Update 12.10.:
so after i ordered a current measurement device to check my Strings and see wich values are correct, i saw that every value is totaly wrong.
Here some examples:

I have measured the Strings while im checking in HA the current value. Here we talking about a difference of > 2A.
Okay anyway, lets check if at least the values send by the inverter are consistent.
If have a look at “PV Leistung S1” its 2931 W and for S2 = 2393 W.
So i do the Math: P = U * I
S1 337 V * 8,7 = 2931 W
S2 263 V * 9,1 = 2393 W
Summary = 5324 W

But “Generatorleistung” is showing 4193 W.
If this is the correct value for the sum, then there is a lack of 1131 W
And this Value is again totaly different to the value shown at the website.

My inverter is the Alpha ESS Smile 10. Maybe someone else has similar expierience.

Hallo,

jetzt steinigt mich nicht.

Aber wie habt ihr das Hardwareseitig umgesetzt.

Mein HA läuft auf einem Pi4.
Ihr verwendet eine Modbus platine oder wie schließt ihr das Alpha ESS System an den HA Rechner(Pi)?

Bei mir sind PV Anlage und der HA räumlich getrennt.
Ich dachte da an eine Modbus Platine, ESP32(übertragen via WLAN), und ESP Home.

Depending on your inverter model Modbus TCP is available via the inverter’s LAN interface - no additional hardware required. Access via inverter’s IP address port 502.

Has anyone successfully connected using modbus to a Smile B3, or seen evidence of it? I see that this has been tested on the B5, but I’m not jumping to conclusions.

The reason I ask is that the Cat5 run needed to my inverter will be long and very awkward as it is in a cabinet outside through the wall from our consumer unit as far away as possible from our internet gear. The house is old with 75cm stone walls internal and external. There’s WiFi signal from my wife’s garden studio (just) but I can’t easily run a network cable from there to the rack either.

I will otherwise make myself an extra
long patch cable and chuck it out of a window for testing, and post back if I reach a conclusion

Thanks
Peter

I am having a storion smile b3 connected via LAN. Tried it today, but ports are closed, so i think, there is no modbus via tcp available.

Thank you- I thought I had read that somewhere, when I bought the kit but couldn’t find the reference.

The current API outage is making me revisit the possibility of local access…

1 Like

I’ve got Modbus running with a Smile B3 Plus and had to use one of these Waveshare modules:
https://www.amazon.co.uk/Waveshare-RS485-Ethernet-Converter-auto-negotiation/dp/B0BGHVRMPJ/ref=sr_1_5?crid=2C8RLX5GDQWGO&th=1

Seems to be working well once setup, including scheduling charging and discharging based on Octopus pricing.

1 Like

Is there any way to calculate the power used by the non essential side of the inverter it’s a smile 5.
Thank you

Hi ian, can you show us how you have installed the waveshare to your B3 ? How did you assign the pins? This doesn’t work for me at the moment

Hello, i only read Data, i dont know how to write, @SaaX is sharing his Project where he writes Data, maybe this can help?

Hi, ich habe die Links zu dem Ofiziellen Dokument mit im Beitrag, dort können sie schauen ob scale und precision passt. Sonst sind das die Daten welche die Sensoren im Gerät aufnehmen, sollten sie in der Alpha App genau so “falsch” sein müssen sie entweder nochmal ihren Installateur messen lassen oder überlegen ob sie falsch messen.