Page 1 sur 2
Etat capteur ouverture
Publié : 25 janv. 2022, 21:31
par david86
Bonsoir,
J'ai un capteur sur ma porte de garage : Vision Security ZG8101 qui me retourne mon état d'ouverture/fermeture sur un type door locked, mais je n'arrive pas à exploiter cette info.
Je voudrais déclencher un éclairage si mon capteur passe à Unlocked.
Dans les log voici ce que je récupère : 2022-01-25 21:18:25.521 AEOTEC-GEN5: Light/Switch (Etat-porte-garage-Perrine)
J'ai essayé un script Lua avec
if devicechanged['Etat-porte-garage-Perrine'] == 'Unlocked'
commandArray['Lumiere'] = "On"
sans succès... Ni chaud ni froid.
J'ai essayé en mettant ce capteur comme un interrupteur On/Off mais ça na rien changé non plus.
Des idées svp ?
Merci
Re: Etat capteur ouverture
Publié : 25 janv. 2022, 21:48
par Keros
Je déplace ton sujet dans la section des scripts.
Tu peux nous mettre ton script complet ?
Re: Etat capteur ouverture
Publié : 25 janv. 2022, 22:00
par david86
Bonsoir,
ok pour le déplacement du sujet
Voici mon script :
(j'ai essayé sans la partie créneau horaire et sunset... sans changement et je me suis servi de cette même base pour gérer un éclairage qui est déclenché par un autre capteur, qui lui est radio RFXCOM)
Code : Tout sélectionner
commandArray = {}
--time = os.date("*t")
Heure_Now = os.date("%H") * 60 + os.date("%M")
creneau_On = timeofday['SunsetInMinutes'] + 20
Heure_Actuelle=os.date("%X")
if (Heure_Now > creneau_On and devicechanged['Etat-Porte-garage-David'] == 'Unlocked') then
commandArray['Lumiere garage'] = "On for 2"
end
return commandArray
Re: Etat capteur ouverture
Publié : 25 janv. 2022, 22:09
par Keros
Essaye d'y aller en plusieurs étapes. La première : vérifier la condition :
Code : Tout sélectionner
if devicechanged['Etat-Porte-garage-David'] == 'Unlocked') then
print("Garage unlocked")
else
print("Garage locked")
end
Si ça, c'est bon, tu peux construire dessus et rajouter les autres choses.
Re: Etat capteur ouverture
Publié : 25 janv. 2022, 22:23
par david86
Ok, voici le résultat :
2022-01-25 22:19:19.770 AEOTEC-GEN5: Light/Switch (Etat-porte-garage-David)
2022-01-25 22:19:19.711 Status: AEOTEC-GEN5: OpenZWave: Alarm received (Access Control: Door/Window Open), NodeID: 12 (0x0c)
2022-01-25 22:19:19.792 Status: LUA: Garage unlocked
2022-01-25 22:19:22.892 Status: LUA: Garage locked
2022-01-25 22:19:23.165 Status: LUA: Garage locked
Je ne sais pas pourquoi il a mis quelques secondes après des 'locked' à 22:19:22.892 et à 22:19.23.165 car ma porte est toujours ouverte, je suis bien sur Unlocked comme l'état de 22:19:19.792
Il continue toujours à afficher dans les logs :
2022-01-25 22:22:25.658 Status: LUA: Garage locked
Re: Etat capteur ouverture
Publié : 25 janv. 2022, 22:41
par Keros
Tu peux essayer ceci pour avoir les infos du capteur :
Code : Tout sélectionner
if devicechanged['Etat-Porte-garage-David'] == 'Unlocked') then
print("Garage unlocked = "..otherdevices['Etat-Porte-garage-David'])
else
print("Garage locked = "..otherdevices['Etat-Porte-garage-David'])
end
Re: Etat capteur ouverture
Publié : 25 janv. 2022, 23:05
par david86
Après un mauvais copié collé, j'ai donc les bonnes valuers, du moins les suivantes :
J'appuie sur mon BP pour ouverture :
2022-01-25 22:57:10.852 Status: User: david (IP: ) initiated a switch command (587/Porte-garage-David/On)
2022-01-25 22:57:10.888 Status: LUA: Garage locked = Locked
2022-01-25 22:57:11.884 AEOTEC-GEN5: OpenZWave: Domoticz has send a Switch command! NodeID: 11 (0x0b)
2022-01-25 22:57:11.891 AEOTEC-GEN5: Light/Switch (Porte-garage-David)
2022-01-25 22:57:11.914 Status: LUA: Garage locked = Locked
2022-01-25 22:57:14.310 AEOTEC-GEN5: Light/Switch (Etat-porte-garage-David)
2022-01-25 22:57:14.253 Status: AEOTEC-GEN5: OpenZWave: Alarm received (Access Control: Door/Window Open), NodeID: 12 (0x0c)
2022-01-25 22:57:14.322 Status: LUA: Garage locked = Unlocked
2022-01-25 22:57:16.931 Status: LUA: Garage locked = Unlocked
2022-01-25 22:57:27.144 Status: LUA: Garage locked = Unlocked
2022-01-25 22:57:36.779 Status: LUA: Garage locked = Unlocked
Ci-dessus on voit bien l'état de Locked passe à Unlocked le temps que la porte s'ouvre (porte basculante). C'est nickel !
J'appuie sur mon BP pour fermeture :
2022-01-25 22:58:08.914 Status: User: david (IP: ) initiated a switch command (587/Porte-garage-David/On)
2022-01-25 22:58:08.951 Status: LUA: Garage locked = Unlocked
2022-01-25 22:58:09.956 AEOTEC-GEN5: OpenZWave: Domoticz has send a Switch command! NodeID: 11 (0x0b)
2022-01-25 22:58:09.961 AEOTEC-GEN5: Light/Switch (Porte-garage-David)
2022-01-25 22:58:09.981 Status: LUA: Garage locked = Unlocked
2022-01-25 22:58:17.070 Status: LUA: Garage locked = Unlocked
2022-01-25 22:58:27.991 Status: LUA: Garage locked = Unlocked
2022-01-25 22:58:34.162 AEOTEC-GEN5: Light/Switch (Etat-porte-garage-David)
2022-01-25 22:58:34.104 Status: AEOTEC-GEN5: OpenZWave: Alarm received (Access Control: Door/Window Closed), NodeID: 12 (0x0c)
2022-01-25 22:58:34.196 Status: LUA: Garage locked = Locked
2022-01-25 22:58:54.019 Status: LUA: Garage locked = Locked
Ci-dessus on voit bien l'état de Unlocked passe à Locked le temps que la porte se ferme, c'est nickel aussi ça!
Re: Etat capteur ouverture
Publié : 26 janv. 2022, 00:08
par boum
Il y a une petite confusion sur l'exécution des scripts.
Un script avec le trigger "Device" s'exécute à chaque fois qu'un dispositif change d'état. N'importe quel dispositif.
Du coup, le bloc "else" de la condition est exécuté à chaque changement de température ou tout autre capteur qui se met à jour.
Code : Tout sélectionner
if devicechanged['Etat-Porte-garage-David'] then
-- Le dispositif nommé Etat-Porte-garage-David vient de changer d'état
if devicechanged['Etat-Porte-garage-David'] == 'Unlocked' then
print("Garage vient de passer en unlocked")
else
print("Garage vient de passer en "..otherdevices['Etat-Porte-garage-David'])
end
end
Re: Etat capteur ouverture
Publié : 26 janv. 2022, 06:41
par david86
Bonjour "Boum",
Merci de ta réponse, cependant je pense que dans un 1er temps Keros me fait étape par étape pour voir comment réagit le capteur et ce qu'on arrive à en tirer.
Cependant j'ai appris quelque chose, avec un déclencheur "trigger" le script s'effectue à chaque changement ou mise à jour d'un dispositif, ça je ne savais pas, je pensais qu'en mettant device dans le trigger, l'élément déclencheur serait UN device définit dans LE script en lui même...
Re: Etat capteur ouverture
Publié : 26 janv. 2022, 06:50
par david86
Bonjour Keros,
J'ai re-regardé ce matin, je suis allé un peu vite en disant, génial ça fonctionne. Si on regarde bien, les retours de log me renvoi l'état de mon capteur avec ";;otherdevice[]" cependant par rapport à la condition if...print... else.. print.... je suis finalement toujours dans le else de la boucle car en début il marque
Garage Locked = état_réel_du_capteur
Si des fois je ne suis pas clair dans mes propos, j'ai essayé de faire cela en image.
Qu'est-ce qui pourrait faire que finalement le retour d'état de la commande otherdevice est correct mais pas devicechanged ?
Merci,

- Détail script/log
- 2022_01_26_06_43_49_Window.jpg (221.11 Kio) Consulté 1574 fois