comparaison heure dans les règles

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

comparaison heure dans les règles

Messagepar thrymartin » 28 Sep 2021 13:25

Hello,

Si un capteur affiche une heure sous format hh:mm:ss
Est ce que les comparaisons dans une règle fonctionnent sous ce format ou il faut que les heures soient converties en nombre ?

merci
thrymartin
 
Messages : 920
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: comparaison heure dans les règles

Messagepar merguez07 » 28 Sep 2021 18:22

Salut thrymartin,

non ça ne marchera pas (j'ai testé). il faut effectivement une convertion en nombre
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: comparaison heure dans les règles

Messagepar thrymartin » 28 Sep 2021 19:23

OK, merci.
Au lieu de bricoler du code en faisant des clés supplémentaire dans le XML, j'ai trouvé ça :

si XPath = //key = 12:34:56 ou "depuis hier"

faire un XPath = translate(//key,'depuis hier:','0') ce qui donne 123456 ou 0
avec un clone du capteur en type de donnée décimale...

j'avoue que j'ai été surpris que ça fonctionne puisque ce n'est pas tout à fait l'utilisation trouvée ici https://www.gchagnon.fr/cours/xml/fonctionsxpath.html
(on peut faire plus de trucs que ce que je pensais avec XPath ! )

En fait, c'est comme si dans le 3eme argument, on avait 0 suivit de 10 ""
donc dans "depuis hier:" seul le d est remplacé par 0, le reste par ""
et dans un format horaire, seul le ":" est remplacé par ""
les chiffres n'étant pas dans le 2eme argument, ils ne sont pas remplacés.

on vérifie ?
translate(//key,'dehiprsu:','0')
et ça marche aussi... (par contre l'espace n'est pas traité, on n'est pas obligé de l'inclure)
thrymartin
 
Messages : 920
Inscription : 03 Mars 2019
Localisation : La Réunion


Retour vers Règles et programmations

Qui est en ligne ?

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