Aller au contenu
Forhorse

EVCC.IO : optimisez votre recharge solaire

Messages recommandés

Bonjour à tous,

 

J'ai cherché et il ne semble pas avoir de sujet dédié à cette application, je propose donc celui-ci. Il semblerait qu'il y ai plusieurs utilisateurs ici donc je pense que ça peut intéresser du monde qu'on en discute. Personnellement j'ai découvert hier après une rapide mise en place et ça me semble prometteur même si je ne maitrise pas encore toutes les fonctions.

 

Pour ceux qui ne connaissent pas, le site est ici https://evcc.io/en/

le github ici https://github.com/evcc-io/evcc

C'est gratuit et open sources pour les fonctions basiques, d'autres sont payantes (j'ai pas encore vu lesquels) mais il y a une période d'essais (renouvelable) pour tester.

 

De base ça tourne sur un Raspberry Pi (ou équivalent) et ça semble assez léger donc pas besoin d'un Pi5 avec 8Go de RAM.

Et si vous avez déjà un serveur domestique / domotique, ça peut s'installer en Docker ou sous forme de module complémentaire dans Home Assistant.

 

Nativement le système supporte déjà un nombre impressionnant de compteur de consommation (pas le Linky par contre), d'onduleurs photovoltaïques et de bornes de charge. Et sinon il semble être capable d'échanger en MQTT (j'ai pas creusé, cette partie du site étant toujours en Allemand).

Si votre voiture est connectée, il y a aussi une liaison avec l'API de la majorité des constructeurs.

Et le cas échéant, on peut aussi connecter son système de batterie domestique pour avoir une vision globale de l'énergie de la maison.

(mais la fonction de base, une borne, un compteur d’énergie et des panneaux est déjà très intéressante)

 

Il peut soit moduler la puissance de charge si la borne le permet, soit faire du tout ou rien si elle ne le permet pas, soit en optimisant l'autoconsommation solaire, soit en basant sa décision sur le cout de l’énergie à l'instant T.

 

Si il y a des utilisateurs qui maitrisent bien le système, pouvez-vous faire un retour sur votre utilisation ? éventuellement partager vos fichiers de configuration pour avoir une base d'exemple de ce qu'il est possible de faire.

 

Et si il y en a que ça intéresse mais qui ne se sont pas encore lancé, on est là pour s'entraider.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y avait pas de sujet là dessus. J'ai découvert ça avec ce post.

Pour l'installation c'est simple je l'ai ajouté en addon sur Home Assistant avec ces instructions https://docs.evcc.io/en/docs/installation/home-assistant et ensuite il y a une intégration de EVCC à installer depuis HACS comme ça les deux communiquent. Il y a même plus de réglages depuis HASS que depuis l'interface de EVCC lui même notamment au niveau des seuils pour le photovoltaïque.

 

Après avoir testé pendant 3/4 semaines mon avis est mitigé. Car ça a été compliqué. Voilà les points négatifs que j'ai rencontré:

  1. Ma Copper SB a eu un peu de mal avec EVCC en OCPP. J'ai du remettre à zéro la Copper SB sinon elle ne fonctionnait pas bien en OCPP. Je n'avais pas de changement de la puissance de charge. Mais après restauration ça a fonctionné très bizare. A priori ça n'est pas EVCC qui est en cause car sur HASS c'était pareil.
  2. J'ai un problème avec les sessions de charges qui sont souvent fausses. J'ai le compteur MID sur la borne qui apparait en index au démarrage et à la fin et en faisant une soustraction ça semble ne pas être bon. Ca ne corresponds pas non plus avec le journal des charges sur le Cloud du fabricant Wallbox. Qui lui corresponds aux index.
  3. Mon Victron a aussi des problèmes. Il est reconnu. Je voie les infos mais jamais le système a déclenché la batterie pour assister la recharge. Du coup je gère ça avec une automatisation dans HASS
  4. Ma Eve de chez Alfen ne fonctionne pas avec en OCPP. A pirori il faut l'option de charge dynamique type délestage pour ça mais pour l'instant je ne l'ai pas. Donc la borne est bien vue. Mais le déclenchement l'arrêt ou la changement de puissance ne fonctionne pas.
  5. Sans HASS je pense que c'est pas terrible sauf à avoir les bons matériels qui fonctionnent parfaitement avec
  6. Faut encore faire beaucoup de configuration en fichier yaml

Sinon les points positifs:

  1. Gestion du solaire pour toutes les bornes qui ne font pas ça nativement il faut quand même avoir les compteurs au bons emplacements. Donc pour ma Alfen c'était bien en théorie. Pour la Copper SB les réglages sont plus fin qu'avec l'app Wallbox donc c'est quand même mieux car la puissance vue c'est celle hors charge batterie.
  2. Gestion des tableaux secondaires (nested circuits)
    Je n'ai pas testé mais gérer la puissance par rapport à l'arrivée enedis et les limitations du tableau secondaires ça me semble top
  3. Sessions de charges comme sur un logiciel commercial avec la répartition solaire/réseau sauf que là on peut être sur plusieurs marques de borne
  4. Ça reste en local
  5. Quand il n'arrive pas à avoir le niveau de batterie de la voiture il fait une estimation selon l'énergie envoyée
  6. Voir le prix du kWh après décompte du photovoltaïque
  7. Gestion du tarif Tempo mais il faut HASS et MQTT pour ça
  8. Chaque voiture peut être reconnue par un badge différent si la borne supporte les badges donc pour ça gestion des charges cibles etc c'est top
  9. Comme le Cloud BMW permet peu de requêtes il fait une simulation du niveau de charge. C'est pas juste mais ça reste souvent à 1% d'écart
  10. L'interface est plus sympa que HASS

Je vais changer de système et basculer les bornes dans HASS et donner le contrôle à EVCC. Je préfère que HASS gère les bornes notamment ça me permet d'avoir l'historique des températures et tensions sur les bornes. J'ai vu que c'était possible avec ça et il y a une explication sur les différence de fonctionnement de l'OCPP entre EVCC et HASS https://github.com/evcc-io/evcc/discussions/18414

Et ensuite je voudrais intégrer ma prise renforcée EVlink qui est en ZigBee dedans.

 

Pour le MQTT c'est simple. Je me connecte au Mosquitto de HASS. J'ai créé un compte utilisateur pour EVCC dans HASS. J'ai ajouté ça au fichier de EVCC et maintenant j'ai la remontrée des infos de EVCC dans MQTT. La section tariffs c'est pour le tarif tempo.

mqtt:
   broker: localhost:1883
   topic: evcc
   user: nom_utilisateur_créé_dans_lebroker_ou_sur_hass
   password: mot_de_passe_du_compte
tariffs:
  co2:
    type: template
    template: electricitymaps-free
    token: token_eletricity_maps
    zone: FR
  currency: EUR
  grid:
    type: custom
    forecast:
      source: mqtt
      topic: tempo/grid/forecast   

Pour Tempo j'ai cette automatisation récupérée depuis hacf.fr et modifiée pour reprendre le tarifs depuis des inputs à créer dans HASS

input_number.tarif_tempo_bleu_hc
input_number.tarif_tempo_bleu_hp
input_number.tarif_tempo_blanc_hc
input_number.tarif_tempo_blanc_hp
input_number.tarif_tempo_rouge_hc
input_number.tarif_tempo_rouge_hp

alias: EVCC Tarif Tempo vers MQTT
description: ""
triggers:
  - entity_id:
      - sensor.rte_tempo_prochaine_couleur
    trigger: state
  - event: start
    trigger: homeassistant
conditions: []
actions:
  - alias: Publier le forecast via MQTT
    metadata: {}
    data:
      qos: "0"
      retain: true
      topic: tempo/grid/forecast
      payload: >-
        {% set current_color = states('sensor.rte_tempo_couleur_actuelle') %} 

        {% set next_color = states('sensor.rte_tempo_prochaine_couleur') %} 

        {% set isOffPeak = is_state('binary_sensor.rte_tempo_heures_creuses',
        'on') %} 

        {% set current_time = as_timestamp(utcnow()) |
        timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false) %} 

        {% set next_period_sensor_state = 
        states('sensor.rte_tempo_heures_creuses_changement') %} 

        {% set next_period = as_timestamp(next_period_sensor_state) |
        timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false)  %} 

        {% set next_color_sensor_date = 
        states('sensor.rte_tempo_prochaine_couleur_changement') %}

        {%- set tempoTariffs = {
            'offpeak_bleu' : states('input_number.tarif_tempo_bleu_hc'),
            'peak_bleu' : states('input_number.tarif_tempo_bleu_hp'),
            'offpeak_blanc' : states('input_number.tarif_tempo_blanc_hc'),
            'peak_blanc' : states('input_number.tarif_tempo_blanc_hp'),
            'offpeak_rouge' : states('input_number.tarif_tempo_rouge_hc'),
            'peak_rouge' : states('input_number.tarif_tempo_rouge_hp')
        }

        -%}

        {%- macro tempoTariff(tempoColor, offPeakHours) -%}
            {%- set tariff = '' -%}
            {%- if tempoColor == 'Bleu' -%}
                {%- if offPeakHours -%}
                    {%- set tariff = tempoTariffs.offpeak_bleu -%}
                {%- else -%}
                    {%- set tariff = tempoTariffs.peak_bleu -%}
                {%- endif -%}
            {%- elif tempoColor == 'Blanc' %}
                {%- if offPeakHours -%}
                    {%- set tariff = tempoTariffs.offpeak_blanc -%}
                {%- else -%}
                    {%- set tariff = tempoTariffs.peak_blanc -%}
                {%- endif -%}
            {%- elif tempoColor == 'Rouge' %}
                {%- if offPeakHours -%}
                    {%- set tariff = tempoTariffs.offpeak_rouge -%}
                {%- else -%}
                    {%- set tariff = tempoTariffs.peak_rouge -%}
                {%- endif -%}
            {%- else -%}
                {%- set tariff = 'unknown' -%}
            {%- endif -%}
            {{ tariff }}
        {%- endmacro -%}

        {% set forecast_items_count = 2 if next_color != 'unknown' and
        next_color != '' else 1 %}

        {% set forecast = [] %} {% set forecast = namespace(forecast_items=[])%}

        {# Loop to generate forecast items #} {% for i in
        range(forecast_items_count) %}
          {% set is_current_color = (i == 0) %}
          
          {% if is_current_color %}
            {% set color = current_color %}
            {% set start_time = current_time %}
            {% set end_time = next_period %}

            {% set forecast_item = {
              "start": start_time,
              "end": next_period,
              "value": tempoTariff(current_color, isOffPeak) | float
            } %}
          
            {% set forecast.forecast_items = forecast.forecast_items + [forecast_item] %}
            
            {% if is_current_color and not isOffPeak %}
          
                {% set color = current_color %}
                {% set start_time = current_time %}
                {% set end_time = next_period %}
              
                {% set forecast_item = {
                  "start": next_period,
                  "end": (as_timestamp(states('sensor.rte_tempo_heures_creuses_changement'))  + 8*3600 ) | timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false),
                  "value": tempoTariff(current_color, not isOffPeak) | float
                } %}

            {% set forecast.forecast_items = forecast.forecast_items + [forecast_item] %}
            
            {% endif %}
          {% else %}

          {% set next_color_time = as_timestamp(states('sensor.rte_tempo_prochaine_couleur_changement')) | timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false)  %}
        {% set next_color_peak_start = as_timestamp(next_color_sensor_date) |
        timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false)  %} {% set
        next_color_peak_end = (as_timestamp(next_color_sensor_date) + 16*3600) |
        timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false)  %} {% set
        next_color_offpeak_end = (as_timestamp(next_color_sensor_date) +
        24*3600) | timestamp_custom('%Y-%m-%dT%H:%M:%SZ', false)  %}

            {% set color = next_color %}
            {% set start_time = next_time %}

            {% set forecast_item = {
              "start": next_color_peak_start,
              "end": next_color_peak_end,
              "value": tempoTariff(next_color, false) | float
            } %}
          
            {% set forecast.forecast_items = forecast.forecast_items + [forecast_item] %}

            {% set forecast_item = {
              "start": next_color_peak_end,
              "end": next_color_offpeak_end,
              "value": tempoTariff(next_color, true) | float
            } %}
          
            {% set forecast.forecast_items = forecast.forecast_items + [forecast_item] %}
            
          {% endif %}
          
        {% endfor %}


        {{forecast.forecast_items | tojson }}
    action: mqtt.publish
mode: single

 

Quelle borne utilises tu avec EVCC?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis encore en phase de prise en main, je découvre des trucs à chaque fois que j’approfondis un peu un sujet.

 

Pour ma part j'ai une borne OpenEVSE, il ne semble pas y avoir de difficulté de communication entre elle et EVCC

 

Un truc qu'on pourrait leur reprocher c'est la documentation qui n’évolue pas aussi que les fonctions de l'application.

 

Par exemple pour la mesure de la puissance réseau, j'utilise un Shelly ProEM, dans la doc ils ne parlent que du Shelly Pro 3EM qui est le modèle triphasé. C'est ce que j'avais mis dans mon fichier de config pour essayer et ça semblait fonctionner malgré tout.

Et puis en fouillant dans les PR du github, ben j'ai vu que le le ProEM était supporté aussi, et qu'on peut même spécifier sur quel canal est la mesure.

Et c'est la même chose pour pas mal de truc. En fouillant dans les sources j'ai trouvé que le tarif Tempo était aussi pris en charge via l'API rte... mais y a rien de documenté donc je n'ai pas compris comment ça s'utilise.

 

Bref, c'est un projet en constante évolution, c'est pas encore la version 1.0 et je trouve pourtant que c'est déjà bien aboutis. 

Et le routage solaire fonctionne beaucoup mieux que le routage intégré à ma borne donc rien que pour ça je trouve ça super.

J'aime bien aussi la fonction qui permet de définir un prix maxi du kWh pour la recharge, suivant la situation ça peut être plus pertinent que de définir un taux d'autoconsommation. Mais j'ai pas encore bien creusé la question (juste un essai aujourd'hui)

 

Pour le moment mon fichier de config est le suivant, mais je commence à peine à creuser les fonctions

interval: 30s

site:
  title: Maison # display name for UI
  meters:
    grid: EDF
    pv:
      - shelly-pro-em-1-pv

# define your loadpoints according your needs
# see https://docs.evcc.io/en/docs/reference/configuration/loadpoints
loadpoints:
  - title: Garage # display name for UI
    charger: OpenEVSE # charger
    vehicle: my_car # default vehicle

# meter definitions
# name can be freely chosen and is used as reference when assigning meters to site and loadpoints
# for documentation see https://docs.evcc.io/docs/devices/meters
meters:
  # replace with your real grid meter
  - name: EDF
    type: template
    template: shelly-1pm  
    usage: grid
    host: 192.168.0.21
    channel: 0
    
 # replace with your real pv system
  - name: shelly-pro-em-1-pv
    type: template
    template: shelly-1pm
    usage: pv
    host: 192.168.0.21
    channel: 1    

# replace with your real charger
# see https://docs.evcc.io/docs/devices/chargers
chargers:
  - name: OpenEVSE
    type: template
    template: openevse
    host: 192.168.0.41

# replace with your real vehicle (optional)
# see https://docs.evcc.io/docs/devices/vehicles
vehicles:
  - name: my_car
    type: template
    template: offline
    title: e-Niro
    capacity: 64 # in kWh
    
# enter your real grid tariff and feed-in price
# see https://docs.evcc.io/docs/tariffs
tariffs:
  currency: EUR
  grid:
    type: fixed
    price: 0.1288 # EUR/kWh
    zones:
      - hours: 06:00-22:00
        price: 0.1552 # EUR/kWh
  feedin:
    type: fixed
    price: 0.00 # EUR/kWh
  co2:
    type: fixed
    price: 56 # gCO2e/kWh

  solar:
    - type: template
      template: open-meteo
      lat: xxxxx
      lon: xxxxx
      dec: 35 # 0 = horizontal, 90 = vertical
      kwp: 2.8
      az: 10 # -180 = north, -90 = east, 0 = south, 90 = west, 180 = north

 

J'ai pas encore installé l’intégration pour HA, j’attends de voir si le système est vraiment valable chez moi.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(é) (modifié)
Le 12/05/2025 à 21:55, Forhorse a dit :

Je suis encore en phase de prise en main, je découvre des trucs à chaque fois que j’approfondis un peu un sujet.

Pareil je n'ai pas encore tout terminé. J'espère bien faire fonctionner le pilotage de batterie. La mise en place est très longue. C'est pour ça que je suis mitigé.

Le 12/05/2025 à 21:55, Forhorse a dit :

j'ai une borne OpenEVSE, il ne semble pas y avoir de difficulté de communication entre elle et EVCC

De ce que je voie sur le git dans les templates elle semble utiliser http pour les requêtes donc ça doit être beaucoup fluide que OCPP. Je suis un peu surpris qu'elle ne gère pas le solaire de manière autonome un peu mieux. Je pensais qu'étant open source elle serait fortement paramétrable.

 

Pour la documentation effectivement elle n'est pas toujours à jour. Et en plus une partie n'est pas traduite. A minima tout faire en anglais. Sur le git y a bcp de messages en allemand.

 

Je suis preneur d'un lien pour les infos sur Tempo. Car actuellement j'ai bien l'API RTE mais dans HASS. Si y a moyen d'être en direct.

 

J'ai passé mes bornes par HASS avec l'api REST c'est top. EVCC démarre beaucoup plus vite comme ça. Avec l'OCPP il attends que les deux bornes se connectent ça prends toujours plusieurs minutes. J'ai enfin la Alfen Eve qui fonctionne. Mais elle semble assez lente à changer sa puissance. Et il lui faut un script spécifique pour démarrer sa charge qui la déverrouille avant de lancer la charge sinon la commande est refusée. La lenteur ne me gène pas beaucoup car depuis que j'ai la batterie en charge solaire le Victron assiste la charge et compense en injectant pour être à zéro avec le réseau. La partie solaire me sert au final que pour les statistiques. A voir dans l'avenir si je mets plus panneaux là ça pourrait servir.

Sinon autre avantage pour la CopperSB avec HASS c'est que chaque charge est remontée sur le Cloud Wallbox car à la fin de chaque charge la borne termine la charge. Avant en natif, EVCC mettait la charge en pause. Pourquoi ça compte? Parce que de cette manière je peux couper la charge avant le changement de tarif et avoir le bon tarif sur le Cloud Wallbox. Après je compare les charges entre EVCC et Wallbox.

 

Voilà mon fichier de config. Je crois qu'il faut que je modifie l'intervalle il me semble avoir vu un avertissement.

# open evcc at http://evcc.local:7070
network:
  schema: http
  host: evcc.local # .local suffix announces the hostname on MDNS
  port: 7070

log: debug
levels:
  cache: error

# trial token, valid until 2025-05-14
sponsortoken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJldmNjLmlvIiwic3ViIjoidHJpYWwiLCJleHAiOjE3NDcyMjQwMDAsImlhdCI6MTc0NjM2MDAwMCwic3BlIjp0cnVlLCJzcmMiOiJtYSJ9.QZHstHyhkthAg0IC2i-OPTfar8uSo-a-Z2Ea1BuWS0w

# unique installation id
plant: 
interval: 10s # control cycle interval

meters:
- type: template
  template: shelly-pro-3em
  usage: grid
  host: shellypro-ip
  name: Enedis-SP3EM
- type: template
  template: victron-energy 
  usage: pv  
  host: victron-ip  
  port: 502
  name: MPPT-Victron
- type: template
  template: victron-energy 
  usage: battery  
  capacity: 7.2
  host: victron-ip  
  port: 502
  name: PylonTech-Victron
- type: template
  template: apsystems-ez1
  usage: pv  
  host: apsystems1-ip
  name: EZ1H-01
- type: template
  template: apsystems-ez1
  usage: pv  
  host: apsystems2-ip
  name: EZ1H-02
- name: Borne1
  type: custom
  power: 
    source: http
    uri: http://homeassistant:8123/api/states/sensor.borne1_power_active_import
    jq: .state
    scale: 1000
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  energy: 
    source: http
    uri: http://homeassistant:8123/api/states/sensor.borne1_energy_active_import_register
    jq: .state
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  currents:
  - source: http
    uri: http://homeassistant:8123/api/states/sensor.borne1_current_import
    jq: .attributes.L1
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  - source: http
    uri: http://homeassistant:8123/api/states/sensor.borne1_current_import
    jq: .attributes.L2
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  - source: http
    uri: http://homeassistant:8123/api/states/sensor.borne1_current_import
    jq: .attributes.L3
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  voltages:
    - source: http
      uri: http://homeassistant:8123/api/states/sensor.borne1_voltage
      jq: .attributes.["L1-N"]
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    - source: http
      uri: http://homeassistant:8123/api/states/sensor.borne1_voltage
      jq: .attributes.["L2-N"]
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    - source: http
      uri: http://homeassistant:8123/api/states/sensor.borne1_voltage
      jq: .attributes.["L3-N"]
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
- name: Borne2
  type: custom
  power: 
    source: http
    uri: http://homeassistant:8123/api/states/sensor.borne2_power_active_import
    jq: .state
    scale: 1000
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  energy: 
    source: http
    uri: http://homeassistant:8123/api/states/sensor.borne2_energy_active_import_register
    jq: .state
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  currents:
  - source: http
    uri: http://homeassistant:8123/api/states/sensor.borne2_current_import
    jq: .attributes.L1
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  - source: http
    uri: http://homeassistant:8123/api/states/sensor.borne2_current_import
    jq: .attributes.L2
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  - source: http
    uri: http://homeassistant:8123/api/states/sensor.borne2_current_import
    jq: .attributes.L3
    auth:
      type: bearer
      token: Jeton_d'accès_longue_durée
  voltages:
    - source: http
      uri: http://homeassistant:8123/api/states/sensor.borne2_voltage
      jq: .attributes.["L1-N"]
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    - source: http
      uri: http://homeassistant:8123/api/states/sensor.borne2_voltage
      jq: .attributes.["L2-N"]
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    - source: http
      uri: http://homeassistant:8123/api/states/sensor.borne2_voltage
      jq: .attributes.["L3-N"]
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée

chargers:
  - name: Borne1
    type: custom
    status:
      source: http
      uri: http://homeassistant:8123/api/states/sensor.borne1_status_connector
      jq: if .state == "Available" or .state == "Unavailable" then "A" elif .state == "Preparing" or .state == "SuspendedEVSE" or .state == "SuspendedEV" or .state == "Finishing" then "B" elif .state == "Charging" then "C" else "" end
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    enabled:
      source: http
      uri: http://homeassistant:8123/api/states/switch.borne1_charge_control
      jq: .state == "on"
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    enable:
      source: http
      uri: http://homeassistant:8123/api/services/switch/{{if .enable}}turn_on{{else}}turn_off{{end}}
      method: POST
      body: "{\"entity_id\": \"switch.borne1_charge_control\"}"
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    maxcurrent:
      source: http
      uri: http://homeassistant:8123/api/services/number/set_value
      method: POST
      body: "{\"entity_id\": \"number.borne1_maximum_current\", \"value\": \"${maxcurrent}\"}"
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
  - name: Borne2
    type: custom
    status:
      source: http
      uri: http://homeassistant:8123/api/states/sensor.borne2_status_connector
      jq: if .state == "Available" or .state == "Unavailable" then "A" elif .state == "Preparing" or .state == "SuspendedEVSE" or .state == "SuspendedEV" or .state == "Finishing" then "B" elif .state == "Charging" then "C" else "" end
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    enabled:
      source: http
      uri: http://homeassistant:8123/api/states/switch.borne2_charge_control
      jq: .state == "on"
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    enable:
      source: http
      uri: http://homeassistant:8123/api/services/automation/trigger
      method: POST
      body: "{\"entity_id\": \"automation.borne2_charge_control\"}"
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée
    maxcurrent:
      source: http
      uri: http://homeassistant:8123/api/services/number/set_value
      method: POST
      body: "{\"entity_id\": \"number.borne2_maximum_current\", \"value\": \"${maxcurrent}\"}"
      auth:
        type: bearer
        token: Jeton_d'accès_longue_durée

mqtt:
   broker: homeassistant:1883
   topic: evcc
   user: utilisateur_créé_dans_hass
   password: mot_de_passe_pour_evcc_dans_hass

site:
  title: Maison
  meters:
    grid: Enedis-SP3EM
    pv:
    - EZ1H-01
    - EZ1H-02
    - MPPT-Victron
    battery:
    - PylonTech-Victron

loadpoints:
  - title: CopperSB
    charger: Borne1
    mode: off
    meter: Borne1
    enable:
      threshold: -700
      delay: 30s
    disable:
      threshold: 650
      delay: 30s
    circuit: Enedis
  - title: Eve
    charger: Borne2
    mode: off
    meter: Borne2
    enable:
      threshold: -700
      delay: 30s
    disable:
      threshold: 650
      delay: 30s
    circuit: Enedis

circuits:
  - name: Enedis
    title: EDF
    maxCurrent: 40
    maxPower: 9000
    meter: Enedis-SP3EM

    
tariffs:
  co2:
    type: template
    template: electricitymaps-free
    token: token_electricy_maps_free
    zone: FR
  currency: EUR
  grid:
    type: custom
    forecast:
      source: mqtt
      topic: tempo/grid/forecast      

 

Modifié par lostOzone

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 13/05/2025 à 13:00, lostOzone a dit :

Je suis un peu surpris qu'elle ne gère pas le solaire de manière autonome un peu mieux. Je pensais qu'étant open source elle serait fortement paramétrable.

Elle est très moyenne à ce niveau et les différents paramètres ne semblent pas avoir beaucoup d'influence.

Je ne suis pas le seul à m'en plaindre et j'ai déjà lu plusieurs témoignages disant qu'ils géraient ça de façon externe (EVCC en est une nouvelle) plutôt que de confier cette fonction à la borne.

C'est OpenSource mais le logiciel évolue très lentement.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 13/05/2025 à 20:58, Forhorse a dit :

C'est OpenSource mais le logiciel évolue très lentement.

Si le logiciel est fiable c'est pas bien grave. EVCC fera le reste. Le développement est assez actif. Je voie pas mal de notification de github.

Sinon chez moi ça déclenche la charge solaire quand il y a du surplus mais ça n'arrête plus la charge quand il n'y a pas assez.

 

Faudrait que j'efface les réglages dans la base mais je ne peux pas taper la ligne de commande avec un add-on HASS.

Partager ce message


Lien à poster
Partager sur d’autres sites

Si tu as accès à la console de HA, il me semble que tu peux aussi utiliser les commandes Docker pour accéder au terminal de l'add-ons. 

En tout cas dans le miens, avec la commander "docker ps" il m'affiche bien les containers des modules complémentaires que j'ai installé, donc on doit pouvoir accéder à la console d'un container.

Enfin je crois, je commence à bricoler par mal Docker mais je n'y touche pas encore dans HA.

 

Pour ma part c'est installé dans un container Docker sous Unraid, outre le fait que ça s'installe en 2 clics et que c'est complètement séparé de HA, donc bien pratique pour faire des essais sans risquer de mettre en vrac la domotique, l'administration est aussi plus simple. Bref...

 

Hier petite déception, après une journée de charge, j'avais autant d'injection sur le réseau qu'avec la fonction native de charge solaire de ma borne (entre 400 et 500 Wh par heure de charge solaire) alors que lors de mon premier essais ça me semblait beaucoup mieux.

Est-ce que j'ai fait une fausse manip en activant la charge solaire ?

Toujours est-il qu'il semblerait que EVCC s’appuie sur la fonction native de charge solaire de la borne quand on l'active depuis sa propre interface. A confirmer...

Dans le doute j'ai fait une réinitialisation usine de ma borne openEVSE avec une reconfiguration au minimum (pas de délestage, pas de charge solaire) pour en avoir le cœur net. Et dans le doute j'ai aussi réinitialisé EVCC.

Du coup c'est beaucoup mieux, seulement entre 100 et 200Wh de donné au réseau pendant la charge, ce qui est un peu plus cohérent avec une charge 100% solaire bien gérée... et avec les petits raffinements propre à EVCC (affichage de la part solaire réel : 96.3%, cout du kWh : 0.6ct)

 

Bon, j'ai toujours le problème propre au e-Niro que si la charge ne se lance pas au moment où lui l'a décidé par sa programmation, il se met en veille et n'accepte ensuite plus la charge.

Un réglage dans la borne premier de changer le mode pause pour pallier à ça, mais ça à d'autres effets de bords (mauvais affichage du statut de la connexion avec la voiture, ou affichage avec une grosse latence)

Pour l'instant toujours enchanté par cette application.

 

Par contre pour la fonction de charge "min+sol" est-ce que tu sais sur quoi il se base pour le mini ?

c'est le courant minimum réglé dans les paramètres du point de charge ? c'est le prix du kWh ? autre chose ?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour la ligne de commande en fait c'est dans documentation

docker exec -it addon_49686a9f_evcc /bin/sh
evcc migrate --reset -c /config/evcc.yaml --database /data/evcc.db

Ça bien supprimé la voiture que j'avais mise depuis l'interface et pas dans le fichier yaml par contre idem pour la partie désactivation de la charge solaire. Ça ne marche pas. Même en retirant presque tout de la configuration en laissant uniquement une seule borne. C'est bizarre il voie bien le surplus et il voie bien le seuil de déclenchement. Pour la coupure il voie bien la consommation mais ne déclenche pas le seuil. Pour l'instant j'ai une automatisation dans HASS pour mettre sur Arrêté et remettre sur Solaire.

[lp-2 ] DEBUG 2025/05/15 10:12:46 site power -263W <= -50W enable threshold
[lp-2 ] DEBUG 2025/05/15 10:12:46 pv enable in 15s
[lp-2 ] DEBUG 2025/05/15 10:12:46 pv enable timer remaining: 15s

 

Le 14/05/2025 à 21:43, Forhorse a dit :

Est-ce que j'ai fait une fausse manip en activant la charge solaire ?

Au début je n'avais rien réglé et il me semble que les seuils sont réglé automatiquement à zéro il me semble. Sinon c'est là https://docs.evcc.io/en/docs/reference/configuration/loadpoints#enable la partie disable c'est là ou j'ai des problèmes.

Le 14/05/2025 à 21:43, Forhorse a dit :

solaire réel : 96.3%, cout du kWh : 0.6ct

Mais si maintenant ça marche autant ne rien toucher.

Le 14/05/2025 à 21:43, Forhorse a dit :

Par contre pour la fonction de charge "min+sol" est-ce que tu sais sur quoi il se base pour le mini ?

20250515_073127000_iOS.thumb.jpg.c8399f1525043b1da55d0155c0af0506.jpg20250515_073224000_iOS.thumb.jpg.fdc8543e01eb219ea4fca919b3927baf.jpg

 

Partager ce message


Lien à poster
Partager sur d’autres sites

L’arrêt de la charge solaire fonctionne de nouveau. En testant de nouveau la batterie j’ai changé les seuils.
Il ne faut pas être dans la plage de “Recharge soutenue par la batterie“ dans ce cas il ne fait plus le décompte.

b66a36a233add75306ff780059f4a64e.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a tellement de réglages possibles que certains doivent se contredire. Je pense qu'il faut du temps avant de maitriser correctement la bête !

Ce sujet est là pour ça : partager nos expériences et découvertes. 

Partager ce message


Lien à poster
Partager sur d’autres sites

Info supplémentaire pas très engageante.
Les bornes affichées comme compatibles ne le sont pas forcément.

Je viens de voir que la Alfen Eve a été ajoutée en mode OCPP. J’ai testé ça ne marche toujours pas.

La eprowallbox a été ajouté. Et impossible de trouver confirmation qu’elle fonction sur GitHub.

Partager ce message


Lien à poster
Partager sur d’autres sites





×
×
  • Créer...
Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.