Aller au contenu

Creer un bouton pour activer ou desactiver son alarme


yoim

Recommended Posts

Bonjour,

 

J'ai besoin d'aide au niveau de la programmation de mon bouton activation d'alarme sur un systeme qui ne supporte aucune api ou personne ne veut comprendre ce que je veux faire.

 

J'ai une alarme egardia. Ca fait 2 ans que je l'ai et elle fonctionne bien. Gros probleme tout est verouillé dessus. 

 

En essayant des requetes avec Request maker, je me suis rendu compte qu'on pouvait lui envoyer des infos sur un fichier JSON avec true ou false

 

Ma request est comme ceci :

 

https://my.egardia.com/fr/group/egardia/summary?p_p_id=portletalarmstatusegardia_WAR_portletliferayalarmsystemegardiawebapp_INSTANCE_HNn7&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_pos=2&p_p_col_count=7&action=setAlarmStatus

Le soft Request Maker me sort une valeur Json comme ceci :

 

json=%7B%22atHome%22%3Afalse%2C%22on%22%3Afalse%7D

Le false permet d'eteindre l'alarme et si je mets True ca m'active l'alarme. Eureka !! ca marche.

 

Par contre comment je peux transformer ca en LUA pour l'activation alarme avec mes bouton Module Virtuel.

 

Si qq un a une idée.

 

Je pense que l'info True ou False est envoyé sur leur serveur pour activer ou desactiver l'alarme. C'est un peu flou.

 

Merci pour votre aide.

 

Lien vers le commentaire
Partager sur d’autres sites

Je viens de faire les tests en local, j'ai recupéré l'ip de mon alarme et j'arrive en lcoal avec la methode POST a activer ou desactiver ...

 

http://login:password@192.168.42.125/action/panelCondPost?area=1&mode=4&_=

Comment faire un bouton LUA qui envoie une commande POST avec l'url ci dessus ?

 

J'y suis presque.

Lien vers le commentaire
Partager sur d’autres sites

Ou encore

local HC2 = net.Fhttp()
HC2:request("ta requete", {
    options = {method = 'POST'}, 
    success = function(response)
      fibaro:debug("recherche grosse fuite en cours...")
    end
})

Plus sûr des syntaxes, désolé...

Lien vers le commentaire
Partager sur d’autres sites

Ou peut-etre comme ceci ;-) à tester. rien de sur niveau syntaxe, surtout pour le login:password.

 

local password = xxxxxx
local login = xxxxxxx
local ip = "192.168.42.125"
local data = "/panelCondPost?area=1&mode=4&_="
--local url = ..login..":"..password.."@"..ip..

local http = Net.FHttp(ip)
http:POST("/action", data)

 

 

En me relisant, plutot comme ceci, mais je ne sais pas ou placer login password, certainement dans data

Modifié par pepite
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos reponses. C'etait presque bon et ca m'a vraiment aidé a trouvé la solution.

 

En faite je n'avais pas besoin d'un post mais d'un get ... Je m'en suis rendu compte que après.

 

Voila le code qui fonctionne avec un support de mon alarme complètement à coté de la plaque ... 

 

HC2 = Net.FHttp("192.168.42.125",80) -- Renseigner l'adresse ip de la box alarme
HC2:setBasicAuthentication("login", "password") -- Renseigner le login + mot de passe
-- Envoi de la commande http :
HC2:GET("/action/panelCondPost?area=1&mode=0&_=") --Renseigner l'url GET à  commander

 

Me voila avec un beau bouton d'activation d'alarme :D

 

5931d62b8575f_ScreenShot2017-06-02at23_18_01.png.935d8191d65d6b2078e93a74e77a18d5.png

 

 

On / Activation

Off / Arret

Home / Alarme quand je suis dans la maison

 

Merci pour votre aide.

 

Soon.

 

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...