Page 1 sur 1
découverte de dzVents
Publié : 27 juil. 2017, 20:19
par krissam44
Bonjour,
Je découvre domoticz et son écosystème, en particulier dzVents.
Dans le menu Réglages/Plus d'options/Evènements, j'arrive sur l'éditeur et je sélectionne dzVents comme langage de script.
J'ai repris un exemple du wiki domoticz :
Code : Tout sélectionner
return {
active = true,
on = {
'Dio 54755'
},
execute = function(domoticz, device)
-- your script logic goes here, something like this:
if (device.state == 'On') then
domoticz.notify('I am on!')
end
end
}
Rien n'apparaît dans le log et je ne reçois aucune notification (NMA Android).
L'éditeur enregistre le script sous /opt/domoticz/scripts/lua .
Je l'ai déplacé sous /opt/domoticz/scripts/lua/dzVents/scripts... cela ne change rien.
Qu'ai-je loupé ?
Merci de votre aide, cordialement.
Re: découverte de dzVents
Publié : 27 juil. 2017, 20:57
par vil1driver
Salut,
Je n'ai jamais rien trouvé d'attirant chez dzvents..
Code : Tout sélectionner
commandArray = {}
if (devicechanged["Dio 54755"] == "On") then
commandArray['SendNotification']='subject#body#0'
end
return commandArray
Et basta

Re: découverte de dzVents
Publié : 27 juil. 2017, 21:23
par krissam44
Salut, merci du retour.
Ton script fonctionne... évidemment mais j'ai le message suivant dans la log :
Error: EventSystem: in essai1: [string "commandArray = {} ..."]:3: attempt to index global 'devicechanged' (a nil value)
Il me semblait que la syntaxe dzVents serait plus facile d'apprentissage... that's all.
Re: découverte de dzVents
Publié : 27 juil. 2017, 23:29
par Neutrino
Moi j'aime bien dzVents, l'objet domoticz avec ses méthodes et ses attributs me facilite vraiment la vie.
C'est une question de goût aussi.
Pour ton code, tu es en v1 ou v2 ?
Pour la v2 :
Code : Tout sélectionner
return {
active = true,
on = {
devices = {
'Dio 54755',
}
},
execute = function(domoticz, device)
-- your script logic goes here, something like this:
if (device.state == 'On') then
domoticz.notify('I am on!', '', domoticz.PRIORITY_LOW)
end
end
}
Source :
http://www.domoticz.com/wiki/%27dzVents ... ng_scripts
Un autre exemple qui lance mon aspirateur robot en mon absence s'il n'a pas été lancé depuis plus de 3 jours :
Code : Tout sélectionner
return {
active = true,
on = {
timer = {'every minute'},
},
execute = function(domoticz)
hombot = domoticz.devices('Hombot') --nom du selector qui controle l'aspirateur
domoticz.log("Présence depuis "..domoticz.devices('Présence Maison').lastUpdate.minutesAgo.." minutes",domoticz.LOG_DEBUG)
domoticz.log("hombot depuis "..hombot.lastUpdate.hoursAgo.." heures",domoticz.LOG_DEBUG)
domoticz.log("Etat maison "..domoticz.devices('Présence Maison').state,domoticz.LOG_DEBUG)
if (domoticz.devices('Présence Maison').lastUpdate.minutesAgo > 5)
and domoticz.devices('Présence Maison').state == 'Closed'
and hombot.lastUpdate.hoursAgo > 36 then
--absence de plus de 5 minutes et hombot pas lancé depuis 3 jours.
hombot.dimTo(20) --start
domoticz.notify('Hombot','Nettoyage en cours',domoticz.PRIORITY_LOW)
end
end
}
Re: découverte de dzVents
Publié : 28 juil. 2017, 09:08
par krissam44
Merci Neutrino,
Avec ta syntaxe, cela fonctionne.
Autre question de néophyte : Quand on écrit le script avec l'éditeur interne, il est enregistré dans :
"/opt/domoticz/scripts/dzVents/generated_scripts/".
Où dois-je stocker ceux-ci j'écrit avec notepad++, par exemple, que j'upload sur le raspberry ?
Sinon, entre du pur lua et du dzVents quel langage génère le moins de consommation cpu ?
Merci pour vos réponses, cordialement.
Re: découverte de dzVents
Publié : 28 juil. 2017, 11:23
par Neutrino
krissam44 a écrit :Merci Neutrino,
Où dois-je stocker ceux-ci j'écrit avec notepad++, par exemple, que j'upload sur le raspberry ?
Tout simplement dans le répertoire "domoticz/scripts/dzVents/"
Pour le CPU, je pense que ça se vaut.
En fait, il faut jongler entre le lua classique et le dzVents suivant ce que l'ont souhaite faire.
L'avantage aussi de dzvents est que tu peux facilement faire un script qui se déclenche toutes les minutes paires et sur la mise à jour de tous les devices commençant par "Temp*" par exemple.