Bonjour,
Je suis en train de créer un script de type apprentissage automatique / Machine Learning.
A partir des propriétés retournées par un capteur de vibration (vibrations, inclinaison, déplacement), le script est capable d’analyser ses données et d’en déduire d’un programme (machine laver ou sèche-linge ou lave-vaisselle par exemple). Par exemple sur un cycle de lavage de 2H, tant de vibrations et de déplacements de l’appareil correspondent à un programme précis (admettons "Coton/Intensif). Enfin bref, ça c’'est pas important mais c’est pour le contexte. En somme le programme analysé est une signature/empreinte.
Ainsi le programme une fois analysé par le script est enregistré dans l’attribut d’un capteur de type sensor. Capteur associé à l’appareil analysé.
Les capteurs sont de ce type pour chaque appareil
- triggers:
- trigger: event
event_type: "UPDATE_LAVE_LINGE_BUANDERIE_SIGNATURES"
id: "update"
sensor:
- name: "Lave-Linge : Signatures des Programmes"
...
attributes:
programmes: >
- [données programme 1]
- [données programme 2]
- ...
- triggers:
- trigger: event
event_type: "UPDATE_LAVE_LINGE_CUISINE_SIGNATURES"
id: "update"
sensor:
- name: "Lave-Linge : Signatures des Programmes"
...
attributes:
programmes: >
- [données programme 1]
- [données programme 2]
- ...
Plus tard, quand l’apprentissage sera consolidé avec assez de données, si je lance une machine, le script après 15 minutes d’analyse sur le cycle en cours sera capable de me donner le programme de lavage en cours et la durée restante grâce à une comparaison des données retournées par le cycle en cours par rapport aux données enregistrés dans le capteur des signatures de l’appareil.
Là où je pèche, c’est lorsque le script a fini d’analyser un programme, il est censé déclencher l’évènement pour enregistrer les données dans le bon sensor. Par exemple:
event_to_call.script
variables:
- signature_event: "UPDATE_LAVE_LINGE_BUANDERIE_SIGNATURES"
- event: "{{ signature_event }}"
event_data: >
(données du programme de lavage insérées ici pour la mise à jour du capteur)
Problème : je souhaite appeler l’event via la variable {{ signature_event }} plutôt que de passer la valeur de celle-ci en dure. L’idée est de rendre le script réutilisable avec n’importe quel appareil plutôt que de mettre à jour le code à chaque fois si je change ou j’ajoute un appareil. Dans l’idéal j’aurais souhaité utiliser :
variables:
- signature_event: "UPDATE_{{ nom_appareil }}_SIGNATURES"
à passer dans le champs « event » donc.
Sauf que le templating ne semble pas autorisé dans le champs « event ». l’id en event renseigné en dure fonctionne mais dés que je passe une variable, ça ne fonctionne plus et l’écoute de l’event ne retourne rien dans ce cas.
Si quelqu’un a des suggestions je suis preneur.