DzVent detecter le changement d'etat d'un device

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 <\>.
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: DzVent detecter le changement d'etat d'un device

Message par landaisbenj »

vil1driver a écrit :bon voila j'ai mis à jour modules.lua

ça donne donc ceci à l'usage

Code : Tout sélectionner

-- script de type DEVICE

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

commandArray = {} 

if stateChange('la chambre') then
	log('chambre changement etat detecte')
end
Merci c'est top ca. Bon ca veut dire que je dois mettre en place le fichier alors.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: DzVent detecter le changement d'etat d'un device

Message par landaisbenj »

vil1driver a écrit :bon voila j'ai mis à jour modules.lua

ça donne donc ceci à l'usage

Code : Tout sélectionner

-- script de type DEVICE

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

commandArray = {} 

if stateChange('la chambre') then
	log('chambre changement etat detecte')
end

return commandArray 

Tu aurais moyen de modifier pour un truc du genre:

Code : Tout sélectionner

if stateChange('la chambre') == 'On' then
	log('chambre changement etat detecte')
end
:?: :D :D :D :D :D
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: DzVent detecter le changement d'etat d'un device

Message par vil1driver »

pas de soucis c'est fait ;)
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
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: DzVent detecter le changement d'etat d'un device

Message par landaisbenj »

:P Genial !!
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
roddy
Messages : 1
Inscription : 16 févr. 2018, 17:51

Re: DzVent detecter le changement d'etat d'un device

Message par roddy »

Bonjour à tous,
ayant le même besoin, j'ai récupérer la partie "-- vérifie s'il y a eu changement d'état" ainsi que "Users setting" que j'ai mis dans un fichier "/home/pi/domoticz/scripts/lua/modules.lua".

j'ai créer un "/home/pi/domoticz/scripts/lua/script_device_TestModule.lua" est mis

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

local debug = true -- true pour voir les logs dans la console log Dz ou false $

------------------------
-- Variables à éditer --
------------------------

local device = 'VSwitA'

--------------------------------
-- Fin des variables à éditer --
--------------------------------


commandArray = {}

if stateChange(device) == 'On' then
log('Module LUA VSwitC changement etat detecte')
end

return commandArray

J'ai une erreur dans ma log:

Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_TestModule.lua: /home/pi/domoticz/scripts/lua/modules.lua:47: attempt to call global 'creaVar' (a nil value)

N'étant un pro du codage, quelqu'un pourrait de dire pourquoi cela ne fonctionne pas ??

please help me :lol:
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: DzVent detecter le changement d'etat d'un device

Message par papoo »

roddy a écrit :Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_TestModule.lua: /home/pi/domoticz/scripts/lua/modules.lua:47: attempt to call global 'creaVar' (a nil value)
il ne trouve pas ton fichier module.lua ou il ne trouve pas la fonction creaVar dans ton fichier module.lua
pour mettre à jour ton fichier module.lua c'est la
https://github.com/vil1driver/lua/blob/ ... odules.lua
sinon ajoute directement la fonction dans ton script pour tester

Code : Tout sélectionner

function creaVar(name,value)
	os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command&param=saveuservariable&vname='..url_encode(name)..'&vtype=2&vvalue='..url_encode(value)..'" &')
end
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: DzVent detecter le changement d'etat d'un device

Message par denis_brasseur »

Dans la fonction de vil1driver, a quoi sert 'duree' ?

Code : Tout sélectionner

duree = lastSeen(uservariables_lastupdate['lastState_'..device])
Cette valeur n'est en effet pas utiliser dans la fonction.

Code : Tout sélectionner

-- vérifie s'il y a eu changement d'état
function stateChange(device)
	if (uservariables['lastState_'..device] == nil) then
		creaVar('lastState_'..device,otherdevices[device])
		log('stateChange : création variable manquante lastState_'..device,debug)
		return false
	elseif (devicechanged[device] == nil) then
		return false
	elseif (devicechanged[device] == uservariables['lastState_'..device]) then
		return false
	else
		duree = lastSeen(uservariables_lastupdate['lastState_'..device])
		updateVar('lastState_'..device,otherdevices[device])
		return otherdevices[device]
	end
end	
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Répondre