Bon, voilà, j’ai fini.
Voilà ce que ça donne :
Mode normal :
Mode jour rouge :
Pour réaliser cette carte :
Ajouter dans votre fichier configuration.yaml (je mets le fichier template_voltalis.yaml dans /config/YAML/)
template: !include /config/YAML/template_voltalis.yaml
Le contenu du fichier template_voltalis.yaml
Ce fichier permet de créer 2 senseurs : un pour le nom du switch / l’autre pour un nom compréhensible par l’utilisateur.
Ce fichier est hélas à modifier pour vos programmes Voltalis et à chaque programme ajouté / supprimé / renommé. Seul ce fichier est à modifier, le reste est générique.
# Sensor qui permet de mémoriser le programme en cours dans l'intégration Voltalis
# Attention, les modes rapides sont prioritaires !
sensor:
- name: voltalis_current_program_name
icon: mdi:heat-wave
unique_id: BBD098D2-8447-4CB2-8B54-0A01D228A895
state: >-
{# Voir la documentation : https://www.voltalis.com/faq/parametrage-modes-rapides#:~:text=Vous%20pouvez%20param%C3%A9trer%20vous%2Dm%C3%AAme,%3E%20Configuration%20des%20modes%20rapides). #}
{# Le mode rapide est prioritaire, il doit être placé au début ! #}
{% if is_state('switch.quicksettings_athome', 'on') %}
Mode rapide - à la maison
{% elif is_state('switch.quicksettings_shortleave', 'on') %}
Mode rapide - absence courte
{% elif is_state('switch.quicksettings_longleave', 'on') %}
Moder rapide - absence longue
{% elif is_state('switch.normal', 'on') %}
Normal
{% elif is_state('switch.journee_rouge', 'on') %}
Journée Rouge
{% elif is_state('switch.teletravail', 'on') %}
Télétravail
{% elif is_state('switch.vacances_maison_maman', 'on') %}
Maman
{% else %}
Aucun
{% endif %}
- name: voltalis_current_program_switch
icon: mdi:heat-wave
unique_id: 0A1C5E6D-B1CE-4942-B3BA-F8FE04CBD7E1
device_class: enum
attributes:
options: "{{ ['none',
'switch.quicksettings_athome',
'switch.quicksettings_shortleave',
'switch.quicksettings_longleave',
'switch.normal',
'switch.journee_rouge',
'switch.teletravail',
'switch.vacances_maison_maman',
] }}"
state: >-
{# Voir la documentation : https://www.voltalis.com/faq/parametrage-modes-rapides#:~:text=Vous%20pouvez%20param%C3%A9trer%20vous%2Dm%C3%AAme,%3E%20Configuration%20des%20modes%20rapides). #}
{# Le mode rapide est prioritaire, il doit être placé au début ! #}
{% if is_state('switch.quicksettings_athome', 'on') %}
switch.quicksettings_athome
{% elif is_state('switch.quicksettings_shortleave', 'on') %}
switch.quicksettings_shortleave
{% elif is_state('switch.quicksettings_longleave', 'on') %}
switch.quicksettings_longleave
{% elif is_state('switch.normal', 'on') %}
switch.normal
{% elif is_state('switch.journee_rouge', 'on') %}
switch.journee_rouge
{% elif is_state('switch.teletravail', 'on') %}
switch.teletravail
{% elif is_state('switch.vacances_maison_maman', 'on') %}
switch.vacances_maison_maman
{% else %}
none
{% endif %}
Puis créer deux entrées texte qui servent à restaurer le programme voltalis qui était activé avant le passage à la journée rouge :
- input.text.voltalis_previous_program_rouge_name qui contient le nom du programme à restaurer en sortie de la journée rouge.
- input.text.voltalis_previous_program_rouge_switch qui contient le nom du switch à restaurer en sortie de la journée rouge.
Il faut ensuite créer deux automatisations :
Pour entrée en journée rouge :
alias: Entrée jour rouge
description: >-
Lorsque passe à un jour rouge, passe le programme en cours de Voltalis à un
jour rouge.
triggers:
- trigger: state
entity_id:
- binary_sensor.rte_tempo_heures_creuses
from: "on"
to: "off"
for:
hours: 0
minutes: 0
seconds: 20
conditions:
- condition: state
entity_id: sensor.rte_tempo_couleur_actuelle
state: Rouge
actions:
- action: input_text.set_value
metadata: {}
data:
value: "{{ states('sensor.voltalis_current_program_switch') }}"
target:
entity_id: input_text.voltalis_previous_program_rouge_switch
- action: input_text.set_value
metadata: {}
data:
value: "{{ states('sensor.voltalis_current_program_name') }}"
target:
entity_id: input_text.voltalis_previous_program_rouge_name
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.journee_rouge
mode: single
Pour sortir de la journée rouge :
alias: Sortie jour rouge
description: >-
Lorsque quitte un jour rouge ou que l'on passe en heure creuse, passe le
programme en cours de Voltalis a celui qui était mémorisé avant.
triggers:
- trigger: state
entity_id:
- binary_sensor.rte_tempo_heures_creuses
from: "off"
to: "on"
for:
hours: 0
minutes: 0
seconds: 20
conditions:
- condition: template
value_template: >-
{{ not is_state('input_text.voltalis_previous_program_rouge_switch', '')
}}
actions:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: |
{{ states('input_text.voltalis_previous_program_rouge_switch') }}
- action: input_text.set_value
metadata: {}
data:
value: ""
target:
entity_id: input_text.voltalis_previous_program_rouge_switch
- action: input_text.set_value
metadata: {}
data:
value: ""
target:
entity_id: input_text.voltalis_previous_program_rouge_name
mode: single
Puis la carte :
Attention, les lignes vides sous < h1 >< center >< font color=#1565c0 >Voltalis< /font >< /center >< /h1 > sont a respecter sinon les étoiles sont visibles et ne passe pas le texte en gras.
Il faut ajouter la carte markdown :
square: false
type: grid
columns: 1
cards:
- type: markdown
content: >
<h1><center><font color=#1565c0>Voltalis</font></center></h1>
Le mode <font color=#1565c0>**{{
states('sensor.voltalis_current_program_name') }}**</font> est
actuellement actif.<br/> <font color=red>**Attention**</font>, les modes
rapides sont prioritaires sur les autres modes.
{% if not is_state('input_text.voltalis_previous_program_rouge_switch',
'') %}
Le mode <font color=#c62828>**Journée rouge**</font> a été activé
automatiquement.<br/> Lors du passage en heure creuse, le mode <font
color=#1565c0>**{{
states('input_text.voltalis_previous_program_rouge_name') }}**</font> sera
réactivé. {% endif %}
card_mod:
style: >
{% if not is_state('input_text.voltalis_previous_program_rouge_switch',
'') %} ha-card {
background-color: #FF60A050;
{% endif %}
- type: entities
entities:
- entity: switch.normal
icon: mdi:radiator
name: Mode Normal
- entity: switch.journee_rouge
name: Mode Journée Rouge
icon: mdi:radiator
- entity: switch.teletravail
icon: mdi:radiator
name: Mode Télétravail
- entity: switch.vacances_maison_maman
icon: mdi:radiator
name: Mode Maman
- entity: switch.quicksettings_athome
icon: mdi:radiator
name: "Mode rapide : A la maison"
- entity: switch.quicksettings_shortleave
icon: mdi:radiator
name: "Mode rapide : Absence courte"
- entity: switch.quicksettings_longleave
icon: mdi:radiator
name: "Mode rapide : Absence prolongée"
show_header_toggle: false
state_color: true
Voilà, c’est fait.
Amélioration : Je ne sais pas ce qui est possible et ce qui ne l’est pas.
- N’avoir qu’un seule sensor qui regroupe name et switch (est-ce possible ?)
- N’avoir qu’un seule texte qui regroupe name et switch (input.text.voltalis_previous_program_rouge_name et input.text.voltalis_previous_program_rouge_switch) (est-ce possible ?)
- Le mieux serait la découverte automatique des programmes dans les sensor et dans la carte !