calcul de statut

Capteurs et actionneurs HTTP

calcul de statut

Messagepar Arnaud » 19 Jan 2015 16:34

Bonjour à tous,
J'essai de mettre en place un widget et des capteurs http qui me donnent une vue sur le statut de mon IPX800. J'ai bien réussi à créer mes capteurs (un par led !!!), mais je cherche un coup de main pour calculer un statut virtuel...
Par exemple, je souhaite créer un "bidule" (je n'ai pas encore trouvé quoi) représentant le statut de mon ipx800 sur un système de chauffage qui a 4 valeurs (modes) possibles :
- si led2=0 et led3=0 alors mode=confort
- si led2=1 et led3=1 alors mode=eco
- si led2=0 et led3=1 alors mode=hors gel
- si led2=1 et led3=0 alors mode=arrêt

Ca je dois le faire pour mes 8 leds (pour 4 systèmes): ça me semble un peu fastidieux, donc si vous avez une simplification, elle est bienvenue...

(en termes d'actionneurs http, tout fonctionne comme il faut; l'idée ici est de récupérer le statut...)
Merci pour votre contribution.
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar blues » 19 Jan 2015 17:29

Un capteur http peut se dupliquer. Si tu utilise les variables dans la partie configuration :
VAR1=IP-de-l-IPX
VAR2=led2
VAR3=led3
Et il suffit de remplacer ledx par le nom de la variable dans les paramètre de l'URL... une fois dupliquée il suffit de changer les valeurs VAR1 et VAR2. Cela aide un peu.
Sinon on peut demander le statut de tous les relais dans un xml. Peut-être que des formules xpath sur le résultat permettraient d'obtenir le résultat voulu... une idée comme ça...
blues
 
Messages : 630
Inscription : 05 Fév 2012
Localisation : 37

Re: calcul de statut

Messagepar Arnaud » 19 Jan 2015 17:41

Merci, mais je ne comprends pas (encore) tout, désolé :( .
Pour récupérer le statut de la led0, je met l'URL http://IP-de-IPX/status.xml, puis dans xpath, je mets //led0, idem pour les 7 autres.

Comment j'adapte ta proposition à ce cas ? vu que l'URL ne prend pas de paramètre...
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar influman » 19 Jan 2015 20:44

Je créerai un état virtuel (type actionneur), qui permet de changer mais aussi restituer le mode en cours. Donc 4 valeurs : Confort, Eco, hors-gel, arret

Fais un test avec les deux règles suivantes :
Règle n°1 :
- Si "Nouvel Etat Mode" devient maintenant égal à Confort avec Source = Manuel
- Alors Actionneurs HTTP IPX => Confort
La source permet de préciser que le critère ne vaut que si le mode est positionné manuellement sur l'interface, et pas par une règle auto par exemple. Tu peux rajouter toutes les sources censées fonctionner, sauf les règles.

Règle n°2 :
- Si capteur Led2 est maintenant égal à 0
- Et capteur Led3 est maintenant égal à 0
- Alors "Nouvel Etat Mode" = Confort

Essaye de changer l'une ou l'autre Led par l'actionneur http directement (et pas par le nouvel état), et vois si ça réagit convenablement. A priori, le capteur http à périodicité récurrente devra bien générer à chaque fois des "est maintenant".
Si ok, tu dupliques les règles pour chaque état, et tu peux rendre invisible tes actionneurs et capteurs http.
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: calcul de statut

Messagepar Arnaud » 19 Jan 2015 22:41

Merci influman.
Alors...
La règle 1, je ne sais pas le faire car je ne comprends pas de quoi il s'agit...
Mais j'ai bien créé un objet "IPX800-Mode chauffage zone 1" par exemple, et je lui ai mis 4 valeurs possibles : confort, eco, hors gel, arrêt.
La règle 2, c'est ce que je pensais devoir faire, mais je n'arrive pas à créer la règle:
- dans les critères, je ne peux pas saisir la valeur dans le 4ième critère... Donc je mets "IPX800-LED2", "devient maintenant", "égal à", et impossible de saisir quoi que ce soit pour la valeur...
- dans les actions, je ne peux pas choisir mon objet "IPX800-Mode chauffage zone 1"
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar Arnaud » 19 Jan 2015 23:01

Alors donc, je viens de comprendre la différence entre Capteur et Actionneur ! :oops:
Donc, même si mon objet "IPX800-Mode chauffage zone 1" représente un statut et qu'il est le résultat de capteur, c'est un actionneur, et je peux le choisir dans les actions et lui mettre une valeur !
De même, concernant mes capteur de led, je dois saisir les valeurs possibles dans le capteur pour pouvoir les choisir dans la règle (heureusement qu'il n'y en a pas 50000...)
Je vais continuer les tests avec les histoire de "est maintenant" ou "devient maintenant" !

A suivre...
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar blues » 19 Jan 2015 23:54

Arnaud a écrit:Merci, mais je ne comprends pas (encore) tout, désolé :( .
Pour récupérer le statut de la led0, je met l'URL http://IP-de-IPX/status.xml, puis dans xpath, je mets //led0, idem pour les 7 autres.

Comment j'adapte ta proposition à ce cas ? vu que l'URL ne prend pas de paramètre...

En relisant ma réponse j'avoue que ce n'était pas clair :-)
La première partie est une astuce pour cloner les périphériques.
La deuxième s'appuie sur xpath pour faire des évaluations plus compliquées que //led2 par exemple.
La page http://doc.eedomus.com/view/XPath donne des idées d'opérateurs. L'astuce étant de combiner la valeur de 2 relais pour déterminer un mode de chauffage.
Un truc du genre (à creuser car je ne maîtrise pas) : change(concat(//led2,//led3),'00','confort')

La cerise sur le gâteau serait d'utiliser cette expression dans la partie polling de récupération d'état d'un actionneur http ! ;-)
blues
 
Messages : 630
Inscription : 05 Fév 2012
Localisation : 37

Re: calcul de statut

Messagepar Arnaud » 20 Jan 2015 10:16

Alors,

@blues, ok je comprends mieux. Mais je ne crois pas qu'on puisse récupérer plusieurs valeurs via le xpath... Ce que tu proposes marche, ... mais pour une seule valeur.

@influman, j'ai essayé avec une règle contenant les critères "est" et "égal à". Ca marche. Ca ne marche pas avec "devient maintenant" ni "est maintenant".
Je dois donc en faire 16 !!!
Question: n'y a-t-il pas un risque de mettre dans les règles le critère "est" (au lieu de "devient maintenant") ? Car si on réfléchit bien, ..., dès que la valeur est égale à 0, la règle s'applique, ..., donc elle va s'appliquer tout le temps, des milliards de fois par seconde, non ?
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar influman » 20 Jan 2015 10:59

Arnaud a écrit:Alors,

@blues, ok je comprends mieux. Mais je ne crois pas qu'on puisse récupérer plusieurs valeurs via le xpath... Ce que tu proposes marche, ... mais pour une seule valeur.

@influman, j'ai essayé avec une règle contenant les critères "est" et "égal à". Ca marche. Ca ne marche pas avec "devient maintenant" ni "est maintenant".
Je dois donc en faire 16 !!!
Question: n'y a-t-il pas un risque de mettre dans les règles le critère "est" (au lieu de "devient maintenant") ? Car si on réfléchit bien, ..., dès que la valeur est égale à 0, la règle s'applique, ..., donc elle va s'appliquer tout le temps, des milliards de fois par seconde, non ?


tu mets un ré enclenchement de règle toutes les 1mn,
ou un critere horaire toutes les 1 mn
ou plus en fonction de ta tolérance.
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: calcul de statut

Messagepar Arnaud » 20 Jan 2015 11:20

OK merci.
Si jamais qqn a réussi a reproduire le statut de l'IPX800 dans l'eedomus, ça m'intéresse...
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar blues » 20 Jan 2015 12:59

Arnaud a écrit:@blues, ok je comprends mieux. Mais je ne crois pas qu'on puisse récupérer plusieurs valeurs via le xpath... Ce que tu proposes marche, ... mais pour une seule valeur.

ça devrait fonctionner avec 4 valeurs utilisées dans le capteur http (confort, eco, hors gel, arrêt) et type de données="liste de valeurs".
avec XPATH=concat(//led2,//led3) change('00', 'confort') change('11', 'eco') change('01', 'hors gel') change('10', 'arrêt')

Tu dois le faire 4 fois pour 4 chauffages... (led0+led1,led2+led3,led4+led5 et led6+led7).

:D
blues
 
Messages : 630
Inscription : 05 Fév 2012
Localisation : 37

Re: calcul de statut

Messagepar Arnaud » 20 Jan 2015 14:57

Merci Ô Chevalier blues ! Perfecto ! Finalement, tu ne maîtrises pas si mal que ça... :)
Ca a l'air de marcher très bien. Le seul hic (mais pas grave), c'est qu'il faut mettre des valeurs (0, 1, 2, 3, ...) au lieu de ('confort', 'eco', ...), sinon on ne peut pas les utiliser ailleurs dans eedomus.

Je serais curieux de voir la doc qui parle de tout ça...
Arnaud
 
Messages : 63
Inscription : 09 Jan 2015
Localisation : 74

Re: calcul de statut

Messagepar blues » 20 Jan 2015 22:58

You're welcome ! :D
blues
 
Messages : 630
Inscription : 05 Fév 2012
Localisation : 37


Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 32 invité(s)