Aller au contenu

Messages recommandés

Posté(e)

@Dragoniacs oui en effet, il faut se faire une liste des enfants avec un identifiant unique pour chacun afin de les identifier correctement, liste à reconstruire à chaque redémarrage du QuickApp, à chaque ajout, ou suppression d'un child device.

 

Après selon les cas, l'identifiant utilisé sera différent.

Par exemple pour l'IPX800, on identifie par le type et le numéro du port, par exemple D0, A1, R2, etc

Pour Surveillance Station, c'est tout simplement l'ID de la caméra qui est retourné par l'API de DSM.

Etc.

  • Like 1
  • 2 mois après...
Posté(e)
Le 23/12/2020 à 17:17, jjacques68 a dit :

A chaque boucle, je vais lire les variables des QA (fonction GetVariableQA() de @Lazer :) ->merci !!)

SI elle est partageable ...  Je la cherche cette fonction GetVariableQA() 

Posté(e)

Si ça peut être utile, voici la mienne :

tools = tools or {}

--
-- Get QuickApp variable silently without showing warning message in case variable does not exist
--
-- Usage :
-- local mavariable = tools.getVariable(self, "debug")
-- local mavariable = tools.getVariable(1234, "debug")
--
function tools.getVariable(self, variable)
	local id = type(self) == "userdata" and self ~= tools and self.id or type(self) == "number" and self > 0 and self
	if id then
		if type(variable) == "string" and name ~= "" then
			local device
			if type(self) == "userdata" then
				device = self
			else
				device = api.get('/devices/' .. tostring(id))
			end
			if device then
				if type(device.properties) == "table" and type(device.properties.quickAppVariables) == "table" then
					for _, v in ipairs(device.properties.quickAppVariables) do
						if v.name == variable then
							return v.value
						end
					end
				else
					tools:warning("tools:getVariable() : can't get QuickApp variables")
				end
			else
				tools:error("tools:getVariable() : can't find device", type(self), tostring(self))
			end
		else
			tools:error("tools:getVariable() : invalid variable name :", type(variable), tostring(variable))
		end
	else
		tools:error("tools:getVariable() : invalid self device :", type(self), tostring(self))
	end
end

 

Comme tu peux le voir, on peut l'utiliser au sein d'un QA même (avec self), sur un child, ou bien encore sur n'importe quel QA identifié par son ID

 

  • Thanks 1
×
×
  • Créer...