Page 1 sur 1

[Résolu] DzVents probleme avec les variables globales

Publié : 26 févr. 2021, 14:23
par boggiz
Bonjour a tous,
J'utilise un script NetAtmo trouvé sur le site et notamment celui qui permet de retourner un token. Dans le script original ce token est généré a chaque démarrage de dz sauf qu'il faut apparemment en changer toutes les 3 heures ! Ce token je veux le ranger dans une variable globale DzVents (en user variable c'est OK) mais ça ne fonctionne pas.
Domoticz 2020.1
Dzvents 3.01

Que soit avec global_data activé dans le Gui ou dans dzvents/scripts j'ai toujours le même message d'erreur:
==> attempt to index a nil value (field 'globaldata')
Contenu de global_data.lua:

Code : Tout sélectionner

return {
    active = true,
    helpers = {},
    data = {
        test = { initial = 1950 },
        NetAtmoAccessToken = { initial = 'test' },
        NetAtmoRefreshToken = { initial = 'test' }
        
    }
}
et le code de la procédure Code en test

Code : Tout sélectionner

return {
	on = {
		devices = {	"Test Uniquement" },
		-- variables = { "Test BGz" }        -- c'est une user variable
	},
	execute = function(dz, device)
		--dz.log('Device ' .. device.name .. ' was changed', domoticz.LOG_INFO)

		-- Mise a jour d'une User Variable ==> OK
		dz.variables('Test BGz').set ("mars 2021")
		
		dz.globalData.initialize('NetAtmoAccessToken')
		dz.globaldata.NetAtmoAccessToken.set ("c'est bon cette fois ?")
		[color=#FF0000]dz.log("Access token = " .. dz.globaldata.NetAtmoAccessToken)[/color]
		--dz.globaldata.NetAtmoAccessToken = 'Pour le test uniquement'
		--dz.log (' Access token = ' .. dz.globaldata.NetAtmoAccessToken)
	end
}
Si quelqu'un pouvait m'aider a comprendre mon erreur(s)

Re: DzVents probleme avec les variables globales

Publié : 26 févr. 2021, 17:48
par Antori91
-

Modération

Publié : 26 févr. 2021, 19:09
par Keros
Sujet déplacé dans la section Script.

Re: DzVents probleme avec les variables globales

Publié : 26 févr. 2021, 19:45
par hestia
bonsoir,
jamais utilisé, mais je donne un petit avis ;-)
ici il y a une réponse On statement and global_data.lua
mais cela ne me semble pas totalement dzvents
Et même 2 avis...
Si tu n'as pas besoin de la variable dans un autre script, tu peux seulement utiliser persistent data

Code : Tout sélectionner

	data = {
		myVar = { initial = 5 },
		myHistoryVar = { maxItems = 10 },
	},
sinon, il y a aussi les users variables
Bon courage!

Re: DzVents probleme avec les variables globales

Publié : 26 févr. 2021, 22:29
par Antori91
-

Re: DzVents probleme avec les variables globales

Publié : 27 févr. 2021, 00:11
par hestia
ooop's!
oui bien sûr... en général
Je pense que j'ai vu le post non répondu pendant qq heures et quand je suis revenu j'ai vu la réponse de Keros et rien d'autre! je n'ai pas vu ta réponse au milieu. J'ai regardé trop vite certainement, le début et la fin
Je n'aurais pas recopié ta réponse pour la remettre...

Re: DzVents probleme avec les variables globales

Publié : 27 févr. 2021, 08:13
par Antori91
-

Re: DzVents probleme avec les variables globales

Publié : 27 févr. 2021, 11:19
par boggiz
Je vous remercie pour vos réponses.
Je vais tester cela ce WE et je reviendrais vers vous si ...

Re: DzVents probleme avec les variables globales

Publié : 27 févr. 2021, 17:55
par boggiz
Cela ne fonctionne pas chez moi !
D’après la doc du wiki, si j’ai bien compris, il ne doit avoir qu’un seul « global_data » actif dans dz : soit le fichier dans " ../chemin de domoticz/var/scripts/dzVents/scripts/global_data.lua" ou le module défini dans le GUI en tant que global_data (avec ou sans .lua j’ai essayé les 2).
@ Antori91 dans votre script vous faites référence a des "helpers" mais je n’ai pas vu de référence a des variables globales. Pourriez vous me montrer la structure de votre fichier global_data ? Est-ce un fichier ou un module dzVents ?
avec mes remerciements

Re: DzVents probleme avec les variables globales

Publié : 27 févr. 2021, 18:32
par boggiz
OUPS!!! je me réponds a moi même.

dz.globalData.ma_variable est case sensitive

et ça marche merci beaucoup.