Page 7 sur 34
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 16:33
par thier
@ denis_Brasseur
Comme il débute en lua j'essai d'y aller par étape pour qu'il assimile la façon de procéder.
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 16:45
par vr6man
ok je comprends mieux
pour la creation de la variable user je met:
type de variable : chaine ?
valeur de la variable : je laisse vide ?
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 16:46
par thier
Oui
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 16:53
par vil1driver
La bonne façon de procéder selon moi, c'est déjà d'avoir des entrées valides et utilisables.
Sans cela, même pas la peine d'aller plus loin
Vous êtes en train de tout baser sur ceci ?
2020-05-10 15:26:18.167 Status: LUA: otherdevices['Pluie'] 3226;2.1
2020-05-10 15:26:18.167 Status: LUA: otherdevices['Vent'] 94.00;E;18;25;19.0;19.3
2020-05-10 15:26:18.476 Status: LUA: otherdevices['UV'] 4.0;0.0
Une fois que l'on a les bonnes entrées (météo, présence, état du store, etc..)
Les bonnes sorties (commandes du store)
Il faut définir le déclancheur.
Ici le temps suffit, la réactivité est secondaire
Donc TIME devrait très bien aller
Avant tout ceci on ne peut travailler la logique
A noter que sur les valeurs analogique il conviendra d'ajouter un hysteresis de façon à ce que le store ne fasse pas yoyo au moindre nuage
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 17:02
par vr6man
la je suis perdu sur l'extraction des valeurs
Par contre voila le script modifié
Code : Tout sélectionner
commandArray={}
--pour connaitre les valeurs on met des print. Tu les commentes avec -- quand tu n'en as plus besoin.
print('otherdevices[\'UV\'] '..otherdevices['UV'])
print('otherdevices[\'Pluie\'] '..otherdevices['Pluie'])
print('otherdevices[\'Nuit\'] '..otherdevices['Nuit'])
print('otherdevices[\'Vent\'] '..otherdevices['Vent'])
print('otherdevices[\'Absence\'] '..otherdevices['Absence'])
print('otherdevices[\'Store Terrasse\'] '..otherdevices['Store Terrasse'])
print('otherdevices[uservariables["store exterieur"]] '..uservariables["store exterieur"])
-- Ouverture Store Terrasse
if (devicechanged['Store Terrasse']=='On' and uservariables["store exterieur"] == 'ferme' and otherdevices['Absence']=='Off' and otherdevices['UV']>='4' and otherdevices['Pluie']<='0,5' and otherde$
commandArray['Ouverture Store Terrasse']='On'
print('Ouverture Store Terrasse')
commandArray ['Variable:store exterieur']='ouvert'
commandArray['SendNotification']='Store Terrasse#Ouverture Store Terrasse'
-- Fermeture du Store Terrasse
elseif (devicechanged['Store Terrasse']=='Off' and uservariables["store"] == 'ouvert' and otherdevices['Absence']=='Off' and otherdevices['Nuit']=='On') then
commandArray['Fermeture Store Terrasse']='On'
print('Fermeture Store Terrasse')
commandArray ['Variable:store exterieur']='ferme'
commandArray['SendNotification']='Store Terrasse#Fermeture Store Terrasse'
end
return commandArray
et la fermeture ne marche plus quand je passe l'interrupteur nuit à On
les logs:
2020-05-10 17:02:28.703 Status: LUA: otherdevices['UV'] 3.0;0.0
2020-05-10 17:02:28.703 Status: LUA: otherdevices['Pluie'] 2134;2.5
2020-05-10 17:02:28.703 Status: LUA: otherdevices['Nuit'] On
2020-05-10 17:02:28.703 Status: LUA: otherdevices['Vent'] 23.00;NNE;25;35;20.2;20.4
2020-05-10 17:02:28.703 Status: LUA: otherdevices['Absence'] Off
2020-05-10 17:02:28.703 Status: LUA: otherdevices['Store Terrasse'] 16.0
2020-05-10 17:02:28.703 Status: LUA: otherdevices[uservariables["store exterieur"]]
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 17:07
par thier
Le store est ouvert, nuit est à On , absence est à Off et ensuite tu mets store terasse à Off et il ne se ferme pas?
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 17:10
par thier
C'est toujours ton store terrasse qui renvoi 16 et pas On à priori.
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 17:17
par vr6man
alors
Store Terrasse est ouvert, absence est à Off et si je passe nuit a on il ne ferme pas automatiquement
si je mets store terasse à Off et il se ferme
par contre quand j'ai créé la variable utilisateur store exterieur j'ai laissé le champs vide dans valeur de la variable
c'est bon
Le problème ne viendrais pas du fait que pour store terrasse dans les logs il remonte la valeur 16.0 au lieu de On.
Je ne vois pas ca dans le script
sinon dans les logs c'est pas bizarre uservariables
2020-05-10 17:14:11.192 Status: LUA: otherdevices['Store Terrasse'] 16.0
2020-05-10 17:14:11.192 Status: LUA: otherdevices[uservariables["store exterieur"]]
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 17:25
par thier
Pour le premier point c'est normal. c'est le changement à Off de store terrasse et si nuit est à On qui ferme le store et non pas le passage de nuit à On.
Pour otherdevices[uservariables["store exterieur"]] c'est que ta valeur était vide donc il ne t'a pas donner de valeur. Si tu regardes dans domoticz elle doit avoir la valeur qui correspond à l'état de ton store.
Comme tu travail sur un script device, une fois ouvert, tu ne pourras plus le refermer avant qu'il fasse nuit. A mon avis tu peux enlever la condition nuit.
Re: aide pour réalisation script en lua
Publié : 10 mai 2020, 17:29
par vr6man
j'ai mis ce script
Code : Tout sélectionner
GNU nano 3.2 script_device_store.lua
commandArray={}
--pour connaitre les valeurs on met des print. Tu les commentes avec -- quand tu n'en as plus besoin.
print('otherdevices[\'UV\'] '..otherdevices['UV'])
print('otherdevices[\'Pluie\'] '..otherdevices['Pluie'])
print('otherdevices[\'Nuit\'] '..otherdevices['Nuit'])
print('otherdevices[\'Vent\'] '..otherdevices['Vent'])
print('otherdevices[\'Absence\'] '..otherdevices['Absence'])
print('otherdevices[\'Store Terrasse\'] '..otherdevices['Store Terrasse'])
print('otherdevices[uservariables["store exterieur"]] '..uservariables["store exterieur"])
-- Ouverture Store Terrasse
if (devicechanged['Store Terrasse']=='On' and uservariables["store exterieur"] == 'ferme' and otherdevices['Absence']=='Off' and otherdevices['UV']>='4' and otherdevices['Pluie']<='0,5') then
commandArray['Ouverture Store Terrasse']='On'
print('Ouverture Store Terrasse')
commandArray ['Variable:store exterieur']='ouvert'
commandArray['SendNotification']='Store Terrasse#Ouverture Store Terrasse'
-- Fermeture du Store Terrasse
elseif (devicechanged['Nuit']=='On' and uservariables["store"] == 'ouvert' and otherdevices['Absence']=='Off' and otherdevices['Store Terrasse']=='16.0') then
commandArray['Fermeture Store Terrasse']='On'
print('Fermeture Store Terrasse')
commandArray ['Variable:store exterieur']='ferme'
commandArray['SendNotification']='Store Terrasse#Fermeture Store Terrasse'
end
return commandArray
Pour nuit je veux laisser cette condition pour qu'il se ferme quand il fait nuit
cela ne fonctionne toujours pas même si je met manuellement nuit à On via l'interrupteur virtuel nuit
Pour la variable user je ne la vois pas