Bonjour,
J’ai besoin de votre aide pour configurer mon ballon d’eau chaude. J’ai créé 4 custom button pour programmer jusqu’à 4 douches. Par exemple, si je clique sur 2, le bouton va changer de couleur en orange et le chauffe eau va tourner.
Une fois les deux douches prêtes, l’entité « binary_sensor.ariston_is_heating » passe à off.
Voici ma configuration qui fonctionne pour l’instant :
type: horizontal-stack
cards:
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 1
state:
- value: '1'
styles:
card:
- background-color: orange
tap_action:
action: call-service
service: script.set_shower_and_mode1
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 2
state:
- value: '2'
styles:
card:
- background-color: orange
tap_action:
action: call-service
service: script.set_shower_and_mode2
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 3
state:
- value: '3'
styles:
card:
- background-color: orange
tap_action:
action: call-service
service: script.set_shower_and_mode3
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 4
state:
- value: '4'
styles:
card:
- background-color: orange
tap_action:
action: call-service
service: script.set_shower_and_mode4
Par contre, je rencontre un problème. Le bouton qui reste allumé en Orange reste toujours en orange. Je veux qu’ils s’éteignent dès que l’entité « binary_sensor.ariston_is_heating » passe à Off.
Pour ça, j’ai essayé un « automation ». Mais je ne sais pas comment je peux nommer ces 4 boutons.
Voici mon automation qui ne fonctionne pas (C’est normal, switch.ariston_button_x n’existe pas). Mais je ne sais pas comment faire pour contrôler ces boutons :
alias: Ballon_Button_Turnoff
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.ariston_is_heating
to: "off"
condition: []
action:
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.ariston_button_1
- switch.ariston_button_2
- switch.ariston_button_3
- switch.ariston_button_4
mode: single
J’ai tout essayé. Mais j’arrive pas. Merci pour votre aide.
Herbs
Avril 3, 2024, 6:07
2
Salut @riyas1980
tu devrais prendre le temps de relire la doc de « button-card ».
Là, tu bases le style sur l’état de l’entité de base, donc sur la première carte :
number.ariston_requested_number_of_showers
Bref ce que tu veux faire devrais plus se rapprocher de ça :
type: horizontal-stack
cards:
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 1
styles:
card:
- background-color: |
[[[
if (states['binary_sensor.ariston_is_heating'].state == 'on') return 'orange';
]]]
Merci pour ton retour @Herbs
J’avoue je ne suis pas un spécialiste de Yaml. J’essaye d’apprendre. J’ai appliqué ta méthode. Mais le souci que je rencontre c’est que maintenant les 4 boutons sont allumés en orange peu importe le nombre de douche demandé. Avant je n’avais que le bouton que j’avais sélectionné qui était allumé. Tu sais s’il est possible d’allumer que le bouton qu’on presse ?
Pour savoir si les boutons seront revenus à l’état normal, je le saurai demain matin. Pour l’instant c’est en cours de chauffe.
Merci
Herbs
Avril 4, 2024, 6:50
4
Salut @riyas1980
Ce sont bien les scripts que tu appelles qui « set » l’état de number.ariston_requested_number_of_showers
?
Oui c’est bien ça. Voici un des script :
alias: set_shower_and_mode1
sequence:
- service: number.set_value
data:
value: "1"
target:
entity_id: number.ariston_requested_number_of_showers
- service: select.select_option
data:
entity_id: select.ariston_operation_mode
option: MANUAL
mode: single
Et pour info, grâce à toi, les boutons sont bien revenus à l’état normal après la chauffe. Il faut juste régler pour que seul le bouton que je presse s’allume mais pas tous. Merci
Herbs
Avril 4, 2024, 8:18
6
Ok,
Donc finalement ton code d’origine n’était peut-être pas si mal
Manque juste une automation qui passe le number à « 0 » quand binary_sensor.ariston_is_heating
passe à « off ».
Du style :
alias: Ballon_Button_Turnoff
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.ariston_is_heating
to: "off"
condition: []
action:
- service: number.set_value
data:
value: "0"
target:
entity_id: number.ariston_requested_number_of_showers
mode: single
Merci beaucoup @Herbs
Tout fonctionne parfaitement avec cette automation. J’ai cherché plein de chose mais pas cette solution de 0 douche. C’est super. Merci encore
1 « J'aime »
Herbs
Avril 4, 2024, 9:27
8
De rien, nickel si ça fonctionne
Bon, j’ai parlé trop vite. Le bouton s’est éteint complètement. Mais au bout d’une minute, ca change à une douche sans aucune action de ma part.
Ariston requested number of showers changed to 1
11:32:39 AM - 14 minutes ago
Ariston requested number of showers changed to 0 triggered by automation Ballon_Button_Turnoff triggered by state of En cours de Chauffe
11:31:39 AM - 15 minutes ago
Ariston requested number of showers changed to 2 triggered by service Script: set_shower_and_mode2
11:30:46 AM - 16 minutes ago - Riyas
Ce n’est pas un automation ou un bouton qui a déchenché ça. Je me demande si on a le droit de mettre à 0 le nombre de douche.
Herbs
Avril 4, 2024, 10:05
10
Je pense que si
Au pire pour confirmer ça tu peux demander à l’automation de le passer à un nombre bidon genre 10.
[EDIT] ton number.ariston_requested_number_of_showers
il vient d’une intégration en particulier ?
Si c’est le cas, possible que tu ne puisses pas le mettre à 0.
J’ai essayé de mettre 10 et j’ai ce message d’erreur :
Value 10.0 for number.ariston_requested_number_of_showers is outside valid range 0 - 4
Si je comprends bien, 0 est possible. Mais une minute après, il repasse à 1 douche tout seul. Incompréhensible
Herbs
Avril 4, 2024, 11:37
12
Une solution un peu « tricky » à proposer :
Tu crées 4 « helpers » de type input_boolean :
input_boolean.shower_one
input_boolean.shower_two
input_boolean.shower_three
input_boolean.shower_four
Tu modifies tes scripts (en adaptant pour chaque cas) :
alias: set_shower_and_mode1
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.shower_one
- service: number.set_value
data:
value: "1"
target:
entity_id: number.ariston_requested_number_of_showers
- service: select.select_option
data:
entity_id: select.ariston_operation_mode
option: MANUAL
mode: single
Tu modifies l’automation qui passait ton number à zéro comme ça :
alias: Ballon_Button_Turnoff
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.ariston_is_heating
to: "off"
condition: []
action:
- choose:
- conditions: "{{ is_state('input_boolean.shower_one', 'on') }}"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.shower_one
- conditions: "{{ is_state('input_boolean.shower_two', 'on') }}"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.shower_two
- conditions: "{{ is_state('input_boolean.shower_three', 'on') }}"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.shower_three
- conditions: "{{ is_state('input_boolean.shower_four', 'on') }}"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.shower_four
default: []
mode: single
Et tu reviens sur le code de carte que je t’avais proposé, aves les nouveaux input_boolean :
type: horizontal-stack
cards:
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 1
styles:
card:
- background-color: |
[[[
if (states['input_boolean.shower_one'].state == 'on') return 'orange';
]]]
Merci pour ton aide. J’ai créé les input boolean. J’ai fait tout comme tu as dit. J’ai un nouveau problème. Si j’appuie sur bouton 3 puis bouton 2, les 2 sont allumés en orange. Alors qu’avant avec mon ancien code, seul le dernier resté allumé.
Voici mon code modifié :
type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 1
styles:
card:
- background-color: |
[[[
if (states['input_boolean.shower_one'].state == 'on') return 'orange';
]]]
tap_action:
action: call-service
service: script.set_shower_and_mode11
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 2
styles:
card:
- background-color: |
[[[
if (states['input_boolean.shower_two'].state == 'on') return 'orange';
]]]
tap_action:
action: call-service
service: script.set_shower_and_mode22
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 3
styles:
card:
- background-color: |
[[[
if (states['input_boolean.shower_three'].state == 'on') return 'orange';
]]]
tap_action:
action: call-service
service: script.set_shower_and_mode33
- type: custom:button-card
entity: number.ariston_requested_number_of_showers
name: 4
styles:
card:
- background-color: |
[[[
if (states['input_boolean.shower_four'].state == 'on') return 'orange';
]]]
tap_action:
action: call-service
service: script.set_shower_and_mode44
Pour info, j’ai dupliqué les scripts. C’est pour ça que les noms sont différents
Herbs
Avril 4, 2024, 1:13
14
Tu penses faire ce genre de manip régulièrement ou tu fais juste des tests pour voir ?
Si oui, faudrait « turn_off » les autres boolean un peu comme ça :
alias: set_shower_and_mode1
sequence:
- service: input_boolean.turn_off
target:
entity_id:
- input_boolean.shower_two
- input_boolean.shower_three
- input_boolean.shower_four
- service: input_boolean.turn_on
target:
entity_id: input_boolean.shower_one
- service: number.set_value
data:
value: "1"
target:
entity_id: number.ariston_requested_number_of_showers
- service: select.select_option
data:
entity_id: select.ariston_operation_mode
option: MANUAL
mode: single
Moi je fais pas ce genre de manip. Mais ma femme risque de le faire. Comme je veux une solution WAF Friendly, je voulais que tout soit parfait.
Et grâce à toi, c’est bon. Tout tourne nickel. Tu es trop fort. Merci encore pour ton aide
Herbs
Avril 4, 2024, 2:43
16
Ok, je comprends
riyas1980:
Tu es trop fort.
N’exagérons rien
Avec le temps et en montant en compétence, tu trouveras peut-être une meilleure solution
Là on vient de mettre au point un « poc », il y’a surement plus « propre » à faire
1 « J'aime »