esphome:
name: onduleur
on_boot:
then:
- switch.turn_on: commande_marche_arret
esp32:
board: esp32dev
framework:
type: arduino
ota:
password: "........"
substitutions:
devicename: onduleur
friendly_name: Onduleur
wifi:
ssid: "....."
password: ".........."
ap:
ssid: "Onduleur Fallback Hotspot"
password: "BsUY3yORyjG7"
captive_portal:
api:
#password: ""
web_server:
port: 80
logger:
level: INFO
baud_rate: 0
time:
- platform: sntp
id: sntp_time
timezone: "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00" #https://sites.google.com/a/usapiens.com/opnode/time-zones
servers: "de.pool.ntp.org"
globals:
- id: index_mode_fonctionnement
type: int
restore_value: true
initial_value: '0'
- id: index_controle_mode_timing
type: int
restore_value: true
initial_value: '0'
uart:
id: mod_bus
tx_pin: GPIO16
rx_pin: GPIO17
baud_rate: 9600
stop_bits: 1
modbus:
id: mod_bus_sofar
send_wait_time: 200ms
modbus_controller:
- id: sofarsolar
address: 0x01
modbus_id: mod_bus_sofar
#command_throttle: 200ms
#setup_priority: -10
update_interval: 1s
text_sensor:
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Etat
id: etat
register_type: holding
address: 0x0404
response_size: 2
lambda: |-
auto z = "Unknown";
char d = data[item->offset+1];
if (d == 0) z = "Waiting";
else if (d == 1) z = "Checking";
else if (d == 2) z = "On-Grid";
else if (d == 3) z = "Emergency Mode";
else if (d == 4) z = "Recoverable Fault";
else if (d == 5) z = "Permanent Fault";
else if (d == 6) z = "Upgarding";
else if (d == 7) z = "Self-charging";
return {z};
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Défaut
id: defaut
register_type: holding
address: 0x0405
response_size: 10
lambda: |-
std::string z = "";
int idx = item->offset;
//if ((id(defaut).state) == "") z = "Aucun,";
//Fault 1 Byte 1
if ((data[idx] & 0x1) != 0) z += "GridOVPInstant1,";
if ((data[idx] & 0x2) != 0) z += "GridOVPInstant2,";
if ((data[idx] & 0x4) != 0) z += "VGridLineFault,";
if ((data[idx] & 0x8) != 0) z += "InvOVP,";
if ((data[idx] & 0x16) != 0) z += "ID013,";
if ((data[idx] & 0x32) != 0) z += "ID014,";
if ((data[idx] & 0x64) != 0) z += "ID015,";
if ((data[idx] & 0x128) != 0) z += "ID016,";
//Fault 1 Byte 0
idx++;
if ((data[idx] & 0x1) != 0) z += "GridOVP,";
if ((data[idx] & 0x2) != 0) z += "GridUVP,";
if ((data[idx] & 0x4) != 0) z += "GridOFP,";
if ((data[idx] & 0x8) != 0) z += "GridUFP,";
if ((data[idx] & 0x16) != 0) z += "GFCI,"; //10 remplace par 16
if ((data[idx] & 0x32) != 0) z += "OVRT,"; //20 remplace par 32
if ((data[idx] & 0x64) != 0) z += "LVRT,"; //40 remplace par 64
if ((data[idx] & 0x128) != 0) z += "IslandFault,"; //80 remplace par 128
//Fault 2 Byte 1
idx++;
if ((data[idx] & 0x1) != 0) z += "HwADFaultDCI(DC),";
if ((data[idx] & 0x2) != 0) z += "HwADFaultIdcBranch,";
if ((data[idx] & 0x4) != 0) z += "ID027,";
if ((data[idx] & 0x8) != 0) z += "ID028,";
if ((data[idx] & 0x16) != 0) z += "ConsistentFault_GFCI,";
if ((data[idx] & 0x32) != 0) z += "ConsistentFault_Vgrid,";
if ((data[idx] & 0x64) != 0) z += "ConsistentFault_DCI,";
if ((data[idx] & 0x128) != 0) z += "ID032,";
//Fault 2 Byte 0
idx++;
if ((data[idx] & 0x1) != 0) z += "HwADFaultIGrid,";
if ((data[idx] & 0x2) != 0) z += "HwADFaultDCI,";
if ((data[idx] & 0x4) != 0) z += "HwADFaultVGrid_DC,";
if ((data[idx] & 0x8) != 0) z += "HwADFaultVGrid_AC,";
if ((data[idx] & 0x16) != 0) z += "GFCIDeviceFault_DC,";
if ((data[idx] & 0x32) != 0) z += "GFCIDeviceFault_AC,";
if ((data[idx] & 0x64) != 0) z += "HwADFaultDCV,";
if ((data[idx] & 0x128) != 0) z += "HwADFaultdc,";
//Fault 3 Byte 1
idx++;
if ((data[idx] & 0x1) != 0) z += "RelayFail,";
if ((data[idx] & 0x2) != 0) z += "IsoFault,";
if ((data[idx] & 0x4) != 0) z += "PEConnectFault,";
if ((data[idx] & 0x8) != 0) z += "PvConfigError,";
if ((data[idx] & 0x16) != 0) z += "CTDisconnect,";
if ((data[idx] & 0x32) != 0) z += "ReversalConnection,";
if ((data[idx] & 0x64) != 0) z += "ParallelFault,";
if ((data[idx] & 0x128) != 0) z += "SNTypeFault,";
//Fault 3 Byte 0
idx++;
if ((data[idx] & 0x1) != 0) z += "SpiCommFault(DC),";
if ((data[idx] & 0x2) != 0) z += "SpiCommFault(AC),";
if ((data[idx] & 0x4) != 0) z += "SChip_Fault,";
if ((data[idx] & 0x8) != 0) z += "MChip_Fault,";
if ((data[idx] & 0x16) != 0) z += "HwAuxPowerFault,";
if ((data[idx] & 0x32) != 0) z += "InverterSoftStartFail,";
if ((data[idx] & 0x64) != 0) z += "ID039,";
if ((data[idx] & 0x128) != 0) z += "ID040,";
//Fault 4 Byte 1
idx++;
if ((data[idx] & 0x1) != 0) z += "TempFault_Env1,";
if ((data[idx] & 0x2) != 0) z += "TempFault_Env2,";
if ((data[idx] & 0x4) != 0) z += "TempFault_Inv1,";
if ((data[idx] & 0x8) != 0) z += "TempFault_Inv2,";
if ((data[idx] & 0x16) != 0) z += "TempFault_Inv3,";
if ((data[idx] & 0x32) != 0) z += "ID062,";
if ((data[idx] & 0x64) != 0) z += "ID063,";
if ((data[idx] & 0x128) != 0) z += "ID064,";
//Fault 4 Byte 0
idx++;
if ((data[idx] & 0x1) != 0) z += "TempFault_Bat,";
if ((data[idx] & 0x2) != 0) z += "TempFault_HeatSink1,";
if ((data[idx] & 0x4) != 0) z += "TempFault_HeatSink2,";
if ((data[idx] & 0x8) != 0) z += "TempFault_HeatSink3,";
if ((data[idx] & 0x16) != 0) z += "TempFault_HeatSink4,";
if ((data[idx] & 0x32) != 0) z += "TempFault_HeatSink5,";
if ((data[idx] & 0x64) != 0) z += "TempFault_HeatSink6,";
if ((data[idx] & 0x128) != 0) z += "ID056,";
//Fault 5 Byte 1
idx++;
if ((data[idx] & 0x1) != 0) z += "SwBusInstantOVP,";
if ((data[idx] & 0x2) != 0) z += "FlyingCapOVP,";
if ((data[idx] & 0x4) != 0) z += "ID075,";
if ((data[idx] & 0x8) != 0) z += "ID076,";
if ((data[idx] & 0x16) != 0) z += "ID077,";
if ((data[idx] & 0x32) != 0) z += "ID078,";
if ((data[idx] & 0x64) != 0) z += "ID079,";
if ((data[idx] & 0x128) != 0) z += "ID080,";
//Fault 5 Byte 0
idx++;
if ((data[idx] & 0x1) != 0) z += "VbusRmsUnbalance,";
if ((data[idx] & 0x2) != 0) z += "VbusInstantUnbalance,";
if ((data[idx] & 0x4) != 0) z += "BusUVP,";
if ((data[idx] & 0x8) != 0) z += "BusZVP,";
if ((data[idx] & 0x16) != 0) z += "PVOVP,";
if ((data[idx] & 0x32) != 0) z += "BatOVP,";
if ((data[idx] & 0x64) != 0) z += "LLCBusOVP,";
if ((data[idx] & 0x128) != 0) z += "SwBusRmsOVP,";
if(z.length() > 0){
z.pop_back();
}
else {z = "Aucun ";}
return {z};
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Lecture Mode Fonctionnement
id: lecture_mode_stockage_energie
register_type: holding
address: 0x1110
response_size: 2
lambda: |-
auto z = "Unknown";
char d = data[item->offset+1];
if (d == 0) z = "Auto Utilisation";
else if (d == 1) z = "Temps d'Utilisation";
else if (d == 2) z = "Timing";
else if (d == 3) z = "Passif";
return {z};
- platform: wifi_info
ip_address:
name: ${friendly_name} IP
ssid:
name: ${friendly_name} SSID
mac_address:
name: ${friendly_name} Adresse Mac
sensor:
- platform: wifi_signal
id: signal_wifi
name: ${friendly_name} Signal Wifi
update_interval: 60s
- platform: uptime
id: inverter_uptime
name: ${friendly_name} Uptime
filters:
- lambda: return x / 60.0;
unit_of_measurement: minutes
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Tension Entrée DC1
id: tension_entree_dc1
register_type: holding
address: 0x0584
unit_of_measurement: "V"
device_class: "voltage"
icon: "mdi:alpha-v-circle-outline"
value_type: U_WORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Intensité Entrée DC1
id: intensite_entree_dc1
register_type: holding
address: 0x0585
unit_of_measurement: "A"
device_class: "current"
icon: "mdi:alpha-a-circle-outline"
value_type: U_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Tension Entrée DC2
id: tension_entree_dc2
register_type: holding
address: 0x0587
unit_of_measurement: "V"
device_class: "voltage"
icon: "mdi:alpha-v-circle-outline"
value_type: U_WORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Intensité Entrée DC2
id: intensite_entree_dc2
register_type: holding
address: 0x0588
unit_of_measurement: "A"
device_class: "current"
icon: "mdi:alpha-a-circle-outline"
value_type: U_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Puissance Entrée DC1
id: puissance_entree_dc1
register_type: holding
address: 0x0586
unit_of_measurement: "W"
device_class: "power"
value_type: U_WORD
filters:
- median:
window_size: 3
send_every: 2
- multiply: 10
- platform: total_daily_energy
name: ${friendly_name} Production Jour Entrée DC1
power_id: puissance_entree_dc1
unit_of_measurement: "kWh"
method: trapezoid
device_class: "energy"
accuracy_decimals: 2
filters:
- multiply: 0.001
#0.00100993782887751608127865850995
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Puissance Entrée DC2
id: puissance_entree_dc2
register_type: holding
address: 0x0589
unit_of_measurement: "W"
device_class: "power"
value_type: U_WORD
filters:
- median:
window_size: 3
send_every: 2
- multiply: 10
- platform: total_daily_energy
name: ${friendly_name} Production Jour Entrée DC2
power_id: puissance_entree_dc2
unit_of_measurement: "kWh"
method: trapezoid
device_class: "energy"
accuracy_decimals: 2
filters:
- multiply: 0.001
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Production Totale Entrées DC
id: production_totale_entrees_dc
register_type: holding
address: 0x05C4
unit_of_measurement: "kW"
device_class: "power"
icon: "mdi:solar-power"
value_type: U_WORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Production Instantanée
id: production_instantanee
register_type: holding
address: 0x0485
unit_of_measurement: "kW"
device_class: "power"
icon: "mdi:solar-power"
value_type: S_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Fréquence Réseau
id: frequence_reseau
register_type: holding
address: 0x0484
unit_of_measurement: "Hz"
device_class: "frequency"
icon: "mdi:current-ac"
value_type: U_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Consommation Instantanée Réseau
id: consommation_instantanee_reseau
register_type: holding
address: 0x0488
unit_of_measurement: "kW"
device_class: "power"
icon: mdi:flash
value_type: S_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: -0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Consommation Instantanée Maison
id: consommation_instantanee_maison
register_type: holding
address: 0x04AF
unit_of_measurement: "kW"
device_class: "power"
icon: mdi:home-lightning-bolt-outline
value_type: U_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Tension AC
id: tension_ac
register_type: holding
address: 0x048D
unit_of_measurement: "V"
device_class: "voltage"
icon: "mdi:alpha-v-circle-outline"
value_type: U_WORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Intensité AC
id: intensite_ac
register_type: holding
address: 0x048E
unit_of_measurement: "A"
device_class: "current"
icon: "mdi:alpha-a-circle-outline"
value_type: U_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Production Totale
id: production_totale
register_type: holding
address: 0x0686
unit_of_measurement: "kWh"
device_class: "energy"
icon: "mdi:solar-power"
value_type: U_DWORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Production Jour
id: production_jour
register_type: holding
address: 0x0684
unit_of_measurement: "kWh"
device_class: "energy"
icon: "mdi:solar-power"
value_type: U_DWORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Consommation Maison Totale
id: consommation_maison_totale
register_type: holding
address: 0x068A
unit_of_measurement: "kWh"
device_class: "energy"
icon: mdi:home-lightning-bolt-outline
value_type: U_DWORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Consommation Maison Jour
id: consommation_maison_jour
register_type: holding
address: 0x0688
unit_of_measurement: "kWh"
device_class: "energy"
icon: mdi:home-lightning-bolt-outline
value_type: U_DWORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Consommation Réseau Totale
id: consommation_reseau_totale
register_type: holding
address: 0x068E
unit_of_measurement: "kWh"
device_class: "energy"
icon: mdi:transmission-tower-export
value_type: U_DWORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Consommation Réseau Jour
id: consommation_reseau_jour
register_type: holding
address: 0x068C
unit_of_measurement: "kWh"
device_class: "energy"
icon: mdi:transmission-tower-export
value_type: U_DWORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Injection Réseau Totale
id: injection_reseau_totale
register_type: holding
address: 0x0692
unit_of_measurement: "kWh"
device_class: "energy"
icon: mdi:transmission-tower-import
value_type: U_DWORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Injection Réseau Jour
id: injection_reseau_jour
register_type: holding
address: 0x0690
unit_of_measurement: "kWh"
device_class: "energy"
icon: mdi:transmission-tower-import
value_type: U_DWORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Température
id: temperature_onduleur
register_type: holding
address: 0x041A
unit_of_measurement: "°C"
device_class: "temperature"
icon: mdi:thermometer
value_type: U_WORD
filters:
- median:
window_size: 3
send_every: 2
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Lecture Injection Max Réseau
id: lecture_injection_max_reseau
register_type: holding
address: 0x1024
unit_of_measurement: "W"
device_class: "power"
value_type: U_WORD
filters:
- multiply: 100
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Retour Commande Marche/Arrêt
id: retour_commande_marche_arret
register_type: holding
address: 0x1104
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Tension Batterie 1
id: tension_batterie_1
icon: "mdi:alpha-v-circle-outline"
register_type: holding
address: 0x0604
unit_of_measurement: "V"
device_class: "voltage"
value_type: U_WORD
accuracy_decimals: 1
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Courant Batterie 1
id: courant_batterie_1
icon: "mdi:alpha-a-circle-outline"
register_type: holding
address: 0x0605
unit_of_measurement: "A"
device_class: "current"
value_type: S_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Puissance Batterie 1
id: puissance_batterie_1
icon: "mdi:battery-charging-high"
register_type: holding
address: 0x0606
unit_of_measurement: "kW"
device_class: "power"
value_type: S_WORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Température Batterie 1
id: temperature_batterie_1
icon: "mdi:thermometer"
register_type: holding
address: 0x0607
unit_of_measurement: "°C"
device_class: "temperature"
value_type: S_WORD
filters:
- median:
window_size: 3
send_every: 2
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} SOC Batterie 1
id: soc_batterie_1
icon: "mdi:battery-charging-high"
register_type: holding
address: 0x0608
unit_of_measurement: "%"
device_class: "battery"
value_type: U_WORD
filters:
- median:
window_size: 3
send_every: 2
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} SOH Batterie 1
id: soh_batterie_1
icon: "mdi:battery-heart-outline"
register_type: holding
address: 0x0609
unit_of_measurement: "%"
device_class: "battery"
value_type: U_WORD
filters:
- median:
window_size: 3
send_every: 2
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Nombres Cycles Batterie 1
id: nombres_cycles_batterie_1
icon: "mdi:battery-sync-outline"
register_type: holding
address: 0x060A
unit_of_measurement: "Cycles"
value_type: U_WORD
filters:
- median:
window_size: 3
send_every: 2
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Charge Batterie 1 Jour
id: charge_batterie_1_jour
icon: "mdi:battery-arrow-up-outline"
register_type: holding
address: 0x0694
unit_of_measurement: "kWh"
device_class: "energy"
state_class: total_increasing
value_type: U_DWORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: sofarsolar
name: ${friendly_name} Décharge Batterie 1 Jour
id: decharge_batterie_1_jour
icon: "mdi:battery-arrow-down-outline"
register_type: holding
address: 0x0698
unit_of_measurement: "kWh"
device_class: "energy"
state_class: total_increasing
value_type: U_DWORD
accuracy_decimals: 2
filters:
- median:
window_size: 3
send_every: 2
- multiply: 0.01
switch:
- platform: restart
name: ${friendly_name} Restart
- platform: template
name: ${friendly_name} Commande Marche/Arrêt
id: commande_marche_arret
icon: mdi:power
optimistic: true
turn_on_action:
- lambda: |-
- script.execute: marche
turn_off_action:
- lambda: |-
- script.execute: arret
binary_sensor:
- platform: status
name: ${friendly_name} Status
number:
- platform: template
name: ${friendly_name} Ecriture Injection Max Réseau
id: ecriture_injection_max_reseau
unit_of_measurement: "W"
device_class: "power"
optimistic: true
min_value: 0
max_value: 3500
step: 100
initial_value: 0
restore_value: true
mode: 'box'
on_value:
then:
- script.execute: ecriture_injection
- platform: template
name: ${friendly_name} Réglage Puissance Mode Passif
id: reglage_puissance_mode_passif
unit_of_measurement: "W"
device_class: "power"
optimistic: true
min_value: -3500
max_value: 3000
step: 500
initial_value: 0
restore_value: true
mode: 'slider'
on_value:
then:
- script.execute: ecriture_puissance_mode_passif
select:
- platform: template
name: ${friendly_name} Mode Fonctionnement
id: mode_fonctionnement
optimistic: true
options:
- "Auto Utilisation"
- "Temps d'Utilisation"
- "Timing"
- "Passif"
initial_option: "Auto Utilisation"
on_value:
then:
- lambda: !lambda |-
auto options = id(mode_fonctionnement).traits.get_options();
id(index_mode_fonctionnement) = std::distance(options.begin(), std::find(options.begin(), options.end(),x) );
- script.execute: ecriture_mode_onduleur
script:
- id: marche
then:
- lambda: |-
esphome::modbus_controller::ModbusController *controller = id(sofarsolar);
std::vector<uint16_t> sofar_settings (1) ;
sofar_settings [0] = uint16_t(1);
esphome::modbus_controller::ModbusCommandItem sofar_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(controller, 0x1104, sofar_settings.size() , sofar_settings);
delay(200) ;
controller->queue_command(sofar_command);
delay(200) ;
ESP_LOGI("Ecriture", "marche");
- id: arret
then:
- lambda: |-
esphome::modbus_controller::ModbusController *controller = id(sofarsolar);
std::vector<uint16_t> sofar_settings (1) ;
sofar_settings [0] = uint16_t(0);
esphome::modbus_controller::ModbusCommandItem sofar_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(controller, 0x1104, sofar_settings.size() , sofar_settings);
delay(200) ;
controller->queue_command(sofar_command);
delay(200) ;
ESP_LOGI("Ecriture", "arret");
- id: ecriture_injection
then:
- lambda: |-
esphome::modbus_controller::ModbusController *controller = id(sofarsolar);
std::vector<uint16_t> sofar_settings (2) ;
sofar_settings [0] = uint16_t(1);
sofar_settings [1] = uint16_t((id(ecriture_injection_max_reseau).state)*0.01);
esphome::modbus_controller::ModbusCommandItem sofar_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(controller, 0x1023, sofar_settings.size() , sofar_settings);
delay(200) ;
controller->queue_command(sofar_command);
delay(200) ;
ESP_LOGI("Ecriture", "ecriture_injection");
- id: ecriture_mode_onduleur
then:
- lambda: |-
esphome::modbus_controller::ModbusController *controller = id(sofarsolar);
std::vector<uint16_t> sofar_settings {uint16_t(id(index_mode_fonctionnement))};
esphome::modbus_controller::ModbusCommandItem sofar_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(controller, 0x1110, sofar_settings.size() , sofar_settings);
delay(200) ;
controller->queue_command(sofar_command);
delay(200) ;
ESP_LOGI("Ecriture", "ecriture_mode_fonctionnement");
- id: ecriture_puissance_mode_passif
then:
- lambda: |-
if (id(reglage_puissance_mode_passif).state > 0) {
esphome::modbus_controller::ModbusController *controller = id(sofarsolar);
std::vector<uint16_t> sofar_settings (6) ;
sofar_settings [0] = int16_t(0);
sofar_settings [1] = int16_t(id(reglage_puissance_mode_passif).state);
sofar_settings [2] = int16_t(0);
sofar_settings [3] = int16_t(id(reglage_puissance_mode_passif).state);
sofar_settings [4] = int16_t(0);
sofar_settings [5] = int16_t(id(reglage_puissance_mode_passif).state);
esphome::modbus_controller::ModbusCommandItem sofar_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(controller, 0x1187, sofar_settings.size() , sofar_settings);
delay(200) ;
controller->queue_command(sofar_command);
delay(200) ;
ESP_LOGI("Ecriture", "ecriture_injection");
} else {
esphome::modbus_controller::ModbusController *controller = id(sofarsolar);
std::vector<uint16_t> sofar_settings (6) ;
sofar_settings [0] = 0xFFFF;
sofar_settings [1] = (int16_t(0xFFFF) + int16_t(id(reglage_puissance_mode_passif).state));
sofar_settings [2] = 0xFFFF;
sofar_settings [3] = (int16_t(0xFFFF) + int16_t(id(reglage_puissance_mode_passif).state));
sofar_settings [4] = 0xFFFF;
sofar_settings [5] = (int16_t(0xFFFF) + int16_t(id(reglage_puissance_mode_passif).state));
esphome::modbus_controller::ModbusCommandItem sofar_command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(controller, 0x1187, sofar_settings.size() , sofar_settings);
delay(200) ;
controller->queue_command(sofar_command);
delay(200) ;
ESP_LOGI("Ecriture", "ecriture_injection");
}