9/ Créer les scénarios pour le faire fonctionner
Le fonctionnement est un peu particulier.
Lorsqu’on change de page, le NsPanel poste sur le topic nspanel/chambreparents/RESULT
un JSON page avec la page en question, et attend une réponse avec les éléments à afficher.
Et lorsqu’on clique sur un bouton c’est sur le même topic qu’est posté un JSON button
Voici donc les commandes d’info qui permettent de récupérer les éléments renvoyés par le NsPanel :
Pensez à bien activer la répétition des valeurs pour page et button sinon cela ne déclencherai pas le scénario que nous allons créé ensuite lorsque vous faites deux fois la même action de suite.
Concernant les pages
Voici ensuite à quoi ressemble le scénario :
Le premier si avec le trigger permet de savoir qui a déclencher le scénario. Je compte utiliser d’autres NsPanel dans d’autres pièces et cela va me permettre d’avoir un seul scénario. Si vous n’avez qu’un seul NsPanel ou que vous souhaitez faire des scénarios différents ce test n’est pas nécessaire.
Les tests d’en dessous permettent de savoir quel page le NsPanel souhaite afficher, et j’appelle ensuite la bonne action pour mettre à jour la page.
Voici les actions concernées :
Et le code JSON :
{"refresh":{"pid":1,"name":"Alarme","format":2,buttons:[
{"bid":1,"label":"Armer","type":2,"state":1,"icon":6},
{"bid":2,"label":"Desarmer","type":2,"state":1,"icon":6}
]}}
Ce code me permet d’afficher deux boutons pour armer ou désarmer l’alarme de nuit.
{
"refresh":{
"pid":2,
"name":"Chauffage chambre",
"therm":{
"set":"#[Chambre parents][Chauffage][Consigne]#",
"temp":"#[Chambre parents][Chauffage][Température]#",
"heat":"#[Etage][NsPanel_Helper][Etat_Chauff_CHP]#",
"state":"#[Etage][NsPanel_Helper][Mode_Chauff_CHP]#"
}
}
}
Ce code permet de gérer le type de page thermostat.
Vous voyez que j’utilise un équipement qui s’appelle « NsPanel_Helper » il s’agit d’un virtuel qui me permet de convertir en boolean l’état de mon chauffage en utilisant le plugin thermostat de Jeedom.
Concernant les boutons virtuels
Le principe est le même. Voici le scenario :
Comme vous voyez le principe est le même.
Vous pouvez voir ici que j’utilise le buzzer du NsPanel, voici comment on l’utilise :
Vous pouvez indiquer jusqu’à 4 valeurs, dans l’ordre :
- Le nombre de bip
- La durée du bip en ms
- La durée du silence entre les bip en ms
- La tonalité.
Voici la documentation : Buzzer - Tasmota
Sous ESPHome il est possible aussi de faire des mélodies en RTTTL, mais à priori pas possible sous Tasmota : Utilisation de melodie de type rtttl - #21 par Bad
Pour les boutons des pages spécifiques
Pour utiliser les boutons qui sont par exemple sur la page thermostat, vous devez créer un scénario à part. Voici ce que j’ai de mon côté :
Scénario d’initialisation
Vous verrez dans la rubrique suivante comment paramétrer chacun des formats de pages.
Mais au démarrage il faut tout de même initialiser le NsPanel avec les premières informations.
Voici le scénario :
Il est provoqué lorsque le NsPanel devient Online !
On attend 10s qu’il soit bien initialisé avant de lui lancer des actions. Sinon j’ai repéré que parfois ça ne fonctionne pas très bien.
Pour le détail des actions vous verrez ensuite dans la rubrique de paramétrage de la page d’accueil.
Scenarios d’update
Il faut bien sûr penser à mettre à jour les informations sur l’écran d’accueil, voici comment j’actualise la date
Pour toutes les autres infos, j’aurais pu faire cela directement dans les équipements en allant dans les paramètres des commandes infos pour pousser la valeur à chaque changement, mais j’ai préféré centralisé dans un scénario :
Utilisation des boutons physiques
Il y a deux boutons physiques sur le NsPanel, vous pouvez biensur brancher des équipements dessus qui s’allumeront avec les relais. Vous pouvez déclencher ces relais à distance via MQTT, et vous pouvez aussi tout simplement ne rien brancher dessus et vous servir de leur état pour lancer des actions sur votre Jeedom. C’est ce que j’ai fait, je les utilise pour piloter les volets de la pièce.
Voici comment cela fonctionne :
Vous voyez que je repasse ensuite les boutons en OFF, c’est pour faire un retour d’état et ne déclencher qu’au moment ou ils passent sur ON. J’aurai pu être moins maniaque et déclencher l’action au changement d’état quel qu’il soit, mais on aurait vu sur l’interface qu’ils sont parfois en état actifs et parfois non actifs…
Attention, il y a une subtilité ici.
L’état des bouton power est ON et OFF, et pourtant j’utilise un type binaire.
Il faut aller configurer une valeur calculée (comme expliquée avant dans ce tuto)