Bonjour à tous,
Je peux piloter mes volets roulants somfy RTS grâce à des commandes REST par l’intermédiaire d’un ESP8266 et d’un cc1101.
Tout fonctionne parfaitement mais il y a beaucoup de répétition dans le fichier configuration.
Création des entités de type cover dans configuration.yaml :
Comme vous le voyez, une grande partie est répétitive. En tout, j’ai 8 volets, donc 8 fois un code identique. Quelqu’un a-t-il une idée pour simplifier cela ?
De plus, je n’ai pas réussi à récupérer le « volet_numéro » directement dans le script via l’équivalent d’un trigger, sans passer par un paramètre. Quelqu’un sait-il comment faire ?
Pour information, voici le customize et le script.
Ajout de l’attribut volet_numero dans customize.yaml :
Interessant l’usage d’un cc1101 pour somfy sous RTS. Si cela fonctionne bien, cela intéressera du monde vu le prix des antennes RTXCom (j’utilise moi un vieux RFXtrx433XL). N’hésites pas a faire un retour voir un petit tuto
Autrement, si tu veux créer 8 entités cover, je crains qu’il ne faille créer 8 template. On ne peut a ma connaissance créer d’entités dynamiques avec HA. C’est possible avec node-red, mais pas de sens ici je pense.
L’alternative est d’utiliser dans l’interface des boutons qui appellent le script, sans entités cover.
Perso je ferai les copier coller pour avoir mes 8 entités cover propres, mettrai les no de volets directement dans les template (pas de customize), et mettrai tout le yaml dans un package dédié aux volets roulants…
Dans le fichier de configuration ce n’est pas vraiment un souci si c’est du one-off, en plus je ne pense pas que tu vas ajouter des nouveaux volets tous les 2 jours
Au pire si c’est pour simplifier ton fichier configuration, tu peux faire un fichier dédié aux covers en include.
Sinon concernant ton code actuel:
Je ne comprends pas pourquoi tu ne peux pas directement mettre le numéro de chaque volet directement dans le « num_volet » du fichier de config…?
si c’est pour le simplifier HA, mais complexifier ton ESP, tu peux masser en MQTT… tu n’aurais plus besoin que d’une entité plus courte dans HA pour chaque volet et plus de scripts ni de customize.
Salut
J’ajouterai que si le but du numéro de volet c’est uniquement pour simplifier le copier/coller du template alors ça n’a pas d’intérêt:
il faut définir le numéro ailleurs donc on gagne pas de temps
on peut tout aussi bien piloter les volets via le nom de l’entité, éventuellement même sans script
perso je me mémorise mieux volet_cuisine que 3
Je suis dans le même cas. 9 volets dont 7 rts, avec en plus l’utilisation des intégrations cover_rf_timebased… C’est long à faire mais je n’y suis pas retourné depuis le premier setup
Merci beaucoup à tous pour vos réponses.
Concernant ma solution, je me suis inspiré de :
Par contre, je stocke les valeurs des rolling-code sur ma base SQL que je recharge à chaque redémarrage de l’ESP8266, la limite du nombre d’écriture de l’EEPROM me faisant peur.
Merci pour vos conseils.
je vous confirme que les volets sont dans un fichier ‹ volets.yaml › séparé, mais je trouve dommage de réécrire 8 fois exactement les mêmes lignes. En cas de modif, il faut la faire 8 fois. Maintenant, je suis d’accord, une fois mis au point, je n’y retournerai pas.
num_volet directement dans le fichier config, j’ai cherché longtemps sans trouvé de réponse. Je vais essayé puis je vous fais un retour.
les volets sont numérotés dans l’esp8266, il faut donc attribuer un numéro à chaque volet.
Et pour connaitre l’événement appelant du script (du style ‹ cover.volet_salon.open_cover ›) directement dans le script, des idées ?
Bon, j’ai testé rapidement, impossible de mettre ‹ num_volet › dans la configuration : ‹ invalid option for [cover.template] ›.
Passer par le customize n’est pas un problème, mais si quelqu’un a la solution, cela m’intéresse.
Comme tu veux mais c’est de l’optimisation non optimale
Dans la config tu remplaces 1 caractère répété 3 fois par 33 répétés 3 fois + la partie du customize.
Donc 3 caractères remplacés par 99… sur 8 volets, 24 remplacés par 792.
Mais bon le résultat est le même.
Bon, à force d’entêtement, j’ai réussi ce que je voulais :
une config simple (malgré le customize)
des actions regroupées dans une seule automatisation.
J’ai mis beaucoup, beaucoup de temps pour trouver le numéro de volet dans l’automatisation (trigger.event…), mais voila le résultat :
Le customize reste inchangé.
La config réduite au minimum :
- platform: template
covers:
volet_salon:
device_class: shutter
friendly_name: "Volet du salon"
optimistic: true
open_cover:
close_cover:
stop_cover:
volet_salleamanger:
device_class: shutter
friendly_name: "Volet de la salle à manger"
optimistic: true
open_cover:
close_cover:
stop_cover: