ASTECH44 Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 @ Didci-joint le code du module virtuel qui interroge l'IPX.Compte tenu de mes compétences en LUA, ce dernier est des plus basiques avec un IF THEN par INPUT testé, il peut être améliorer en rentrant les ID des icônes dans une table et optimiser avec des boucles et itérations.Chaque test commande un appui sur un MV par INPUT dont le seul but est de changé l'Icône (idée trouvée sur le forum, je remercie l'auteur), ce qui me permet dans mon cas d'avoir une visu de l'état de chacune des mes portes et fenêtres --[[ %% properties %% globals --]] HC2 = Net.FHttp("192.168.xyy") response = HC2:GET("/api/xdevices.json?cmd=10") -- enregistrement du retour de l API dans une table response = json.decode(response) fibaro:setGlobal("IPX_Porte_Entree", response.IN1) fibaro:setGlobal("IPX_SDB_WC_Buand", response.IN2) fibaro:setGlobal("IPX_Portail_Garage", response.IN3) fibaro:setGlobal("IPX_Fen_Cuisine", response.IN4) fibaro:setGlobal("IPX_Fen_Salle_Jeux", response.IN5) fibaro:setGlobal("IPX_Fen_SaM", response.IN6) fibaro:setGlobal("IPX_Baie_SaM", response.IN7) fibaro:setGlobal("IPX_Baie_Salon", response.IN8) fibaro:setGlobal("IPX_Baie_Salon_TV", response.IN9) fibaro:setGlobal("IPX_Porte_Appart", response.IN10) fibaro:log(fibaro:getGlobalValue("IPX_Porte_Entree")..fibaro:getGlobalValue("IPX_SDB_WC_Buand")..fibaro:getGlobalValue("IPX_Portail_Garage")..fibaro:getGlobalValue("IPX_Fen_Salle_Jeux")..fibaro:getGlobalValue("IPX_Baie_Salon_TV")) --Affichage icones local in1 = fibaro:getGlobalValue("IPX_Porte_Entree") if tonumber (in1)==1 then fibaro:call(292, "pressButton", '1') else fibaro:call(292, "pressButton", '2') end ---------------------------------- local in2 = fibaro:getGlobalValue("IPX_SDB_WC_Buand") if tonumber (in2)==1 then fibaro:call(295, "pressButton", '1') else fibaro:call(295, "pressButton", '2') end ---------------------------------- local in3 = fibaro:getGlobalValue("IPX_Portail_Garage") if tonumber (in3)==1 then fibaro:call(294, "pressButton", '1') else fibaro:call(294, "pressButton", '2') end ---------------------------------- local in4 = fibaro:getGlobalValue("IPX_Fen_Cuisine") --Affichage icones if tonumber (in4)==1 then fibaro:call(293, "pressButton", '1') else fibaro:call(293, "pressButton", '2') end -------------------------------- local in5 = fibaro:getGlobalValue("IPX_Fen_Salle_Jeux") if tonumber (in5)==1 then fibaro:call(291, "pressButton", '1') else fibaro:call(291, "pressButton", '2') end ----------------------------------- local in6 = fibaro:getGlobalValue("IPX_Fen_SaM") if tonumber (in6)==1 then fibaro:call(296, "pressButton", '1') else fibaro:call(296, "pressButton", '2') end ---------------------------- local in7 = fibaro:getGlobalValue("IPX_Baie_SaM") if tonumber (in7)==1 then fibaro:call(297, "pressButton", '1') else fibaro:call(297, "pressButton", '2') end ---------------------------- local in8 = fibaro:getGlobalValue("IPX_Baie_Salon") if tonumber (in8)==1 then fibaro:call(298, "pressButton", '1') else fibaro:call(298, "pressButton", '2') end ---------------------------- local in9 = fibaro:getGlobalValue("IPX_Baie_Salon_TV") if tonumber (in9)==1 then fibaro:call(299, "pressButton", '1') else fibaro:call(299, "pressButton", '2') end ---------------------------- local in10 = fibaro:getGlobalValue("IPX_Porte_Appart") if tonumber (in10)==1 then fibaro:call(300, "pressButton", '1') else fibaro:call(300, "pressButton", '2') end
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 @Did Remplace : /api/callAction?deviceID=231&name=pressButton&arg1=1 Par http://<user>:<passwword>@<ip_hc2>/api/callAction?deviceID=231&name=pressButton&arg1=1 Et tu ne devrais plus avoir de soucis. Du moins, j'avais eu le même soucis et cela a résolu mon problème. Edit ... oublie mon message, c'était sur une très vieille version, rien à voir avec la tienne.
Did Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Salut @Steven et merci. Faut-il vider les cases serveur, port, login et enable?
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 J'ai installé Jeedom sur mon Synology pour voir de quoi retournait ce MAGNIFIQUE, MERVEILLEUX système. Bon, non, seulement, je le trouve ... à chier (c'est perso bien évidement), mais en plus, il laisse faire n'importe quoi. Voici ce que Jeedom (sous entend le développeur du plugin IPX800) à mis dans la configuration de mon IPX : Soit le développeur du plugin Jeedom/IPX a réussi mettre ses API sur mon IPX, soit Jeedom n'est pas fichu connaître son adresse IP, soit le développeur du plugin c'est dit qu'il allait s'amuser avec les utilisateurs. Dans tout les cas ... I ♥ my HC2
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Salut @Steven et merci. Faut-il vider les cases serveur, port, login et enable? Non faut que tu oublies mon message, c'était sur une très très vieille version (tu n'étais même pas né) :-)
Did Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 merci tout de même de m'avoir alerté, j'avais zappé. Si je surveille le json de l'IPX, côté HC2 (dans la mainloop) comme me le suggère @ASTECH44, ça pourrait le faire?
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Oui, bien sà»re, mais on est plus dans le même genre de traitement. Dans un cas, tu pousses l'info vers la HC2 quand un événement arrive et dans l'autre, tu vas regardez toutes les X secondes. La 2ème méthode est consommatrice pour rien du tout (dans ton cas, je ne parles pas du cas de @ASTECH44). Donc il serait plus judicieux de faire fonctionner le push depuis l'IPX ... je regarde cela de suite.
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Je suis en version : 3.05.59c Ceci fonctionne parfaitement .. cela active bien le bouton 2 de mon module virtuel 290 qui ... pour te faire plaisir, fait un pushbullet sur mon portable :-)
BenjyNet Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Tiens Steven, justement j'ai une boucle qui check toutes les X minutes l'état des relais et des entrées de mon IPX. J'ai dessus notamment un capteur de porte ouverte/fermée et en sortie la lumière. Quelle serait la meilleure méthode pour éviter cette boucle infinie d'état ? Je vois pas bien quoi mettre dans un push pour changer l'icone de mes VD.
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Si tu fais un VD avec 2 boutons : 1 pour ouvert (icone porte ouverte) et un pour fermé (icone porte fermée) Le push 1 envoi un pressButton&arg1=1 Le push 2 envoi un pressButton&arg1=2 Tu as ainsi l'état de ta porte en temps réelle ... + quelques millièmes de secondes.
BenjyNet Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Ah oui mais j'ai aussi la teleco de la motorisation et le relais ne colle que quelques secondes. Et actuellement dans le VD je n'ai qu'un seul bouton car il n'y a pas besoin de 2 boutons pour faire ouvert/fermé
Steven Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Dans ton cas, je ne ferais quand même pas de boucle infinie, depuis l'IPX j'appuierais sur un bouton d'un MV et ce bouton aura pour tache d'aller voir l'état de l'IPX. En bref tu colles le code de ton main loop derrière ton bouton et ton IPX appuie sur ce bouton a chaque changement d'état. Edit : et comme tu as bien fais les chose et que ton main loop ne fais que t'appuyer sur un bouton ... tu peux supprimer ton main loop :-) 1
BenjyNet Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Ah oui c'est pas con ça ! Un push sur un bouton update ! C'est bon, je kiffe
ASTECH44 Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Effectivement, ma config IPX/HC2 est spécifique àmon besoin, et peut être bien sûr, améliorée. Initialement je souhaitais lors de l'activation de mon alarme par un lecteur de badge RFID àma sauce est informé en cas de refus d'activation si une ou plusieurs portes/fenêtres était (ent) ouverte (s).D'où ce Module Virtuel qui interroge, àma demande et non toutes les x secondes, les inputs de l'IPX et me repositionne mes différentes variables globales. Par la suite, en réalisant la visu de chaque porte/fenêtre dans la HC2, j'ai trouvé plus simple de repasser par ce MV et d'avoir un PUSH identique dans chacun des inputs de l'IPX plutôt que 22 pushs différents pour adresser chaque MV de changement d'icônes.
Did Posté(e) le 11 septembre 2015 Signaler Posté(e) le 11 septembre 2015 Merci @Steven, Je vais aller voir les mises à jour du côté de l'IPX.
Did Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Je viens de mettre l'IPX en v3.05.59d mais ça n'appuie toujours pas sur mes boutons de VD, rien non plus vers PusinBox.
Steven Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Quand tu essaye directement depuis un navigateur : http://<user>:<password>@<hc2_IP>/api/callAction?deviceID=<ID MV>&name=pressButton&arg1=<No bouton> Cela ce passe correctement ?
Did Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Oui, ça marche et je viens du coup de m'apercevoir qu'après avoir uploader ma config, l'adresse IP et le login n'est pas les bon. Et du coup, c'est beaucoup mieux, reste encore ma ligne vers PushingBox qui ne part pas de l'IPX, qu'est-ce qu'il faut mettre dans login (à côté de api.pushingbox.com)? Merci Steven :13:
Steven Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Je viens de tester avec succès :
Did Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Ah, je remarque que mes push ne se terminent pas comme les tiens, je n'ai pas le "ON" ou "OFF" après le =. C'est grave docteur?
pepite Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 c'est le contenu du message @did ;-)
Did Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Donc s'il n'y a rien, il se contente d’énoncer le texte du message sur pushingbox?
pepite Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 tres bonne question, je n'ai pas d'IPX, je ne sais pas du tout, attends l'expert ;-)
Did Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Bon, je n'ai rien compris, les notifs vers pushinbox remarchent.
Steven Posté(e) le 14 septembre 2015 Signaler Posté(e) le 14 septembre 2015 Avec pushingbox, soit tu mets directement un message dans le champs "message" Soit tu mets une variable, exemple $message$ ou $coucou$ (entre $) cette variable sera remplacée si tu envois /pushingbox?devid=12345&message=Test de message ou /pushingbox?devid=12345&coucou=Test de message Voici l'exemple de ma configuration sur pushingbox J'utilise donc toujours la même URL, je change juste la partie message= Pour plus d'info, envoi mon un PM car on est un peu hors-sujet :-) ++++ Content que cela refonctionne chez toi.
Messages recommandés