Page 1 sur 1

Conseil sur Rules ESPEASY

Publié : 27 mars 2023, 19:05
par david86
Bonsoir à tous,
Je me suis lancé dans une Rules sous ESPEASY avec un timer pour envoyer des données toutes les 10 (cette valeur sera à modifier par la suite car pas besoin de cette cadence) secondes selon un trigger en tout premier élément sur le retour d'une valeur d'interrupteur, voici mon code :

Code : Tout sélectionner

on check_tension#Jus do //des qu'un changement d'état apparait
timerSet,1,10 //set timer 1 pour 10 secondes
endon
on Rules#Timer=1 do
if [check_tension#Jus]=1
publish domoticz/in,'{"idx":29,"nvalue":0,"svalue":"[Pression#Analog]"}'
timerSet,1,10
else
publish domoticz/in,'{"idx":29,"nvalue":0,"svalue":"0"}'
timerSet,1,10
endon
Est-ce que vous voyez quelque chose de pas normal ?
A chaque changement d'état de 'check_tension#Jus" je compte 10 seconde, si lui même est égal à 1 j'envoie la valeur de 'Pression' sin on j'envoie la valeur forcé à 0, une fois l'un ou l'autre envoyé, je refais mon timer de 10 secondes et selon valeur valeur de 'Pression' j'envoie l'une ou l'autre info.

Ca semble fonctionnait pendant 30/40 minutes mais après plus de valeur de Pression, dans la journée j'ai 3 fois une perte d'information. dès que j'actionnais Check_tension je retrouvais la bonne valeur, et cela pendan tun certain jusqu'à une 'plantade' par la suite.

J'ai probablement mal écrit ma rules et mon timer.

Merci

Re: Conseil sur Rules ESPEASY

Publié : 27 mars 2023, 20:41
par e111111
Salut,

manque pas un peu le 'EndIf' ?

Code : Tout sélectionner

on Rules#Timer=1 do
  if [check_tension#Jus]=1
    publish domoticz/in,'{"idx":29,"nvalue":0,"svalue":"[Pression#Analog]"}'
    timerSet,1,10
  else
    publish domoticz/in,'{"idx":29,"nvalue":0,"svalue":"0"}'
    timerSet,1,10
  endif
endon
Si tu structure mieux ton code, tu vois mieux les oublis...

Re: Conseil sur Rules ESPEASY

Publié : 27 mars 2023, 20:44
par david86
Merci, déjà bonne remarque, je corrige de suite.