Pour ceux que ça intéresse :
Les QA prennent tous leurs sens avec un IPX, c'est génial !! je partage :
Principe ultra simple :
Le QA permet de piloter la sortie de l'IPX.
Le retour d'état de la sortie se fait via les messages PUSH de l'IPX.
DANS LA HC3 :
- il faut créer un utilisateur spécifique pour que l'IPX puisse se connecter à la HC3 (et prendre autre chose que le super user...)
- il faut créer un QA avec comme type rôle Binary Swicth.
- vous choisissez les icones qui vont bien, les différents réglages de notifications, la pièce, ...
- Vous lui donnez un type (lights, sprinkler, ...)
- vous créez 3 variables dans le QA :
IP = adresse IP de l'IPX
password = user:password encodé en base 64 (celui permettant de se connecter sur l'IPX)
IpxOutNumber=N° de la sortie que vous voulez qu'il pilote
- vous créez un label avec comme nom "LBL_State" (permettra de récupérer les éventuels messages d'erreur)
et dans le code vous insérez cela :
function QuickApp:onInit()
self:debug("onInit")
end
-------------------------------------------------------------------------------------
-- Méthodes pouvant être appelées de partout
-------------------------------------------------------------------------------------
function QuickApp:turnOn()
self:Switch(self:getVariable("IpxOutNumber"),1)
end
function QuickApp:turnOff()
self:Switch(self:getVariable("IpxOutNumber"),0)
end
-------------------------------------------------------------------------------------
-- Function pour actionner la sortie défini dans la variable
-------------------------------------------------------------------------------------
function QuickApp:Switch(Num,State)
self.http = net.HTTPClient({timeout=3000})
self.http:request("http://"..self:getVariable("IP").."/preset.htm?set"..Num.."="..State,
{
options = {
headers = {['Authorization']='Basic '..self:getVariable("password")},
method = 'GET'
},
success = function(response) self:updateView("LBL_State", "text", tostring(response.data)) end,
error = function(err) self:updateView("LBL_State", "text", tostring(err)) end
})
end
-------------------------------------------------------------------------------------
-- Function pour réceptionner le retour d'état de la sortie
-------------------------------------------------------------------------------------
function QuickApp:ReceiveState(status)
self:debug(status)
if status == 1 then
self:updateProperty("value", true)
else
self:updateProperty("value", false)
end
end
Dans l'IPX :
les messages push de chaque sortie seront sous la forme : /api/callAction?deviceID=284&name=ReceiveState&arg1=1
en rouge = adresse IP de la HC3
en vert = le user:mot_de_passe (en clair) pour se connecter à la HC3 (avec l'utilisateur créé plus haut)
en jaune = l'ID du QA que vous avez créé
il ne faut pas oublier, dans la gestion des accès de la HC3, d'autoriser le user, créé spécifiquement plus haut, à utiliser le QA !!!
pour piloter le QA depuis une scène en LUA :
--pour le pilotage
fibaro.call(284, "turnOn")
--pour connaitre son status
fibaro.getValue(284, "value")
Divers :
Pour créé rapidement d'autres QA, il suffit d'exporter le QA qui vient d'être créé (fichier .fqa) et de l'importer pour passer à une autre sortie.
Il faudra alors, modifier la variable "IpxOutNumber" du QA.
Attention de penser au droits d'accès pour ce nouveau QA du coup...
Fichier DEMO :
Demo_IPX.fqa