Je ne compte plus le nombre de fois ou en rentrant de ma tanière, je retrouve ma chère et tendre, endormi telle la belle au bois dormant, sur le canapé, les acteurs de sa série préférée entrain de tapoter à l’écran de la télévision essayant en vain de la réveillé pour finir l’opération qu’ils ont commencé.

 

On se reconnaît tous…

 

Que peu faire la Domotique pour nous dans ce cas ? Et bien elle peut préparer le déplacement dans le lit, éteindre la TV, baisser la lumière, allumé une lampe de chevet.

L’idée :

Un capteur de mouvement judicieusement placé dans le salon détecte si il y a du mouvement devant la télévision :

  • Si il fait nuit,
  • Si il n’y a pas eu de mouvement depuis plus de 10 minutes,
  • Si le meuble TV est allumée
  • Si l’éclairage du coin Tv est également allumé

Alors :

  • éteint le meuble TV
  • Passe l’éclairage en mode veilleuse de nuit
  • Allume l’éclairage d’ambiance de la chambre parentale
  • Fait parler la domotique pour conseiller d’aller ce coucher.

Les outils

Il vous faut :

 

Le Script

Je vous propose un script Lua, il est de type Devices car il dépend de la dernière fois que votre capteur de mouvement a détecter quelques choses, mais au lieu de vous le donner tout cuit, je vais le découper et vous l’expliquer, a vous de l’assembler et de le compléter avec les éléments de base d’un script LUA pour Domoticz

Les différentes conditions

La temporisation

Dans un premier temps il faut que l’on définissent dans le script une différence de temps :

time = os.date("*t")

t1 = os.time()
s = otherdevices_lastupdate['Mouvement Salon'] --ici je place le nom de mon detecteur de mouvement dans le salon
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
absence = (os.difftime (t1, t2)) --aprés avoir initialisée les variables necessaire a l'ananlyse du temps, une simple soustraction defini la variable "absence"

Nous checkerons cette absence par :

if absence > 600 --ici 600 = 600 secondes = 10 minutes

Cette fonction de temporisation est aussi utilisé dans un événement d’éclairage temporisé (Comme ici pour Jeedom), il suffit de définir une absence plus longue que le retour en OFF de votre capteur

Jour/Nuit

Dans Domoticz nous avons une fonction hyper facile à utiliser : timeofday, soit en français : moment de la journée, qui sera soit jour (Daytime) soit nuit (Nighttime).

Pour notre Script nous souhaitons qu’il ne s’exécute que la nuit ce qui nous donne :

if (timeofday['Nighttime']) then

Le meuble Tv est il allumé ?

Dans les scripts LUA de Domoticz on vérifie l’état d’un appareil ainsi :

if otherdevices['Meuble TV']=='On' --le nom de l'appareil a verifier et son etat au choix On ou Off

L’éclairage est il allumé ?

Un éclairage comme les ampoules Milight n’apparaissent pas en ON quand elles sont allumées mais avec leurs niveau d’intensité, nous allons vérifier qu’elles ne sont pas éteintes

if otherdevices['Cote TV']~='Off'

Le sigle ~ signifie : différent

Et voila nous avons nos différentes conditions à respecter pour que l’événement s’exécute

Les actions

Faire parler Imperihome

Dans un script Lua pour Domoticz nous avons la possibilité d’exécuter une commande système, c’est a dire que Domoticz fait comme vous pourriez le faire si vous étiez connecté sur votre serveur de Domotique

Nous l’avons vu plutôt, il est possible de faire parler Imperihome depuis un navigateur internet, dans le script nous allons faire pareil :

D’abord définir la commande a exécuter :

runcommand = "curl http://ipdelappareilouestimperihome:8888/?tts=votre%20texte%20a%20dire%20sur%20l%20appareil";

et ensuite nous exécutons cette commande :

os.execute(runcommand);

Eteindre le meuble TV

Nous utilisons une commande que j’affectionne beaucoup : Toggle, qui signifie : Inverse, il faut donc la comprendre comme : Inverse l’état de l’appareil à commander

CommandArray['Meuble TV']='Toggle'

Passer l’éclairage en mode veilleuse :

Ici j’utilise le selector Switch que j’ai créé pour avoir un accès facile aux commandes cachées des Milights

CommandArray['Cde Cote TV']='Set Level : 10' -- dans mon installation le level 10 du selector 'Cde Cote TV' correspond au mode veilleuse

Allumer la lampe de chevet :

Grace au tuto de la lampe de chevet Yeelight dans Domoticz, vous avez créé une ambiance correspondante a vos besoins dans un Selector, nous allons l’utiliser

CommandArray['Lampe de Chevet']='Set Level : 30' -- dans mon installation le level 30 correspond a un blanc chaud et une luminosité de 10%

Et voici nos actions, on finit le script par les habituels

end

return commandArray

Reste plus qu’à faire la surprise…en variante si vous êtes équipé de la Gateway Xiaomi Mihome, vous pouvez remplacer Imperihome par la fonction lecteur de son de la passerelle et faire jouer la phrase de votre choix : https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Playing_Gateway_Sound

Encore une fois je n’ai rien inventé, juste pris le temps de lire et relire le wiki de Domoticz sur les événements : https://www.domoticz.com/wiki/Events, j’ai également éplucher le forum Easydomoticz qui reste la reference pour la communauté française de Domoticz.

Cette idée de scénario/événement me vient du livre de   Cedric Locqueneux : Le Guide de la maison et des objets connectés

 

 

4 Replies to “Evenement Domoticz : Tu devrais aller au lit”

Laisser un commentaire