Sběr dat z Epever

Integrace a HACS
Odpovědět
Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Sběr dat z Epever

Příspěvek od Plazivec »

Nevím, kam zařadit.
Můj dotaz se týká sběru dat ze tří regulátorů Epever přes RS485 kanál. Prozatím jsem to tam hodil jak jsem to našel, ale potřeboval bych zjistit, jak udělat častější sběr, pač tohle sebere, zdá se mi, data jednou za minutu, což je dost řídce. A také by nebylo od věci mít nějaký tlačítko v HA na okamžitý sběr.

Kód: Vybrat vše

esphome:
  name: epever-vychod

esp8266:
  board: nodemcuv2

# Enable logging
logger:
  level: INFO
  baud_rate: 0

# Enable Home Assistant API
api:
  password: "apipassword"

ota:
  password: "otapassword"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.182
    gateway: 192.168.1.2
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "epever-vychod"
    password: "pinoccio"

captive_portal:

web_server:
  port: 80

uart:
  id: mod_bus
  tx_pin: TX
  rx_pin: RX
  baud_rate: 115200
  stop_bits: 1

modbus:
  flow_control_pin: 5
  id: modbus3

modbus_controller:
  - id: epever3
    ## the Modbus device addr
    address: 0x1
    modbus_id: modbus3
    setup_priority: -10

sensor:
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: pv_input_voltage
    name: "PV array input voltage"
    address: 0x3100
    unit_of_measurement: "V" ## for any other unit the value is returned in minutes
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: pv_input_current
    name: "PV array input current"
    address: 0x3101
    unit_of_measurement: "A" ## for any other unit the value is returned in minutes
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: pv_input_power
    name: "PV array input power"
    address: 0x3102
    unit_of_measurement: "W" ## for any other unit the value is returned in minutes
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: charging_voltage
    name: "Charging voltage"
    address: 0x3104
    unit_of_measurement: "V"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: charging_current
    name: "Charging current"
    address: 0x3105
    unit_of_measurement: "A"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: charging_power
    name: "Charging power"
    address: 0x3106
    unit_of_measurement: "W"
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: battery_temperature
    name: "Battery temperature"
    address: 0x3110
    unit_of_measurement: °C
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: device_temperature
    name: "Device temperature"
    address: 0x3111
    unit_of_measurement: °C
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: battery_soc
    name: "Battery SOC"
    address: 0x311A
    unit_of_measurement: "%"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: battery_voltage
    name: "Battery voltage"
    address: 0x331A
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    unit_of_measurement: "V"
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: battery_current
    name: "Battery current"
    address: 0x331B
    register_type: read
    value_type: S_DWORD_R
    register_count: 2
    accuracy_decimals: 2
    unit_of_measurement: "A"
    filters:
      - multiply: 0.01
    

mamonick
Dárce - Donátor
Dárce - Donátor
Příspěvky: 187
Registrován: 20. září 2021, 13:47
Bydliště: Třebechovice p. O.
Dal poděkování: 23 poděkování
Dostal poděkování: 22 poděkování

Re: Sběr dat z Epever

Příspěvek od mamonick »

tak ke každému sensoru přidej update_interval

Kód: Vybrat vše

sensor:
  - platform: modbus_controller
    update_interval: 1s #dej sem hodnotu jakou chces
    modbus_controller_id: epever3
    id: pv_input_voltage
    name: "PV array input voltage"
    address: 0x3100
    unit_of_measurement: "V" ## for any other unit the value is returned in minutes
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01



Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Re: Sběr dat z Epever

Příspěvek od Plazivec »

Editor řve, prej je to: invalid option for sensor.modbus_controller

kiklhorn
Moderátor
Moderátor
Příspěvky: 901
Registrován: 03. červenec 2021, 18:35
Dal poděkování: 107 poděkování
Dostal poděkování: 210 poděkování

Re: Sběr dat z Epever

Příspěvek od kiklhorn »

ne k senzoru, sem:

Kód: Vybrat vše

modbus_controller:
  - id: epever3
    ## the Modbus device addr
    address: 0x1
    modbus_id: modbus3
    setup_priority: -10
ke konkrétnímu senzoru můžeš naopak použít skip_updates pokud nechceš jeho hodnotu tak často.

Dokumentace: https://esphome.io/components/sensor/mo ... oller.html
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox

Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Re: Sběr dat z Epever

Příspěvek od Plazivec »

Jop, supr! Už je to tam u všech třech a maká to! Jen by mě zajímalo, kde se taková informace sežene. Já to nenašel, ačkoli jsem tušil, že by ten update_interval nebo něco podobného, měl existovat, také jsem tušil, že pokud se nepoužije, bude použita nějaká defaultní hodnota, o které, samozřejmě, nic nevím.
Mockrát děkuji, pánové!

Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Re: Sběr dat z Epever

Příspěvek od Plazivec »

Udělal jsem další šablonku pro sběr dat z Epevru - spočtení denní produkce všech tří kousků. Funguje to na první ránu, hezky to spočítává online denní produkci. Co mě teď svědí za uchem je, že bych rád uložil denní produkci někam tak, aby se to zaznamenalo do influxu a na to už jsem jaksi krátkej, nevím, kde začít kopat.

Kód: Vybrat vše

  - sensor:
      - name: "Generated_Power_Today"
        unit_of_measurement: "Wh"
        state: >
          {% set GP_zapad = states('sensor.generated_energy_today') | float %}
          {% set GP_juh = states('sensor.generated_energy_today_2') | float %}
          {% set GP_východ = states('sensor.generated_energy_today_3') | float %}
          {{ ((GP_zapad + GP_juh + GP_východ)) | round(1, default=0) }}
Edit, jo a ještě taková blbost, neví někdo, jak to podělit 1000cem a nastavit kWh?

Odpovědět

Zpět na „Integrace“