aide pour réalisation script en lua

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 <\>.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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 ?
Dernière modification par vr6man le 10 mai 2020, 16:46, modifié 1 fois.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message par thier »

Oui
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: aide pour réalisation script en lua

Message 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
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
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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"]]
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message 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?
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message par thier »

C'est toujours ton store terrasse qui renvoi 16 et pas On à priori.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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"]]
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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
Répondre