salut Mathep,
J’ai fait comme tu as indiqué mais bien que tout soit fonctionnel, je n’ai aucun temps de production qui s’affiche, il reste à zéro. serai ce lié à history_stats?
Il me manque quelque chose je pense.
Merci d’avance.
(ça concerne ta petite carte indiquant la production on/off et le temps total où les panneaux ont produit dans la journée)
@didj34, peux-tu afficher ton code ?
Bien sur, le voici.
dans sensor j’ai mis:
# history demarrage panneaux solaire
- platform: history_stats
name: temps de production aujourd'hui
entity_id: binary_sensor.production_solaire
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
et dans binary sensor:
# Determine quand les panneaux solaire commencent a produire
- platform: template
sensors:
solar_run:
friendly_name: "production_solaire"
delay_off:
minutes: 2
value_template: >-
{{ states('sensor.envoy_122012103733_current_energy_production')|float > 8 }}
Bonjour à tous je reviens sur le sujet car après 1 an je n’ai toujours pas réussi à avoir les export et import le reste fonctionne bien je pense que ça vient de ma config.yaml, j’ai beau lire ou relire et modifié rien y fait voici ma config:
sensor:
- platform: rflink
automatic_add: true
# history demarrage panneaux solaire
- platform: history_stats
name: Solar ON today
entity_id: binary_sensor.solar_run
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
template:
- sensors:
# calcul power export
- name: energy_exporting
friendly_name: "Current Energy Exporting"
value_template: "{{ [0, (states('sensor.envoy_122035055651_current_power_production') | int - states('sensor.envoy_122035055651_current_power_consumption') | int)] | max }}"
unit_of_measurement: 'W'
icon_template: 'mdi:flash'
# calcul power import
- name: energy_importing
friendly_name: "Current Energy Importing"
value_template: "{{ [0, (states('sensor.envoy_122035055651_current_power_consumption') | int - states('sensor.envoy_122035055651_current_power_production') | int)] | max }}"
unit_of_measurement: 'W'
icon_template: 'mdi:flash'
# Création de l'énergie exportée sur le réseau en Wh
- platform: integration
source: sensor.energy_exporting
name: energy_exported_wh
unit_prefix: k
round: 2
method: left
# Création de l'énergie importée du réseau en Wh
- platform: integration
source: sensor.energy_importing
name: energy_imported_wh
unit_prefix: k
round: 2
method: left
# Utility Meters pour historisation
utility_meter:
daily_energy_import:
source: sensor.energy_importing
cycle: daily
daily_energy_export:
source: sensor.energy_exported_wh
cycle: daily
Merci d’avance
Qu’est ce que tu as comme valeur du coup dans tes entités?
As-tu essayé avec les outils de développement/modèles pour confirmer que tes calculs marchent?
j’ai regardé dans développement/modèles :
Type de résultat: string
# calcul power export
- name: energy_exporting
friendly_name: "Current Energy Exporting"
value_template: "22"
unit_of_measurement: 'W'
icon_template: 'mdi:flash'
Ce modèle écoute les événements de changement d'état suivants:
Entité: sensor.envoy_122035055651_current_power_consumption
Entité: sensor.envoy_122035055651_current_power_production
En fait je pensais plutôt de mettre ces formules là dans le testeur de modèles:
{{ [0, (states('sensor.envoy_122035055651_current_power_production') | int - states('sensor.envoy_122035055651_current_power_consumption') | int)] | max }}
Pour trouver ton problème faudrait déjà confirmer que ces entités ont des valeurs
Et si non, où ça commence à ne pas marcher…:
energy_exporting
energy_importing
energy_exported_wh
energy_imported_wh
je commence à comprendre comment fonctionne ton modèle
energy_exporting = 25 (chiffre bizarre)
energy_importing = 0 (bizarre aussi)
energy_exported_wh = je ne sais pas quoi mettre pour qu’il me donne un chiffre
energy_imported_wh = idem pour celui là
Pour tes calculs… si ça te dit « 25 » comme c’est des watts ça voudrait dire qu’à ce moment là tu exportait 25W…
Et l’import il est à 0… ce serait logique vu ce que tu as mis en valeur
[0, (states('sensor.envoy_...] | Max
Ca te renvoie le max entre 0 et le calcul d’après… si exporting à une valeur, importing sera à 0… vu que les 2 calculs sont l’inverse l’un de l’autre…
Pour les autres, par exemple:
{{ states(« sensor.energy_exported_wh ») }}
Moi je mettrais toutes les entités que tu as dans cette histoire et tous les calculs… juste pour voir ce que ça vaut.
Merci AlexHass, je suis un peu bête mais que veux-tu dire dans mettre toutes les entités que j’ai dans cette histoire et tout les calculs ?
Tu parles de toutes mes entités enphase ? car j’en ai 8
et 2 autres avec daily import et export
Pas de soucis, pas de question bête
Ce que je voulais dire dans les outils de développement, pour t’assurer qu’il y a bien des valeurs qui sont trouvée et pour vérifier que tes calculs sont bon tu peux y mettre toutes tes entités utilisées que ce soit celles de Enphase ou celles que tu as définies à la main.
Comme tu veux calculer les quantités importées et exportée chaque jour, et que là ça te met 0 pour les 2, ça veut dire qu’à un moment quelque chose est faux, mal configuré ou oublié.
Donc a un moment entre ta conso + ta prod de en phase jusqu’au moment de calculer le daily_energy_import & export… quelqeu chose ne se passe pas bien…
Bonjour MATHEP,
Tout d’abord je te remercie pour cet échange et ce partage !
J’ai essayé de suivre au mieux tes indications qui sont très clair.
Cependant, j’arrive au bout et je tombe sur cela :
Invalid config for [sensor]: required key not provided @ data[‹ platform ›]. Got None. (See /config/configuration.yaml, line 21).
Invalid config for [sensor.template]: [delay_off] is an invalid option for [sensor.template]. Check: sensor.template->sensors->solar_run->delay_off. (See ?, line ?).
La premiere ligne d’erreur est visiblement liée à la ligne 28 :# Creation energie journaliere importée en Wh
La deuxième ne me parle pas !
ET pour daily_energy_import je ne devrait pas avoir configurer une ligne de code quelque part ?
Raspbery Pi
- platform: systemmonitor
resources:- type: disk_use_percent
arg: /home - type: memory_use_percent
- type: swap_use_percent
- type: processor_use
- type: last_boot
- type: disk_use_percent
calcul power export
- platform: template
sensors:
energy_exporting:
friendly_name: « Current Energy Exporting »
value_template: « {{ [0, (states(‹ sensor.envoy_122214050220_current_power_production ›) | int - states(‹ sensor.envoy_122214050220_current_power_consumption ›) | int)] | max }} »
unit_of_measurement: ‹ W ›
icon_template: ‹ mdi:flash ›
calcul power import
- platform: template
sensors:
energy_importing:
friendly_name: « Current Energy Importing »
value_template: « {{ [0, (states(‹ sensor.envoy_122214050220_current_power_consumption ›) | int - states(‹ sensor.envoy_122214050220_current_power_production ›) | int)] | max }} »
unit_of_measurement: ‹ W ›
icon_template: ‹ mdi:flash ›
Creation energie journaliere importée en Wh
- utility_meter:
daily_energy_import:
source: sensor.energy_imported_wh
cycle: daily
Création du taux d’Independance Energetique
- platform: template
sensors:
taux_independance_energetique:
friendly_name: ‹ taux Independance Energetique ›
value_template: >
{{ ((1 - ((states(‹ sensor.daily_energy_import ›)|float *1000 / states(‹ sensor.envoy_122214050220_today_s_energy_consumption ›)|float)))*100)| round(1) }}
unit_of_measurement: ‹ % ›
Determine quand les panneaux solaire commencent a produire
- platform: template
sensors:
solar_run:
friendly_name: « Solar Run »
delay_off: minutes 2
value_template: >-
{{ states(‹ sensor.envoy_122214050220_current_power_production ›)|float > 8 }}
history demarage panneaux solaire
-
platform: history_stats
name: Solar ON today
entity_id: binary_sensor.solar_run
state: « on »
type: time
start: « {{ now().replace(hour=0, minute=0, second=0) }} »
end: « {{ now() }} »EnPhase Data
-
platform: enphase_envoy
name: pv
ip_address: 192.168.xxx.xxx
username: envoy
monitored_conditions:- production
- daily_production
- seven_days_production
- seven_days_consumption
- lifetime_production
- lifetime_consumption
- consumption
- daily_consumption
- inverters
Salut,
Avant toutes choses si tu partages du yaml, utilise l’option « texte préformaté » : </>
Comme l’indentation est importante c’est plus simple!
Par exemple:
Mon exemple
recorder:
purge_keep_days: 7
include:
entities:
- sensor.alarm_status
devient
# Mon exemple
recorder:
purge_keep_days: 7
include:
entities:
- sensor.alarm_status
C’est quand même plus lisible, non?
Ensuite pour tes erreurs.
Cette erreur, c’est difficile à dire sans la lisibilité correcte avec les indentations. Mais c’est un soucis de formatage surement.
Celle-ci est explicite, delay_off n’est pas une option possible pour un sensor template.
Tu l’as dans ton sensor « solar_run » avec « delay_off: minutes 2 » … je ne comprends pas ce que tu veux faire avec ça.
## Raspbery Pi
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /home
- type: memory_use_percent
- type: swap_use_percent
- type: processor_use
- type: last_boot
# calcul power export
- platform: template
sensors:
energy_exporting:
friendly_name: "Current Energy Exporting"
value_template: "{{ [0, (states('sensor.envoy_122214050220_current_power_production') | int - states('sensor.envoy_122214050220_current_power_consumption') | int)] | max }}"
unit_of_measurement: 'W'
icon_template: 'mdi:flash'
# calcul power import
- platform: template
sensors:
energy_importing:
friendly_name: "Current Energy Importing"
value_template: "{{ [0, (states('sensor.envoy_122214050220_current_power_consumption') | int - states('sensor.envoy_122214050220_current_power_production') | int)] | max }}"
unit_of_measurement: 'W'
icon_template: 'mdi:flash'
# Creation energie journaliere importée en Wh
- utility_meter:
daily_energy_import:
source: sensor.energy_imported_wh
cycle: daily
# Création du taux d’Independance Energetique
- platform: template
sensors:
taux_independance_energetique:
friendly_name: 'taux Independance Energetique'
value_template: >
{{ ((1 - ((states('sensor.daily_energy_import')|float *1000 / states('sensor.envoy_122214050220_today_s_energy_consumption')|float)))*100)| round(1) }}
unit_of_measurement: '%'
# Determine quand les panneaux solaire commencent a produire
- platform: template
sensors:
solar_run:
friendly_name: "Solar Run"
delay_off: minutes 2
value_template: >-
{{ states('sensor.envoy_122214050220_current_power_production')|float > 8 }}
# history demarage panneaux solaire
- platform: history_stats
name: Solar ON today
entity_id: binary_sensor.solar_run
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
# EnPhase Data
- platform: enphase_envoy
name: La lune
ip_address: 192.168.xxx.6xx
username: envoy
monitored_conditions:
- production
- daily_production
- seven_days_production
- seven_days_consumption
- lifetime_production
- lifetime_consumption
- consumption
- daily_consumption
- inverters
Pour le sensor 2 minutes c’est un binary_sensor
Ce type de sensor est installé dans un fichier sensors.yaml ?
Merci
Alors j’ai trouvé les deux facteurs qui posaient problème
un sensor binarie
un utility_meter
Je les ai placé dans /config/configuration.yaml
Ca va mieux !
Je pense que le :
delay_off: minutes 2`
S’écrit plutôt comme ça:
delay_off:
minutes: 2
Pour les histoires de fichiers en fait la façon dont c’est organisé c’est basé sur le domaine,
« sensor » et « binary_sensor » sont 2 domaines distincts.
Donc quand tu ajoutes un fichier comme ça:
sensor: !include sensor.yaml
ça sous entend que tout ce qui se trouve dans ce fichier c’est du type sensor. Et tu ne peux pas y mettre d’autres types.
Si dans ton fichier config tu avais bcp de binary_sensor alors tu pourrais faire la même chose et créer un fichier de binary sensors.
Explication parfaitement clair !
Merci
Alors j’arrive à tout faire fonctionner. C’est très réussi. Cependant, y a t il un moyen pour sauvegarder les données et les relire ?
Merci