Après avoir galéré a avoir une config nickel suite à l’installation d’un onduleur Deye et d’un pack de Batteries chez moi (et bien sur des panneaux PV), voici les correspondances nécessaire entre Solar Assistant (Connecté au Deye “avec” MQTT). Si ca aide du monde, c’est cool
La partie pilotage du DEYE m’intéresse beaucoup. J’aimerais savoir si tu parviens à modifier les horaires ainsi que les seuils minimum de batterie dans le mode « Time Of Use ».
L’idée serait de pouvoir effectuer une charge à 100% une fois par semaine afin de préserver le pack batterie durant l’hiver. J’aimerais également pouvoir ajuster le seuil minimum en fonction des prévisions de production du jour, dans le but d’optimiser à la fois la durée de vie du parc batterie (le plus souvent proche de 50%) et son utilisation (utilisation de la capacité maximale).
J’avoue ne pas m’être encore penché sur Solar Assistant, il va falloir visiblement. De base je pensais interfacer mon futur Deye en Modbus.
Salar assistant etait “vendu” avec le deye, je l’utilise du coup.
Ce que tu veux faire, je l’ai fait. Je recharge en heure creuse. La batterie oscille entre 20% et 50/60% suivant les jour et 100% quand il y a du soleil. Voici mon code (Merci le chat, GPT , il aide beaucoup mais pas encore assez lol ):
alias: Deye — Charge HC (30% → cible + relance -10%)
description: >
Charge réseau en heures creuses selon le jour : - Week-end (samedi, dimanche)
: cible 60 % - Semaine (lundi à vendredi) : cible 50 % Logique : - démarre si
SoC < 30 % en HC, - coupe quand le SoC atteint la cible, - si la charge
s'arrête avant la cible, la relance, - si la cible a été atteinte et que le
SoC retombe 10 points plus bas
avant la fin des HC, relance une charge,
- hors HC, remet tout dans l'état normal et réinitialise le flag. Après toute
charge nocturne, UseTimer reste OFF jusqu'à la fin des HC.
triggers:
- trigger: time_pattern
minutes: /1
- trigger: homeassistant
event: start
- trigger: state
entity_id: sensor.deye_sunsynk_sol_ark_3_phase_battery_state_of_charge
- trigger: state
entity_id:
- select.deye_sunsynk_sol_ark_3_phase_grid_charge
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_1
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_2
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_3
- switch.deye_sunsynk_sol_ark_3_phase_use_timer
conditions: []
actions:
- choose:
- conditions:
- condition: time
after: "00:06:00"
before: "07:46:00"
- condition: template
value_template: >
{% set soc =
states('sensor.deye_sunsynk_sol_ark_3_phase_battery_state_of_charge')|float(0)
%} {% set wd = now().weekday() %} {% set weekend = wd in [5, 6] %}
{% set target = 60 if weekend else 50 %} {{ soc >= target }}
sequence:
- action: select.select_option
data:
option: Disabled
target:
entity_id: select.deye_sunsynk_sol_ark_3_phase_grid_charge
- delay: "00:00:15"
- action: switch.turn_off
target:
entity_id: switch.deye_sunsynk_sol_ark_3_phase_use_timer
- delay: "00:00:15"
- action: switch.turn_off
target:
entity_id:
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_1
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_2
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_3
- action: input_boolean.turn_on
target:
entity_id: input_boolean.deye_hc_60_atteint
- conditions:
- condition: time
after: "00:06:00"
before: "07:46:00"
- condition: template
value_template: >
{% set soc =
states('sensor.deye_sunsynk_sol_ark_3_phase_battery_state_of_charge')|float(0)
%} {% set wd = now().weekday() %} {% set weekend = wd in [5, 6] %}
{% set target = 60 if weekend else 50 %} {% set relaunch = target
- 10 %} {% set flag =
is_state('input_boolean.deye_hc_60_atteint','on') %}
{% set grid =
states('select.deye_sunsynk_sol_ark_3_phase_grid_charge') %} {%
set use_timer_on =
is_state('switch.deye_sunsynk_sol_ark_3_phase_use_timer','on') %}
{% set p1 =
is_state('switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_1','on')
%} {% set p2 =
is_state('switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_2','on')
%} {% set p3 =
is_state('switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_3','on')
%}
{% set currently_charging = (grid == 'Enabled' and not
use_timer_on and p1 and p2 and p3) %}
{{ (not currently_charging)
and (
soc < 30
or (not flag and soc < target)
or (flag and soc < relaunch)
)
}}
sequence:
- action: switch.turn_on
target:
entity_id:
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_1
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_2
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_3
- delay: "00:00:15"
- action: switch.turn_off
target:
entity_id: switch.deye_sunsynk_sol_ark_3_phase_use_timer
- delay: "00:00:15"
- action: select.select_option
target:
entity_id: select.deye_sunsynk_sol_ark_3_phase_grid_charge
data:
option: Enabled
- conditions:
- condition: or
conditions:
- condition: time
before: "00:06:00"
- condition: time
after: "07:46:00"
sequence:
- action: select.select_option
data:
option: Disabled
target:
entity_id: select.deye_sunsynk_sol_ark_3_phase_grid_charge
- delay: "00:00:15"
- action: switch.turn_on
target:
entity_id: switch.deye_sunsynk_sol_ark_3_phase_use_timer
- delay: "00:00:15"
- action: switch.turn_off
target:
entity_id:
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_1
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_2
- switch.deye_sunsynk_sol_ark_3_phase_grid_charge_point_3
- action: input_boolean.turn_off
target:
entity_id: input_boolean.deye_hc_60_atteint
mode: restart
Petite subtilité, les ordres de démarrage et d’arret de charge doivent prendre leur temps et il faut vérifier l’etat de temps en temps. Je ne sais pas si ca vient du SolarAssistant ou pas.
Il faudrai que quelqu’un puisse nous dire si c’est pas plus stable en direct (ModBus)
Autre point, j’ai des PV avec micro onduleurs et une chaine de PV sans, le deye sait les distinguer mais pas SA…