J’ai pas mal modifié mes automatisations pour obtenir quelque chose de plus propre.
Visuellement, cela ne change pas grand-chose hormis l’ajout de la consommation d’eau adoucie ainsi que la part d’eau chaude. Cela rend surtout les informations plus cohérentes à l’affichage, car elles sont maintenant toutes échantillonnées au même moment. De plus, j’ai regroupé les entités externes en variables, ce qui facilitera la configuration pour ceux qui souhaitent réutiliser le code.
IMPORTANT : N’oubliez pas d’activer le mode « transition automatique » pour que les écrans défilent. Il faut également adapter la périodicité de l’automatisation en fonction de la durée totale de vos écrans. Par exemple, j’ai 7 écrans de 8s donc nous sommes à 7x8=56s (6x dans l’automatisation + 1x de l’appli TIME de 8s)
Voilà le résultat :
- Le jour :
- La nuit :
=> En haut à droite => Couleur actuelle TEMPO
=> En bas à droite => Prochaine couleur TEMPO
Automatisation : Définition des écrans Custom
alias: Afficheur AWTRIX - Définition des écrans Custom
description: ""
trigger:
- platform: time_pattern
seconds: /56
condition: []
action:
- variables:
temperature: "{{ (states('sensor.temperature_jardin') | float) | round(1) }}"
conso_eau_adoucie: "{{ (states('sensor.conso_eau_du_jour') | float * 1000 )| round(0)}}"
conso_eau_chaude: >-
{{ (states('sensor.conso_eau_chaude_du_jour') | float * 1000 )|
round(0)}}
conso_enedis: "{{( states('sensor.enedis_power') | float / 1000 )| round(1)}}"
production: "{{ (states('sensor.solaire_power') | float / 1000) | round(1) }}"
Energie_produite: "{{ states('sensor.daily_solar_energy') | float }}"
energie_importee: "{{ states('sensor.daily_grid_energy_imported') | float }}"
energie_exportee: "{{ states('sensor.daily_grid_energy_exported') | float }}"
conso_enedis_gain: >-
{{ ((Energie_produite-energie_exportee) /
(energie_importee+(Energie_produite-energie_exportee)) * 100) |
round(0)}}
duree_temperature: 8
duree_production: 8
duree_enedis: 8
duree_economies: 8
duree_eau_adoucie: 8
duree_eau_chaude: 8
seuil_prod_min: 0.1
seuil_gain_min: 2
icon_temperature: "62850"
icon_production_nuit: "62775"
icon_production_jour: "62774"
icon_enedis_import: "62776"
icon_enedis_export: "62777"
icon_eau_adoucie: "30124"
icon_economies: "25681"
icon_eau_chaude: "62876"
- sequence:
- sequence:
- data:
topic: awtrix_4620c0/custom/00_Temperature
payload: |
{
"icon": "{{ icon_temperature }}",
"text": "{{ temperature }}°C",
"duration": {{ duree_temperature }}
}
action: mqtt.publish
- sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ production < seuil_prod_min }}"
sequence:
- data:
topic: awtrix_4620c0/custom/01_Production_PV
payload: |
{
"icon": "{{ icon_production_nuit }}",
"text": "0 kW",
"duration": {{ duree_production }}
}
action: mqtt.publish
- conditions:
- condition: template
value_template: "{{ production >= seuil_prod_min }}"
sequence:
- data:
topic: awtrix_4620c0/custom/01_Production_PV
payload: |
{
"icon": "{{ icon_production_jour }}",
"text": "{{ production }}kW",
"duration": {{ duree_production }}
}
action: mqtt.publish
- sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ conso_enedis <= 0 }}"
sequence:
- data:
topic: awtrix_4620c0/custom/02_Enedis
payload: |
{
"icon": "{{ icon_enedis_export }}",
"text": "{{ -conso_enedis }}kW",
"duration": {{ duree_enedis }}
}
action: mqtt.publish
- conditions:
- condition: template
value_template: "{{ conso_enedis > 0 }}"
sequence:
- data:
topic: awtrix_4620c0/custom/02_Enedis
payload: |
{
"icon": "{{ icon_enedis_import }}",
"text": "{{ conso_enedis }}kW",
"duration": {{ duree_enedis }}
}
action: mqtt.publish
- choose:
- conditions:
- condition: template
value_template: "{{ conso_enedis_gain <= seuil_gain_min }}"
sequence:
- data:
topic: awtrix_4620c0/custom/03_Economies
payload: |
{
"icon": "{{ icon_economies }}",
"text": "0 %",
"duration": {{ duree_economies }}
}
action: mqtt.publish
- conditions:
- condition: template
value_template: "{{ conso_enedis_gain > seuil_gain_min }}"
sequence:
- data:
topic: awtrix_4620c0/custom/03_Economies
payload: |
{
"icon": "{{ icon_economies }}",
"text": "{{ -conso_enedis_gain }} %",
"rainbow": true,
"duration": {{ duree_economies }}
}
action: mqtt.publish
- sequence:
- data:
topic: awtrix_4620c0/custom/04_Eau_adoucie
payload: |
{
"icon": "{{ icon_eau_adoucie }}",
"text": "{{ conso_eau_adoucie }} L",
"duration": {{ duree_eau_adoucie }}
}
action: mqtt.publish
- sequence:
- data:
topic: awtrix_4620c0/custom/05_Eau_chaude
payload: |
{
"icon": "{{ icon_eau_chaude }}",
"text": "{{ conso_eau_chaude }} L",
"duration": {{ duree_eau_chaude }}
}
action: mqtt.publish
mode: single
Automatisation : Gestion des couleurs TEMPO
alias: Afficheur AWTRIX - Gestion des couleurs TEMPO
description: ""
triggers:
- minutes: /1
trigger: time_pattern
conditions: []
actions:
- variables:
couleur_actuelle: sensor.rte_tempo_couleur_actuelle
prochaine_couleur: sensor.rte_tempo_prochaine_couleur
- sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ states(prochaine_couleur) == 'Bleu' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator3
payload: "{\"color\":[0,0,255]}"
- conditions:
- condition: template
value_template: "{{ states(prochaine_couleur) == 'Blanc' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator3
payload: "{\"color\":[255,255,255]}"
- conditions:
- condition: template
value_template: "{{ states(prochaine_couleur) == 'Rouge' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator3
payload: "{\"color\":[255,0,0]}"
- conditions:
- condition: not
conditions:
- condition: template
value_template: "{{ states(prochaine_couleur) == 'Bleu' }}"
- condition: template
value_template: "{{ states(prochaine_couleur) == 'Blanc' }}"
- condition: template
value_template: "{{ states(prochaine_couleur) == 'Rouge' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator3
payload: "{\"color\":[0,0,0]}"
- choose:
- conditions:
- condition: template
value_template: "{{ states(couleur_actuelle) == 'Bleu' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator1
payload: "{\"color\":[0,0,255]}"
- conditions:
- condition: template
value_template: "{{ states(couleur_actuelle) == 'Blanc' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator1
payload: "{\"color\":[255,255,255]}"
- conditions:
- condition: template
value_template: "{{ states(couleur_actuelle) == 'Rouge' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator1
payload: "{\"color\":[255,0,0]}"
- conditions:
- condition: not
conditions:
- condition: template
value_template: "{{ states(couleur_actuelle) == 'Bleu' }}"
- condition: template
value_template: "{{ states(couleur_actuelle) == 'Blanc' }}"
- condition: template
value_template: "{{ states(couleur_actuelle) == 'Rouge' }}"
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_4620c0/indicator1
payload: "{\"color\":[0,0,0]}"
mode: single
##############################################################
[EDIT du 01/10/2024] :
- J’ai modifié l’automatisation TEMPO car elle provoquait une fuite mémoire dans l’écran qui faisait planter celui-ci au bout de quelques heures/jours du fait de l’utilisation de l’action « light.turn_off »/« light.turn_on ». J’utilise maintenant l’action « mqtt.publish ».
- L’explication se trouve içi ; Flashing yellow and red pixels after some period of working hours · Issue #519 · Blueforcer/awtrix3 · GitHub