Aller au contenu
Krikroff

LUA dans les scènes sur HC3

Recommended Posts

Il y a 19 heures, jjacques68 a dit :

Maintenant faut que je réfléchisse pour avoir un système générique, pas trop envie de créer une multitude de scènes sur le HC2 et de QA sur le HC3, juste pour le temps de la migration..

hello suis pas certain que c'est ce que tu cherches à faire mais au cas ou voici un synchro auto de variables entre la hc2 et la hc3. Le principe est simple, il faut créer sur la hc3 les variables que tu souhaites synchro et c'est tout. le seule hic avec le code en l'état c'est qu'il ne faut pas avoir sur la hc3 des variables maj par la hc3 et qui existeraient sur la hc2 sinon ce sont les valeurs de la hc2 qui viendront écraser celle de la hc3. 

Si tu veux éviter ce phénomène il suffit de créer une liste restrictive des vars à updater... Mais ça t'évitera d'avoir une multiplication des scenes/QA durant la phase transitoire, Je l'avais justement écrit pour mais jamais eu à m'en servir car je suis en fin de portage de code.

il te faudra mettre ce code dans le main loop d'un vd.

HostVar = api.get("/globalVariables") 
HC2=Net.FHttp("192.168.01.XXX") --IP HC3
HC2:setBasicAuthentication("HC3user","HC3MDP") --Login
response ,status, errorCode = HC2:GET("/api/globalVariables") 
fibaro:debug("status = " .. status)
  jsonTable = json.decode(response)

for k,v in pairs(jsonTable) do
  ExternalVars = v.name
  ExtVarVal = v.value

    for a,b in pairs (HostVar) do
     LocalVars = b.name
     LocalVarVal = b.value

       if ExternalVars == LocalVars then 
         -- fibaro:debug ("name "..LocalVars.." Values "..LocalVarVal)
          ExtVarVal = LocalVarVal
          --fibaro:debug( "post Ext Values = "..ExtVarVal)
          jsonTable.value = (LocalVarVal)
  local  CommitVal = json.encode(jsonTable);
  HC2:PUT("/api/globalVariables/"..LocalVars, CommitVal)
       end
    end

end

  

  • Like 3

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 6 heures, pepite a dit :

HC2 VG --> HC3 VG sans passer par un QA

si je pouvais aussi avec un PUT comme l'a fait @TonyC mais cela ne marchera pas pour les remonté de capteurs, je souhaite avoir qqch de plus générique... mais je sais pas si je vais trouver comment faire.

 

Si les capteurs sont juste des valeurs à exploiter dans les scènes, je pourrais les stocker dans une VG tableau...

Mais s'ils doivent être trigger d'une scène, vais être obligé de passer par un QA spécifique à chaque capteur :( 

Modifié par jjacques68
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Franchement, cette box est très prometteuse...

 

J'ai mis pas mal de temps à faire des petits essai de cohabitations avec elle et d'autres équipements (HC2, IPX, mon soft sur écran tactile...)

et bien ça se passe bien... :) 

 

Mais alors la migration va être longue...

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu utilises quoi comme soft sur ta dalle?
Moi ImperiHome mais pas compatible hc3


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Comme je connais bien Windev, je me suis créé un soft moi-même..

Il reçoit les infos de la HC2 et maintenant aussi de la HC3 via une socket (enfin 2 maintenant) et pilote les équipements via les requêtes HTTP.

  • Like 4

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 10/02/2020 à 15:55, Lazer a dit :

C'est bien, mais :

- si tu as une petite config, tu as aussi vite fait de tout réinclure from scratch

- si tu as une grosse config, tu n'as pas envie que le process de migration rende ton système instable, alors autant prendre le temps de migrer en douceur avec les 2 réseaux Z-Wave en parallèle.

 

Quand Fibaro vend du rêve, ils livrent un produit buggué.

Quand Fibaro annonce peut être développer une fonctionnalité qui sera bugguée, je n'ose imaginer le résultat....

Salut

 

je migre en douceur, mai pour le LUA c’est pas simple 

 

sur HC2 j’ai une télécommande avec plusieurs bouton 

--[[
%% properties
42 sceneActivation 
%% globals
--]]

 
--TESTEUR
 
--local NumScene = fibaro:getValue(455, "sceneActivation")
--fibaro:debug("Numéro de scène: " ..NumScene)

---CODE

local ButtonPressed = fibaro:getValue(42, "sceneActivation") 
 
-------ON  OFF sup cuisine 
if ( tonumber(ButtonPressed) == 1) then 
   
local deviceValue1 = tonumber(fibaro:getValue(14, "value"));
	if (deviceValue1 > 0) then
		fibaro:call(14, "turnOff")
	else
		fibaro:call(14, "turnOn");
	end
end



------  ON OFF  LP  du BAR
if ( tonumber(ButtonPressed) == 2) then 

local deviceValue1 = tonumber(fibaro:getValue(458, "value"));
	if (deviceValue1 > 0) then
		fibaro:call(458, "turnOff");
	else
		fibaro:call(458, "turnOn");
	end
  end



------ open vl cuisine
if ( tonumber(ButtonPressed) == 3) then 
fibaro:call(333, "open")
fibaro:call(340, "open")
  
  ---333 VL PRICIPALE
  ----340 VL BAR
end  
  
  


----- BONNE NUIT   bouton 2 maitenue
if ( tonumber(ButtonPressed) == 4) then 


fibaro:call(333, "close")
fibaro:call(340, "close")        
 
end


---5 ON   OFF  Mutimedia
------  ON OFF  LP  du BAR
if ( tonumber(ButtonPressed) == 5) then 

local deviceValue1 = tonumber(fibaro:getValue(24, "value"));
	if (deviceValue1 > 0) then
		fibaro:call(24, "turnOff");
	else
		fibaro:call(24, "turnOn");
	end
  end



----6







------ open vl cuisine
if ( tonumber(ButtonPressed) == 6) then 
fibaro:call(333, "open")
end  


------7 off general lampe
if ( tonumber(ButtonPressed) == 7) then

   for _,v in ipairs(fibaro:getDevicesId({properties = {isLight=true}})) do
	     fibaro:call(v, "turnOff")
	   end
  end
  
  
if ( tonumber(ButtonPressed) == 8) then
  
  fibaro:call(45, "setValue", "5");
  
 
   
  end


sur HC3 j’arrive sur un seul bouton

{
  conditions = { {
      id = 81,
      isTrigger = true,
      operator = "==",
      property = "sceneActivationEvent",
      type = "device",
      value = 1
    } },
  operator = "all"
}

ACTION

fibaro.call(21, 'turnOn')


ha FIBARO

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

×