Forum eedomus
https://forum.eedomus.com/

opérateur dans une règle
https://forum.eedomus.com/viewtopic.php?f=18&t=10329
Page 1 sur 1
Auteur:  thrymartin [ 27 Déc 2020 09:53 ]
Sujet du message:  opérateur dans une règle

Hello,

voila ce que je veux, c'est pas pressé, c'est pour cet été évidemment:

j'ai remarqué que si en été, la cave pouvait monter à plus de 15°C, la nuit en été, on a souvent moins de 10°C - donc l'idée c'était de ventiler de l'extérieur vers l'intérieur à ce moment la

J'ai donc déjà installé cette ventilation à l'envers
mais je voudrais que ça se déclenche avec un bon gradient de température et pas simplement parce qu'il fait juste 1/10 de degré en moins dehors
par exemple une règle de type :

si température extérieure devient inférieure à température cave MOINS 5°C
et que température cave est plus grand que 10°C
et que pluie des dernières 24h = 0 (pour pas aspirer de l'humidité ou des gouttes de pluie dans le conduit)

alors ventile
(et l'inverse pour arrêter)

Sauf que... MOINS 5°C, on ne peut pas mettre ça dans une règle...

Vous sautez la difficulté comment au plus simple ?
Auteur:  merguez07 [ 27 Déc 2020 18:32 ]
Sujet du message:  Re: opérateur dans une règle

Bonsoir,

peut être en intégrant le plugin "calculateur mathematique" qui calculerait la différence de température avec une hystéresis et le mettre dans la règle avec un test <0°C
Auteur:  thrymartin [ 29 Déc 2020 08:39 ]
Sujet du message:  Re: opérateur dans une règle

OK, merci, via script donc,

Comme je récupère ici la temp. extérieure qui dépend du script de mobile alerts, j'allais me dire que rajouter une ligne dans ledit script pour avoir une entrée XML de plus pour utilisation dans un nouveau capteur serait plus simple, et puis mon tour n'a fait qu'un sang...

Je me demandais pourquoi on ne peut pas étalonner dans les capteurs, mais en fait on peut puisque dans le XPath on peut utiliser des opérandes (+-* et div et même mod etc.)... le pire c'est que c'est ce que je répondais dans ce forum quand certains voulaient changer d'unité (genre W-> kW)
avec une température //temp_2 ça devient //Temp_2 + 5
(avec un nouveau capteur évidemment).
Auteur:  opa95 [ 29 Déc 2020 10:20 ]
Sujet du message:  Re: opérateur dans une règle

Bonjour thrymartin
Tu as tout à fait raison pour le XPATH : il fonctionne très bien; il y a juste une anomalie si on veux tester en utilisant le bouton "tester" après le XPATH, chez moi il oublie de recopier le signe"+" ou "*" mais c'est OK pour le "-" ou le "div" : "100+//uptime" devient "100 //uptime" dans le panneau de test qu'il faut donc corriger pour tester.
Bonnes fêtes
Auteur:  MRAB [ 29 Déc 2020 17:23 ]
Sujet du message:  Re: opérateur dans une règle

Bonjour,

Pour éviter d'ajouter un capteur uniquement pour le décaler de 5° d'un autre capteur, voila comment je procéderai :

Créer un état virtuel appelé "temp cave moins 5" par exemple.

Ensuite créer un actionneur Http qui utilise le script math.php et fait l'opération : ?exec=math.php&idperiph=xxxxxxx&operation=soustraction&val1=[LAST_VALUE PERIPH_ID=yyyyyy]&val2=5

ou xxxxx est l'id de ton état virtuel et yyyyy celui de ta temp. cave.

Définir une fréquence de requête de 30mn par exemple.

Toutes les 30min ton état virtuel sera le reflet de ta température cave moins 5 degrés.

Utiliser ensuite ton état virtuel dans les critères de ta règle.
Auteur:  thrymartin [ 29 Déc 2020 20:12 ]
Sujet du message:  Re: opérateur dans une règle

opa95 a écrit:il oublie de recopier le signe"+"


je n'ai pas vu de bug avec l'addition avec le test, c'est d'ailleurs la première chose que j'ai faite sur un capteur dont le XPtah était //temp_2 : un test en faisant //temp_2 + 5 et j'obtiens bien dessous la valeur souhaitée, que ce soit en appelant le script ou après en utilisant le résultat xml

peut être que ça a été corrigé ?
Auteur:  opa95 [ 30 Déc 2020 10:42 ]
Sujet du message:  Re: opérateur dans une règle

Chez moi, ce matin ça ne fonctionne toujours pas même en changeant de navigateur.
Bizarre, Bizarre...
"100+//uptime" devient "100 //uptime" dans le panneau de test.
Le principal c'est que la box comprenne bien.
Auteur:  thrymartin [ 01 Jan 2021 16:55 ]
Sujet du message:  Re: opérateur dans une règle

ah bah non, pas 100+//uptime mais //uptime + 100
Auteur:  opa95 [ 01 Jan 2021 17:59 ]
Sujet du message:  Re: opérateur dans une règle

J'ai tout essayé, avant , après, avec parenthèses, sans, avec espaces, sans ...
Une formule de ce genre fonctionne très bien si je la tape directement dans le panneau de test :
1000+//uptime+10000
mais si je l'appelle depuis le panneau du widget, elle se transforme en
1000 //uptime 10000
mais le widget fonctionne très bien (ce qui est le principal)
par contre, la formule 100-((//uptime)-1000) se recopie très bien, ainsi que 100*((//uptime)*1000).
C'est comme si le système interprète "+100" comme " 100" symbole de signe plutôt que d'opération.
C'est plus une question de principe, il suffit que je la corrige dans le panneau ou que je fasse un copier-coller depuis le widget.
Auteur:  thrymartin [ 01 Jan 2021 20:16 ]
Sujet du message:  Re: opérateur dans une règle

Après, même si le système a ses règles de priorité, c'est bien de les imposer avec des parenthèses :

https://www.youtube.com/watch?v=tYf3CpbqAVo
Auteur:  thrymartin [ 04 Jan 2021 11:11 ]
Sujet du message:  Re: opérateur dans une règle

Ah j'ai compris,
Comme je viens de faire le widget thermomètre + 4°C, effectivement, ça fonctionne
mais dans le test, le "+" effectivement disparait dans le cadre "xPath"
Sans importance puisque cela ne concerne que la page de test quand on l'appelle et qu'on peut tester en remettant ce fameux "+"

j'avais pensé à un problème de codage, mais au lieu de coder il ya plus simple, "plus", c'est "moinsmoins", alors on peut remplacer le signe plus "+" par moinsmoins "--"
dans le test ça fonctionne, dans le widget aussi : exemple, remplacer
// temp_2 + 4
par
//temp_2 -- 4

ou laisser comme ça...
Auteur:  opa95 [ 04 Jan 2021 11:54 ]
Sujet du message:  Re: opérateur dans une règle

Pourquoi pas... , mais de toute façon ça n'affecte que le test et ce n'est pas très important : c'était juste une remarque et on pourrait corriger dans une version future.
Bonne année à tous
Auteur:  thrymartin [ 08 Jan 2021 11:51 ]
Sujet du message:  Re: opérateur dans une règle

[transmission du signe "+" de "tester" - un script - dans la page de test]
Bart a réglé le problème, et ça roule
(si ça marche pas c'est à cause du cache, mais bon, perso, je n'ai pas eu à le vider)

Merci Bart
Auteur:  opa95 [ 08 Jan 2021 12:10 ]
Sujet du message:  Re: opérateur dans une règle

Bonjour et merci à Bart et thrymartin.
c'est mieux ainsi :D
j'ai du relancer le navigateur qu'il fallait remettre à jour de toute façon.
Page 1 sur 1 Le fuseau horaire est UTC+1 heure