Aller au contenu
Moicphil

GCE Electronics IPX800 V3 - Automate Ethernet

Recommended Posts

@ Did
ci-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

post-150-0-06913700-1441966241_thumb.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

 Salut @Steven et merci.

Faut-il vider les cases serveur, port, login et enable?

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :

 

348734ipxjeedom.png

 

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

Partager ce message


Lien à poster
Partager sur d’autres sites

 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é) :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

:) 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?

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

142006Did.png

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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é :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui c'est pas con ça ! Un push sur un bouton update ! C'est bon, je kiffe :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci @Steven,

Je vais aller voir les mises à  jour du côté de l'IPX.

Partager ce message


Lien à poster
Partager sur d’autres sites

 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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

:)

 

Je viens de tester avec succès :

 

910578Did2.png

Partager ce message


Lien à poster
Partager sur d’autres sites

 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?

Partager ce message


Lien à poster
Partager sur d’autres sites

 Donc s'il n'y a rien, il se contente d’énoncer le texte du message sur pushingbox?

Partager ce message


Lien à poster
Partager sur d’autres sites

tres bonne question, je n'ai pas d'IPX, je ne sais pas du tout, attends l'expert ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

 Bon, je n'ai rien compris, les notifs vers pushinbox remarchent.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

847322Did3.png

 

 

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

×