[Résolu] DzVents probleme avec les variables globales

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 <\>.
Répondre
boggiz
Messages : 33
Inscription : 04 mars 2019, 14:56
Localisation : IdF

[Résolu] DzVents probleme avec les variables globales

Message 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)
Dernière modification par boggiz le 27 févr. 2021, 18:37, modifié 1 fois.
Domoticz 2023.1 sous Docker sur NAS Synology DS718+
RFXcom RFXtrx433XL avec antenne 3dBi
OpenWeatherMap
Arrosage automatique 4 voies avec EVP
Consommation eau via Arduino Nano
Antori91

Re: DzVents probleme avec les variables globales

Message par Antori91 »

-
Dernière modification par Antori91 le 03 avr. 2021, 17:03, modifié 1 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

Sujet déplacé dans la section Script.
hestia
Messages : 397
Inscription : 12 sept. 2018, 22:36

Re: DzVents probleme avec les variables globales

Message 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!
Antori91

Re: DzVents probleme avec les variables globales

Message par Antori91 »

-
Dernière modification par Antori91 le 03 avr. 2021, 17:02, modifié 1 fois.
hestia
Messages : 397
Inscription : 12 sept. 2018, 22:36

Re: DzVents probleme avec les variables globales

Message 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...
Antori91

Re: DzVents probleme avec les variables globales

Message par Antori91 »

-
Dernière modification par Antori91 le 03 avr. 2021, 17:02, modifié 2 fois.
boggiz
Messages : 33
Inscription : 04 mars 2019, 14:56
Localisation : IdF

Re: DzVents probleme avec les variables globales

Message par boggiz »

Je vous remercie pour vos réponses.
Je vais tester cela ce WE et je reviendrais vers vous si ...
Domoticz 2023.1 sous Docker sur NAS Synology DS718+
RFXcom RFXtrx433XL avec antenne 3dBi
OpenWeatherMap
Arrosage automatique 4 voies avec EVP
Consommation eau via Arduino Nano
boggiz
Messages : 33
Inscription : 04 mars 2019, 14:56
Localisation : IdF

Re: DzVents probleme avec les variables globales

Message 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
Domoticz 2023.1 sous Docker sur NAS Synology DS718+
RFXcom RFXtrx433XL avec antenne 3dBi
OpenWeatherMap
Arrosage automatique 4 voies avec EVP
Consommation eau via Arduino Nano
boggiz
Messages : 33
Inscription : 04 mars 2019, 14:56
Localisation : IdF

Re: DzVents probleme avec les variables globales

Message par boggiz »

OUPS!!! je me réponds a moi même.

dz.globalData.ma_variable est case sensitive

et ça marche merci beaucoup.
Domoticz 2023.1 sous Docker sur NAS Synology DS718+
RFXcom RFXtrx433XL avec antenne 3dBi
OpenWeatherMap
Arrosage automatique 4 voies avec EVP
Consommation eau via Arduino Nano
Répondre