Epever -> modbus -> esp32

Souhrn tématu

Uživatel popisuje své zkušenosti s propojením solárních regulátorů Epever přes Modbus s mikrokontrolérem ESP32. Po několika pokusech a úpravách YAML konfigurace se mu podařilo spolehlivě číst data z více regulátorů současně a přenášet je do Node-RED přes MQTT. Díky tomu může sledovat výkon, napětí a proud solárních panelů v reálném čase a vytvářet přehledné grafy, což usnadňuje správu a automatizaci systému.
Uživatelský avatar
TomHC
Příspěvky: 3931
Registrován: pát lis 11, 2022 8:14 am
Reputace:882
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 8820
Kapacita baterie [kWh]: 30
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: Epever -> modbus -> esp32

Nový příspěvek od TomHC »

bitmask je podporovaný spôsob --> https://esphome.io/components/modbus_co ... r#bitmasks

Buď sem daj väčší snippet kódu, alebo celý yaml hoci na https://pastebin.com
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 9kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Migel
Příspěvky: 1839
Registrován: ned zář 25, 2022 10:47 am
Reputace:327
Lokalita: Pod Karpatmi

Re: Epever -> modbus -> esp32

Nový příspěvek od Migel »

Migel píše: čtv kvě 08, 2025 12:01 am
Nevedel som kde mam toto vlakno dat, kam to zaradit, tak ak by cipis vedel kde by sa hodilo tak kludne to presun :comp: ..Mozno niekomu ulahcim cestu kto hlada alebo chce nieco podobne...
A teda k veci..Po niekolkych pokusoch a omyloch a skoro dva mesiace hladania, nahravania (Tomasovi dakujem za nasmerovanie v esphome) sa mi podarilo rozchodit vycitavanie dat z obidvoch mojich epeverov cez modbus do esp32 a nasledne cez mqtt do nodered.
Nie som v tomto programovani moc dobry ale pomaly sa ucim a teda je to celkom chytlave ked sa vam nieco podari ozivit tak ma clovek z toho neskutocnu radost a pokracuje viac a viac..(no lenze casu je teraz menej a menej :lol: )
Takze som najskor hladal vsetko o epeveroch a esp cez modbus a nieco nasiel ale nic co by sa mi hodilo.Lebo vsetko co som nasiel, respektive vacsina ludi ma, tak bolo do HA :wall:
No a kedze sa s HA este nekamaratim, tak to chcelo trochu uprav..nasiel som cely protokol plus nejake konkretne priklady a dal z tych viacerych variant do kopy funkcny yaml subor.Najskor pre jeden a potom som tam doplnil druhy regl. A ked sa to rozbehlo tak som vybral z toho yaml sekcie, ktore chcem vycitavat.
Oba regulatory 8415AN a 6415AN mam prepojene s ftp kablom a kazdy ma svoje ID.
Z hlavneho regulatora ide z rj45 do prevodnika MAX485 a odtial do esp32.(zajtra sem prihodim aj schemu zapojenia a obsadenie/prepojenie pinov, to len pre niekoho ako ja keby nahodou :lol: lebo notbuk mam uz vypnuty)
Konecne vidim oba regulatory naraz bez toho aby som sa nejako musel medzi nimi prepinat napriklad cez bluetoot alebo podobne, a hlavne to uz mam pekne v nodered kde mozem citam uz vyroby a robit si grafy a nieco to pomoze aj automatizacii.Jedine co mi zatial nejde je to ze nedokazem ovladat z nodered Load rele na regulatoroch. Idu spinat zatial iba z weboveho rozhrania esp.Bude to chciet upravit asi ten yaml subor asi...
Zajtra to sem hodim mozno niekto poradi alebo poradim niekomu ja :P
A teda nejake ukazky s dashboardu pre jednotlive regulatory.Zajtra uz tam budu aj grafy ;)
Prvy obrazok z tohoto prispevku je foto z webu esp32 a tam je vidiet polozka "charger status regulator" a "charging mode regulator" no a zobrazuju sa tam cisla.
Tie cisla co znamenaju sem mozem dat ked pridem z roboty (mam to v pc) a teda nemam ich pomenovane v samotnom yaml ale az v nodered.Ale napriklad v charger status regulator cislo 9 znamena rezim BOOST, cislo 5 je FLOAT (to len co si pametam😀).
A to ako je to zapisane v yaml je tiez v tomto vlakne
Přílohy
IMG_8523.jpeg
IMG_8511.jpeg
JZ-2s5p 3,8kWp >> Epever 8415 AN
JV-2s3p 2,7kWp >> Epever 6415 AN
2x Victron MP2 5000V/A paralelne
3x GWL SUN-2000G paralelne

48V 760Ah/35kWh Li-ion
a stále v štádiu budovania :repair:(rozširovania)
Forrest
Příspěvky: 215
Registrován: pát zář 09, 2022 1:42 pm
Reputace:6
Lokalita: Ústeckoorlicko
Systémové napětí: 48V
Výkon panelů [Wp]: 2900
Kapacita baterie [kWh]: 6,4
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Č.T. Lhotka

Re: Epever -> modbus -> esp32

Nový příspěvek od Forrest »

Funkčně to mám takto:
konfigurák

Kód: Vybrat vše

# modbus pro EPEVER (měnič a regulátory)
modbus: !include modbus.yaml
modbus

Kód: Vybrat vše

#modbus EPEVER

  - name: epever_modbus 1 #pro EPEVERy FVE
    type: rtuovertcp
    host: 192.168.10.34
    port: 503
    delay: 5
    timeout: 10
    binary_sensors: !include epever_binary_sensors.yaml #sem napsat všechno co má binary_sensors
    sensors: !include epever_sensors.yaml #sem napsat všechno co má sensors
    switches: !include epever_switches.yaml #sem napsat všechno co má switches

  - name: epever_modbus 2 #pro EPEVER MĚNIČE
    type: rtuovertcp
    host: 192.168.10.34
    port: 502
    delay: 5
    timeout: 10
    binary_sensors: !include inverter_binary_sensors.yaml #sem napsat všechno co má binary_sensors
    sensors: !include inverter_sensors.yaml #sem napsat všechno co má sensors
    switches: !include inverter_switches.yaml #sem napsat všechno co má switches
a pak tedy směrovat do binary_senzors..ale v něm jak dám "bitmask" tak to řve - ten poslední yaml je fakt pracovní, takže v něm může být bordel..

Kód: Vybrat vše

#EPEVER switches - nastavení binárních senzorů EPEVER iPower5000
#EPEVER Inverter (iPower5000) na slave 1

      - name: "Inverter ON/OFF iPower5000"
        slave: 1
        address: 0x000F
        input_type: coil

      - name: "Local/Remote Control iPower5000"
        slave: 1
        address: 0x0011
        input_type: coil

      - name: "Clear Faults iPower5000"
        slave: 1
        address: 0x0013
        input_type: coil

      - name: "Over Temperature iPower5000"
        slave: 1
        address: 0x2000
        input_type: discrete_input

      - name: "Inverter Running iPower5000"
        slave: 1
        address: 0x3202
        register_type: holding
        value_type: U_WORD
        #bitmask: 0x0001 # D0

      - name: "Inverter Fault iPower5000"
        slave: 1
        address: 0x3202
        input_type: input
        #bitmask: 0x0002

      - name: "Output Fail iPower5000"
        slave: 1
        address: 0x3202
        input_type: input
        #bitmask: 0x0020

      - name: "Short Circuit iPower5000"
        slave: 1
        address: 0x3202
        input_type: input
        #bitmask: 0x0800
Měnič China SAmoDoMo 1,5 kW a již 900Wp na rotátoru jménem "slunečnice"
Forrest
Příspěvky: 215
Registrován: pát zář 09, 2022 1:42 pm
Reputace:6
Lokalita: Ústeckoorlicko
Systémové napětí: 48V
Výkon panelů [Wp]: 2900
Kapacita baterie [kWh]: 6,4
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Č.T. Lhotka

Re: Epever -> modbus -> esp32

Nový příspěvek od Forrest »

No možná je to rovnák na vohejbák, ale do hlavního konfiguráku jsem přidal template: !include inverter_templates.yaml
pak vytvořil inverter_templates.yaml a do něj toto:

Kód: Vybrat vše

# STATUSY PRO MĚNIČ IPOWER5000

- binary_sensor:
  - name: "Run Status iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0001)) > 0 }}"
  - name: "Fault Status iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0002)) > 0 }}"
  - name: "Output Fail iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0020)) > 0 }}"
  - name: "High Voltage Side Short-Circuit iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0040)) > 0 }}"
  - name: "Input Overcurrent iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0080)) > 0 }}"
  - name: "Abnormal Output Voltage iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0100)) > 0 }}"
  - name: "Cannot Stop Discharging iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0200)) > 0 }}"
  - name: "Cannot Discharge iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0400)) > 0 }}"
  - name: "Short Circuit iPower5000"
    state: "{{ (states('sensor.load_status_raw') | int(0) | bitwise_and(0x0800)) > 0 }}"

- sensor:
  - name: "Output Power Level iPower5000"
    state: >
        {% set shifted_val = states('sensor.load_status_raw') | int(0) // 4096 %}
        {% set val = shifted_val | bitwise_and(0x03) %}
        {% if val == 0 %}Light load
        {% elif val == 1 %}Medium load
        {% elif val == 2 %}Nominal load
        {% elif val == 3 %}Overload
        {% else %}Unknown{% endif %}

  - name: "Input Voltage Status iPower5000"
    state: >
        {% set shifted_val = states('sensor.load_status_raw') | int(0) // 16384 %}
        {% set val = shifted_val | bitwise_and(0x03) %}
        {% if val == 0 %}Normal input voltage
        {% elif val == 1 %}Low input voltage
        {% elif val == 2 %}High input voltage
        {% elif val == 3 %}No input power
        {% else %}Unknown{% endif %}
Měnič China SAmoDoMo 1,5 kW a již 900Wp na rotátoru jménem "slunečnice"
Uživatelský avatar
TomHC
Příspěvky: 3931
Registrován: pát lis 11, 2022 8:14 am
Reputace:882
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 8820
Kapacita baterie [kWh]: 30
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: Epever -> modbus -> esp32

Nový příspěvek od TomHC »

Aj tak sa dá, keď niečo nejde a dá sa to nejako obísť, prečo nie... 😎
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 9kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Migel
Příspěvky: 1839
Registrován: ned zář 25, 2022 10:47 am
Reputace:327
Lokalita: Pod Karpatmi

Re: Epever -> modbus -> esp32

Nový příspěvek od Migel »

Ak sa ti to podarilo vyriesit, tak fajn. ale slubil som ze to sem dam...
Nasiel som to na nejakom fore a zapisal som si to takto, ale neulozil stranku :wall: no ale po skusani tie stavy sedia:

Vyznam pre modbus adresu 3201 - charger status regulator:
"0" - NORMAL
"1" - NOT CHARGE
"5" - FLOAT
"9" - BOOST
"35" - OVER VOLTAGE

Vyznam pre modbus adresa 3008 - charging mode regulator:
"0" - NORMAL
"1" - NOT CHARGING
"2" - UNDER VOLTAGE
"4" - FAULT
tak snad to bude niekomu na nieco :cheers:
S tym mojim yaml suborom to takto cita.Ano dalo by sa to dopisat tie stavy do toho yaml ale teda ja to konvertujem uz v nodered kde mi nacita cez mqtt to konkretne cislo a priradi mi k nemu stav.Lebo nemam HA ale iba nodered dashboard.
toto je kusok zo screenshotu webu esp32 kde je vidiet stavy v tych cislach..
toto je kusok zo screenshotu webu esp32 kde je vidiet stavy v tych cislach..
a toto uz je vidiet tu konverziu toho stavu v nodered (teraz aktualne :-) )
a toto uz je vidiet tu konverziu toho stavu v nodered (teraz aktualne :-) )

este mensi EDIT.
podotknem ze tieto stavy suhlasia len pri regulatoroch typu AN-serie nakolko dostupny modbus protokol pre epevery je pre typy LS-B serie.
JZ-2s5p 3,8kWp >> Epever 8415 AN
JV-2s3p 2,7kWp >> Epever 6415 AN
2x Victron MP2 5000V/A paralelne
3x GWL SUN-2000G paralelne

48V 760Ah/35kWh Li-ion
a stále v štádiu budovania :repair:(rozširovania)
Forrest
Příspěvky: 215
Registrován: pát zář 09, 2022 1:42 pm
Reputace:6
Lokalita: Ústeckoorlicko
Systémové napětí: 48V
Výkon panelů [Wp]: 2900
Kapacita baterie [kWh]: 6,4
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Č.T. Lhotka

Re: Epever -> modbus -> esp32

Nový příspěvek od Forrest »

Hele, k něčemu to určitě bude. Jsem zjistil, že mi to stejně nejde a že se statusy nemění, takže to budu muset ještě překopat...
Měnič China SAmoDoMo 1,5 kW a již 900Wp na rotátoru jménem "slunečnice"
Migel
Příspěvky: 1839
Registrován: ned zář 25, 2022 10:47 am
Reputace:327
Lokalita: Pod Karpatmi

Re: Epever -> modbus -> esp32

Nový příspěvek od Migel »

Migel píše: čtv kvě 08, 2025 6:40 pm
Takze, regulatory su spojene medzi sebou normalnym utp alebo ftp kablom bez ukoncovacich odporov (funguje to bez problemov) a z prveho regulatora som pouzil pin4 ,pin6 na konektore rj45 a zapojil do max485 na svorky A a B. Druha strana prevodnika piny Tx, Rx, Gnd a Vcc som napojil do esp a Vcc som napojil na 3,3V tiez z esp. Espcko je napajane 5V. Do esp som nahral tento subor epever.2.zip cez esphome.
Pre tych ako som ja :P som dal do toho suboru aj popis ako si co upravit popripade doplnit, podotykam ze mozno odstranit tie casti ktore nechcete nacitavat a mozete potom odstranit aj popis.Ja to vycitavam cez mqtt a ide to do cerba na ktorom je nodered.
uz som aj ja nad tym uvazoval ako do vrm dostat hodnoty s inych aplikaci respektive nahradit/oklamat vrm tym ze mu poviem ze to su udaje z victron regulatora a podobne..budem to skusat v nodered ale teda je to nadlhsie...
ako som uz vyssie spomenul nefunguje ovladanie load rele z nodered, teda cez mqtt.Funguje iba z weboveho rozhrania toho esp, treba asi dopisat do toho yaml ine prikazy na zopnutie.Ja to rele chcem vyuzivat na spinanie ventilatorov pre kazdy epever zvlast na zaklade jeho vnutornej teploty (ktora sa da tiez takto vycitat).
pre mna je to uz takto super ze konecne mozem tie regle takto medzi sebou odlisit a teda ked pribudnu dalsie tak len jednoducho sa do suboru dopise id dalsieho regulatora a samozrejme aj registre a je to.
ak by niekomu nestacilo co je v ttom mojom yaml tak kliknite na toto a su tam vsetky registre https://devices.esphome.io/devices/epev ... _tracer_an alebo aj odtialto som cerpal https://github.com/martgras/esphome/blo ... n-one.yaml
a teda nejaka ukazka z dashboardu pocas dnesneho prveho dna
Kedze som pridal treti epever do systemu, tak som ho musel dopisat aj do yamlu do esp32.Ten yaml, co som sem dal nebol uplne dokonaly, nakolko v nom bolo tretina registrov ktore boli zbytocne pre udaje z regulatorov a zbytocne zahlcovali modbus a tym padom chod a stabilitu komunikacie a odosielania dat do nodered, ktore boli nepravidelne (ale chodilo to :P )
Takze som upravil par veci a pridal pre niektore senzory skip_updates aby sa necitali tak casto a tym padom odlahcili requesty.
takisto som pridal aj update_imterval aby sa senzory ktore sa maju aktualizovat a posielat pravidelne posielali co v najkratsom case a boli aktualnejsie, napriklad vykon, napetie a prud z panelov teraz chodia pravidelne a predvidatelne kazde 2sekundy :D

Kód: Vybrat vše

modbus:
  send_wait_time: 180ms  #<<<<<<<<<upraveny wait time na 180ms
  id: mod_bus_epever

modbus_controller:
  - id: epever # epever 8415AN
    address: 0x1 
    modbus_id: mod_bus_epever
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 2s  #<<<<<<<<<<<pridany_update interval ale iba sem ku kazdemu regulatoru

  - id: epever2 # epever 6415AN
    address: 0x2 
    modbus_id: mod_bus_epever
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 2s

  - id: epever3 # epever 10020AN
    address: 0x3 
    modbus_id: mod_bus_epever
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 2s

Kód: Vybrat vše

  - platform: modbus_controller
    modbus_controller_id: epever2 
    id: charging_mode_regulator2
    name: "Charging Mode Regulator 2"
    address: 0x3008
    unit_of_measurement: ""
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30  #<<<<<<<<<<<tento skip_updates pribudol iba pri registroch ktore netreba citat kazde dve sekundy, ale bude sa citat kazdu minutu a pri ostatnych mozete dat aj iny cas citania napriklad pri aktualizaci casu mozete dat 2 minutry
Pri registroch kde nieje napisany ten skip_updates, tak sa citaju kazde dve sekundy tak ako je to nastavene vyssie pri tych epeveroch.Mozte si tam dat aj 5s to uz je na vas...

Tunak je teraz aktualizovany cely yaml pre tri regulatory ktore pouzivam:

Kód: Vybrat vše

esphome:
  name: epever

esp32:
  board: esp32dev

time:
  - platform: sntp
    id: sntp_time
    servers: "pool.ntp.org"

wifi:
  ssid: "nazov_tvojej_siete" 
  password: "heslo_siete"  

mqtt:
  broker: "IP_adresa_brokera"  
  topic_prefix: epever 
  on_message:
    - topic: epever/regulator1/manual_control_load/set
      then:
        - if:
            condition:
              lambda: 'return x == "ON";'
            then:
              - switch.turn_on: manual_control_load_regulator1
            else:
              - switch.turn_off: manual_control_load_regulator1

    - topic: epever/regulator2/manual_control_load/set
      then:
        - if:
            condition:
              lambda: 'return x == "ON";'
            then:
              - switch.turn_on: manual_control_load_regulator2
            else:
              - switch.turn_off: manual_control_load_regulator2
              
    - topic: epever/regulator3/manual_control_load/set
      then:
        - if:
            condition:
              lambda: 'return x == "ON";'
            then:
              - switch.turn_on: manual_control_load_regulator3
            else:
              - switch.turn_off: manual_control_load_regulator3          

logger:
ota:
  platform: esphome

uart:
  id: mod_bus
  tx_pin: GPIO26  
  rx_pin: GPIO27  
  baud_rate: 115200
  stop_bits: 1

modbus:
  send_wait_time: 180ms
  id: mod_bus_epever

modbus_controller:
  - id: epever # epever 8415AN
    address: 0x1 
    modbus_id: mod_bus_epever
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 2s

  - id: epever2 # epever 6415AN
    address: 0x2 
    modbus_id: mod_bus_epever
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 2s

  - id: epever3 # epever 10020AN
    address: 0x3 
    modbus_id: mod_bus_epever
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 2s

sensor:
  - platform: template
    accuracy_decimals: 0
    name: "Generated Charge today Regulator 1" 
    id: generated_charge_today_regulator1
    unit_of_measurement: "Ah"

  - platform: template
    accuracy_decimals: 0
    name: "Generated Charge today Regulator 2" 
    id: generated_charge_today_regulator2
    unit_of_measurement: "Ah"
    
  - platform: template
    accuracy_decimals: 0
    name: "Generated Charge today Regulator 3" 
    id: generated_charge_today_regulator3
    unit_of_measurement: "Ah"

  - platform: modbus_controller
    modbus_controller_id: epever
    id: charging_mode_regulator1
    name: "Charging Mode Regulator 1"
    address: 0x3008
    unit_of_measurement: ""
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever2 
    id: charging_mode_regulator2
    name: "Charging Mode Regulator 2"
    address: 0x3008
    unit_of_measurement: ""
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever3 
    id: charging_mode_regulator3
    name: "Charging Mode Regulator 3"
    address: 0x3008
    unit_of_measurement: ""
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: pv_input_voltage_regulator1
    name: "PV array input voltage Regulator 1"
    address: 0x3100
    unit_of_measurement: "V"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever2
    id: pv_input_voltage_regulator2
    name: "PV array input voltage Regulator 2"
    address: 0x3100
    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: pv_input_voltage_regulator3
    name: "PV array input voltage Regulator 3"
    address: 0x3100
    unit_of_measurement: "V"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1    
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever
    id: pv_input_current_regulator1
    name: "PV array input current Regulator 1"
    address: 0x3101
    unit_of_measurement: "A"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 2    
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever2
    id: pv_input_current_regulator2
    name: "PV array input current Regulator 2"
    address: 0x3101
    unit_of_measurement: "A"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 2    
    filters:
      - multiply: 0.01    #<<<<<<<<<<napriklad tento senzor sa cita kazde dve sekundy a nema ten skip_updates

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: pv_input_current_regulator3
    name: "PV array input current Regulator 3"
    address: 0x3101
    unit_of_measurement: "A"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 2    
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever
    id: pv_input_power_regulator1
    name: "PV array input power Regulator 1"
    address: 0x3102
    unit_of_measurement: "W"
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    device_class: "power"
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever2
    id: pv_input_power_regulator2
    name: "PV array input power Regulator 2"
    address: 0x3102
    unit_of_measurement: "W"
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    device_class: "power"
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: pv_input_power_regulator3
    name: "PV array input power Regulator 3"
    address: 0x3102
    unit_of_measurement: "W"
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1   
    device_class: "power"
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever
    id: charging_voltage_regulator1
    name: "Charging voltage Regulator 1"
    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: epever2
    id: charging_voltage_regulator2
    name: "Charging voltage Regulator 2"
    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_voltage_regulator3
    name: "Charging voltage Regulator 3"
    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: epever
    id: charging_current_regulator1
    name: "Charging current Regulator 1"
    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: epever2
    id: charging_current_regulator2
    name: "Charging current Regulator 2"
    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_current_regulator3
    name: "Charging current Regulator 3"
    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: epever
    id: charging_power_regulator1
    name: "Charging power Regulator 1"
    address: 0x3106
    unit_of_measurement: "W"
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    device_class: "power"
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: epever2
    id: charging_power_regulator2
    name: "Charging power Regulator 2"
    address: 0x3106
    unit_of_measurement: "W"
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    device_class: "power"
    filters:
      - multiply: 0.01

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

  - platform: modbus_controller
    modbus_controller_id: epever
    id: device_temperature_regulator1
    name: "Device temperature Regulator 1"
    address: 0x3111
    unit_of_measurement: °C
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1   
    filters:
      - multiply: 0.01
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: device_temperature_regulator2
    name: "Device temperature Regulator 2"
    address: 0x3111
    unit_of_measurement: °C
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1    
    filters:
      - multiply: 0.01
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: device_temperature_regulator3
    name: "Device temperature Regulator 3"
    address: 0x3111
    unit_of_measurement: °C
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1   
    filters:
      - multiply: 0.01
    skip_updates: 30

  - platform: modbus_controller
    modbus_controller_id: epever
    id: battery_soc_regulator1
    name: "Battery SOC Regulator 1"
    address: 0x311A
    unit_of_measurement: "%"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: battery_soc_regulator2
    name: "Battery SOC Regulator 2"
    address: 0x311A
    unit_of_measurement: "%"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: battery_soc_regulator3
    name: "Battery SOC Regulator 3"
    address: 0x311A
    unit_of_measurement: "%"
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: charger_status_regulator1
    name: "Charger status Regulator 1"
    address: 0x3201
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: charger_status_regulator2
    name: "Charger status Regulator 2"
    address: 0x3201
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: charger_status_regulator3
    name: "Charger status Regulator 3"
    address: 0x3201
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 0
    skip_updates: 30
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: max_pv_voltage_today_regulator1
    name: "Maximum PV voltage today Regulator 1"
    address: 0x3300
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1    
    unit_of_measurement: "V"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: max_pv_voltage_today_regulator2
    name: "Maximum PV voltage today Regulator 2"
    address: 0x3300
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1
    unit_of_measurement: "V"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: max_pv_voltage_today_regulator3
    name: "Maximum PV voltage today Regulator 3"
    address: 0x3300
    register_type: read
    value_type: U_WORD
    accuracy_decimals: 1    
    unit_of_measurement: "V"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: generated_energy_today_regulator1
    name: "Generated energy today Regulator 1"
    address: 0x330C
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 0    
    unit_of_measurement: "Wh"
    on_value:
      then:
        - sensor.template.publish:
            id: generated_charge_today_regulator1
            state: !lambda "return x/12.0;"
    device_class: "energy"
    filters:
      - multiply: 10.0
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: generated_energy_today_regulator2
    name: "Generated energy today Regulator 2"
    address: 0x330C
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 0    
    unit_of_measurement: "Wh"
    on_value:
      then:
        - sensor.template.publish:
            id: generated_charge_today_regulator2
            state: !lambda "return x/12.0;"
    device_class: "energy"
    filters:
      - multiply: 10.0
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: generated_energy_today_regulator3
    name: "Generated energy today Regulator 3"
    address: 0x330C
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 0    
    unit_of_measurement: "Wh"
    on_value:
      then:
        - sensor.template.publish:
            id: generated_charge_today_regulator3
            state: !lambda "return x/12.0;"
    device_class: "energy"
    filters:
      - multiply: 10.0
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: generated_energy_month_regulator1
    name: "Generated energy month Regulator 1"
    address: 0x330E
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 0    
    unit_of_measurement: "Wh"
    device_class: "energy"
    filters:
      - multiply: 10.0
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: generated_energy_month_regulator2
    name: "Generated energy month Regulator 2"
    address: 0x330E
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 0    
    unit_of_measurement: "Wh"
    device_class: "energy"
    filters:
      - multiply: 10.0
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: generated_energy_month_regulator3
    name: "Generated energy month Regulator 3"
    address: 0x330E
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 0    
    unit_of_measurement: "Wh"
    device_class: "energy"
    filters:
      - multiply: 10.0
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: generated_energy_year_regulator1
    name: "Generated energy year Regulator 1"
    address: 0x3310
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    unit_of_measurement: "kWh"
    device_class: "energy"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: generated_energy_year_regulator2
    name: "Generated energy year Regulator 2"
    address: 0x3310
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1   
    unit_of_measurement: "kWh"
    device_class: "energy"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: generated_energy_year_regulator3
    name: "Generated energy year Regulator 3"
    address: 0x3310
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1   
    unit_of_measurement: "kWh"
    device_class: "energy"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: generated_energy_total_regulator1
    name: "Generated energy total Regulator 1"
    address: 0x3312
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    unit_of_measurement: "kWh"
    device_class: "energy"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever2
    id: generated_energy_total_regulator2
    name: "Generated energy total Regulator 2"
    address: 0x3312
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    unit_of_measurement: "kWh"
    device_class: "energy"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever3
    id: generated_energy_total_regulator3
    name: "Generated energy total Regulator 3"
    address: 0x3312
    register_type: read
    value_type: U_DWORD_R
    accuracy_decimals: 1    
    unit_of_measurement: "kWh"
    device_class: "energy"
    filters:
      - multiply: 0.01
    skip_updates: 40
    
  - platform: modbus_controller
    modbus_controller_id: epever
    id: load_controlling_modes_regulator1
    name: "Load controlling modes Regulator 1"
    address: 0x903D
    register_type: holding
    accuracy_decimals: 0   
    value_type: U_WORD
    skip_updates: 50

  - platform: modbus_controller
    modbus_controller_id: epever2
    id: load_controlling_modes_regulator2
    name: "Load controlling modes Regulator 2"
    address: 0x903D
    register_type: holding
    accuracy_decimals: 0    
    value_type: U_WORD
    skip_updates: 50

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: load_controlling_modes_regulator3
    name: "Load controlling modes Regulator 3"
    address: 0x903D
    register_type: holding
    accuracy_decimals: 0   
    value_type: U_WORD
    skip_updates: 50

binary_sensor:
  - platform: modbus_controller
    modbus_controller_id: epever
    id: charging_input_volt_failure_regulator1
    name: "Charging Input Volt Failure Regulator 1"
    register_type: read
    address: 0x3201
    bitmask: 0xC000
    skip_updates: 20
    
  - platform: modbus_controller
    modbus_controller_id: epever2 
    id: charging_input_volt_failure_regulator2
    name: "Charging Input Volt Failure Regulator 2"
    register_type: read
    address: 0x3201
    bitmask: 0xC000
    skip_updates: 20
    
  - platform: modbus_controller
    modbus_controller_id: epever3 
    id: charging_input_volt_failure_regulator3
    name: "Charging Input Volt Failure Regulator 3"
    register_type: read
    address: 0x3201
    bitmask: 0xC000
    skip_updates: 20
    
switch:
  - platform: modbus_controller
    modbus_controller_id: epever
    id: manual_control_load_regulator1
    register_type: coil
    address: 2
    name: "manual control the load Regulator 1"
    bitmask: 1
    on_turn_on:
      - mqtt.publish:
          topic: "epever/regulator1/manual_control_load"
          payload: "ON"
    on_turn_off:
      - mqtt.publish:
          topic: "epever/regulator1/manual_control_load" 
          payload: "OFF"

  - platform: modbus_controller
    modbus_controller_id: epever2 
    id: manual_control_load_regulator2
    register_type: coil
    address: 2
    name: "manual control the load Regulator 2"
    bitmask: 1
    on_turn_on:
      - mqtt.publish:
          topic: "epever/regulator2/manual_control_load" 
          payload: "ON"
    on_turn_off:
      - mqtt.publish:
          topic: "epever/regulator2/manual_control_load"
          payload: "OFF"

  - platform: modbus_controller
    modbus_controller_id: epever3
    id: manual_control_load_regulator3
    register_type: coil
    address: 2
    name: "manual control the load Regulator 3"
    bitmask: 1
    on_turn_on:
      - mqtt.publish:
          topic: "epever/regulator3/manual_control_load" 
          payload: "ON"
    on_turn_off:
      - mqtt.publish:
          topic: "epever/regulator3/manual_control_load"
          payload: "OFF"
    
text_sensor:
  - platform: modbus_controller
    modbus_controller_id: epever
    name: "rtc_clock_regulator1"
    id: rtc_clock_regulator1
    internal: true
    register_type: holding
    address: 0x9013
    register_count: 3
    skip_updates: 60
    raw_encode: HEXBYTES
    response_size: 6
    on_value:
      then:
        - lambda: |-
            ESP_LOGV("main", "decoding rtc hex encoded raw data (Regulator 1): %s", x.c_str());
            uint8_t h=0,m=0,s=0,d=0,month_=0,y = 0 ;
            m = esphome::modbus_controller::byte_from_hex_str(x,0);
            s = esphome::modbus_controller::byte_from_hex_str(x,1);
            d = esphome::modbus_controller::byte_from_hex_str(x,2);
            h = esphome::modbus_controller::byte_from_hex_str(x,3);
            y = esphome::modbus_controller::byte_from_hex_str(x,4);
            month_ = esphome::modbus_controller::byte_from_hex_str(x,5);
            // Now check if the rtc time of the controller is ok and correct it
            time_t now = ::time(nullptr);
            struct tm *time_info = ::localtime(&now);
            int seconds = time_info->tm_sec;
            int minutes = time_info->tm_min;
            int hour = time_info->tm_hour;
            int day = time_info->tm_mday;
            int month = time_info->tm_mon + 1;
            int year = time_info->tm_year % 100;
            // correct time if needed (ignore seconds)
            if (d != day || month_ != month || y != year || h != hour || m != minutes) {
              // create the payload
              std::vector<uint16_t> rtc_data = {uint16_t((minutes << 8) | seconds), uint16_t((day << 8) | hour),
                                                uint16_t((year << 8) | month)};
              // Create a modbus command item with the time information as the payload
              esphome::modbus_controller::ModbusCommandItem set_rtc_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(epever, 0x9013, 3, rtc_data);
              // Submit the command to the send queue
              epever->queue_command(set_rtc_command);
              ESP_LOGI("ModbusLambda", "EPSOLAR RTC Regulator 1 set to %02d:%02d:%02d %02d.%02d.%04d", hour, minutes, seconds, day, month, year + 2000);
            }
            char buffer[20];
            // format time as YYYY-mm-dd hh:mm:ss
            sprintf(buffer,"%04d-%02d-%02d %02d:%02d:%02d",y+2000,month_,d,h,m,s);
            id(template_rtc_regulator1).publish_state(buffer); 
  - platform: template
    name: "RTC Time Sensor Regulator 1" 
    id: template_rtc_regulator1 

  - platform: modbus_controller
    modbus_controller_id: epever2 
    name: "rtc_clock_regulator2"
    id: rtc_clock_regulator2
    internal: true
    register_type: holding
    address: 0x9013
    register_count: 3
    raw_encode: HEXBYTES
    response_size: 6
    skip_updates: 60
    on_value:
      then:
        - lambda: |-
            ESP_LOGV("main", "decoding rtc hex encoded raw data (Regulator 2): %s", x.c_str());
            uint8_t h=0,m=0,s=0,d=0,month_=0,y = 0 ;
            m = esphome::modbus_controller::byte_from_hex_str(x,0);
            s = esphome::modbus_controller::byte_from_hex_str(x,1);
            d = esphome::modbus_controller::byte_from_hex_str(x,2);
            h = esphome::modbus_controller::byte_from_hex_str(x,3);
            y = esphome::modbus_controller::byte_from_hex_str(x,4);
            month_ = esphome::modbus_controller::byte_from_hex_str(x,5);
            // Now check if the rtc time of the controller is ok and correct it
            time_t now = ::time(nullptr);
            struct tm *time_info = ::localtime(&now);
            int seconds = time_info->tm_sec;
            int minutes = time_info->tm_min;
            int hour = time_info->tm_hour;
            int day = time_info->tm_mday;
            int month = time_info->tm_mon + 1;
            int year = time_info->tm_year % 100;
            // correct time if needed (ignore seconds)
            if (d != day || month_ != month || y != year || h != hour || m != minutes) {
              // create the payload
              std::vector<uint16_t> rtc_data = {uint16_t((minutes << 8) | seconds), uint16_t((day << 8) | hour),
                                                uint16_t((year << 8) | month)};
              // Create a modbus command item with the time information as the payload
              esphome::modbus_controller::ModbusCommandItem set_rtc_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(epever2, 0x9013, 3, rtc_data);
              // Submit the command to the send queue
              epever2->queue_command(set_rtc_command);
              ESP_LOGI("ModbusLambda", "EPSOLAR RTC Regulator 2 set to %02d:%02d:%02d %02d.%02d.%04d", hour, minutes, seconds, day, month, year + 2000);
            }
            char buffer[20];
            // format time as YYYY-mm-dd hh:mm:ss
            sprintf(buffer,"%04d-%02d-%02d %02d:%02d:%02d",y+2000,month_,d,h,m,s);
            id(template_rtc_regulator2).publish_state(buffer); 

  - platform: template
    name: "RTC Time Sensor Regulator 2" 
    id: template_rtc_regulator2 

  - platform: modbus_controller
    modbus_controller_id: epever3 
    name: "rtc_clock_regulator3"
    id: rtc_clock_regulator3
    internal: true
    register_type: holding
    address: 0x9013
    register_count: 3
    raw_encode: HEXBYTES
    response_size: 6
    skip_updates: 60
    on_value:
      then:
        - lambda: |-
            ESP_LOGV("main", "decoding rtc hex encoded raw data (Regulator 3): %s", x.c_str());
            uint8_t h=0,m=0,s=0,d=0,month_=0,y = 0 ;
            m = esphome::modbus_controller::byte_from_hex_str(x,0);
            s = esphome::modbus_controller::byte_from_hex_str(x,1);
            d = esphome::modbus_controller::byte_from_hex_str(x,2);
            h = esphome::modbus_controller::byte_from_hex_str(x,3);
            y = esphome::modbus_controller::byte_from_hex_str(x,4);
            month_ = esphome::modbus_controller::byte_from_hex_str(x,5);
            // Now check if the rtc time of the controller is ok and correct it
            time_t now = ::time(nullptr);
            struct tm *time_info = ::localtime(&now);
            int seconds = time_info->tm_sec;
            int minutes = time_info->tm_min;
            int hour = time_info->tm_hour;
            int day = time_info->tm_mday;
            int month = time_info->tm_mon + 1;
            int year = time_info->tm_year % 100;
            // correct time if needed (ignore seconds)
            if (d != day || month_ != month || y != year || h != hour || m != minutes) {
              // create the payload
              std::vector<uint16_t> rtc_data = {uint16_t((minutes << 8) | seconds), uint16_t((day << 8) | hour),
                                                uint16_t((year << 8) | month)};
              // Create a modbus command item with the time information as the payload
              esphome::modbus_controller::ModbusCommandItem set_rtc_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(epever3, 0x9013, 3, rtc_data);
              // Submit the command to the send queue
              epever3->queue_command(set_rtc_command);
              ESP_LOGI("ModbusLambda", "EPSOLAR RTC Regulator 2 set to %02d:%02d:%02d %02d.%02d.%04d", hour, minutes, seconds, day, month, year + 2000);
            }
            char buffer[20];
            // format time as YYYY-mm-dd hh:mm:ss
            sprintf(buffer,"%04d-%02d-%02d %02d:%02d:%02d",y+2000,month_,d,h,m,s);
            id(template_rtc_regulator3).publish_state(buffer); 

  - platform: template
    name: "RTC Time Sensor Regulator 3" 
    id: template_rtc_regulator3

web_server:
  port: 80
Ano do teraz to nejako fungovalo.. Ale prisiel cas na upravu a teraz to funguje na sto percent. :celebrate3:
Teraz sa udaje posielaju okamzite a hlavne pravidelne a v logoch su uz neni ziadne upozornenia a komunikacia sa nezasekava.
Povodny yaml mal 934 riadkov kodu pre dva regulatory a po tychto upravach ma pre tri regulatory 946 riadkov :lol:
Mozem povedat ze je to riadny rozdiel v stabilite a vycitavani.Dokonca aj web esp sa nacit ihned.Ale tak ten je tam len pre pripadne ladenie inak je vypnuty.
cipis

Todle by mělo být mqtt - regulátor:
https://github.com/mr-manuel/venus-os_d ... ar-charger

Tak kdyby se to nakombinovalo?
Dříve jsem našel řadu projektů, které ty epevery (buď pouze jeden nebo možná u některého projektu více) dostaly do mqtt. Akorát to prostě narvaly v kdo ví čem, jen ne v tom formátu, co Victron předpokládá pro regulátor, tj. tady to od toho manuela to nevzalo.
Na Victron fóru, tom starém, bylo také něco, více méně stejný princip. Nějaké udělátko vyčetlo Epever a poslalo na mqtt server. Řešení v jednom kroku kdosi zkoušel, pro jeden regulátor, a nebylo to spolehlivé atd.

Tedy asi cesta zkonvertovat epevery přes "krabičku" a až pak řešit na cílovém VRM, bude ta správná.
Toto by som chcel urobit a uz dlho o tom hovorim ale mal som najskor tento problem, ze to udaje posielalo do nodered nepravidelne a cerbo potrebuje niekolko udajov naraz a pravidelne aby to zobralo ako victron regulator.No treba do cerba najskor cez SSH nahrat ten subor co si daval odkaz na github (myslim ze to bolo od Manuela) a az potom v nodered prekonvertovat prijate spravy z mqtt na dbus a posielat to cerbu akoby to bol pripojeny victron regulator.Takto by to malo ist spravit.Ale teda, uz az cez zimu :lol:
A nakolko mam origo cerbo, tak sa mi do toho moc nechce keby sa nieco 💩 tak aby som si nezablokoval cerbo :lol:
Moje pokusy su nevyspytatelne :comp::hell::lol:
JZ-2s5p 3,8kWp >> Epever 8415 AN
JV-2s3p 2,7kWp >> Epever 6415 AN
2x Victron MP2 5000V/A paralelne
3x GWL SUN-2000G paralelne

48V 760Ah/35kWh Li-ion
a stále v štádiu budovania :repair:(rozširovania)

Kdo je online

Uživatelé procházející toto fórum: Claudebot [Bot]