Aller au contenu

HC2 - Reprendre la température via API d'un module externe


Messages recommandés

Posté(e)

Hello à tous

 

Petite question car je ne suis pas encore très à l'aise en programmation... Je cherche à récupérer la température d'un switch externe (myStrom, qui se pilote par wifi et qui a une API).
J'ai cré un Device Virtuel pour allumer et éteindre mon switch via le Fibaro, ce qui fonctionne très bien et je peux comme ça l intégrer aussi à mes scènes.

image.png.94eb467be9009abaabbfab935bfdff2b.png

 

Maintenant, ce switch a aussi un capteur de température et j aurai souhaité reprendre la température via l'API et l'afficher dans mon Device Virtuel, dans un label. Comment est-ce que je peux faire ça? La documentation du switch me dit ça : 
 

image.thumb.png.8ddfb0fee5a100cda94bf931becb6772.png

 

Mais je ne sais pas comment l intégrer à mon Device VIrtuel :)
Est-ce que quelqu'un peut me donner un petit coup de main ?

Merci

 

Posté(e)
il y a 7 minutes, pepite a dit :

Bonjour,

 

Est-ce que dans un navigateur tu mets ceci tu as un retour ?

 


http://IPDETONSWITCH/temp

 

Hello

 

Oui, ça me retourne ça : 

{"measured":39.6875,"compensation":21,"compensated":18.6875}

 

En "bricollant" un peu, j'ai réussi à faire afficher la température dans le lavel de mon Virtual device à l instant :) en utilisant le code suivant dans la main loop : 

Il me reste juste à trouver comment arrondir le chiffre parce que j'ai pas besoin d'autant de détail pour une température. 

 

local selfId = fibaro:getSelfId()
localhost = '192.168.0.241'
local port = 80
diag = Net.FHttp(localhost, port);
response = diag:GET("/temp")
result = json.decode(response);
fibaro:debug("temperature: "..result.compensated)
fibaro:call(selfId, "setProperty", "ui.templbl.value", result.compensated) 
 

Posté(e)

C'est exactement cela, bravo

 

Pour arrondir à 2 chiffres après la virgule

 

result.compensated = tonumber(string.format("%2.f", result.compensated))

 

Posté(e)
il y a 13 minutes, pepite a dit :

C'est exactement cela, bravo

 

Pour arrondir à 2 chiffres après la virgule

 


result.compensated = tonumber(string.format("%2.f", result.compensated))

 

Super ! Mille merci, ça fonctionne nickel pour l'arrondi ! 
J'ai aussi pu reprendre le statut ON/OFF en utilisant l'API /report (au lieu de /temp)

 

Merci pour ton aide pour l'arrondi :)

Posté(e)

De rien,

 

Au fait, pour ton ON/OFF tu t'es bien embete, tu aurais pu faire en lua, c'est plus lisible ;-) mais ce n'est qu'un avis personnel :-), comme tu l'as fait pour récupérer la température,avec un Net.FHttp

 

Set State ON – http://[IP]/relay?state=1 OFF – http://[IP]/relay?state=0 TOGGLE – http://[IP]/toggle

 

Posté(e)

Ok merci de l idée ! Au début je voulais juste pouvoir allumer/éteindre (pour mes scènes) alors comme j avais déjà utilisé la partie "string" avec l API de mon sonos je savais faire ça facilement.

Et après me suis dit que ça serait sympa de remonter la température vu qu'elle était là comme ça je pouvais prouver à mon mari qu'il fait froid dans cette pièce :p Du coup j'ai passé en LUA pour cette partie là mais j ai laissé (pour l instant) mes deux bouton en "string"

Posté(e)

Enchantée madame, ben oui ces maris, ces tetes de mule ;-)

 

tu vas avoir froid en string si ce n'est pas chauffé ;-)

  • Haha 1
Posté(e)
il y a 2 minutes, pepite a dit :

Enchantée madame, ben oui ces maris, ces tetes de mule ;-)

 

tu vas avoir froid en string si ce n'est pas chauffé ;-)

Juste sur toute la ligne :p :p :icon1010:

×
×
  • Créer...