Aller au contenu

Messages recommandés

Posté(e)

@971jmd

 Tant mieux, mais je ne comprends pas ce que vient faire la le "action" des property. 

Autre info : ceci comme la 1ere version de Protection :

--LocalProtection
fibaro:call(id, "setProtection", 2)

et ceci

-- RF. 
fibaro:call(id, "setProtection", 1)

 

Pour désactiver :

fibaro:call(id, "setProtection", 0)

 

C'est peut-etre plus . propre

 

@Steven

J'ai aussi la version en api.post() mais j'ai toujours des doutes pour le passage de paramètres

 

local url = 'http://127.0.0.1:11111/api/devices/'..id[i]..'/action/setProtection'
local datas =  '{ "args": [2,1]}'
api.post(url, {data=datas}) 

 J'ai bon ? :2:

Posté(e)

En effet, "tu as faux" ... mais faudrait que je recherche la syntaxe exacte :-)

 

A vu d'oeil avec GEA, il suffirait de faire ainsi (non testé)

 

{"ApiPost", "/devices/340/action/setProtection", {2,1}}

  • Like 1
Posté(e)

@Steven oui oui j'ai encore buggué sur le copier coller, plutot ca non (va voir tes mails ;-)

 

api.post("/devices/" ..id(i].."/action/setProtection", {data=datas})

ou le faire direct avec GEA, pour moi c'est cela aussi :60:

Posté(e)

Allez, pour simplifier un peu tout cela, il suffit de faire ainsi :

 

fibaro:call(340, "setProtection", 1, 0)

 

ou 1,0 représente votre {data=[1,0]}

Posté(e)
il y a 27 minutes, Steven a dit :

fibaro:call(340, "setProtection", 1, 0)

oui oui, je l'ai mis dans le post d'avant lol

Je fais une version avec ca et je te l'envoie pour validation lol histoire de faire mieux que 1,0 ou 0,1, ou 2,1.....

merci !!!

Posté(e) (modifié)

ça donne :

 

protection = {name="Protection",
				optimize=true,
				control=function(id) if (not id) then id = GEA.currentMainId end return GEA.options.number.control(id) end,
				action=function(id,typee,args) if (type(id) ~= "table") then id = {id} end  for i=1, #id do
				if typee:lower() == "local_rf" then if args:lower() == "on"  then fibaro:call(id[i], "setProtection", 2, 1) end end
				if typee:lower() == "local_rf" then if args:lower() == "off" then fibaro:call(id[i], "setProtection", 0, 0) end end
				if typee:lower() == "local"    then if args:lower() == "on"  then fibaro:call(id[i], "setProtection", 2, 0) end end
				if typee:lower() == "local"    then if args:lower() == "off" then fibaro:call(id[i], "setProtection", 0, 2) end end
				if typee:lower() == "rf"       then if args:lower() == "on"  then fibaro:call(id[i], "setProtection", 0, 1) end end
				if typee:lower() == "rf"       then if args:lower() == "off" then fibaro:call(id[i], "setProtection", 1, 0) end end

	end end
},

 

Modifié par 971jmd
Posté(e) (modifié)

pour bouclé la boucle du LocalProtection et RfProtection, il serai bien d'avoir le retour d'état 

 

si LocalProtection activé ou pas

si RfProtection activé ou pas 

 

alors j'ai tester ça en LUA et ça fonctionne très bien

--[[
%% properties
340 RFProtectionState
340 localProtectionState
%% events
%% globals
--]]
local ID1 = fibaro:getValue(340, "RFProtectionState")
fibaro:debug('RF>> ' .. ID1 .. " " ) 

RF désactivé = 0

RF activée = 1

 

pour le local protection c'est quel que peut différent

 

local ID1 = fibaro:getValue(340, "localProtectionState")
fibaro:debug('RF>> ' .. ID1 .. " " ) 

RF désactivé = 0

RF activée = 2

 

brave que je suis, j'ai essayé avec GEA mais bon :D  ça n’a pas fonctionné 

valueRF    = {name="valueRF",
                    optimize = true,
                    math=true, -- autorise les Value+ et Value-
                    control=function(id) return GEA.options.value.control(id) end, 
                    getValue=function(id) if (not id) then id = GEA.currentMainId end return fibaro:getValue(id, "valueRF") end, 
                    action=function(id, value) if (not value) then value = id id = GEA.currentMainId end if (type(id) ~= "table") then id = {id} end for i=1, #id do fibaro:call(id[i],"setvalueRF",GEA.incdec(value, GEA.options.valueRF.getValue(id[i]))) end end
                },    

 

   

Modifié par 971jmd
Posté(e)

Le tiens est déjà intégré, adapté et testé (j'attends quand même le retour de @pepite quand il pourra), prêt à être diffusé dans la prochaine version.

Posté(e)

Ah non, de "protection".

 

Pour le programmateur, j'ai déjà testé et validé celui de @drboss. Je ne connais même pas le tiens (désolé mais je n'arrive pas suivre).

Posté(e) (modifié)

ok 

 

je pensais   à:

 

GEA.add( {"ProtecLocal", ID, 1}, -1, "", {ACTIONS} )
GEA.add( {"ProtecLocal", ID, 0}, -1, "", {ACTIONS} )

GEA.add( {"ProtecRF", ID, 1}, -1, "", {ACTIONS} )
GEA.add( {"ProtecRF", ID, 0}, -1, "", {ACTIONS} )

 

Modifié par 971jmd
Posté(e)

Je ne peux pas faire une action qui s'appelle "protection" et qui reçoit "local", "rf", "off" ou "local_rf" puis deux autres conditions qui s'appelle autrement et qui reçoivent des paramètres différents, cela est trop compliqué pour l'utilisateur.

 

En revanche, si tu souhaite garder ta version, il te suffit de la mettre dans ton "config()" et elle écrasera automatiquement ma proposition. Donc pas de soucis à se faire.

 

Posté(e)

À dac, je pensais que ça fonctionnait comme VALUE, sachant que le paramètre existe.  

 

--[[
%% properties
340 RFProtectionState
340 localProtectionState
%% events
%% globals
--]]
Posté(e) (modifié)

pour être sur qu'on ce comprend, le retour d’état est bien pour savoir si:    Local ou/et RF est bien activée ou pas 

localRf.PNG.5cf22258d127112272d07650eb6a60dd.PNG

Modifié par 971jmd
×
×
  • Créer...