[Tuto] Home assistant et MsunPV
- netstf
- Hors Ligne
- Nouveau membre
- Messages : 6
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Ce qui est bizarre c'est que si tu as pris l'intégration sur le github tu devrais les avoir.
####### Sensors pour le dashboard energie. J'aurai très bien pu modifier directement les compteurs
####### mais j'ai fait le choix de créer de nouveaux sensors pour garder les compteurs tels qu'ils etaient à la base c'est à dire en négatif sur ma configuration.
- name: "energie_msunpv_enconso" #Consommation journalière
unique_id: "energie_msunpv_enconso"
icon: mdi:counter
state: "{{ (states('sensor.msunpv_enconso')|float /1000) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- name: "energie_msunpv_enpv_j" #Production panneaux journalière
unique_id: "energie_msunpv_enpv_j"
icon: mdi:counter
state: "{{ 0 if (states('sensor.msunpv_enpv_j')|float /1000) == 0 else (states('sensor.msunpv_enpv_j')|float /1000 *-1) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- name: "energie_msunpv_eninj" #Production injectée journalière
unique_id: "energie_msunpv_eninj"
icon: mdi:counter
state: "{{ 0 if (states('sensor.msunpv_eninj')|float /1000) == 0 else (states('sensor.msunpv_eninj')|float /1000 *-1) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Connexion ou Créer un compte pour participer à la conversation.
- netstf
- Hors Ligne
- Nouveau membre
- Messages : 6
- Remerciements reçus 0
Parfait ca fonctionne
Encore merci pour l'intégration
Connexion ou Créer un compte pour participer à la conversation.
- Defaliz
- Hors Ligne
- Membre platinium
- Messages : 348
- Remerciements reçus 21
J'utilise ton intégration depuis plusieurs mois avec succès...
J'ai intégré hier le yaml de la programmation horaire...
A quoi correspond ballon_timer1 a 4 ?
Dans le cas d'un msun 2x2...
Actuellement je n'ai aucune remontée mais N/A...
Rien de remarquable dans les logs...
Merci pour l'aide ..
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Festayros
- Hors Ligne
- Membre premium
- Messages : 124
- Remerciements reçus 1
je voudrais rajouter dans home assistant une jauge pour le pourcentage de chauffe de mon cumulus durant la journée (cumulus de 200l) avec temperature environ 55°) en sachant que la puissance est variable. Cette jauge devras être réinitialisé a minuit chaque jour. si input_boolean.cumulus_chaud est "on" alors la jauge doit être a 100% . sensor.energie_msunpv_powbal est la mesure de la puissance envoyé dans le cumulus.
Je ne comprends pas pourquoi la jauge ne fonctionne pas.
Je debute dans home assistant donc je pense qu'il y a des bugs
Automatisation.YAML
# automations.yaml
- alias: "Mettre à jour cumulus_chaud"
trigger:
- platform: state
entity_id:
- sensor.energie_msunpv_pow_reso
- sensor.energie_msunpv_powbal
for: "00:00:15"
condition:
condition: and
conditions:
- condition: numeric_state
entity_id: sensor.energie_msunpv_pow_reso
below: -100
- condition: numeric_state
entity_id: sensor.energie_msunpv_powbal
below: 20
action:
- service: input_boolean.turn_on
entity_id: input_boolean.cumulus_chaud
- alias: "Remettre cumulus_chaud à zéro à minuit"
trigger:
- platform: time
at: "00:00:00"
action:
- service: input_boolean.turn_off
entity_id: input_boolean.cumulus_chaud
- alias: 'Réinitialiser énergie quotidienne du cumulus'
trigger:
- platform: time
at: '00:10:00'
action:
- service: input_number.set_value
data:
entity_id: input_number.cumulus_energy_daily
value: 0
- alias: 'Mettre à jour énergie quotidienne du cumulus'
trigger:
- platform: state
entity_id: sensor.energy_cumulus
action:
- service: input_number.set_value
data_template:
entity_id: input_number.cumulus_energy_daily
value: >
{% set energie_precedente = states('input_number.cumulus_energy_daily') | float %}
{% set energie_actuelle = states('sensor.energy_cumulus') | float %}
{% set energie_a_ajouter = energie_actuelle - energie_precedente %}
{{ energie_a_ajouter | max(0) }}
- alias: 'Calcul du pourcentage de chauffe du cumulus'
trigger:
- platform: state
entity_id: sensor.energy_cumulus
action:
- service: input_number.set_value
data_template:
entity_id: input_number.cumulus_chauffe
value: >
{% if is_state('input_boolean.cumulus_chaud', 'on') %}
100
{% else %}
{% set energie = states('input_number.cumulus_energy_daily') | float %}
{% set energie_totale = 8.14 %} # Ajustez selon l'énergie nécessaire pour chauffer le cumulus à 55°C
{% set pourcentage = (energie / energie_totale) * 100 %}
{{ [pourcentage, 100] | min }}
{% endif %}
Fichier configuration.YAML
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
homeassistant:
packages: !include_dir_named packages
#test mise a 0 energy_cumulus pour jauge a 0
utility_meter:
energy_cumulus:
source: sensor.energie_msunpv_powbal
cycle: daily
#info cumulus chaud
input_boolean:
cumulus_chaud:
name: Cumulus Chaud
initial: off
icon: mdi:water-boiler
sensor:
#info voyant pour lancer machines
- platform: template
sensors:
energie_msunpv_voyant_info_machines:
friendly_name: "info machines"
unit_of_measurement: "W" # ou l'unité que vous utilisez
value_template: >
{% set pow_reso = states('sensor.energie_msunpv_pow_reso') | float %}
{% set pow_bal = states('sensor.energie_msunpv_powbal') | float %}
{% if pow_reso > 0 and pow_bal > 0 %}
{{ pow_reso + pow_bal }}
{% elif pow_reso < 0 and pow_bal > 0 %}
{{ -(pow_reso | abs + pow_bal) }}
{% else %}
0 # ou une autre valeur par défaut selon vos besoins
{% endif %}
- platform: template
sensors:
energie_msunpv_enconso_cout:
friendly_name: "Importé Calculé"
value_template: "{{ ((states('sensor.energie_msunpv_enconso')|float * 0.27) + 0.54)|round(2) }}"
unit_of_measurement: '€' # Adaptez cette unité selon vos besoins
- platform: integration
source: sensor.energie_msunpv_powbal
name: energy_cumulus
unit_prefix: k
round: 2
method: trapezoidal
input_number:
cumulus_energy_daily:
name: Energie quotidienne du cumulus
min: 0
max: 100
step: 0.01
unit_of_measurement: 'kWh'
cumulus_chauffe:
name: Pourcentage de chauffe du cumulus
min: 0
max: 100
step: 0.1
unit_of_measurement: '%'
La jauge
type: gauge
entity: input_number.cumulus_chauffe
min: 0
max: 100
name: Chauffe du Cumulus
unit: '%'
severity:
green: 0
yellow: 50
red: 75
layout_options:
grid_columns: 2
grid_rows: auto
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Donc toute la partie pour comptabiliser ce qui va au cumulus est inutile ainsi que la remise à zéro du cumul.
Il suffit de rajouter ce compteur EnRBal dans l'intégration si ce n'est pas déjà le cas et ensuite de ce servir de la valeur de ce compteur et de la conso estimée du cumulus (8.14 kWh dans ton exemple) pour être chaud pour faire la jauge.
Merci d'avoir rajouter le code pour plus de clarté. Je vais faire un essai avec ce que je t'ai indiqué ci-dessus.
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Tu modifies la partie compteurs de ton ton fichier msunpv_2_2.yaml pour passer de ça :
####### Les compteurs
- name: msunpv_enconso #Consommation réseau journalière
unique_id: "msunpv_enconso"
icon: mdi:transmission-tower-export
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[0]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
- name: msunpv_eninj #Production injectée journalière
unique_id: "msunpv_eninj"
icon: mdi:transmission-tower-import
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[1]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[1]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
- name: msunpv_enpv_j #Production panneaux journalière
unique_id: "msunpv_enpv_j"
icon: mdi:solar-power-variant-outline
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[2]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[2]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
- name: msunpv_enpv_p #Production panneaux totale
unique_id: "msunpv_enpv_p"
icon: mdi:solar-power-variant-outline
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[3]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[3]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
A ça :
####### Les compteurs
- name: msunpv_enconso #Consommation réseau journalière
unique_id: "msunpv_enconso"
icon: mdi:transmission-tower-export
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[0]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
- name: msunpv_eninj #Production injectée journalière
unique_id: "msunpv_eninj"
icon: mdi:transmission-tower-import
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[1]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[1]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
- name: msunpv_enrbal #Production injectée cumulus journalière
unique_id: "msunpv_enrbal"
icon: mdi:water-boiler
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[2]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
Tu redémarres HA et tu devrais maintenant avoir un nouveau sensor nommé msunpv_enrbal qui contiendra en Wh l'energie envoyée vers le cumulus dans la journée.
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Tu colles dans ce fichier le code suivant :
####### Les sensors
template:
- sensor:
- name: cumulus_chaud_percent # La valeur de 8140 dans la partie state peut être ajustée selon l'énergie nécessaire pour chauffer le cumulus à 55°C
unique_id: "cumulus_chaud_percent"
state: >-
{% if is_state('input_boolean.cumulus_chaud', 'on') %}
100
{% else %}
{% set energie = states('sensor.msunpv_enrbal') | float %}
{% set energie_totale = 8140 %}
{% set pourcentage = (energie / energie_totale) * 100 %}
{{ pourcentage | round(2) }}
{% endif %}
input_boolean:
cumulus_chaud:
name: Cumulus chaud
icon: mdi:water-boiler
input_text:
last_chauffe_solaire_cumulus:
name: Cumulus - Dernière chauffe solaire
####### Les automatisations
automation:
- id: 'msunpv_cumulus_chaud'
alias: Mettre à jour cumulus_chaud
description: ""
trigger:
- platform: template
value_template: >-
{{ states('sensor.msunpv_pow_reso')|float(0) < 100 and
states('sensor.msunpv_powbal')|float(0) < 20 }}
for:
hours: 0
minutes: 2
seconds: 0
condition: []
action:
- target:
entity_id:
- input_boolean.cumulus_chaud
data: {}
action: input_boolean.turn_off
- data: {}
target:
entity_id: input_boolean.cumulus_chaud
action: input_boolean.turn_on
- data:
value: "{{ (as_local(states.input_boolean.cumulus_chaud.last_changed)) }}"
target:
entity_id: input_text.last_chauffe_solaire_cumulus
action: input_text.set_value
mode: single
- id: 'msunpv_reset_cumulus_chaud'
alias: Remettre cumulus_chaud à zéro à minuit
trigger:
- platform: time
at: "00:00:00"
action:
- service: input_boolean.turn_off
entity_id: input_boolean.cumulus_chaud
Tu supprimes (ou commentes) dans ton fichier config les lignes :
#test mise a 0 energy_cumulus pour jauge a 0
utility_meter:
energy_cumulus:
source: sensor.energie_msunpv_powbal
cycle: daily
#info cumulus chaud
input_boolean:
cumulus_chaud:
name: Cumulus Chaud
initial: off
icon: mdi:water-boiler
Ainsi que :
- platform: integration
source: sensor.energie_msunpv_powbal
name: energy_cumulus
unit_prefix: k
round: 2
method: trapezoidal
input_number:
cumulus_energy_daily:
name: Energie quotidienne du cumulus
min: 0
max: 100
step: 0.01
unit_of_measurement: 'kWh'
cumulus_chauffe:
name: Pourcentage de chauffe du cumulus
min: 0
max: 100
step: 0.1
unit_of_measurement: '%'
Tu supprimes également tes 3 automatisations qui ne serviront plus.
Tu redémarres encore une fois HA
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Tu remplace ta carte jauge par :
type: gauge
entity: sensor.cumulus_chaud_percent
min: 0
max: 100
name: Chauffe du Cumulus
unit: '%'
severity:
green: 0
yellow: 50
red: 75
layout_options:
grid_columns: 2
grid_rows: auto
Cela devrait correspondre plus ou moins à ce que tu voulais faire. Je dis plus ou moins car je ne suis pas en mesure de tester n'utilisant pas la même config.
Il se peut qu'il y ai quelques ajustement à faire mais tu me diras ça.
Connexion ou Créer un compte pour participer à la conversation.
- Festayros
- Hors Ligne
- Membre premium
- Messages : 124
- Remerciements reçus 1
il y a une erreur sur la jauge sur entity: sensor.cumulus_chaud_percent
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Je crois que j'ai compris, je verifie
Reprends cette partie j'avais oublié une partie du code dans le fichier à créer:
ard-tek.com/index.php/forum/vos-installa...unpv?start=285#20299
Connexion ou Créer un compte pour participer à la conversation.
- Festayros
- Hors Ligne
- Membre premium
- Messages : 124
- Remerciements reçus 1
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Connexion ou Créer un compte pour participer à la conversation.
- Festayros
- Hors Ligne
- Membre premium
- Messages : 124
- Remerciements reçus 1
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- MSun-PV
- Vos installations
- [Tuto] Home assistant et MsunPV