Page 2 sur 4

Re: NodeMCU ESPEASY led

Publié : 25 mars 2020, 13:22
par david86
Bonjour,
j'ai trouvé mon erreur, en fait ce n'est pas une erreur, mais j'ai compris en checkant les log de mon esp, la "rule" avec l'horloge. En mettant l'interrupteur à 21h, l'envoi de l'info se fera à 21h, mais ce n'est pas parce qu'il est 21h30 qui enverra l'ordre d'allumer la led.. Donc en faisant un test gpio,13,1 à 13h05 et gpio,13,0 à 13h07 => led allumé à 13h05 et s'est éteint à 13h07 !! Youhouuuuuuu

Maintenant à voir comment régler le fonctionnement de la rule fonction de la température :roll:

Re: NodeMCU ESPEASY led

Publié : 25 mars 2020, 14:10
par david86
Essai still in progress :-)
C'est Ok pour la température, enfin à moitié... Avec une seule condition ça roule nickel, j'ai voulu tester un peu plus en mettant 3 conditions :

on bmp280#Temp>-39 or bmp280#Temp<26 do
gpio,12,0
endon
on bmp280#Temp>30 or bmp280#Temp<84 do
pwm,12,10
endon
on bmp280#Temp>26 or bmp280#Temp<30 do
gpio,12,1
endon
J'ai l'impression que ça se chevauchent par moment... Même étant supérieur à 30° je n'ai pas réussi à avoir un faible éclairement...

Résultat des logs : 14:08:08.682 -> 1947705 : Info : EVENT: bmp280#Temp=31.10
14:08:08.716 -> 1947722 : Info : ACT : gpio,12,0
14:08:08.716 -> 1947724 : Info : Command: gpio
14:08:08.716 -> 1947726 : Info : SW : GPIO 12 Set to 0
14:08:08.716 -> 1947730 : Info : ACT : pwm,12,10
14:08:08.716 -> 1947732 : Info : Command: pwm
14:08:08.716 -> 1947733 : Info : SW : GPIO 12 Set PWM to 10
14:08:08.716 -> 1947738 : Info : ACT : gpio,12,1
14:08:08.716 -> 1947739 : Info : Command: gpio
14:08:08.716 -> 1947740 : Info : SW : GPIO 12 Set to 1

Vous pouvez m'éclairer ? sans mauvais jeu de mot !! :D

Merci,

Re: NodeMCU ESPEASY led

Publié : 25 mars 2020, 15:50
par Neutrino
Essaye avec 'and' à la place de 'or'.

Re: NodeMCU ESPEASY led

Publié : 25 mars 2020, 21:51
par david86
Bonsoir,
Avec les and je dirai que c'est un peu mieux, mais pas le top...
Voici mon log :
21:40:54.763 -> 3270965 : Info : EVENT: bmp280#Temp=26.94
21:40:54.763 -> 3270981 : Info : ACT : gpio,12,0
21:40:54.763 -> 3270983 : Info : Command: gpio
21:40:54.797 -> 3270984 : Info : SW : GPIO 12 Set to 0
21:40:54.797 -> 3270989 : Info : ACT : gpio,12,1
21:40:54.797 -> 3270990 : Info : Command: gpio
21:40:54.797 -> 3270991 : Info : SW : GPIO 12 Set to 1
21:40:54.797 -> 3270996 : Info : ACT : pwm,12,500
21:40:54.797 -> 3270997 : Info : Command: pwm
21:40:54.797 -> 3270999 : Info : SW : GPIO 12 Set PWM to 500
voici ma rule :
on bmp280#Temp>00 and bmp280#Temp<20 do
gpio,12,0
endon
on bmp280#Temp>25 and bmp280#Temp<55 do
gpio,12,1
endon
on bmp280#Temp>20 and bmp280#Temp<25 do
pwm,12,500
endon
donc fonction de ma rule, si ma température est entre 25 et 55 je devrai envoyer l'ordre gpio 12 à 1 mais comme on peut le voir dans les log, il fini sa dernière commande par pwm à 500 que c'est logiquement les températures entre 20 et 25...

Rahhh

Une autre idée ? Ou alors mettre 3, 4, 5 et + de conditions ne fonctionnent pas de cette manière ? Plutôt essayer de faire ça avec du if else if else?Mais ça ne limiterait pas qu'à uniquement 2 de mes 3 conditions ?

Merci,

Re: NodeMCU ESPEASY led

Publié : 26 mars 2020, 14:10
par david86
Bonjour,
Je bloque toujours, hier soir, ce midi... Rien n'y fait à mettre des conditions and ou or...
Et là, ce qui marchait avant me fait un truc bizarre, ce code :
on bmp280#Temperature do
if[bmp280#Temperature]>26
gpio,15,1
else
gpio,15,0
endif
endon
me fait rebooter mon esp à chaque cycle de mesure de température... j'ai essayé sur d'autres gpio, tout pareil, redémarrage...

Ce cas de figure :
on bmp280#Temperature do
if[bmp280#Temperature]>26
gpio,15,1
endif
endon
me donne dans les log :
14:07:21.539 -> 310732 : Info : EVENT: bmp280#Temperature=23.46
14:07:21.539 -> 310739 : Info : ACT : if23>26
14:07:21.573 -> 310740 : Info : Command: if23>26
14:07:21.573 -> 310745 : Info : Command unknown: "if23>26"
14:07:21.573 -> 310748 : Info : ACT : gpio,15,1
14:07:21.573 -> 310749 : Info : Command: gpio
14:07:21.573 -> 310750 : Info : SW : GPIO 15 Set to 1
Pourquoi met-il "command unknown : "if23>26"" ?

Je sèche complètement sur les rules, pas fautes d'avoir regardé des tuto, des exemples, lu sr letsitcontrol...

Merci à vous.

Re: NodeMCU ESPEASY led

Publié : 26 mars 2020, 15:59
par Jeff
Je pense que tu n'as pas mis l'espace après le if.
Fait simple au début, 1 seule condition et tu test.
Essaye mon exemple mis dans un des post :

Code : Tout sélectionner

on BMP280 do
  if [BMP280#temp]>=18 or [BMP280#temp]<=20
   gpio....
endon

Re: NodeMCU ESPEASY led

Publié : 26 mars 2020, 21:30
par david86
Merci Jeff.... C'était cet espace qui me faisait tout foiré... Les BOULES ultimes !! Mais un grand merci à toi de m'avoir ouvert les yeux ! Du coup toutes mes combinaisons fonctionnent

Et voilà mon petit bout de machin qui me permet en fonction du critère de température allumer les 3 leds différemment et surtout de les faire éteindre quand elles ne rentrent pas dans le critère else gpio 0)
on bmp280#Temperature do
if [bmp280#Temperature]<24
gpio,15,1 //led verte
else
gpio,15,0 //led verte
endif
endon

on bmp280#Temperature do
if [bmp280#Temperature]>24 and [bmp280#Temperature]<27
gpio,13,1 //led rouge
else
gpio,13,0 //led rouge
endif
endon

on bmp280#Temperature do
if [bmp280#Temperature]>27
gpio,12,1 //led rouge grosse
else
gpio,12,0 //led rouge
endif
endon
Ca c'est cool.

Est-ce que je pourrai additionner 2 critères de mon BMP280, la température et l'humidité par exemple ? si Temp > 24 et Humi >50 ==> GPIO 12 à 1 ? J'ai essayé de faire sur le même principe avec des and, mais je dois pas le faire correctement. Simplement savoir si c'est possible de le faire ou pas ;-)

merciiiiiii :)

Re: NodeMCU ESPEASY led

Publié : 26 mars 2020, 21:37
par Jeff
C'est toujours un plaisir quand on arrive qqchose soit même !
Bien sûr, il faut regarder le wiki pour plusieurs conditions!
Je pense que tu devrais juste appelé

Code : Tout sélectionner

On bmp280 do
sans le #Temperature après comme cela que ce soit temperature ou humidité qui est mis à jour il rentrera dans la boucle.
Après tu fais tes tests : if ... or ou and ce que tu souhaites comme condition.

Re: NodeMCU ESPEASY led

Publié : 26 mars 2020, 21:52
par david86
et oui Jeff, j'ai justement essayé en ne mettant que bmp280 sans le # et ça n'a rien fait. J'avais bien vu ton exemple sur le "#", mais ça ne me faisait rien, ce n'est que lorsque dans la boucle du "on....do" j'ai rajouté la #value à mon taskname que ça a commencé à fonctionné.

J'ai essayé aussi en mettant carrément
on bmp#Temp and bmp280#Humi do
if [bmp#Temp]>22 and [bmp280#Humi]>45
gpio,15,1
endif
endon

mais idem rien.

:?

Re: NodeMCU ESPEASY led

Publié : 26 mars 2020, 22:26
par Jeff
Et avec Or sur le On et pas and ou 1 seule condition pour commencer, de toute façon tu reçois les 3 valeurs du bmp280 d'un coup... on commence tjs simple.

Code : Tout sélectionner

on bmp#Temp or bmp280#Humi do
if [bmp#Temp]>22 and [bmp280#Humi]>45
gpio,15,1
endif
endon
Les 2 conditions sont bien vraie : temp >22 ET hum > 45 ?