Off consécutifs

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
calouis
Messages : 109
Inscription : 08 nov. 2015, 10:34
Localisation : 62

Off consécutifs

Message par calouis »

Bonjour
J'ai ce script qui déclenche un message vocal à l'ouverture ou fermeture de mon portail :

Code : Tout sélectionner

dofile('/home/pi/domoticz/scripts/lua/modules.lua')
commandArray = {}
if devicechanged['ZG - Portail'] == 'On' then
         commandArray['$Portail ouvert']='On AFTER 4' 

elseif devicechanged['ZG - Portail'] == 'Off'  then
         commandArray['$Portail fermé']='On AFTER 4' 

end
C'est un détecteur Xiaomi de porte connecté à la zigate.
Mais, j'ai régulièrement des Off intempestifs comme sur l'image :
ET par conséquent des alertes sonores non voulues et peu WAF....
Quelqu'un pourrait-il m'aider à améliorer mon script pour éviter ce désagrément ?
Merci d'avance
Pièces jointes
portail_ on-off.png
portail_ on-off.png (7.99 Kio) Consulté 2223 fois
_ Raspberry Pi3 Stretch + Domoticz V4.11214
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB Version: Pro XL1/1035
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.11.012 + Version : 031d
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Off consécutifs

Message par Wolfen38 »

Mot je sais pas comment t'aider mais j'aimerai bien que tu m'expliques comment tu gères ton annonce vocale ?

Envoyé de mon Mi A1 en utilisant Tapatalk

Datawolf
Messages : 273
Inscription : 03 avr. 2018, 13:51

Re: Off consécutifs

Message par Datawolf »

Salut,
En dzVents je répondrais checkFirst(), mais en lua je suis pas assez calé. :oops:
@+
Datawolf
higgins91
Messages : 669
Inscription : 17 nov. 2016, 11:06

Re: Off consécutifs

Message par higgins91 »

tu peux rajouter une variable ou un virtualdevic qui garde le dernier état, si le nouvel état est le même alors tu ne fais rien, si il est différent alors tu "cause" :D
par exemple:

variable sauvegardée ou virtual device: Etat_precedent

Code : Tout sélectionner


Si etat=ouvert et Etat_precedent=0
je cause "ouvert"
Etat_precedent=1
fin si

si etat=ferme et Etat_precedent=1
je cause "fermé"
Etat_precedent=0
fin si
du coup si tu refais ta boucle plusieurs fois avec l'état fermé, Etat_precedent étant égal à 0 il ne se passera rien!
Dz version : 2024.7
Rpi 4 avec dongle téléinfo, GPIO pour le moment !
Répondre