Modbus Must ESP

Publicat de Florin pe

esphome:
  name: must
  friendly_name: Must
  comment: "Must inverter"

esp32:
  board: az-delivery-devkit-v4



substitutions:
  inverter_id: inverter
  updates: 10s

# Enable Home Assistant API
#api:
# encryption:
#   key: "j1sQbRW1BCRnNi+Z7o+CGBaNuHxAzM56gRCE0+tCbj0="


  
ota:


# Enable Home Assistant Mqtt
mqtt:
  broker: !secret mqtt_host
  username: !secret mqtt_username
  password: !secret mqtt_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "ESP_MUST_iRQ"
    password: "123654"


# Enable fallback hotspot (captive portal) in case wifi connection fails

web_server:
  port: 80
  auth:
    username: admin
    password: admin


button:
  - platform: restart
    name: WiFi Must Reboot
captive_portal:

  
logger:
  level: DEBUG










# UART CONFIG

uart:
  id: mod_bus
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 19200
  stop_bits: 1
  parity: NONE
  data_bits: 8

modbus:
  id: mod_bus_must
  send_wait_time: 200ms

modbus_controller:
  - id: must
    address: 0x4
    modbus_id: mod_bus_must
    setup_priority: -10
    update_interval: 60s


#text_sensor:
# - platform: wifi_info
#    ip_address:
#      name: ESP Must IP 
#    ssid:
#      name: ESP Must SSID

sensor:

  - platform: internal_temperature
    name: "WiFi Intern Temp"

#  - platform: wifi_signal
#    name: "ESP Must Signal"
#    update_interval: 60s
#  - platform: uptime
#    name: ESP Must Uptime
    
  # charger sensors
  - platform: modbus_controller
    address: 15201
    name: "PV Charger Workstate"
    register_type: holding

  - platform: modbus_controller
    address: 15202
    name: "PV Charger MPPT state"
    register_type: holding

  - platform: modbus_controller
    address: 15203
    name: "PV Charger Charging state"
    register_type: holding
    
  - platform: modbus_controller
    address: 15205
    name: "PV Charger Voltage"
    register_type: holding
    unit_of_measurement: "V"
    device_class: voltage
    accuracy_decimals: 1
    icon: mdi:sine-wave
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 15206
    name: "PV Charger Battery voltage"
    register_type: holding
    unit_of_measurement: "V"
    accuracy_decimals: 1
    icon: mdi:sine-wave
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 15207
    name: "PV Charger Current"
    register_type: holding
    unit_of_measurement: "A"
    device_class: current
    accuracy_decimals: 1
    icon: mdi:current-dc
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 15208
    register_type: holding
    name: "PV Charger power"
    unit_of_measurement: "W"
    device_class: power
    accuracy_decimals: 1
    icon: mdi:flash
  
  - platform: modbus_controller
    address: 15209
    register_type: holding
    name: "Temp PV Charger Radiator"
    unit_of_measurement: "°C"
    device_class: temperature
    accuracy_decimals: 1
    icon: mdi:temperature-celsius

  # - platform: modbus_controller
  #   modbus_controller_id: must_inverter
  #   address: 15210
  #   register_type: holding
  #   name: "PV Charger External temp"
  #   unit_of_measurement: "°C"
  #   accuracy_decimals: 1
  #   icon: mdi:temperature-celsius

  - platform: modbus_controller
    address: 15212
    register_type: holding
    name: "Relay PV"
    icon: mdi:electric-switch

  - platform: modbus_controller
    address: 15217
    register_type: holding
    id: charger_total_mwh
    internal: true

  - platform: modbus_controller
    address: 15218
    register_type: holding
    id: charger_total_kwh
    internal: true
    filters:
      multiply: 0.1

  - platform: template
    name: "Accumulated PV chg power"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    lambda: !lambda 'return (id(charger_total_mwh).state * 1000.0 + id(charger_total_kwh).state );'
    accuracy_decimals: 1

# Accumulate power

  - platform: modbus_controller
    address: 25256
    register_type: holding
    name: "Accumulated self power"
    unit_of_measurement: "W"
    device_class: energy
    accuracy_decimals: 1
    icon: mdi:flash

#  - platform: modbus_controller
#    address: 15220
#    register_type: holding
#    name: "Accumulated PV chg hour"
#    unit_of_measurement: "W"
#    device_class: energy
#    accuracy_decimals: 1
#    icon: mdi:flash

  #- platform: modbus_controller
  #  address: 15221
  #  register_type: holding
  #  name: "Accumulated PV chg minute"
  #  unit_of_measurement: "W"
  #  device_class: energy
  #  accuracy_decimals: 1
  #  icon: mdi:flash

# inverter sensors
  - platform: modbus_controller
    address: 25201
    register_type: holding
    name: "Inverter Work mode"

  - platform: modbus_controller
    address: 25205
    name: "Battery Voltage"
    register_type: holding
    unit_of_measurement: "V"
    device_class: voltage
    accuracy_decimals: 1
    icon: mdi:sine-wave
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 25206
    name: "Inverter out Voltage"
    register_type: holding
    unit_of_measurement: "V"
    device_class: voltage
    accuracy_decimals: 1
    icon: mdi:sine-waveum
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 25207
    name: "Grid voltage"
    register_type: holding
    unit_of_measurement: "V"
    device_class: voltage
    accuracy_decimals: 1
    icon: mdi:sine-wave
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 25208
    name: "Inverter bus Voltage"
    register_type: holding
    unit_of_measurement: "V"
    device_class: voltage
    accuracy_decimals: 1
    icon: mdi:sine-wave
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 25209
    name: "Inverter Load current"
    register_type: holding
    unit_of_measurement: "A"
    device_class: current
    accuracy_decimals: 1
    icon: mdi:current-dc
    filters:
      multiply: 0.1

  #- platform: modbus_controller
  #  address: 25210
  #  name: "Inverter Current"
  #  register_type: holding
  #  unit_of_measurement: "A"
  #  device_class: current
  #  accuracy_decimals: 1
  #  icon: mdi:current-dc
  #  filters:
  #    multiply: 0.1

  - platform: modbus_controller
    address: 25211
    name: "Grid current"
    register_type: holding
    unit_of_measurement: "A"
    device_class: current
    accuracy_decimals: 1
    icon: mdi:current-ac
    filters:
      multiply: 0.1

  - platform: modbus_controller
    address: 25225 
    name: "Inverter Freq"
    register_type: holding
    unit_of_measurement: "Hz"
    device_class: frequency
    accuracy_decimals: 1
    icon: mdi:current-ac
    filters:
      multiply: 0.01

  - platform: modbus_controller
    address: 25225 
    name: "Grid Freq"
    register_type: holding
    unit_of_measurement: "Hz"
    device_class: frequency
    accuracy_decimals: 1
    icon: mdi:current-ac
    filters:
      multiply: 0.01
  #- platform: modbus_controller
  #  address: 25212
  #  name: "Inverter control current"
  #  register_type: holding
  #  unit_of_measurement: "A"
  #  device_class: current
  #  accuracy_decimals: 1
  #  icon: mdi:current-ac
  #  filters:
  #    multiply: 0.1

  #- platform: modbus_controller
  #  address: 25213
  #  name: "Inverter Power"
  #  register_type: holding
  #  unit_of_measurement: "W"
  #  accuracy_decimals: 1
  #  icon: mdi:flash

  - platform: modbus_controller
    address: 25214
    name: "Grid power"
    register_type: holding
    unit_of_measurement: "W"
    device_class: power
    accuracy_decimals: 1
    value_type: S_WORD
    icon: mdi:flash

  - platform: modbus_controller
    address: 25215
    name: "Inverter Load power"
    register_type: holding
    unit_of_measurement: "W"
    device_class: power
    accuracy_decimals: 1
    icon: mdi:flash

  - platform: modbus_controller
    address: 25216
    name: "Inverter System load"
    register_type: holding
    unit_of_measurement: "%"
    accuracy_decimals: 1
    icon: mdi:flash

    # MOST INFO

  - platform: modbus_controller
    address: 25233
    register_type: holding
    name: "Temp  AC Radiator"
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    device_class: temperature
    icon: mdi:temperature-celsius

  #- platform: modbus_controller
  #  address: 25234
  #  register_type: holding
  #  name: " Temp Transformer"
  #  unit_of_measurement: "°C"
  #  device_class: temperature
  #  accuracy_decimals: 1
  #  icon: mdi:temperature-celsius

  - platform: modbus_controller
    address: 25235
    register_type: holding
    name: "Temp DC Radiator"
    unit_of_measurement: "°C"
    device_class: temperature
    accuracy_decimals: 1
    icon: mdi:temperature-celsius


  #- platform: modbus_controller
  #  address: 25237
  #  register_type: holding
  #  name: "Relay state inv"
  #  icon: mdi:electric-switch

  #- platform: modbus_controller
  #  address: 25238
  #  register_type: holding
  #  name: "Relay state Grid"
  #  icon: mdi:electric-switch
    
  #- platform: modbus_controller
  #  address: 25239
  #  register_type: holding
  #  name: "Relay state Load"
  #  icon: mdi:electric-switch
    
  #- platform: modbus_controller
  #  address: 25240
  #  register_type: holding
  #  name: "Relay state NLine"
  #  icon: mdi:electric-switch

  #- platform: modbus_controller
  #  address: 25241
  #  register_type: holding
  #  name: "Relay state DC"
  #  icon: mdi:electric-switch
    
  #- platform: modbus_controller
  #  address: 25242
  #  register_type: holding
  #  name: "Relay state Earth"
  #  icon: mdi:electric-switch




# Inverter Accumulated discharge power
#    address: 25247
#    register_type: holding
#    id: discharger_total_mwh
#    internal: true
#
#  - platform: modbus_controller
#    address: 25248
#    register_type: holding
#    id: discharger_total_kwh
#    internal: true
#    filters:
#      multiply: 0.1

#  - platform: template
#    name: "Accumulated discharger power"
#    unit_of_measurement: kWh
#    accuracy_decimals: 1
#    lambda: !lambda 'return (id(discharger_total_mwh).state * 1000.0 + id(discharger_total_kwh).state);'

# Inverter Accumulated buy power
#  - platform: modbus_controller
#    address: 25249
#    register_type: holding
#    id: buy_mwh
#    internal: true
  
#  - platform: modbus_controller
#    address: 25250
#    register_type: holding
#    id: buy_kwh
#    internal: true
#    filters:
#      multiply: 0.1
  
#  - platform: template
#    name: "Accumulated buy power"
#    unit_of_measurement: kWh
#    device_class: energy
#    icon: mdi:flash
#    state_class: total_increasing
#    lambda: |-
#     return (id(buy_mwh).state * 1000.0 + id(buy_kwh).state);
#    accuracy_decimals: 1

# Inverter Accumulated sell power
  #- platform: modbus_controller
  #  address: 25251
  #  register_type: holding
  #  id: sell_mwh

  #- platform: modbus_controller
  #  address: 25252
  #  register_type: holding
  #  id: sell_kwh
  #  filters:
  #    multiply: 0.1

  #- platform: template
  #  name: "Accumulated sell power"
  #  unit_of_measurement: kWh
  #  accuracy_decimals: 1
  #  lambda: !lambda return (id(sell_mwh).state * 1000.0 + id(sell_kwh).state);

# Inverter Accumulated load power
  - platform: modbus_controller
    address: 25253
    register_type: holding
    id: load_mwh
    internal: True

  - platform: modbus_controller
    address: 25254
    register_type: holding
    id: load_kwh
    internal: True
    filters:
      multiply: 0.1
  
  - platform: template
    name: "Accumulated load power"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 1
    lambda: !lambda return (id(load_mwh).state * 1000.0 + id(load_kwh).state);

  - platform: modbus_controller
    address: 25273
    register_type: holding
    value_type: S_WORD
    name: "Battery power"
    unit_of_measurement: "W"
    device_class: power
    accuracy_decimals: 1
    icon: mdi:flash

  - platform: modbus_controller
    address: 25274
    register_type: holding
    value_type: S_WORD
    name: "Battery current"
    device_class: current
    unit_of_measurement: "A"
    accuracy_decimals: 1
    icon: mdi:current-dc



#select:
  #- platform: modbus_controller
  #  id: energy_use_mode
  #  name: "Inv use mode"
  #  address: 20109
  #  optionsmap:
  #    "SBU (Sol/batt/uti)": 1
  #    "SUB (Sol/uti/batt)": 2
  #    "UTI (Utility only)": 3
  #    "SOL (Solar only)": 4

  #- platform: modbus_controller
  #  id: charger_source_priority
  #  name: "Inv chg first "
  #  address: 20143
  #  optionsmap:
  #    "CSO (Solar first)": 0
  #    "SNU (Sol and uti)": 2
  #    "OSO (Solar only)": 3

  #- platform: modbus_controller
  #  address: 20111
  #  id: inverter_ac_input_voltage_range
  #  name: "Inv work mode"
  #  optionsmap:
  #    "VDE (184-253VAC)": 0
  #    "UPS (170-280VAC)": 1
  #    "APL (90-280VAC)": 2
  #    "GEN (Generator)": 3


number:

  #- platform: template
  #  name: "Battery Enable grid chg"
  #  id: inv_grid_chg_start
  #  device_class: voltage
  #  unit_of_measurement: "V"
  #  min_value: 10
  #  max_value: 14.6
  #  initial_value: 10.5
  #  step: 0.1
  #  optimistic: true
  #  restore_value: true
  #  mode: box
  #- platform: template
  #  name: "Battery Disable grid chg"
  #  id: inv_grid_chg_stop
  #  device_class: voltage
  #  unit_of_measurement: "V"
  #  min_value: 10
  #  max_value: 14.6
  #  initial_value: 12
  #  step: 0.1
  #  optimistic: true
  #  restore_value: true
  #  mode: box


  - platform: modbus_controller
    id: easun_batt_float_voltage
    name: "PV Charger Float voltage"
    unit_of_measurement: "V"
    address: 10103
    value_type: U_WORD
    multiply: 10

  - platform: modbus_controller
    id: easun_absorb_voltage
    name: "PV Charger Absorb voltage"
    unit_of_measurement: "V"
    address: 10104
    value_type: U_WORD
    multiply: 10

  - platform: modbus_controller
    id: easun_batt_stop_dischg
    name: "Battery stop discharging voltage"
    unit_of_measurement: "V"
    address: 20118
    value_type: U_WORD
    lambda: "return x * 0.1; "
    write_lambda: |-
      return x * 10 ;
  - platform: modbus_controller
    id: easun_batt_stop_chg
    name: "Battery stop charging voltage"
    unit_of_measurement: "V"
    address: 20119
    value_type: U_WORD
    multiply: 10

  - platform: modbus_controller
    id: easun_batt_low_voltage
    name: "Battery low voltage"
    unit_of_measurement: "V"
    address: 20127
    value_type: U_WORD
    multiply: 10

  #- platform: modbus_controller
  #  id: batt_high_voltage
  #  name: "Battery high voltage"
  #  unit_of_measurement: "V"
  #  address: 20128
  #  value_type: U_WORD
  #  multiply: 10

  #- platform: modbus_controller
  #  id: solar_charger_current
  #  name: "Inverter Charger current"
  #  unit_of_measurement: "A"
  #  address: 20132
  #  value_type: U_WORD
  #  multiply: 10
Categorii: how to

0 comentarii

Lasă un răspuns

Substituent avatar

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *