Dzvents:Comment lancer une Scène?

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 <\>.
boosterkf+
Messages : 11
Inscription : 22 nov. 2016, 16:20

Dzvents:Comment lancer une Scène?

Message par boosterkf+ »

Salut, je débute en domotique et je me lance avec Dzvents. J'ai commencé à rédiger un script d'alarme mais je bute sur une action de Scène. J'ai donc créé une scéne dans Domoticz qui active toutes mes caméras pendant 10min. Lorsque le Dummy Alarme (270) est activé et que le PIR est On, j'active "normalement" la scène et reçois une notification. Je n'ai pas d'erreur de script et l'action est bien lancée. Pourtant, la scène ne se lance pas. Pour info, j'ai essayé plusieurs commandes:
domoticz.setScene('All_Caméra', 'On')
domoticz.setScene('All_Caméra', 'group_On')
domoticz.setScene('All_Caméra', 'Scene_On')
domoticz.setScene('All_Caméra', 'Open')

Voila, si quelqu'un peut m'aider.
Au fait, j'utilise une scène pour pouvoir activer mes caméras pendant 10min, chose que je n'arrive pas à faire avec le script LUA qui ne me remet pas les switch à l'état off.
Mon script ci-dessous:

return {

active = true,

on = {
['timer'] = 'every minute'
},

execute = function(domoticz, Alarme_TOTALE)

if (domoticz.devices[145].state == 'On' and domoticz.devices[270].state == 'On') then

domoticz.setScene('All_Caméra', 'On')
-- domoticz.devices[187].switchOn()
-- domoticz.devices[187].close().after_min(1)

domoticz.notify('Alarme', 'Présence_Salon',
domoticz.PRIORITY_EMERGENCY)


elseif (domoticz.devices[255].state == 'On' and domoticz.devices[270].state == 'On') then

domoticz.setScene('All_Caméra', 'On')

domoticz.notify('Alarme', 'Présence_Garage',
domoticz.PRIORITY_EMERGENCY)

elseif (domoticz.devices[152].state == 'On' and domoticz.devices[270].state == 'On') then

domoticz.setScene('All_Caméra', 'On')

domoticz.notify('Alarme', 'Présence_Bureau',
domoticz.PRIORITY_EMERGENCY)
end

end
}
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Dzvents:Comment lancer une Scène?

Message par vil1driver »

Salut,

Ah dzvent :roll:

cette page https://github.com/dannybloe/dzVents
mentionne:
--activate my scene
domoticz.setScene('Evening lights', 'On')
Selon moi dzvent ne simplifie rien au contraire..
Un script lua classique fait très bien le taf et les exemples sont nombreux.

est-ce vraiment un problème de lancement de scène ou de condition de lancement ?

Code : Tout sélectionner

elseif (domoticz.devices[255].state == 'On' and domoticz.devices[270].state == 'On') then
ceci est il valide ?
En plus utiliser les idx c'est imbitable :?
je ne vois pas un seul print dans ton code pour aider à debugguer !
commence déjà par là !
as tu essayé de simplement allumer une lampe au moins ?
boosterkf+ a écrit :j'utilise une scène pour pouvoir activer mes caméras pendant 10min, chose que je n'arrive pas à faire avec le script LUA qui ne me remet pas les switch à l'état off.
Qu'entends tu par remettre les switch à off, ta scène fait elle le taf lorsque tu clic dessus ?
si oui l'activer par un script doit avoir le même résultat.
en lua la commande pour activer un switch 10 minutes est

Code : Tout sélectionner

'On FOR 10'
tellement plus simple que ton

Code : Tout sélectionner

domoticz.devices[187].switchOn() 
domoticz.devices[187].close().after_min(10)
Ps: merci d'utiliser les balises code pour mettre en forme le code dans un message
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
boosterkf+
Messages : 11
Inscription : 22 nov. 2016, 16:20

Re: Dzvents:Comment lancer une Scène?

Message par boosterkf+ »

Salut vil1driver,
Merci de me répondre. Le LUA est certainement plus puissant mais les fonctions proposées par Dzvents me suffisent pour l'instant et sont à priori plus simple à mettre en oeuvre pour un débutant.
Concernant mon script, il fonctionne:

Code : Tout sélectionner

2017-02-10 12:00:00.397 LUA: =====================================================
2017-02-10 12:00:00.398 LUA: >>> Handler: intruder alert
2017-02-10 12:00:00.398 LUA: .....................................................
2017-02-10 12:00:00.398 LUA: .....................................................
2017-02-10 12:00:00.398 LUA: <<< Done
2017-02-10 12:00:00.398 LUA: -----------------------------------------------------
2017-02-10 12:00:00.412 LUA: [1] = Scene:All_Caméra: On
2017-02-10 12:00:00.412 LUA: [2] = SendNotification: Alarme#Présence_Salon#2#pushover
2017-02-10 12:00:00.412 LUA: =====================================================
Je reçois bien la notification et l'action est commandé. Pourtant le log de la scène n'indique pas de commande. Si je commande la scène directement dans domoticz, pas de problème.
Quand à la commande:

Code : Tout sélectionner

domoticz.devices[187].switchOn() 
domoticz.devices[187].close().after_min(1)
Elle active bien le switch mais ne le met jamais en Off.
Cette commande:

Code : Tout sélectionner

domoticz.devices[187].switchOn().for_min(10)
est l'équivalent de

Code : Tout sélectionner

'On FOR 10'
Mais elle aussi ne passe jamais en Off.

J'utilise les idx pour ne pas avoir à reprendre le script quand je change le nom des éléments.
Tu me parle de print. Qu'est ce que c'est?
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Dzvents:Comment lancer une Scène?

Message par patrice »

Bonsoir
Certains periphériques répondent a .close/.open d'autres à SwitchOn et SwitfOff
Essaye les 2 sur le meme idx pour voir
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
boosterkf+
Messages : 11
Inscription : 22 nov. 2016, 16:20

Re: Dzvents:Comment lancer une Scène?

Message par boosterkf+ »

Salut,
Je pense avoir tout essayé, rien faire, la scène ne se lance pas. Je modifie mon script pour me passer de la scène.
@+
Répondre