Bonjour à tous je déterre (reprend ) un peu ce post car je dois passé à coté de quelque chose. Je viens de domoticZ et je me suis mis à Home assistant VM très récemment :
Home Assistant 2022.11.5
Supervisor 2022.11.2
Operating System 9.3
Interface utilisateur : 20221108.0 - latest
. Je possédé donc un RFXCOM reconnu dans HA
J’ai ajouté mes volets en récupérant la trame auto et en paramétrant les volets les un après les autres.
J’ai donc pour chaque volets un switch 2 position par exemple voici l’entité de mon volet porte fenêtre
ID d’entité
switch.ac_095ce1e_2
Via HACS j’ai installé :
Cover Time Based script/entity puis redémarrer
Ajouté le code suivant dans le configuration.yaml
cover:
- platform: cover_rf_time_based
devices:
my_room_cover_time_based:
name: My Room Cover
travelling_time_up: 36
travelling_time_down: 34
close_script_entity_id: script.rf_myroom_cover_down
stop_script_entity_id: script.rf_myroom_cover_stop
open_script_entity_id: script.rf_myroom_cover_up
send_stop_at_ends: False #optional
always_confident: False #optional
device_class: garage #optional
availability_template: "{{ is_state('binary_sensor.rf_bridge_status', 'on') }}" #optional
Mais un message :
Platform error notify.cover_rf_time_based - No module named 'custom_components.cover_rf_time_based.notify'
apparait lors de la vérification de configuration.
Et la je bloque tout simplement.
Je sais qu’il faut créer un script mais je ne vois absolument quoi mettre dedans et ou le créer.
J’ai cherché tant bien que mal des liaisons mais n’ayant pas trouver de vidéos explicatives et un niveau anglais proche de 0 je dois avouer que c’est compliqué pour moi.
Si quelqu’un peu proposer quelque chose en pas à pas.
Je pense que je ne doit pas avoir la bonne approche.
Merci d’avance.
Bonjour,
Je suis nouveau sur Home Assistant (ex jeedom), je ne comprends pas ou ajouter ce code.
Pourrais tu m’expliquer ou me donner un lien qui me permettrai de comprendre ?
Renald
Salut,
Dans le menu intégration, puis rfxtrx
Bonjour à tous,
Pulpy-Luke, merci pour ton retour, mais on met quoi dans code d’événement ?
Bon je galère un peu sur la partie script. Lorsque je mets la partie « cover » le fichier de config et que je test la config pas de problème. Mais lors que je pose le script, Home Assit. me dit que la configuration n’est pas valide.
Si quelqu’un pouvait m’expliquer ça serait géniale.
Je vous mets ci-dessous les différents éléments :
input_text:
cover_max_last:
initial: ""
cover:
- platform: cover_rf_time_based
devices:
max_cover_time_based:
name: Cover Max
travelling_time_up: 10
travelling_time_down: 10
close_script_entity_id: script.close_cover_max
stop_script_entity_id: script.stop_cover_max
open_script_entity_id: script.open_cover_max
send_stop_at_ends: True
script:
open_cover_max:
alias: Ouvre le volet de Max
sequence:
- service: switch.turn_on
data:
entity_id: switch.vr_max
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: open
close_cover_max:
alias: Ferme le volet de Max
sequence:
- service: switch.turn_off
data:
entity_id: switch.vr_max
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: close
stop_cover_max:
alias: Stoppe le volet de Max
sequence:
- service: "{% if is_state('input_text.cover_max_last', 'open') %}
script.open_cover_max
{% elif is_state('input_text.cover_max_last', 'close') %}
script.close_cover_max
{% endif %}"
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: "{% if is_state('input_text.cover_max_last', 'open') %}
stop_open
{% elif is_state('input_text.cover_max_last', 'close') %}
stop_close
{% endif %}"
Ci-dessous le message d’erreur :
bad indentation of a mapping entry (40:9)
37 | alias: Ouvre le volet de Max
38 | sequence:
39 | - service: switch.turn_on
40 | data:
--------------^
41 | entity_id: switch.vr_max
À minima, il manque 2 espaces devant data (partout)
J’ai faire 2 espace à data, mais toujours pas bon j’ai du coup aligné target en ajoutant 2 espace et j’ai du vert au niveau du check de la config sur un script.
script:
open_cover_max:
alias: Ouvre le volet de Max
sequence:
- service: switch.turn_on
data:
entity_id: switch.vr_max
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: open
En revanche si je redemare la config avec uniquement ce script, il me dit que la config n’est pas valide.
Je viens d’ajouter ça : (Pour avancer pas à pas)
close_cover_max:
alias: Ferme le volet de Max
sequence:
- service: switch.turn_off
data:
entity_id: switch.vr_max
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: close
Mais la config n’est plus valide avec cette partie.
Ok, je regarde ça, merci.
C’est bizarre, lorsque je pose la partie Close la config n’est plus valide.
script:
open_cover_max:
alias: Ouvre le volet de Max
sequence:
- service: switch.turn_on
data:
entity_id: switch.vr_max
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: open
close_cover_max:
alias: Ferme le volet de Max
sequence:
- service: switch.turn_off
data:
entity_id: switch.vr_max
- service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: close
Pourtant ça semble correct
Dès que j’ajoute « alias: Ferme le volet de Max » ça ne fonctionne plus
Comme je le disais plus haut, le message d’erreur donne un indice !!! Du coup c’est mieux de le partager.
Là encore c’est un souci de format yaml … je te laisse retrouver l’indice que te donne HA et corriger
Au cas où Scripts - Home Assistant
Ok, merci. Finalement j’ai fait ça en regardant l’aide de HA.
# Volet Max
open_cover_max:
sequence:
- alias: "Ouvre le volet de Max"
service: switch.turn_on
data:
entity_id: switch.vr_max
- alias: "Enregistre etat open"
service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: "open"
close_cover_max:
sequence:
- alias: "Ferme le volet de Max"
service: switch.turn_off
data:
entity_id: switch.vr_max
- alias: "Enregistre etat close"
service: input_text.set_value
target:
entity_id: input_text.cover_max_last
data:
value: "close"
stop_cover_max:
sequence:
- alias: "Stoppe le volet de max"
service: "{% if is_state('input_text.cover_max_last', 'open') %}
script.open_cover_max
{% elif is_state('input_text.cover_max_last', 'close') %}
script.close_cover_max
{% endif %}"
target:
entity_id: input_text.cover_max_last
data:
value: "{% if is_state('input_text.cover_max_last', 'open') %}
stop_open
{% elif is_state('input_text.cover_max_last', 'close') %}
stop_close
{% endif %}"
1 « J'aime »
Salut à toi @Pulpy-Luke
Je suis en train de réaliser cette astuce pour pouvoir comme toi, contrôler proprement mes volets en Chacon DIO 433 par le biais de mon RFXCom.
J’ai pas mal galéré dès le début, jusqu’à ce que je trouve ta copie du dépôt, mais bref.
J’en suis à la partie script, j’ai bien fait attention aux intendations, mais cependant, j’ai une autre erreur, tu vas pouvoir m’éclairer. C’est la commande stop qui ne fonctionne pas et qui renvoie une erreur:
Échec de l’appel du service script/stop_volet_chambre_d_amis. Template rendered invalid service:
Je te copie colle uniquement la partie du script qui est en cause :
stop_volet_chambre_d_amis:
alias: Stoppe le volet de la chambre d'amis
sequence:
- service: "{% if is_state('input_text.volet_chambre_d_amis_last', 'open') %}
script.open_volet_chambre_d_amis
{% elif is_state('input_text.volet_chambre_d_amis_last', 'close') %}
script.close_volet_chambre_d_amis
{% endif %}"
- service: input_text.set_value
target:
entity_id: input_text.volet_chambre_d_amis_last
data:
value: "{% if is_state('input_text.volet_chambre_d_amis_last', 'open') %}
stop_open
{% elif is_state('input_text.volet_chambre_d_amis_last', 'close') %}
stop_close
{% endif %}"
Salut,
Attention à la syntaxe.
Essaye ça
stop_volet_chambre_d_amis:
alias: Stoppe le volet de la chambre d'amis
sequence:
- service: >-
{% if is_state('input_text.volet_chambre_d_amis_last', 'open') %}
script.open_volet_chambre_d_amis
{% elif is_state('input_text.volet_chambre_d_amis_last', 'close') %}
script.close_volet_chambre_d_amis
{% endif %}
- service: input_text.set_value
target:
entity_id: input_text.volet_chambre_d_amis_last
data:
value: >-
{% if is_state('input_text.volet_chambre_d_amis_last', 'open') %}
stop_open
{% elif is_state('input_text.volet_chambre_d_amis_last', 'close') %}
stop_close
{% endif %}
Arf,
J’ai toujours le même résultat.
Échec de l’appel du service script/stop_volet_chambre_d_amis. Template rendered invalid service:
Tu n’as pas une info de ligne ? Et le logs HA ?
Comme tu as 2 services qui sont appelés, ça serait plus facile de savoir si c’est le 1er ou le 2ème qui plante
En fait quand on regarde plus en détail, là cette fois-ci l’erreur fait référence à : input_text.volet_chambre_d_amis_last are missing or not currently available
cette entité existe ? sans erreur sur le nom ?
C’est là dedans que le script stocke le mouvement de montée ou de descente pour faire la répétition