bonsoir à tous,
je n'arrive pas à mettre à jour des variable user, de telle manière qu'elles soient IMMEDIATEMENT enregistrées.
J'arrive à les mettre à jour, mais il faut attendre le 'return commandArray' final pour qu'elles soient réellement enregistrées.
Elles sont donc disponibles à l'appel suivant du script.
j ai essayé en LUA strict et en JSON, mais rien n'y fait.
J'ai raté quelque chose ?
mise à jour des variable user
mise à jour des variable user
Tout en WiFi et MQTT (2019)
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: mise à jour des variable user
Salut,
Comportement normal
Comportement normal
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: mise à jour des variable user
Salut,
Je ne comprends pas la question.
En attendant que les variables utilisateur soient "commitées", tu dois pouvoir utiliser des variables du script, non ?
@+
Datawolf
Je ne comprends pas la question.
En attendant que les variables utilisateur soient "commitées", tu dois pouvoir utiliser des variables du script, non ?
@+
Datawolf
Re: mise à jour des variable user
Bonsoir,paya.aabg a écrit : 03 déc. 2018, 19:48 bonsoir à tous,
je n'arrive pas à mettre à jour des variable user, de telle manière qu'elles soient IMMEDIATEMENT enregistrées.
J'arrive à les mettre à jour, mais il faut attendre le 'return commandArray' final pour qu'elles soient réellement enregistrées.
Elles sont donc disponibles à l'appel suivant du script.
j ai essayé en LUA strict et en JSON, mais rien n'y fait.
J'ai raté quelque chose ?
pour pouvoir utiliser ta variable 'user' immédiatement, copie là dans une variable déclaré dans ton script.
It's a long way to the top!
Re: mise à jour des variable user
Merci à tous de vos réponses;
oui je peux utiliser les variables non encore enregistrées directement dans le script.
ce n'est qu une petite fonction "facilitratrice" (crée ou met à jour une variable string) qui pose problème lors du premier usage d'une variable:
et puis j'avoue les habitudes avec d autres langages de programmation.
en tout cas merci à tous.
oui je peux utiliser les variables non encore enregistrées directement dans le script.
ce n'est qu une petite fonction "facilitratrice" (crée ou met à jour une variable string) qui pose problème lors du premier usage d'une variable:
Code : Tout sélectionner
function dim_uvs(uservariable,value,...) -- crée si besoin une Uservariable STRING contenant sa valeur ou bien la met a jour
--[[ dim(ensionner)_u(ser)v(ariable)s(tring)
-- si ma_variable n existe pas:-----------------------------------------
-- dim_uvs('ma_variable','ma_valeur') crée ma_variable contenant ma_valeur
-- dim_uvs('ma_variable) crée ma_variable contenant 'NIL' il semble que DZ ne sait pas enregistrer des variables a valeur nulle
-- dim_uvs('ma_variable','') idem
-- si ma_variable existe déjà:------------------------------------------
-- dim_uvs('ma_variable','ma_valeur') met à jour ma_variable avec ma_valeur
-- dim_uvs('ma_variable') ne fait rien
-- dim_uvs('ma_variable','') idem
]]
local maj=1
--local debugg_old=debugg
value=tostring(value)
if (value==nil) or (value=='') then
print3('value==nil => value = NIL')
value='NIL' -- ??? impossible de créer une variable de valeur vide ???
maj=0 -- ce n est pas une maj
end
if (uservariables[uservariable] == nil) then -- si la USERVARIABLE n existe pas
print3('La USERVARIABLE ('..uservariable..') n existe pas.')
print3('Création par:dim_uvs('..uservariable..' , '..value..')')
index="Variable:"..uservariable
commandArray[index]=tostring(value)
os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command¶m=saveuservariable&vname='..url_encode(uservariable)..'&vtype=2&vvalue='..url_encode(value)..'" &')
else -- l uservariable existe et value <> nil => mise a jour
print3('La USERVARIABLE ('..uservariable..') existe déjà, elle a la valeur:'..uservariables[uservariable]..'.')
if (maj==1) then
print3('Mise a jour avec la valeur:'..value..'. Cette maj ne sera disponible qu apres le return commandArray final.')
--os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command¶m=updateuservariable&vname='..url_encode(uservariable)..'&vtype=2&vvalue='..url_encode(value)..'" &')
commandArray['Variable:'..uservariable]=value
end
end
--debugg=debugg_old
end --function dim_uvs(uservariable,value,...)en tout cas merci à tous.
Tout en WiFi et MQTT (2019)