Les automations simples sur la SLS

Bon parfait, si vous avez lu mon dernier article sur comment mettre en place la SLS, vous êtes au point pour celui-là, sinon ALLEZ LE LIRE MAINTENANT!!!!

Voilà? Tout le monde est au point? Parfait!

Les automation dans la SLS? Pourquoi?

D'abord, les automations c'est quoi? Bon, c'est pas vraiment le nom dans la SLS, mais c'est le terme utilisé dans HA pour les automatisations domotiques. Dans la SLS ça s'appelle un SimpleBind. Voilà, je l'ai écris une fois, maintenant je vais continuer à appeler ca automation! Na!

Mais du coup, pourquoi sur la SLS au lieu de Home Assistant?

Bah parce que c'est puissant. Bon, on va tout de suite adresser LE point négatif: c'est pas dans Home Assistant, donc c'est un truc de plus à gérer. Mais bon, l'autre point, c'est que ces automation, elle vont tourner en direct sur la SLS, donc si HA plante, ou reboot, ou quoi que ce soit, ces automations marcheront toujours.

Bon, assez parlé, lançons le vif du sujet: La fondue! Ah non, c'est pas ça!

Les automations

Les automations dans la SLS sont écrites (non il n'y a pas de joli interface) de la manière suivante:

trigger, objet à commander, attribut à commander, action à effectuer

C'est clair? Non? Okay, c'est en effet pas très beau à voir. Voyons un exemple concret! Un interrupteur (ici un ikea 5 boutons) qui va allumer une lumière.

Premièrement, on va sur l'interface de la SLS, puis dans le menu ZigBee on sélectionne Devices.

On choisis un interrupteur et on clic sur son network address nwkAddr. Ici ce sera celui du salon:

On ouvre le menu States :

Et c'est ici que ça va se passer! Sur cet écran, il y a 2 colonnes: Value et SB rule. C'est cette seconde qui va nous intéresser, car c'est elle qui permet d'écrire nos automations. Il suffit de cliquer dans cette colonne pour faire apparaître une ligne dans laquelle on pourra écrire.

Vous commencez à voir où on en vient?

Et là! C'est le dra... ahem, c'est là où le fun commence. Si je reprend le code du dessus, on va le faire étape par étape:

trigger, objet à commander, attribut à commander, action à effectuer

Commençons par le trigger, ou l'action de déclenchement. Ici on veut déclencher notre automation à l'appui d'un bouton, donc un toggle en anglais.

toggle, objet à commander, attribut à commander, action à effectuer

Seconde étape, l'objet a commander, pour ça le plus façile, c'est d'ouvrir un autre onglet et d'afficher les devices ZigBee. Ce qui nous intéressera c'est la colonne nwkAddr

Là je vais commander l'ampoule du salon

Ce on copie-colle l'addresse comme deuxième paramètre de notre commande

toggle, 0x5848, attribut à commander, action à effectuer

Maintenant, le reste devrait être à peu près logique: on souhaite ici changer l'état state de notre device.

toggle, 0x5848, state, action à effectuer

Reste plus que l'action. Mais d'abord, il faut que je vous dise quelque chose. Je vous ai menti! Ce n'est pas l'action à effectuer, mais la valeur de l'état, enfin à une exception près. Vu que nous voulons éteindre l'ampoule si elle est allumé, ou l'allumer si elle est éteinte, on va utiliser l'action TOGGLE

toggle, 0x5848, state, toggle

On fini donc avec ça:

Maintenant, si vous appuyez sur le bouton de l'interrupteur, la lumière change d'état! Mission réussie!

Et si on veux faire différentes actions avec des déclencheurs différents?

Là il vous suffira de mettre un ; a la fin, et de rajouter votre seconde, troisième, ... condition a la suite. Exemple:

toggle, 0x5848, state, toggle; brightness_up_click, 0x5848, brightness, 255

Et voilà, il ne vous reste plus qu'à vous y mettre. Je vous met quelques exemples ci-dessous. Pour plus d'infos, voici la page du GitHub de la SLS concernant les SimpleBind: https://github.com/slsys/Gateway/blob/master/simplebind_eng.md

Exemples

toggle, 0x5848, state, toggle; // Bouton central allume ou éteint la lumière
brightness_up_click, 0x5848, brightness, 255 // Bouton haut, on met la luminosité a fond
> 40, exterior_light, state, OFF // on éteint la lumière extérieure si la luminosité monte en dessus de 40