Etat capteur ouverture

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 <\>.
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Etat capteur ouverture

Message 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
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Etat capteur ouverture

Message par Keros »

Je déplace ton sujet dans la section des scripts.

Tu peux nous mettre ton script complet ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Etat capteur ouverture

Message 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
Dernière modification par Keros le 25 janv. 2022, 22:04, modifié 1 fois.
Raison : Changement des balises quote en code
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Etat capteur ouverture

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Etat capteur ouverture

Message 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
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Etat capteur ouverture

Message 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
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Etat capteur ouverture

Message 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!
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: Etat capteur ouverture

Message 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
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Etat capteur ouverture

Message 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...
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Etat capteur ouverture

Message 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
Détail script/log
2022_01_26_06_43_49_Window.jpg (221.11 Kio) Consulté 1580 fois
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Répondre