cocofo Posté(e) le 19 mai 2019 Signaler Posté(e) le 19 mai 2019 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. 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 : 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
pepite Posté(e) le 20 mai 2019 Signaler Posté(e) le 20 mai 2019 Bonjour, Est-ce que dans un navigateur tu mets ceci tu as un retour ? http://IPDETONSWITCH/temp
cocofo Posté(e) le 20 mai 2019 Auteur Signaler Posté(e) le 20 mai 2019 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)
pepite Posté(e) le 20 mai 2019 Signaler Posté(e) le 20 mai 2019 C'est exactement cela, bravo Pour arrondir à 2 chiffres après la virgule result.compensated = tonumber(string.format("%2.f", result.compensated))
cocofo Posté(e) le 20 mai 2019 Auteur Signaler Posté(e) le 20 mai 2019 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
pepite Posté(e) le 20 mai 2019 Signaler Posté(e) le 20 mai 2019 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
cocofo Posté(e) le 20 mai 2019 Auteur Signaler Posté(e) le 20 mai 2019 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"
pepite Posté(e) le 20 mai 2019 Signaler Posté(e) le 20 mai 2019 Enchantée madame, ben oui ces maris, ces tetes de mule ;-) tu vas avoir froid en string si ce n'est pas chauffé ;-) 1
cocofo Posté(e) le 20 mai 2019 Auteur Signaler Posté(e) le 20 mai 2019 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
Messages recommandés