Page 1 sur 1

changement d'etats intempestifs

Publié : 05 mai 2022, 07:29
par knasson
bonjour,,

j'ai un capteur de pluie qui pilote un Shelly1, cela fonctionne plutôt bien, j'ai un changement d'état du capteur a "on" sans interruptions tant qu'il pleut.
pour donner du sens a "on" je lui ai associé un device texte qui affiche "il pleut" quand le capteur de pluie est sur "on".
j'utilise un script lua pour cela.

Code : Tout sélectionner

commandArray = {}

    if (otherdevices ['Capteur_Pluie']== "On") then
          print ("il pleut");
          os.execute ('curl "http://192.168.1.38:8080/json.htm?type=command&param=udevice&idx=607&svalue="il_pleut""')
          
         else 
          print("il ne pleut pas");
          os.execute('curl "http://192.168.1.38:8080/json.htm?type=command&param=udevice&idx=607&svalue="Pas_de_pluie""') 
             
      
     end

 
return 
commandArray
ce que je souhaite est d'avoir un texte stable tant que le capteur ne change pas d'etat.
alors que j'ai ceci
Merci de votre aide

Re: [Tuto] Execution d'un shell/script défini dans les champs 'On Action', 'Off Action', 'Selector Action'

Publié : 05 mai 2022, 09:51
par knasson
Bonjour,
Merci pour ce tuto,
question est ce que les commandes directes http:// fonctionnent ?
comme par exemple:
Merci de ton experience...chez moi ca ne fonctionne pas..

Edit Keros : Message déplacé initialement posté dans ce sujet

Re: changement d'etats intempestifs

Publié : 05 mai 2022, 12:39
par Keros
Je pense que tu n'as pas compris le principe "d'exécution" des scripts.

Quel est le trigger de ton script ? A en voir les logs, il doit être de type Device. Cela signifie que dès que un device change, le script complet est exécuter.

Dans ton script, tu analyses la valeur de Capteur_Pluie et en fonction tu changes la valeur de ton widget Texte.

Donc, à chaque fois qu'un device change dans DomoticZ, tu changes la valeur de ton widget Texte.

Cela vient de ta condition otherdevices ['Capteur_Pluie'] qui n'est pas la bonne. Essaye avec devicechanged['Capteur_Pluie'].

Je te laisse analyser la différence entre les deux conditions ;)

EDIT : Je viens de voir ton deuxième message que je viens de ramener ici afin d'éviter les multiples discussions sur un même sujet.

Tu peux même mettre tes commandes API dans les champs Action On et Action Off de ton widget pluie pour que celui mettre à jour directement ton widget texte > Tu n'aurais même plus besoin de script.

Re: changement d'etats intempestifs

Publié : 05 mai 2022, 15:31
par knasson
oui tu as raison le principe du script est de s'exécuter chaque fois qu'un device change d'état.
Donc effectivement le "otherdevice" n'est sans doute pas adapté. mais si j'en suis venu au script lua c'est que la commande directe avec l'adressage API qui va bien ne fonctionnait pas.
Ainsi comme je l'avais fait remarquer dans un autre post https://easydomoticz.com/forum/viewtopi ... 51#p104451 quand je mets la commande API sur Action ON ou OFF.
ca ne répond pas.
exemple sur Action ON je mets:
sur Action OFF:
et bien ca ne répond pas...pourtant la commande s'exécute parfaitement bien si je la mets dans la barre d'adresse de mon navigateur.
peux tu confirmer que c'est un bug de domoticz ou bien un bug de moi?
pour finir j'utilise le script proposé dans le tuto...
action on: script:///home/kan/domoticz/scripts/il_pleut.sh
action off: script:///home/kan/domoticz/scripts/il_ne_pleut_pas.sh
avec il_pleut.sh:
#!/bin/bash
/usr/bin/curl -m 8 "192.168.1.38:8080/json.htm?type=command&param=udevice&idx=607&svalue="il_pleut""
exit 0
avec il_ne_pleut_pas.sh:
#!/bin/bash
/usr/bin/curl -m 8 "192.168.1.38:8080/json.htm?type=command&param=udevice&idx=607&svalue="pas_de_pluie""
exit 0
et la ca marche bien...donc problème resolu...
@+
Knasson

Re: changement d'etats intempestifs

Publié : 05 mai 2022, 21:12
par Keros
Je viens d'essayer et ça fonctionne.

Le code que j'ai mis dans Action On :

Code : Tout sélectionner

http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=01&svalue=il%20pleut
Le résultat :
Sans titre.png
Sans titre.png (6.75 Kio) Consulté 961 fois