Script PIR avec déclenchement multiple

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 <\>.
jeannot
Messages : 40
Inscription : 07 avr. 2019, 20:27

Script PIR avec déclenchement multiple

Message par jeannot »

Bonjour ,
j'ai un script PIR qui déclenche un éclairage en H nuit et un Carillon en H Jour.
Le pb est que le PIR se déclenche plusieurs fois de suite . J'ai essayè temps capteur est sur une 1 s et 10 s .
Idem

Code : Tout sélectionner

-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");

-- Script radar0
   if devicechanged['radar0'] then
        if deviceValue == "On" and (timeofday['Nighttime']) 
        then
            commandArray['Eclairage_Ext'] = "On"
            commandArray['inter_chalet_Virtuel'] = "On"
             print("Device is On")
        end   
       if deviceValue == "On" and (timeofday['Daytime'])
        then
           commandArray['carillon'] = "On"
           print("Ding - dong ")      
        end     
    end
Log :
2019-04-25 12:48:47.731 (RFXTRX433) Lighting 4 (radar0)
2019-04-25 12:48:47.737 (RFXTRX433) Chime (carillon)
2019-04-25 12:48:47.798 (RFXTRX433) Chime (carillon)
2019-04-25 12:48:47.955 (RFXTRX433) Lighting 4 (radar0)
2019-04-25 12:48:47.964 (RFXTRX433) Chime (carillon)
2019-04-25 12:48:47.061 Status: LUA: Device based event fired on 'radar0', value 'On'
2019-04-25 12:48:47.061 Status: LUA: Ding - dong
2019-04-25 12:48:47.062 Status: EventSystem: Script event triggered: mes_scripts
2019-04-25 12:48:47.097 Status: LUA: Device based event fired on 'carillon', value 'On'
2019-04-25 12:48:47.174 Status: LUA: Device based event fired on 'radar0', value 'On'
2019-04-25 12:48:47.174 Status: LUA: Ding - dong
2019-04-25 12:48:47.177 Status: EventSystem: Script event triggered: mes_scripts
2019-04-25 12:48:47.182 Status: LUA: Device based event fired on 'radar0', value 'On'
2019-04-25 12:48:47.182 Status: LUA: Ding - dong
2019-04-25 12:48:47.182 Status: EventSystem: Script event triggered: mes_scripts
2019-04-25 12:48:47.206 Status: LUA: Device based event fired on 'radar0', value 'On'
2019-04-25 12:48:47.206 Status: LUA: Ding - dong
2019-04-25 12:48:47.207 Status: EventSystem: Script event triggered: mes_scripts
2019-04-25 12:48:47.224 Status: LUA: Device based event fired on 'carillon', value 'On'
2019-04-25 12:48:47.302 Status: LUA: Device based event fired on 'radar0', value 'On'
2019-04-25 12:48:47.302 Status: LUA: Ding - dong

Merci pour votre aide
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script PIR avec déclenchement multiple

Message par vil1driver »

Salut,

Si ton pir ne passe jamais Off ajoute lui un délai d'extinction

Utilise la fonction stateChange à la place de devicechanged (voir modules.lua dans ma signature)
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
jeannot
Messages : 40
Inscription : 07 avr. 2019, 20:27

Re: Script PIR avec déclenchement multiple

Message par jeannot »

Il passe off , je vais charger et tester avec la bibliothèque de fonction .
Je vous tiens au courant .
jeannot
Messages : 40
Inscription : 07 avr. 2019, 20:27

Re: Script PIR avec déclenchement multiple

Message par jeannot »

J'ai chargé et copiè modules.lua sur pI/script/lua . J'ai ajouté les 2 lignes :
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
local debug = true
j'ai l'erreur:
2019-04-25 21:03:51.281 Error: EventSystem: in mes_scripts: [string "--dofile('/home/pi/domoticz/scripts/lua/modul..."]:24: attempt to index global 'stateChange' (a function value)
j'ai oubliè quelque chose?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script PIR avec déclenchement multiple

Message par vil1driver »

Tu as oublié de poster le script complet ;)
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
jeannot
Messages : 40
Inscription : 07 avr. 2019, 20:27

Re: Script PIR avec déclenchement multiple

Message par jeannot »

mon script :

Code : Tout sélectionner

commandArray = {}

dofile('/home/pi/domoticz/scripts/lua/modules.lua')
local debug = true  -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir


-- loop through all the changed devices

 for deviceName,deviceValue in pairs(devicechanged) do
 print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");

  
  -- Script radar0

    if  stateChange['radar0'] then    
       
        if deviceValue == "On" and (timeofday['Nighttime']) --and (timeofday['Daytime'])
        then
            commandArray['Eclairage_Ext'] = "On"
            commandArray['inter_chalet_Virtuel'] = "On"
             print("Device is On")
   end
    
        if deviceValue == "On" and (timeofday['Daytime'])
        then
           commandArray['carillon'] = "On"
           print("Ding - dong ")
         
        end     
   end


        
        -- carillon   sur ouverture1 
             
        if devicechanged['ouverture1']
        then
            if deviceValue == "Open" then
                commandArray['carillon'] = "On"
                 print("ouvert")
            end
               
        end
        
        
        
        --- Script chalet_inter_virtuel  
        
        if devicechanged['inter_chalet_Virtuel'] then
             if deviceValue == "On" then
                  commandArray['Eclairage_chalet'] = "Off"
             elseif 
                deviceValue == "Off" then
                commandArray['Eclairage_chalet'] = "On"
             end
        end
            
end            
return commandArray
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Script PIR avec déclenchement multiple

Message par thier »

le message
2019-04-25 21:03:51.281 Error: EventSystem: in mes_scripts: [string "--dofile('/home/pi/domoticz/scripts/lua/modul..."]:24: attempt to index global 'stateChange' (a function value)
veut dire que la fonction ne fonctionne pas. c'est un problème d'écriture
Ce n'est pas if stateChange['radar0'] then mais if stateChange(radar0)
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
jeannot
Messages : 40
Inscription : 07 avr. 2019, 20:27

Re: Script PIR avec déclenchement multiple

Message par jeannot »

ça avance je n'ai plus l'erreur : à function value par contre j'ai :
2019-04-25 21:53:03.763 Error: EventSystem: in mes_scripts: /home/pi/domoticz/scripts/lua/modules.lua:177: attempt to concatenate local 'device' (a nil value)
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Script PIR avec déclenchement multiple

Message par thier »

pareil, regarde ton fichier modules.lua à la ligne 177. Tu ne dois pas respecter la casse de la fonction ou le nom de ton device n'est pas bon.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script PIR avec déclenchement multiple

Message par vil1driver »

Vérifie qu'en début du fichier modules.lua tu as bien indiqué l'ip de ton domoticz etc..

La fonction stateChange s'utilise ainsi

Code : Tout sélectionner

if stateChange('radar0') == 'On' then
A la suite de cela, ceci n'est pas utile

Code : Tout sélectionner

deviceValue == "On"
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
Répondre