Besoin d'aide Script Blockly > Lua
Re: Besoin d'aide Script Blockly > Lua
C'est exactement ça.
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: Besoin d'aide Script Blockly > Lua
Ok merci...
Dernière question: comment interpreter le = dans le on entre 'mouvement' et la plage horaire
Dernière question: comment interpreter le = dans le on entre 'mouvement' et la plage horaire
Je peux faire ça a la place?devices = { ['Mouvement'] = {'at 06:00-12:00'} }
Code : Tout sélectionner
return {
on = {
devices = 'Mouvement'
time= {'at 06:00-12:00'}
},Re: Besoin d'aide Script Blockly > Lua
Le premier veut dire, activation du script sur changement du dispositif 'Mouvement' entre 6h et midi.
Le second veut dire, activation du script sur changement d'état de 'Mouvement' *et* toutes les minutes entre 6h et 12h (et à l'exécution item est différent, soit item.isDevice == true, soit item.isTimer == true et ce n'est pas le capteur de mouvement).
L'écriture est un raccourci, ça peut se remplacer par une condition dans le script :
Le second veut dire, activation du script sur changement d'état de 'Mouvement' *et* toutes les minutes entre 6h et 12h (et à l'exécution item est différent, soit item.isDevice == true, soit item.isTimer == true et ce n'est pas le capteur de mouvement).
L'écriture est un raccourci, ça peut se remplacer par une condition dans le script :
Code : Tout sélectionner
return
{
on = { devices = { 'Mouvement' }},
execute = function(dz, item)
-- ...
if dz.time.matchesRule('at 06:00-12:00') then
-- on est dans le créneau 6h-12h
-- reste du script dans ce cas-là
-- ...
end
end
}Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: Besoin d'aide Script Blockly > Lua
Merci pour ta patience et tes explications!
du coup ca marche aussi ça?
du coup ca marche aussi ça?
Code : Tout sélectionner
return {
on = {
devices = 'Mouvement'
timer= {'at 06:00-12:00'}
},Re: Besoin d'aide Script Blockly > Lua
C'est quoi la différence avec le précédent que tu as posté ?
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: Besoin d'aide Script Blockly > Lua
Il n'y en a pas, je voulais que tu me confirme que cela est identique à:
Code : Tout sélectionner
devices = { ['Mouvement'] = {'at 06:00-12:00'} }Re: Besoin d'aide Script Blockly > Lua
Non, ce sont deux conditions de déclenchement totalement différentes.
morninggoal a écrit : 09 sept. 2019, 16:58Je peux faire ça a la place?Code : Tout sélectionner
devices = { ['Mouvement'] = {'at 06:00-12:00'} }Code : Tout sélectionner
return { on = { devices = 'Mouvement' time= {'at 06:00-12:00'} },
boum a écrit : 09 sept. 2019, 17:20 Le premier veut dire, activation du script sur changement du dispositif 'Mouvement' entre 6h et midi.
Le second veut dire, activation du script sur changement d'état de 'Mouvement' *et* toutes les minutes entre 6h et 12h (et à l'exécution item est différent, soit item.isDevice == true, soit item.isTimer == true et ce n'est pas le capteur de mouvement).
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Besoin d'aide Script Blockly > Lua
Pour passer de blockly à lua, et sans remettre en cause l'utilisation de dzVents, mais juste pour aider à la compréhension, je passerais par l'intermédiaire de script LUA.
Les limites ne sont pas les mêmes entre LUA et dzVents, pour un script blockly simple comme le tiens, je passerais par une phase transitoire via un script lua, qui t'aidera ensuite a appréhender puis passer vers du dzVents.
Pour ton script blockly initial, ça peux donner quelque chose comme ceci :
--script de type Time, depuis Réglages => Plus d'options => Evénement ou directement depuis /home/pi/domoticz/scripts/lua par exemple.
Plutôt simple non ?
J’insiste, je ne dénigre pas le dzVents, mais autant passer par des étapes simple et compréhensible afin de bien aborder les langages de programmation.
Les limites ne sont pas les mêmes entre LUA et dzVents, pour un script blockly simple comme le tiens, je passerais par une phase transitoire via un script lua, qui t'aidera ensuite a appréhender puis passer vers du dzVents.
Pour ton script blockly initial, ça peux donner quelque chose comme ceci :
--script de type Time, depuis Réglages => Plus d'options => Evénement ou directement depuis /home/pi/domoticz/scripts/lua par exemple.
Code : Tout sélectionner
heure = string.sub(os.date("%X"), 1, 5)-- retourne l'heure actuelle ex: "12:45"
commandArray = {}
if (otherdevices['Absence'] == 'Closed' and heure > '06:00' and time < '12:00' and otherdevices['Volet_salon'] == 'Closed' and otherdevices['Mouvement'] == 'On') then
commandArray[#commandArray+1] = {['volet_salle_a_manger_1'] = 'Off'} --on bascule volet_salle_a_manger_1 en Off
commandArray[#commandArray+1] = {['volet_salle_a_manger_2'] = 'Off'} --on bascule volet_salle_a_manger_2 en Off
commandArray[#commandArray+1] = {['volet_cuisine'] = 'Off'} --on bascule volet_cuisine en Off
commandArray[#commandArray+1] = {['volet_salon'] = 'Off'} --on bascule volet_salon en Off
end
return commandArrayJ’insiste, je ne dénigre pas le dzVents, mais autant passer par des étapes simple et compréhensible afin de bien aborder les langages de programmation.
Dernière modification par denis_brasseur le 10 sept. 2019, 19:32, modifié 1 fois.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: Besoin d'aide Script Blockly > Lua
Effectivement je me rends compte que j'ai besoin de cette étape intermediaire... J'ai pour l'instant à mon actif qu'un seul script lua qui sert à allumer/eteindre une ampoule avec un detecteur de porte....
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Besoin d'aide Script Blockly > Lua
Quelques règles de base :
Etat du device 'Absence'
Etat du device 'Mouvement'
Changement de l'état de' Mouvement' à 'Closed'
Etat de l'heure
Surtout bien veiller au type de script de type Time ou Device par exemple.
Etat du device 'Absence'
Code : Tout sélectionner
if otherdevices['Absence'] == 'Closed' then
--mon code
endCode : Tout sélectionner
if otherdevices['Mouvement'] == 'Closed' then
--mon code
end
Code : Tout sélectionner
if (devicechanged['Mouvement'] == 'Closed') then
--mon code
endCode : Tout sélectionner
if heure > '06:00' and time < '12:00' then
--mon code
end
Dernière modification par denis_brasseur le 10 sept. 2019, 19:55, modifié 2 fois.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090