[LUA] Fiabilisation des détecteurs de mouvement PIR chinois
Re: Fiabilisation des détecteurs de mouvement PIR chinois
Je pencherais plus a un problème de nom de l'interrupteur virtuel, un problème d'espace ?
local PIRVirtuel = 'PIR Virtuel'
local PIRVirtuel = 'PIR Virtuel'
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
Re: Fiabilisation des détecteurs de mouvement PIR chinois
J'y avais pensé aussi mais même en mettant un _ celà ne fonctionne pas.
voici le code ui n'est qu'un copier/coller du code au début de sujet:
ainsi que mes variables

et le message d'erreur:
2016-06-14 19:22:11.319 Error: EventSystem: in /home/sylvain/domoticz/scripts/lua/script_device_PIR.lua: /home/sylvain/domoticz/scripts/lua/script_device_PIR.lua:24: bad argument #1 to 'sub' (string expected, got nil)
qui disparait si je commente le dernier IF
voici le code ui n'est qu'un copier/coller du code au début de sujet:
Code : Tout sélectionner
--------- Tableau des intérupteurs des PIR
local PIR={}
PIR['0']='PIR_Entree'
PIR['1']='PIR_Amis'
PIR['2']='PIR_Bureau'
-- Nom de l'interupteur virtuel de type motion detector
local PIRVirtuel = 'PIR_Virtuel'
-- Nom de la variable qui stock le dernier PIR detecté
local PIRVirtuel_detected = 'PIR_detected'
-- IP:PORT du serveur Domoticz
local ip = '192.168.1.14:8081' -- user:pass@ip:port de domoticz
-- Variables
local detection=false
local PIRdeclanche = ' '
local nbdetecteur = 0
commandArray = {}
function timedifference(s)
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
function urlencode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w ])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end
for key, valeur in pairs(PIR) do
-- Création de la variable si elle n'existe pas
if(uservariables['V_'..valeur] == nil) then
print('PIR Virtuel : création variable V_'..valeur)
commandArray[tonumber(key)]={['OpenURL']=ip..'/json.htm?type=command¶m=saveuservariable&vname=V_'..urlencode(valeur)..'&vtype=2&vvalue='..urlencode(otherdevices_lastupdate[valeur])}
end
-- test de fiabilité déclanchement
local etat=tostring(devicechanged[valeur])
local last=timedifference(uservariables['V_'..valeur])
if (etat=='On' and last<30) then
commandArray['Variable:V_'..valeur]=otherdevices_lastupdate[valeur]
PIRdeclanche=valeur
detection=true
elseif (etat=='On') then
commandArray['Variable:V_'..valeur]=otherdevices_lastupdate[valeur]
PIRdeclanche=PIRdeclanche..' '..valeur
end
--compte le nombre de detecteur dans les 30 dernière secondes
if (last<30) then
nbdetecteur=nbdetecteur+1
end
end
-- Si plus d'1 detecteur sont sur On
if (detection==false and nbdetecteur>=2) then
detection=true
end
-- Mise à jour du detecteur virtuel si la dernière mise à jour à plus de 3mn
if (timedifference(otherdevices_lastupdate[PIRVirtuel])<180 and detection==true) then
commandArray['Variable:'..PIRVirtuel_detected]=PIRdeclanche
print('PIR Virtuel Script: '..PIRdeclanche..' detecte ('..nbdetecteur..')')
commandArray[PIRVirtuel]='On'
end
return commandArray

et le message d'erreur:
2016-06-14 19:22:11.319 Error: EventSystem: in /home/sylvain/domoticz/scripts/lua/script_device_PIR.lua: /home/sylvain/domoticz/scripts/lua/script_device_PIR.lua:24: bad argument #1 to 'sub' (string expected, got nil)
qui disparait si je commente le dernier IF
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
Re: Fiabilisation des détecteurs de mouvement PIR chinois
Attention, l'interrupteur virtuel n'est pas une variable !
La commande otherdevices_lastupdate ne fonctionne pas sur une variable.
La commande otherdevices_lastupdate ne fonctionne pas sur une variable.
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
Re: Fiabilisation des détecteurs de mouvement PIR chinois
j'ai bien le PIR_Virtuel déclaré en tant ue capteur motion virtuel 


Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
Re: Fiabilisation des détecteurs de mouvement PIR chinois
Remplace :
par
pour voir si tu as toujours l'erreur
Code : Tout sélectionner
if (timedifference(otherdevices_lastupdate[PIRVirtuel])<180 and detection==true) thenCode : Tout sélectionner
if (detection==true) thenRaspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
Re: Fiabilisation des détecteurs de mouvement PIR chinois
cela fonctionne:
2016-06-14 19:54:59.457 LUA: PIR Virtuel Script: PIR_Entree detecte (1)
2016-06-14 19:54:59.458 EventSystem: Script event triggered: /home/sylvain/domoticz/scripts/lua/script_device_PIR.lua
2016-06-14 19:54:59.457 LUA: PIR Virtuel Script: PIR_Entree detecte (1)
2016-06-14 19:54:59.458 EventSystem: Script event triggered: /home/sylvain/domoticz/scripts/lua/script_device_PIR.lua
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
Re: Fiabilisation des détecteurs de mouvement PIR chinois
met un
avant
et regarde les log pour voir si tu as bien une date qui apparaît
Code : Tout sélectionner
print('PIRVirtuel Last update : ' .. otherdevices_lastupdate[PIRVirtuel])Code : Tout sélectionner
return commandArrayRaspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
Re: Fiabilisation des détecteurs de mouvement PIR chinois
Oui j'ai bien une date.
Par contre celle ci n'est pas mise à jour malgré des détections.
Par contre celle ci n'est pas mise à jour malgré des détections.
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
Re: Fiabilisation des détecteurs de mouvement PIR chinois
bon j'ai trouvé la source du problème,
regarde ton code:
et mon code:
vois tu la différence ?
Va savoir pourquoi ?????
J'ai fais du copier/coller normalement
regarde ton code:
Code : Tout sélectionner
if (timedifference(otherdevices_lastupdate[PIRVirtuel])>180 and detection==true) thenCode : Tout sélectionner
if (timedifference(otherdevices_lastupdate[PIRVirtuel])<180 and detection==true) thenVa savoir pourquoi ?????
J'ai fais du copier/coller normalement
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
Re: Fiabilisation des détecteurs de mouvement PIR chinois
bonjour je viens de recevoir mon detecteur, je n'ai pas de notice, comment le faire reconnaitre dans domoticz, domoticz a bien detecté le pir mais celui si reste a on, si quelqu'un pouvais m'aiderfratton a écrit :Des PIR Chinois EV1527 récupéré dans une alarme à 30€![]()
on trouve les mêmes à 4€93 sur :
http://www.aliexpress.com/item/Free-shi ... 28854.html
merci d'avance
Domoticz, CustomPage,
Pi3 RFXCom + Razberry;Z-Stick Gen5
Pi3 RFXCom + Razberry;Z-Stick Gen5

