Intégration Solar Optimizer - Optimisation de sa consommation Solaire

Merci @Jean-Marc_Collin

J’ai profité de la météo clémente ces derniers jours pour m’assurer que tout fonctionnait correctement à nouveau avant de répondre.
Le sensor donnant la consommation nette instantanée n’était plus bon…
Il y a de cela quelques temps j’ai modifié des templates en voulant tout uniformiser (j’avais des watts et des KWatts), résultat des effets de bord pour SO que je n’ai pas identifié de suite.
Dans la foulée j’ai modifié le check-usable_template, ce qui m’a induit en erreur.
Persuadé ne pas avoir modifié directement la conf de SO je n’ai pas vérifié…
Comme souvent l’erreur était entre la chaise et le clavier :slightly_smiling_face:

1 « J'aime »

Bonjour, depuis quelques temps, je n’arrive plus à régler l’ampérage de charge de ma Tesla via Home Assistant, d’autres utilisateurs ont-ils le même souci ?
J’attends de régler ce problème avant de paramétrer Solar Optimizer qui a l’air d’etre top.

Merci

Hello @patBrid ,

Y a un thread special sur Tesla, tu devrais peut être posté la bas. Là c’est Solar Optimizer;

Oui, désolé, j’étais en fait en train de paramétrer Solar Optimizer et je vois que beaucoup l’utilisent pour commander l’ampérage de charge de leur Tesla notamment, du coup, ça me semblait aussi un bon endroit pour poser ma question :slight_smile:

1 « J'aime »

:mega: Nouvelle version 2.1.0 :tada:

On ajoute une fonction très attendue qui permet de faire tourner un équipement qui n’aurait pas eu assez de soleil la journée en heure creuse. Ideal pour les chauffe-eau, les chargements de vehicules, les divers deshumificateurs et pompes de piscine qui doivent absolument tourner un minimum tous les jours.

Je vous laisse découvrir la release ici : Release 2.1.0 · jmcollin78/solar_optimizer · GitHub


Extrait du README-fr:

Un temps d’utilisation minimal journalier est aussi paramétrable en facultatif. Ce paramètre permet d’assurer que l’équipement sera allumé pendant une certaine durée minimale. Vous spécifiez à quelle heure commence les heures creuses, (offpeak_time) et la durée minimale en minutes (min_on_time_per_day_min). Si à l’heure indiquée par offpeak_time, la durée minimale d’activation n’a pas été atteinte, alors l’équipement est activé jusqu’au changement de jour (paramètrable dans l’intégration et 05:00 par défaut) ou jusqu’à ce que le maximum d’utilisation soit atteint (max_on_time_per_day_min) ou pendant toute la durée des heures creuses si max_on_time_per_day_min n’est pas précisé. Vous assurez ainsi que le chauffe-eau ou la voiture sera chargée le lendemain matin même si la production solaire n’a pas permise de recharger l’appareil. A vous d’inventer les usages de cette fonction.

Exemple de configuration :

solar_optimizer:
....
  devices:
    ....
    - name: "Ballon eau chaude"
      # 2 hours per day maximum
      max_on_time_per_day_min: 120
      # 1h per day minimum ...
      min_on_time_per_day_min: 60
      # ... starting at 22:30
      offpeak_time: "22:30"

Cela va démarrer votre « Ballon eau chaude » en heures creuses, à partir de 22h30 dans l’exemple, si la durée minimale d’1h n’a pas été atteinte dans la journée. L’activation se fera jusqu’à ce que les heures creuses expires (paramètres de l’intégration avec 5h00 par défaut) ou la durée max de 2h ici. Si la durée max n’est pas précisée, l’appareil sera activé pendant toute la durée des heures creuses donc de 22h50 à 05h00 dans l’exemple.

5 « J'aime »

Bonjour @Jean-Marc_Collin,

J’ai reçu mon chargeur de voiture vu dans le post Feyree Fey123 : intégration dans HA via Tuya Local

J’essaye maintenant de le configuré dans SO mais j’ai une erreur.
En entity_id, SO attend absolument un type switch, or, sur ce chargeur, nous n’avons qu’une entité type select.

As tu une iddée de comment on pourait contourner ca STP?

Entité dans le solar_optimizer.yaml:

  - name: "Voiture"
    entity_id: "select.chargeur_voiture_toggle_charging"
    # The minimum load power is 237 W (i.e. 1 Amp because convert_power_divide_factor=237 too)
    power_min: 1896
    # The minimum load power is 3792 W (i.e. 16 Amp (= 33792/237) )
    power_max: 3792
    # the step of 237 or 1 Amp after division by convert_power_divide_factor
    power_step: 237
    # Usable if the charging mode is "Solar" and the car is plugged into the charger and it is charged at less than 90% (so it stops by itself at 90%)
    check_usable_template: "{{ is_state('sensor.chargeur_voiture_etat', 'plugged_in') or is_state('sensor.chargeur_voiture_etat', 'charging') }}"
    # 1 hour minimum charge
    duration_min: 30
    # 15 min minimum stop charge
    duration_stop_min: 15
    # The entity that drives the load amperage
    power_entity_id: "number.chargeur_voiture_set_charge_current"
    # 5 min minimum between 2 power changes
    duration_power_min: 1
    # activation is done by a service call
    action_mode: "service_call"
    activation_service: "select/Start charging"
    deactivation_service: "select/Stop charging"
    # the power change is done by a service call
    change_power_service: "number/set_value"
    # the factor used to convert the set power into Amps (number.tesla_charging_amps takes Amps)
    convert_power_divide_factor: 237
    # We do not start a charge if the battery of the solar installation is not at least 50% charged
    #battery_soc_threshold: 50
    # 4h par day minimum ...
    #min_on_time_per_day_min: 240
    # ... starting at 23:00
    #offpeak_time: "22:00"

Et le message d’erreur:

Hello,

Tu parles de ça je suppose: For the attribute power_entity_id, the select domain is not accepted · Issue #67 · jmcollin78/solar_optimizer · GitHub. Ce qui est curieux c’est que c’est marqué comme développed mais il n’est pas dans les release note. je ferais le point ce soir (ce week-end au plus tard).

Dans l’attente tu dois faire un switch virtual qui pilote le select et tu mets le switch virtuel dans SO.

y a des exemples dans le README de Versatile Thermostat si tu ne sais pas comment faire

1 « J'aime »

Bonjour mr Collin
déjà merci pour cette intégration qui fonctionne parfaitement pour ma part avec la gestion de 2 CE
La relise 2.1.0 sera top dans mon cas pour permettre la chauffe la nuit au cas ou .

J’aurai une question, j’ai une chaudiere electrique sur un plancher chauffant a eau, je voudrait la faire fonctionner également avec SO mais vaudrait il pas mieux que je combine le fonctionnement également avec versatile Thermostat ?
l’idée serait de la faire fonctionner la journée lorsque la production est au max et également la nuit en HC a savoir que j’ai 2 plage HC une de nuit et une de jour

Hello @Bougnat63 ,

Ca certainement moyen de faire qqe-chose dans ce gout là, mais tu risques de chauffer quand y a le moins besoin (en plein soleil) non ? En tout cas, il y a moyen oui. Soit tu changes de preset, ou tu allumes un radiateur qui va déclencher la chaudière (si tu as fait la config). Fais nous un retour si ca marche comme tu veux.

Je n’est pas encore fait la config, faut que je me penche un peu plus sur le sujet des thermostat. Chauffer la journée avec le soleil c’est surtout dans l’idée de profité de l’inertie du plancher chauffant.
Même si avant d’avir les panneaux et la domotique je n’avait la chaudière en route que la nuit sur la plage HC avec un thermostat programmable
Je reviendrait surement vers vous sur le sujet des thermostat pour ne pas polluer celui ci

Oui fait nous un thread, ca va certainement en intéresser plsu d’un. Et comme ça si tu as besoin de conseils on fera ça dans un endroit dédié.

Bonsoir

On est obligé d’ajouter les paramètres dans le fichier ou si ils n’y sont pas ils ne sont pas pris en compte ?
Cette nuit j’ai mes appareils’qui se déclenchent alors que je n’ai rien demandé ni rien changé

Merci

Le parametrage se fait dans le fichier oui et il faut redémarrer pour que les modifs soient pris en compte

Bonjour,

Je me suis peut être mal exprimé
J’ai mis le module à jour, mais je n’ai rien touché d’autre, ni ajouté aucune ligne dans le fichier config car les nouvelles fonctions ne m’intéressent pas à ce jour

Hors cette nuit SO m’a déclenché des automatismes

Ma question :
faut il renseigner le min_on_time_per_day_min à 0 pour qu’il ne déclenche rien ??

Hello @Chris73 ,

J’ai des devices qui n’ont pas de min chez moi et ils ne se déclenchent pas la nuit.
Tu peux m’envoyer la conf du device et les attributs de l’entité sensor.on_time_… associé à ce device stp quand ca se produit.

Les attributs sont accessibles dans Outils de dev / Etats. Fais un copier/coller avec le bouton de formattage </> stp.

Bonsoir,

Je suis dessus justement : la mes devices se réenclenchent depuis 0h00
Je vais voir ça et je reviens tout de suite

Je ne sais pas trop quoi mettre, mais voila ma config

algorithm:
  initial_temp: 1000
  min_temp: 0.1
  cooling_factor: 0.95
  max_iteration_number: 1000


devices:
  - name: "Twizy Rouge"
  # The switch that controls the tank pump
    entity_id: "switch.twizy_rouge"
  # the power of this pump
    power_max: 2000
  # Always usable
    check_usable_template: "{{ True }}"
  # 15 min minimum activation
    duration_min: 45
  # 5 min deactivation minimum
    duration_stop_min: 15
  # On enable/disable via a service call
    action_mode: "service_call"
  # The service enabling the switch
    activation_service: "switch/turn_on"
  # The service to deactivate the switch
    deactivation_service: "switch/turn_off"
  # We authorize the pump to start if there is 10% battery in the solar installation
  #  battery_soc_threshold: 0
    max_on_time_per_day_min: 300

  - name: "Twizy Bleu"
    entity_id: "switch.twizy_bleu"
    power_max: 2100
    check_usable_template: "{{ True }}"
    duration_min: 45
    duration_stop_min: 15
    action_mode: "service_call"
    activation_service: "switch/turn_on"
    deactivation_service: "switch/turn_off"
    max_on_time_per_day_min: 300


  - name: "Polaris"
    entity_id: "switch.polaris"
    power_max: 1000
    check_usable_template: "{{ True }}"
    duration_min: 15
    duration_stop_min: 5
    action_mode: "service_call"
    activation_service: "switch/turn_on"
    deactivation_service: "switch/turn_off"
    max_on_time_per_day_min: 120


  - name: "Radiateur SDB Parents"
    entity_id: "input_boolean.commutateur_sdb_parents"
    power_max: 950
    check_usable_template: "{{ True }}"
    duration_min: 15
    duration_stop_min: 5
    action_mode: "service_call"
    activation_service: "input_boolean/turn_on"
    deactivation_service: "input_boolean/turn_off"
    max_on_time_per_day_min: 240


  - name: "Radiateur SDB Enfants"
    entity_id: "input_boolean.commutateur_sdb_enfants"
    power_max: 1000
    check_usable_template: "{{ True }}"
    duration_min: 15
    duration_stop_min: 5
    action_mode: "service_call"
    activation_service: "input_boolean/turn_on"
    deactivation_service: "input_boolean/turn_off"
    max_on_time_per_day_min: 120

Ce soir, polaris et les 2 radiateurs se sont réenclenchés à minuit par ex
j’avais éteins manuellement les twizy qui étaient en route quand je suis rentré à 23h

state_class: measurement
last_datetime_on: null
max_on_time_per_day_min: 120
max_on_time_per_day_sec: 7200
on_time_hms: "51:47"
max_on_time_hms: "2:00:00"
raz_time: "05:00:00"
should_be_forced_offpeak: false
offpeak_time: "23:59:00"
unit_of_measurement: s
device_class: duration
icon: mdi:timer-play
friendly_name: Solar Optimizer-Polaris On time today

state_class: measurement
last_datetime_on: null
max_on_time_per_day_min: 240
max_on_time_per_day_sec: 14400
on_time_hms: "3:54:46"
max_on_time_hms: "4:00:00"
raz_time: "05:00:00"
should_be_forced_offpeak: false
offpeak_time: "23:59:00"
unit_of_measurement: s
device_class: duration
icon: mdi:timer-play
friendly_name: Solar Optimizer-Radiateur SDB Parents On time today



state_class: measurement
last_datetime_on: null
max_on_time_per_day_min: 120
max_on_time_per_day_sec: 7200
on_time_hms: "2:06:31"
max_on_time_hms: "2:00:00"
raz_time: "05:00:00"
should_be_forced_offpeak: false
offpeak_time: "23:59:00"
unit_of_measurement: s
device_class: duration
icon: mdi:timer-play
friendly_name: Solar Optimizer-Radiateur SDB Enfants On time today

idem pour moi, restart a 0h00 :

   - name: "Chargeur"
     entity_id: "switch.pz10_battery_in"
     power_max: 110 
     check_usable_template: "{{ (states('sensor.pz10_battery_in_energy_counter') | float) | round(2) < 1.41}}"
     duration_min: 20 
     duration_stop_min: 5
     action_mode: "service_call"
     activation_service: "switch/turn_on"
     deactivation_service: "switch/turn_off"
     # We authorize the pump to start if there is 10% battery in the solar installation
     #battery_soc_threshold: 10
     # One hour per day maximum
     max_on_time_per_day_min: 450
     #start time of off-peak hours
     #offpeak_time: 
     #the minimal time on 'on' per day in minutes
     #min_on_day_per_day_min:

Le sensor :

tate_class: measurement
last_datetime_on: null
max_on_time_per_day_min: 450
max_on_time_per_day_sec: 27000
on_time_hms: 4:02:07
max_on_time_hms: 7:30:00
raz_time: 05:00:00
should_be_forced_offpeak: true
offpeak_time: 23:59:00
unit_of_measurement: s
device_class: duration
icon: mdi:timer-play
friendly_name: Solar Optimizer-Chargeur On time today

Et celui la, j’ai vu qu’il s’était enclenché vers 12h ce matin (midi), alors que la production n’était pas suffisante

state_class: measurement
last_datetime_on: null
max_on_time_per_day_min: 300
max_on_time_per_day_sec: 18000
on_time_hms: "7:13:18"
max_on_time_hms: "5:00:00"
raz_time: "05:00:00"
should_be_forced_offpeak: false
offpeak_time: "23:59:00"
unit_of_measurement: s
device_class: duration
icon: mdi:timer-play
friendly_name: Solar Optimizer-Twizy Rouge On time today

Hello @Chris73,

Si je regarde le premier should_be_forced_offpeak: false ca veut dire que ce n’est pas SO qui a forcé l’activation.

Pareil pour le 2ème should_be_forced_offpeak: false

Pour toi @FuReT, c’est différent:

Donc c’est bien SO qui a forcé l’activation en HC. Comme il n’y a pas de min, ca n’aurait pas du se produire. Ca sent le bug quand même. Je vais regarder ça.