Script : enregistrer un état pour le retablir après

Discussion et échanges de scripts pour la box eedomus

Script : enregistrer un état pour le retablir après

Messagepar pvet » 25 Avr 2014 10:40

Il y a un bout de temps, j'avais suggéré à l'équipe d'Eedomus de pouvoir mémoriser l'état des périphériques pour pouvoir rappeler ces états après une action. Je m'explique au travers de 2 situations que tout le monde peut avoir rencontrées :

Un détecteur de mouvement identifie que vous descendez à la cave, il allume cette cave pendant 10 minutes. Mais... et si la cave était allumée précédemment parce que votre fils bricole son vélo ? il va être mis dans le noir après les 10 minutes.

Un détecteur d'ouverture de fenêtre coupe automatiquement le chauffage pour économiser de l'énergie. Mais que doit faire la box après que cette fenêtre soit refermée ?

Dilemnes domotiques :lol:

Voici la réponse sur laquelle je travaille. Avec l'arrivée des scripts et la possibilité d'enregistrer certaines variables, j'entrevois des solutions.

Voici mon script :

https://dl.dropboxusercontent.com/u/52161840/sauvegardeStatutEedomus.php.zip

Voici les 2 appels possibles :

http://IP_DE_VOTRE_BOX/script/?exec=sauvegardeStatutEedomus.php
&action=memoriser&periph=CODE_API&devient=VALEUR

... pour mémoriser l'état du périph dont le CODE_API est passé en paramètre, et la nouvelle valeur à passer à ce périphérique...

puis, pour rétablir l'état précédent de ce périphérique :

http://IP_DE_VOTRE_BOX/script/?exec=sauvegardeStatutEedomus.php
&action=retablir&periph=CODE_API

... le périphérique passé en paramètre est re-basculé à la valeur enregistrée.

(Quelques options sont disponibles dans les URLs, mais j'en parlerais à la fin.)

Pour la mise en place de tout ça, c'est assez simple :

Prenons par exemple la gestion de ma lumière de la cave qui a par exemple le code api 24242 :
Vous créez un Actionneur HTTP, vous lui donnez 2 valeurs, l'un pour mémoriser :

Valeur brute 0 | Description : Allume la cave | URL : http://IP_BOX/script/ | GET |
Paramètres : ?exec=sauvegardeStatutEedomus.php&action=memoriser&periph=24242&devient=100

l'autre pour rétablir l'état précédent :

Valeur brute 1 | Description : Rétablit la cave | URL : http://IP_BOX/script/ | GET |
Paramètres : ?exec=sauvegardeStatutEedomus.php&action=retablir&periph=24242

puis vous créez une Macro sur cet actionneur :

Attendre 0 Secondes puis Allume la cave
Attendre 10 Minutes puis Rétablit la cave

vous nommez cette macro Allumer la cave pendant 10 minutes

Il ne vous reste plus qu'à mettre en place une règle a exécuter lors de la détection par le détecteur de mouvement (ou d'ouverture) qui déclenche la macro 'Allumer la cave pendant 10 minutes' de l'actionneur HTTP juste créé (en rajoutant toutefois un critère qui vérifie que la macro n'était pas déjà en cours d'exécution).

Pour le chauffage, on utilisera le code API de la consigne de chauffage pour passer à ETEINT ou HORS-GEL puis rétablir à la température de consigne enregistrée.

J'attends vos commentaires et suggestions éventuelles ;)

J'entrevois des défauts, notamment tout ce qui peut se passer entre le moment où vous mémorisez et rétablissez, qui peut donc parasiter la retombée sur les pattes, mais pour des gestions simples où la box reste maitre des actions, ça le fait bien :)
Je me dégage donc de toutes responsabilités si vous vous lancez là-d'dans. J'imagine que la sauvegarde des états peut être remise à zéro sur mise-à-jour de la box par Eedomus, par redémarrage ou autres, je n'en sais trop rien en l'état.

Pour être complet sur mon script, il y a 2 options pour l'action Mémoriser :
- vous pouvez ne pas passer de valeur, dans ce cas, l'état du périph est simplement enregistrée mais ne bascule pas vers une autre valeur.
- au lieu d'un changement de valeur, vous pouvez indiquer qu'il s'agit d'une macro à activer, vous passez alors dans le param &devient= le CODE API MACRO et vous précisez &macro=true dans l'url, exemple :
http://IP_DE_VOTRE_BOX/script/?exec=sau ... edomus.php
&action=memoriser&periph=CODE_API&devient=128913&macro=true

pour l'action Rétablir, il y a une option : &conserver=true
qui permet de conserver l'état enregistré, sinon, la valeur est effacée dès l'appel à rétablir pour libérer la mémoire.
J'ai mis ces options en place sans trop encore savoir à quoi ça pourrait me servir ;)
pvet
 
Messages : 47
Inscription : 26 Oct 2012

Re: Script : enregistrer un état pour le retablir après

Messagepar Nico33 » 25 Avr 2014 11:05

Une excellente idée qui pourra trouver plein d'applications. Même si là de suite je n'en vois pas :)

Pour ton exemple de la consigne de chauffage, pour ceux qui utilisent la programmation incluse dans la box. Après la fermeture de la fenêtre associée, la consigne revient à la valeur avant l'ouverture.

Pour ton fils qui est dans la cave en train de bricoler son vélo pendant que tu y descends, pourquoi activer la macro d'allumage pendant 2 min alors qu'il y est déjà ? La règle ne doit s'activer que si la lumière est déjà éteinte. Sans quoi pas besoin d'allumer ni d'éteindre 2 min plus tard.
Ou alors je ne vois pas bien ce que voulait dire ton ex. :oops:

Mais je le redis, je suis convaincu que certains vont y trouver un intérêt certain.
Merci pour ce partage.
Nico33
 
Messages : 1013
Inscription : 14 Juin 2013

Re: Script : enregistrer un état pour le retablir après

Messagepar galaksy2001 » 25 Avr 2014 11:12

Merci aussi pour le partage ;) Je vais regarder de plus près :ugeek:
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Script : enregistrer un état pour le retablir après

Messagepar dplein » 25 Avr 2014 13:56

Alors si j'ai bien compris, et de plus, cela permettra à certains de comprendre à quoi sert ton script..

Chez moi, j'ai des rubans leds qui s'allument en bleu lors d'une détection de passage pendant 15 mn. Je me sers de ceux ci également pour me notifier (5 secondes en vert) lorsque la porte d'entrée s'ouvre...

Mais voila si le ruban led est allumé en bleu depuis 5mn et que la porte s'ouvre, il s'allume en vert et s'éteint au bout de 5 secondes :cry: :cry: . Il ne revient pas à la couleur bleue comme je lui avait demandé.
Irradié.... RAC v2
dplein
 
Messages : 1680
Inscription : 28 Oct 2012
Localisation : Lorraine

Re: Script : enregistrer un état pour le retablir après

Messagepar influman » 25 Avr 2014 14:04

pour moi, on peut gérer les exemples donnés par les règles et états, faut juste prévoir les différents cas de figure. Ou alors j'ai toujours pas capté.
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Script : enregistrer un état pour le retablir après

Messagepar influman » 25 Avr 2014 14:11

dplein a écrit:Alors si j'ai bien compris, et de plus, cela permettra à certains de comprendre à quoi sert ton script..

Chez moi, j'ai des rubans leds qui s'allument en bleu lors d'une détection de passage pendant 15 mn. Je me sers de ceux ci également pour me notifier (5 secondes en vert) lorsque la porte d'entrée s'ouvre...

Mais voila si le ruban led est allumé en bleu depuis 5mn et que la porte s'ouvre, il s'allume en vert et s'éteint au bout de 5 secondes :cry: :cry: . Il ne revient pas à la couleur bleue comme je lui avait demandé.


Si porte s'ouvre et état bleu alors stop macro éventuelle et macro état vert 5 secondes puis bleu 15mn.
Si porte s'ouvre et pas d'état, alors macro état vert 5 secondes
Si détection et quelque soit l'état, alors stop macro éventuelle et macro état bleu 15mn
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Script : enregistrer un état pour le retablir après

Messagepar dplein » 25 Avr 2014 21:33

Merci Influman pour ton aide !!!!
Irradié.... RAC v2
dplein
 
Messages : 1680
Inscription : 28 Oct 2012
Localisation : Lorraine

Re: Script : enregistrer un état pour le retablir après

Messagepar pvet » 27 Avr 2014 07:13

Nico33 a écrit:Une excellente idée qui pourra trouver plein d'applications. Même si là de suite je n'en vois pas :)

Pour ton exemple de la consigne de chauffage, pour ceux qui utilisent la programmation incluse dans la box. Après la fermeture de la fenêtre associée, la consigne revient à la valeur avant l'ouverture.

Pour ton fils qui est dans la cave en train de bricoler son vélo pendant que tu y descends, pourquoi activer la macro d'allumage pendant 2 min alors qu'il y est déjà ? La règle ne doit s'activer que si la lumière est déjà éteinte. Sans quoi pas besoin d'allumer ni d'éteindre 2 min plus tard.
Ou alors je ne vois pas bien ce que voulait dire ton ex. :oops:

Mais je le redis, je suis convaincu que certains vont y trouver un intérêt certain.
Merci pour ce partage.



Comme quoi, c'est important des forums comme celui-ci et de partager ses expériences ;)
Je ne savais pas pour la consigne de chauffage... J'en étais resté à une ancienne version où ce n'était pas comme ça :)
Et pour l'éclairage de la cave, ben tu vois, il me manquait juste assez de jugeotte pour en effet réfléchir intelligemment sur ce problème :lol: Des fois, avec la tête dans le guidon, on est plus trop rationnel.

Je teste en ce moment une autre utilité de mon script : les quelques prises AN158 que je possède et qui ont le défaut de ne pas revenir à leur état précédent après une coupure de courant, elles restent OFF après une coupure d'électricité, qu'elles aient été ON ou OFF avant.
En gérant chaque changement d'état par mon script pour ces prises, si une coupure intervient, je demande un "rétablir" pour chacune d'elle et pour l'instant, mes tests sont intéressants.
Pour détecter une coupure d'électricité, je me sers d'une prise (sacrifiée) qui doit toujours rester en ON, grâce à une règle, je surveille dès qu'elle redevient ON, c'est qu'il y a eu une coupure juste avant, et c'est là que je redemande un rétablissement de mes 4 prises AN158 surveillées.
pvet
 
Messages : 47
Inscription : 26 Oct 2012


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Majestic-12 [Bot] et 14 invité(s)