Awtrix et monitoring de la conso électrique +production solaire + temperature + TEMPO Rouge

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 :
    AWTRIX_JOUR
  • La nuit :
    AWTRIX_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] :

4 « J'aime »