Page 2 sur 2

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

Publié : 02 août 2017, 18:10
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.

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

Publié : 07 août 2017, 15:17
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

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

Publié : 07 août 2017, 18:10
par vil1driver
pas de soucis c'est fait ;)

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

Publié : 07 août 2017, 18:15
par landaisbenj
:P Genial !!

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

Publié : 16 févr. 2018, 18:02
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:

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

Publié : 21 févr. 2018, 11:59
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

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

Publié : 11 mai 2019, 08:10
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