Aller au contenu

Recommended Posts

@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:

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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:

Partager ce message


Lien à poster
Partager sur d’autres sites

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]}

Partager ce message


Lien à poster
Partager sur d’autres sites
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 !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

salut 

quel différence entre httpRequest mais un api.post()

Partager ce message


Lien à poster
Partager sur d’autres sites

ç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

Partager ce message


Lien à poster
Partager sur d’autres sites

juste pour savoir, le  typee:lower()  correspond a quoi exactement 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@drboss

Est-ce que tu m'autorise à intégrer ton multi-alarme directement au sein de GEA ?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

salut

 

si tu veux le mien, pas de problème il fonctionne nikel avec  GEA 6.10 ?

 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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).

Partager ce message


Lien à poster
Partager sur d’autres sites

ok pas de problème

 

mai pour protection il manque le retour d'état  

Partager ce message


Lien à poster
Partager sur d’autres sites

Je l'ai fait. Le retour sera "off", "local", "rf" ou "local_rf".

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

--[[
%% properties
340 RFProtectionState
340 localProtectionState
%% events
%% globals
--]]

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×