BenjyNet Posté(e) le 11 mars 2015 Signaler Posté(e) le 11 mars 2015 Je vais essayer d'expliquer simplement mon problème. Je viens d'installer une IPX800 dans mon garage qui a sur sa sortie relais01 un éclairage extérieur de branché. Ce relais est commandé par un bouton poussoir branché sur l'entrée In02. Donc si je résume, j'appuie ça s'allume, je rappuie ça s'éteint - simple comme bonjour. D'un autre côté j'ai aussi un éclairage extérieur que j'allume avec un FGD de la maison, associé avec son bouton poussoir. Ce que je souhaite faire c'est que lorsque j'allume/éteint à partir du FGD, ça allume/éteint le relais01 et lorsque j'allume/éteint avec le In02 ça m'allume/eteint le FGD. En gros je voudrais que les 2 s'allument et s'éteignent en même temps, quelque soit l'inter utilisé. Est-ce que vous auriez un truc simple en tête. Perso, j'avais pensé au push dans le sens IPX800 > HC2 > FGD pour mettre à On ou Off, c'est simple et ça doit marcher, mais dans l'autre sens ?
Gazous Posté(e) le 11 mars 2015 Signaler Posté(e) le 11 mars 2015 En ce qui me concerne, j'irais vers une Variable Globale prédéfinie avec des états ON et OFF + uns scène qui se déclenche sur modification de cette variable. Après bah tu sais dans les 2 cas mettre àjour la variable et dans la scène qui se déclenchera, tu sais si tu dois allumer/éteindre le FGD ou le relais de ton IPX. Ca te parle ?
BenjyNet Posté(e) le 11 mars 2015 Auteur Signaler Posté(e) le 11 mars 2015 Oui ça me parle, mais je voulais éviter le coup de la VG et scène. Je cherchais un truc un peu plus direct, genre association, push ou autre...
Steven Posté(e) le 12 mars 2015 Signaler Posté(e) le 12 mars 2015 A mon avis, tu seras obligé de passer par une scène pour pouvoir faire du HC2 -> IPX, je ne vois rien de plus direct de faisable ... et encore tu as de la chance, car en 4.x tu peux faire de l'HTTP dans une scène sinon cela aura été Scène + Module Virtuel
Steven Posté(e) le 12 mars 2015 Signaler Posté(e) le 12 mars 2015 Je mettrais donc ceci dans une scène et je changerais l'IP de mon IPX et le déclencheur (id de mon FGD) XXXXXXXXXXX value --[[ %% properties XXXXXXXXXXXXXXXXXX value %% globals --]] -- =========================== -- Paramètrage -- =========================== local ipx_ip = "192.x.x.x" local ipx_relay = "1" -- =========================== -- Fin Paramètrage -- =========================== local on_off = "1" -- allumé if fibaro:getValue((tonumber(fibaro:getSourceTrigger["deviceID"])), "value") == "0" then on_off = "0" --- éteint end local http = net.HTTPClient() http:request("http://"..ipx_ip .."/preset.htm?set"..ipx_relay.."="..on_off, { options = { method = 'GET' }, success = function(response) fibaro:debug("OK") end, error = function(err) fibaro:debug("Error: " ..err) end }) Bien évidemment ... j'ai rien testé car pas du tout dans ce genre de configuration.
BenjyNet Posté(e) le 12 mars 2015 Auteur Signaler Posté(e) le 12 mars 2015 Ah oui, tu penses qu'il n'y a rien de plus simple ?? J'avais commencé avec le coup du VD aussi. Je voudrais pas qu'il y ait de conflit entre les 2 inters. Et du côté IPX je mets un push vers cette scène sur ouverture/fermeture du relais ou sur appui du bouton poussoir... ?
Steven Posté(e) le 12 mars 2015 Signaler Posté(e) le 12 mars 2015 Je mettrais une PUSH sur l'appui du bouton vers la FGD directement http://<HC2_IP>/api/callAction?deviceID=XXXXXX&name=turnOn Si tu le met sur le Relai, j'ai peur que tu tournes en rond car le Relai va allumer le FGD qui lors de son allumage va activé le Relai 1 et ainsi de suite.
BenjyNet Posté(e) le 12 mars 2015 Auteur Signaler Posté(e) le 12 mars 2015 Ouais, au tourne en rond je suis d'accord, c'est mon inquiétude aussi mais le bouton est un bouton poussoir, un appui peut faire du On et du Off. Donc mettre le push que sur On c'est pas possible. Ou alors faut que je push sur la scène et que je gère tout ça dedans.
Steven Posté(e) le 12 mars 2015 Signaler Posté(e) le 12 mars 2015 Alors voici un script qui POURRAIT répondre à tes besoin. Il peut donc être déclenché par ton FGD ET par un PUSH car on test le type de déclenchement. En cas de déclenchement par le PUSH, on autorise uniquement 1 seul scénario à la fois. On casse ainsi volontairement la boucle décrite dans le post précédent. Le push lance le scénario qui allume le FGD qui lui ne peut plus lancer ce scénario car il est déjà en cours. Il est composé de 2 fonctions : Switch le relay de ton IPX Cherche l'état de ton IPX et modifie l'état de ton FDG en conséquence. --[[ %% properties XXXXXXXXXXXXXXXXXX value %% globals --]] -- =========================== -- Paramètrage -- =========================== local ipx_ip = "192.x.x.x" local ipx_relay = "1" local fgd_id = XXXXXXXXXX -- =========================== -- Fin Paramètrage -- =========================== -- ============================================= -- On switch le relay de l'IPX en fonction du FGD -- ============================================= function switchRelay(OnOrOff) local http = net.HTTPClient() http:request("http://"..ipx_ip .."/preset.htm?set"..ipx_relay.."="..OnOrOff, { options = { method = 'GET' }, success = function(response) fibaro:debug("OK") end, error = function(err) fibaro:debug("Error: " ..err) end }) end -- ============================================= -- On vérifie l'état du relay et allumer/éteint le FGD -- ============================================= function getRelay() local status = "" -- Etat du relai --- local http = net.HTTPClient() http:request("http://"..ipx_ip .."/api/xdevices.json?cmd=20", { options = { method = 'GET' }, success = function(response) string.gsub(response, "OUT"..ipx_relay.."\":(%d+)", function(d) status = d end) if (status == "1") then fibaro:call(fgd_id, "turnOn") else fibaro:call(fgd_id, "turnOff") end end, error = function(err) fibaro:debug("Error: " ..err) end }) end local source = fibaro:getSourceTrigger() if (source["type"] == "property") then -- ============================================= -- Déclenché par une modification survenue sur le FGD -- On switch le relay de l'IPX en fonction du FGD -- ============================================= if fibaro:getValue(fgd_id, "value") == "0" then switchRelay("0") else switchRelay("1") end elseif (source["type"] == "other") then -- ============================================= -- Déclenché par une pression du bouton branché sur l'IPX -- On vérifie l'état du relay et allumer/éteint le FGD -- ============================================= if (fibaro:countScenes() == 1) then getRelay() end end . Comme d'habitude, c'est à tester
BenjyNet Posté(e) le 12 mars 2015 Auteur Signaler Posté(e) le 12 mars 2015 Ok, dès que j'ai le temps je testor ça... mais punaise c'est quand même une usine àgaz pour un truc qui parait simple au départ.
BenjyNet Posté(e) le 15 mars 2015 Auteur Signaler Posté(e) le 15 mars 2015 Bon après l'installation électrique effectuée cet aprem, je viens de testor. Et j'ai ça comme message d'erreur : [ERROR] 21:12:03: LUA error: /opt/fibaro/scenes/107.lua:45: bad argument #1 to 'gsub' (string expected, got table)
Gazous Posté(e) le 15 mars 2015 Signaler Posté(e) le 15 mars 2015 C'est normal il manque tu JSON Decode àpriori pour aller chercher la bonne valeur dans le tableau JSON. Il faut que tu insère ça avant la ligne 47 je pense.
BenjyNet Posté(e) le 16 mars 2015 Auteur Signaler Posté(e) le 16 mars 2015 Nope pas besoin, c'est juste qu'il a oublié .data sur la ligne : string.gsub(response.data, "OUT"..ipx_relay.."\":(%d+)", function(d) status = d end) 1
BenjyNet Posté(e) le 17 mars 2015 Auteur Signaler Posté(e) le 17 mars 2015 REX : l'ensemble est désormais fonctionnel, et les réponses sont rapides. Maintenant est-ce qu'il serait possible de faire la même chose mais en protégeant l'IPX avec login/pass. Pour le moment j'en ai pas mis pour éviter les déboire de connexion mais c'est pas sécure... surtout quand ça ouvre son portail et sa porte de garage
cybersquat Posté(e) le 23 mars 2015 Signaler Posté(e) le 23 mars 2015 Bonsoir à tous, Je viens de lire avec attention le sujet, quelqu’un aurait un plan physique du branchement ? Je reçois mon ipx800v3 demain et j'aimerai avant toute chose le tester sur une planche de bois en mode production avec un FGD211 et une douille à led. La chose est que je vois pas comment trop brancher ca Merci
BenjyNet Posté(e) le 23 mars 2015 Auteur Signaler Posté(e) le 23 mars 2015 Hein ? Pour résumer, j'ai mon Ipx800 dans mon garage et j'ai une lumière sur le relais 1. Dans la maison j'ai un FGD qui allume une autre lumière extérieure. Moi ce que je voulais c'est associer les 2 lumières : lorsque j'allume le FGD, ça allume le relais1 et inversement.
Rem's Posté(e) le 23 mars 2015 Signaler Posté(e) le 23 mars 2015 Tu as des commandes push dans chaque relais de l'IPX. Tu renseigne donc api/.......turnOn. Puis tu fais pareil dans le HC 2, il y a 1 virtual device pour l'IPX sur le forum. Ensuite, soit par une scene pour finaliser ta programmation, soit en assignation directe. Voilou
Gazous Posté(e) le 2 avril 2015 Signaler Posté(e) le 2 avril 2015 Bonjour, savez-vous si il est possible de faire des requêtes HTTP authentifiées par login/mdp dans des scènes avec le code fourni au dessus (net.HTTPClient) ? J'utilise setBasicAuthentication dans des VD avec FHttp mais comment faire dans ce cas dans une scène. Une option particulière à positionner ? Merci d'avance.
BenjyNet Posté(e) le 2 avril 2015 Auteur Signaler Posté(e) le 2 avril 2015 Vivi c'est possible ! Dès que j'ai fait çà, je post mon ami
Gazous Posté(e) le 2 avril 2015 Signaler Posté(e) le 2 avril 2015 Cool mais sinon où sont documentées ces méthodes ?
BenjyNet Posté(e) le 2 avril 2015 Auteur Signaler Posté(e) le 2 avril 2015 Huhu bonne question. Là t'as une info déjà : http://en.wikipedia.org/wiki/Basic_access_authentication
Messages recommandés