Capteur de porte en LUA

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
JRCondat
Messages : 40
Inscription : 29 nov. 2016, 16:40

Capteur de porte en LUA

Message par JRCondat »

Bonjour à tous,

Problème toujours d'actualité, mis à jour : https://easydomoticz.com/forum/viewtopi ... 983#p45983


j'ai des capteurs d'ouverture de portes/fenêtres qui me remontent une trame 433Mhz que j'arrive bien à capter avec mon RFLink et donc qui apparaissent comme des Contact Door dans ma liste.

J'ai besoin de réaliser une action dès qu'une trame est reçue, la trame apparait bien dans les logs pas de souci mais dans mes scripts LUA je ne peux jamais la voir car devicechanged ne change jamais puisque l'état est toujours ouvert.

En bref, je ne sais pas si j'ai été clair mais j'aimerai réaliser une action à chaque trame reçue mais malheureusement ça ne donne rien :(

Code : Tout sélectionner

commandArray = {}

debugging = true
print('Test de script 08/12')
local porteSalon1 = 'Détecteur Ouvt Porte Salon 1'
local porteMaison = 'Détecteur Ouvt Porte Entrée'

commandArray = {}
if (devicechanged['porteSalon1'] == 'Open' or devicechanged['porteSalon1'] == 'On') then
        commandArray['Prise commandée A']='On'
        print('Porte du salon ouverte')
end
if (devicechanged['porteMaison'] == 'Open' or devicechanged['porteMaison'] == 'On') then
        commandArray['Prise commandée A']='On'
        print('Porte principale ouverte')
end
return commandArray
Dernière modification par JRCondat le 09 déc. 2017, 23:20, modifié 1 fois.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Capteur de porte en LUA

Message par jackslayter »

Essai comme ça

Code : Tout sélectionner

if (devicechanged['porteSalon1']) then
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
JRCondat
Messages : 40
Inscription : 29 nov. 2016, 16:40

Re: Capteur de porte en LUA

Message par JRCondat »

Malheureusement sans résultat :(
comme on peut le voir dans les logs on voit bien la trame arriver mais rien ne se passe pour autant :

Code : Tout sélectionner

2017-12-08 19:01:12.601 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
2017-12-08 19:01:18.949 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
2017-12-08 19:01:41.159 dzVents: Test de script 08/12
2017-12-08 19:01:41.161 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
2017-12-08 19:02:02.642 Netatmo: No Weather Station devices found...
2017-12-08 19:02:04.312 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
JRCondat
Messages : 40
Inscription : 29 nov. 2016, 16:40

Re: Capteur de porte en LUA

Message par JRCondat »

En fait devicechanged n'est jamais bon car le sensor est toujours à On ou Open donc même si la trame arrive On/Open arrive, il était déjà à On/Open donc pas de changement...
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Capteur de porte en LUA

Message par vil1driver »

Salut,

devicechanged est lié à la mise à jour et non au changement..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
JRCondat
Messages : 40
Inscription : 29 nov. 2016, 16:40

Re: Capteur de porte en LUA

Message par JRCondat »

D'accord mais alors dans ce cas, je ne comprends pas pourquoi ça ne passe jamais dans ma boucle :(
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Capteur de porte en LUA

Message par Neutrino »

Bonsoir,

Code : Tout sélectionner

2017-12-08 19:01:41.159 dzVents: Test de script 08/12)
La bonne nouvelle, c'est que ton script se lance.
Le truc bizarre, c'est qu'il apparaît en dzVents dans les logs.
Un petit nettoyage de cache s'impose pour commencer.
Ensuite vire moi les '

Code : Tout sélectionner

if (devicechanged[porteSalon1] == 'Open' or devicechanged[porteSalon1] == 'On') then
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
JRCondat
Messages : 40
Inscription : 29 nov. 2016, 16:40

Re: Capteur de porte en LUA

Message par JRCondat »

Pas mieux :(
Mon code :

Code : Tout sélectionner

-- Fichier LUA pour faire l'alarme à la maison commandArray = {}
debugging = true print('Test de script 08/12 CLI')

local porteSalon1 = 'Détecteur Ouvt Porte Salon 1'
local porteMaison = 'Détecteur Ouvt Porte Entrée'

commandArray = {}

if (devicechanged[porteMaison] == 'Open' or devicechanged[porteMaison] == 'On') then
        commandArray['Prise commandée A']='On'
        print('Porte principale ouverte')
end

if (devicechanged[porteSalon1] == 'Open' or devicechanged[porteSalon1] == 'On') then
        commandArray['Prise commandée A']='On'
        print('Porte salon ouverte')
end

return commandArray
Et mes logs :

Code : Tout sélectionner

2017-12-08 22:52:25.723 dzVents: Test de script 08/12 CLI
2017-12-08 22:52:25.724 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
Toujours ce foutu dzVents mais surtout l'état devicechanged non détecté alors qu'on le voit bien dans les logs
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Capteur de porte en LUA

Message par Neutrino »

Ton script est un fichier ou tu utilises l'éditeur intégré ?
Il doit être du style "LUA" et "Device" dans l'éditeur.
Et je rajouterais bien un

Code : Tout sélectionner

print otherdevices[porteMaison]
histoire de voir quelle valeur doit être testée.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
JRCondat
Messages : 40
Inscription : 29 nov. 2016, 16:40

Re: Capteur de porte en LUA

Message par JRCondat »

Mon script est en fichier et non via l'éditeur. Je l'ai nommé script_device_myAlarm.lua

Grace à la ligne que tu m'as fait rajouter j'ai l'état mais visiblement ça ne suffit pas pour le devicechanger puisque voilà mes logs :

Code : Tout sélectionner

2017-12-08 23:23:11.462 dzVents: Test de script 08/12 CLI
2017-12-08 23:23:11.462 dzVents: Closed
2017-12-08 23:23:11.464 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
Alors que le code est encore plus simplifié :

Code : Tout sélectionner

debugging = true print('Test de script 08/12 CLI')

local porteSalon1 = 'Détecteur Ouvt Porte Salon 1'
local porteMaison = 'Détecteur Ouvt Porte Entrée'

commandArray = {}

if (devicechanged[porteSalon1] == 'Closed') then
        commandArray['Prise commandée A']='On'
        print('Porte salon ouverte')
end
print (otherdevices[porteSalon1])
return commandArray
Et dans tous les cas, merci beaucoup de ton aide et patience ;)
Répondre