Arithmétique simple directement avec l'eedomus :)

Échangez ici vos astuces sur la gestion des règles eedomus

Arithmétique simple directement avec l'eedomus :)

Messagepar benj70b » 22 Jan 2014 23:26

bonjour,

j'ai découvert un moyen d'effectuer des opérations arithmétiques simples sur plusieurs valeurs en utilisant les fonctionnalités xpath du "HTTP - Capteur" c'est un peu usine a gaz mais cela fonctionne et m'a permis de reproduire l'algorithme "Zone de chauffage 10% ... 100%" avec en plus la gestion du pilotage de l’arrêt et l’arrêt sur ouverture d'une fenêtre :mrgreen:

voici un exemple simple pour effectuer une soustraction de 2 valeurs de température (Extérieur et Intérieur du Salon),
Ensuite nous avons besoin de :
- Un Etat pour stocker un chaîne de caractère qui contiendra [Temp Intérieur], [Temp Extérieur]
- Un Actionneur HTTP qui va envoyer les 2 températures a l'état du dessus
- Un Capteur HTTP qui effectuera la soustraction donc le résultat du calcul
- ainsi que les code API

Sans titre.jpg
les élements
Sans titre.jpg (103.69 Kio) Consulté 14986 fois


Etape 1 : Configurer l'envoi avec l'actionneur HTTP 'TEST - Envoi Valeurs' via l'API eeDomus vers 'TEST - Etat Text' en concaténant les 2 températures avec une , en séparateur

Ajouter une nouvelle Valeur sur 'TEST - Envoi Valeurs'
Valeur : 3 dans mon exemple
Description : SEND 2 'TEST - Etat Text'
URL : http://localhost/api/
Type : GET
Parametre : set?action=periph.value&periph_id=64116&format=xml&value=[LAST_VALUE PERIPH_ID=63282],[LAST_VALUE PERIPH_ID=63224]

64116 : Code API de 'TEST - Etat Text'
63828 : Code API de la 'Température Séjour'
, : le séparateur
63224 : Code API de la 'Température Exterieur'

Sans titre 1.jpg
TEST - Envoi Valeurs
Sans titre 1.jpg (60.61 Kio) Consulté 14986 fois


Etape 2 : Configurer le Capteur HTTP - Résultat Calcul
Type de données : Nombre décimal
Url de la requete : http://localhost/api/get?action=periph.caract&format=xml&periph_id=64116
Chemin XPATH : substring-before(//last_value,',') - substring-after(//last_value,',')

64116 : Code API de 'TEST - Etat Text'
substring-before(//last_value,',') : Extration de la Température Séjour'
- : Opérateur
substring-after(//last_value,',') : Extration de la Température Extérieure'

Sans titre 2.jpg
HTTP - Résultat Calcul
Sans titre 2.jpg (31.5 Kio) Consulté 14986 fois



Le principe est donc de concaténer 2 (N) valeurs avec une virgule en séparateur, puis de les extraire a nouveau et d’utiliser les opérateurs Arithmétiques disponibles avec xPath

Voila, j’espère que c'est assez clair :D
Dernière édition par benj70b le 23 Jan 2014 15:27, édité 1 fois.
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Nico33 » 22 Jan 2014 23:56

Clair et carrément malin !!!!
Dommage que ce ne soit pas inclus simplement dans la box.
Bien joué en tout cas !
Nico33
 
Messages : 1013
Inscription : 14 Juin 2013

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Tinto » 22 Jan 2014 23:58

Ouais, assez malin :)

La box a des capacités de base et est assez souple, aux utilisateurs de bricoler :)

Bien joué ;)
Tinto
 
Messages : 534
Inscription : 10 Jan 2014

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar aurel » 23 Jan 2014 06:49

Woouw, il fallait y penser a ca! Très bien vu! Ca aidera certainement nos amis qui ont peur de manipuler php. Belle trouvaille!
Rendons plus simple notre quotidien avec domo-blog.fr
aurel
 
Messages : 815
Inscription : 07 Août 2012
Localisation : 77

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Rocketlud » 23 Jan 2014 08:28

Merci pour le partage ;) je le rajoute à la longue liste des trucs à tester;) LOL
EEDOMUS
7 Fibaro VR, 6 Eversping SM103, 2 Fibaro FGK 101 avec capteur temp, Prise Eversping avec energie, 1 Fibaro Dimmer, 3 wallplug, 2 fibaro fgs 221, teleinfo usb, nabaztag v2,Server Proliant N54L avec Xpenology, Raspberry Pi B
Rocketlud
 
Messages : 652
Inscription : 15 Fév 2013
Localisation : Picardie

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Dartymath » 28 Jan 2014 22:10

Bonjour benj70b,

super découverte et merci pour ton partage, en revanche je n'arrive pas a trouver un document expliquant toutes les fonctions XPATH utilisable sur l'API et notamment pour réaliser les autres fonction arithmétique pour finaliser la réalisation d'un équivalent de zone de chauffage personnalisé.

Peux tu partager l'ensemble de tes capteur et actionneurs HTTP pour la réalisation de ta zone de chauffage avec fonction stop et fenêtres ouvertes ??

Encore merci,

Dartymath
Dartymath
 
Messages : 4
Inscription : 17 Jan 2014

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar benj70b » 29 Jan 2014 06:04

bonjour DartyMath

Pour la programmation de ma zone de chauffage au final, j'ai arrêté d'utiliser la gestion du 0% à 100% a cause de mes radiateurs a fluides et l'inertie de ceux ci, j'ai posté la config de chauffage de mon bureau sur le fofo http://forum.eedomus.com/viewtopic.php?f=12&t=1488 :)

Pour les fonctions XPath utilisables c'est ici : http://doc.eedomus.com/view/Capteurs_HTTP et les opérateurs c'est par la : http://www.w3schools.com/xpath/xpath_operators.asp

voila en espérant que tout ceci t'aidera ;)
Dernière édition par benj70b le 30 Jan 2014 22:27, édité 1 fois.
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar pasanga » 29 Jan 2014 14:03

bonjour
avec ta méthode si j ai bien compris
on peut donc par exemple : crée un état virtuel qui remonte une moyenne de deux sondes de température par exemple :?:
Pasanga
pasanga
 
Messages : 267
Inscription : 22 Sep 2012
Localisation : seine maritime

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Dartymath » 30 Jan 2014 21:52

Merci pour l'aide

je ferais un retour sur mon installation lorsque je l'aurais fini,

dartymath
Dartymath
 
Messages : 4
Inscription : 17 Jan 2014

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar benj70b » 30 Jan 2014 22:17

@DartyMath : de rien ;)

@pasanga : Yep, l'expression xpath devrait etre : (substring-before(//last_value,',') + substring-after(//last_value,',')) /2
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar pasanga » 31 Jan 2014 13:56

ok :)
merci pour ton partage
j'ai,réussi a refaire ton tuto
cela fonctionne nikel :D
je vais essayer de faire de faire les moyennes de mes températures
encore merci
Pasanga
pasanga
 
Messages : 267
Inscription : 22 Sep 2012
Localisation : seine maritime

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Dartymath » 01 Fév 2014 23:21

Bonjour benj70b

Super, j'ai reussi avec ton astuce d'actionneur et de capteur HTTP pour faire le calcul entre la temperature, la consigne et la temperature exterieur. Maintenant que j'ai cette valeur de pourcentage de chauffage ex 50% je cherche comment lancer la macro du chauffage fils pilote avec le pourcentage le plus proche ? Comment as tu fait avant de revenir sur ta situation actuelle en tout ou rien ?

Dartymath
Dartymath
 
Messages : 4
Inscription : 17 Jan 2014

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar benj70b » 15 Fév 2014 18:33

Bonsoir Dartymath

J'avais fait 3 regles
1) < à 25 %
2) > à 25 % et < à 75 %
3) > à 75 %

et a chaque règle je lançais la macro correspondante (ex la regle < à 25 %) :
Sans titre 2.jpg
regle < à 25 %
Sans titre 2.jpg (74.37 Kio) Consulté 14638 fois


voili voilou
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar milillicuti » 22 Fév 2014 00:02

Super intéressant !
J'ai utilisé ta méthode pour calculer ma consommation électrique journalière.
Par contre elle est forcément calculée en W. Je n'arrive pas à trouver la syntaxe pour diviser par 1000 et afficher ainsi des kW.
Tu aurais une idée ?

Merci !
Communication & publicité - Articles sur la dommotique : http://www.milillicuti.com
milillicuti
 
Messages : 394
Inscription : 28 Juin 2013

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar Zitoire » 24 Fév 2014 14:28

Il faut aller voir ici et donc dans ton cas utiliser 'div 1000'
Zitoire - Suppôt de Satan
Zitoire
 
Messages : 36
Inscription : 27 Jan 2014

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar milillicuti » 24 Fév 2014 22:54

Merci pour ta réponse. J'avais déjà vu ça mais mon calcul est plus compliqué et j'ai l'impression que XPATH ne sait pas gérer les parenthèses :

(conso totale - conso hier) div 1000

Ca ça ne semble pas fonctionner ... Pourtant la soustraction seule fonctionne.
Communication & publicité - Articles sur la dommotique : http://www.milillicuti.com
milillicuti
 
Messages : 394
Inscription : 28 Juin 2013

Re: Arithmétique simple directement avec l'eedomus :)

Messagepar razowski » 06 Mars 2014 11:55

Bonjour,

Merci pour le partage, très utile...

Une question sur l'expression XPath: est-il possible de réaliser le même exercice sur une string contenant trois valeurs, et si oui, comment adapter l'expression XPath ?

Exemple :
string construite sur 3 sondes de température : 18,22,19.6

Comment parser la string avec XPath pour récupérer les trois valeurs. J'aurais tendance à dire que c'est pas jouable, mais ne suis pas certain de mon coup.
razowski
 
Messages : 60
Inscription : 07 Mars 2013
Localisation : Suisse


Retour vers Règles et programmations

Qui est en ligne ?

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