-
Compteur de contenus
9 579 -
Inscription
-
Dernière visite
-
Jours gagnés
59
Tout ce qui a été posté par pepite
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Re @Cardane. Dommage cela aurait été trop facile Alors pour les string et les patterns, c'est ma bete noire ;-) , string.... https://www.lua.org/manual/5.3/manual.html#6.4 MAis tu as raison, un petit tostring sur un response.xxxxx puis un string.find ou match, puis un gsub (ou pas)..et hop Pour ca, je fais appel à DES amis, pas le choix, pourtant j'adore les strings...(je devais la faire..) mais je galere...rajoute au pattern... @Lazer, @Steven, @MAM78, @OJC, @jojo J'en oublie c'est sur ;-) -
D'ailleurs, Pour le retour d'etat, avec votre retour d'experience, la subtilite entre unlatched et unlocked ;-)
-
Je suis bien d'accord, avec les events de la serrure, cela devient hyper fiable pour presence absence ;-) couple au retour d'alarme si besoin ;-) vous me donnez vraiment envie, je vais voir si c'est compatible avec mon barillet Au fait, avant que j'aille relire, ca fonctionne aussi avec un badge rfid ou autre ?
-
@Peter, toujours satisfait ?
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Salut @Cardane, Ben voila, c'est mieux ;-) PS : En fait on voit bien dans le headers le "Connection" Donc le fibaro:debug(json.encode(response.data)) est correct, la reponse est bien la fermeture des caracteres. Ton fibaro:debug(jsonTable.token) renvoie bien la ligne avec le token. C'est bizarre, mais je tenterais bien jsonTable.token.token pour le recuperer. L'erreur fatale lua parle du caractere @ .. Pour voir le formatage du json, as tu essaye de joindre l'api depuis un navigateur ? -
@fredokl Superbe, comme h'ab, hop en prod, le WAF est content ;-) Bon quand tu as le temps, j'ai encore du ikea en luminaire, le WAF adore : http://www.ikea.com/fr/fr/catalog/products/80096372/?cid=fr|ps|go|PLA_Salon_Luminaires_G_S_X_X_P_PLA-Salon_Luminaires_G_S_X_X_P_PLA-80096372&gclid=EAIaIQobChMIrLnhzoPE1wIVQhbTCh2CyQiAEAQYASABEgJXYvD_BwE Et un lave-linge hublot ;-) en ON/OFF suffit pour moi ;-) stp. Je cherche dans la galerie tout de même.
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
je ferais ligne par ligne pour savoir après dans le "je suis dans le response et j'assurerais le coup avec data = json.encode(datas) Il y a une erreur fatale aussi ;-) PS : j'aurais commencé par un fibaro:debug(json.encode(response)) -
Un gros changelog ;-) Cliquez cliquez ;-)
-
hihi ca sent la modif du 1er post ;-)
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
En fait, Je suis parti des exemples que tu avais postés et de ce que j'aurais essayé en le transcrivant en LUA pour chacun. ce qui est sur c'est que l'API d'authentification n'est pas la même que pour lancer un programme. (d'ailleurs qu'est-ce que ce programme ? ) Ensuite Bearer est nécessaire pour utiliser ton token. Ce que je n'ai pas compris c'est comment le récupérer. Dans le shell que tu as posté il fait un tail dessus : - tail -n +2 : commence après la 2eme ligne je crois - jq -r : permet de recuperer le string de la reponse du json et de l'avoir en sortie sans qu'il soit formaté en json. Donc pour moi la réponse à l'authentification est ton token. L'enchainement ou non des commandes, heuuu En fait j'en ferais des fonctions je pense. -
Bonjour bonjour, Me revoila les artistes ;-) Encore besoin de vous ;-) Le WAF est revenu avec ceci : (ikea va me perdre ;-) ) http://www.ikea.com/fr/fr/catalog/products/00215307/ pourriez-vous svp me faire un petit ON/OFF ? Merci beaucoup
-
Oui merci @Gandalf C'est parfait. All is good ;-). TU peux remettre l'ancien code ou supprimer les 3 lignes tools.warning. Merci pour les tests. [DEBUG] 11:01:50: Id : 169 [DEBUG] 11:01:50: KeyId : 1 [DEBUG] 11:01:50: keyAttribute : Pressed [DEBUG] 11:02:05: Id : 169 [DEBUG] 11:02:05: KeyId : 1 [DEBUG] 11:02:05: keyAttribute : Pressed2 [DEBUG] 11:02:18: Id : 169 [DEBUG] 11:02:18: KeyId : 1 [DEBUG] 11:02:18: keyAttribute : Pressed3
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Ben, justement plus rien ne m'etonne ;-) Vu la m..dans laquelle je suis après l'install des KUX100 par les artisans..... Ca c'est vrai que de leur part c'est un énooorme progrès ;-) -
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Salut @Cardane Peut-etre quelquechose comme ceci, mais sans certitude. Ca fait un bon début. Après va falloir faire appel aux experts du code ;-). Ce qui est etonnant, c'est qu'on ne trouve rien d'officiel sur l'API de ce KLF200 -- Authentification local ip = "192.168.xxx.yyy" local url = 'http://'.. ip .. '/api/v1/auth' local datas = '{\"action\":\"login\",\"params\":{\"password\":"PASSWORD"}}' local klf = net.HTTPClient() klf:request(url , { success = function(response) print (response) end, error = function(err) print('error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json, charset=utf-8' }, data = json.encode(datas) } }) -- Run program local ip = "192.168.xxx.yyy" local url = 'http://'.. ip .. '/api/v1/scenes' local program = "xxx" local datas = "{\"action\":\"run\",\"params\":{ \"id\":"..program.."}}" local access_token = "xxxxxxxxx" local klf = net.HTTPClient() klf:request(url , { success = function(response) print (response) end, error = function(err) print('error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json, charset=utf-8' ["Authorization"] = "Bearer "..access_token }, data = json.encode(datas) } }) -- logout local ip = "192.168.xxx.yyy" local url = 'http://'.. ip .. '/api/v1/auth' local datas = '{"action":"logout","params":{}}' local access_token = "xxxxxxxxx" local klf = net.HTTPClient() klf:request(url , { success = function(response) print (response) end, error = function(err) print('error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json, charset=utf-8' ["Authorization"] = "Bearer "..access_token }, data = json.encode(datas) } }) -
Yeah, gros gros boulot. Merci beaucoup. 3 VDs Avec l'ajout de l'hysteresis, ca devient utilisable avec un poele normalement ;-) @Steven. Et ca devient utilisable avec n'importe quel type chauffage ;-) Sinon, tu peux faire confiance aux Variables Globales de Fibaro (pas au sens programmation). Faut juste éviter de cliquer sur la disquette ;-) Autre question : Quel est la partie du code pour l'apprentissage automatique ?
-
Bonjour @Gandalf Parfait alors. Peux tu mettre le debug du code avec les tools.warning stp. Ensuite tu pourras effacer les 3 lignes tools.warning. Et garder celui-ci donc centralsceneevent = {name="CentralSceneEvent", control=function(id, key, attribute) if (GEA.currentEntry.duration > -1) then return false, GEA.trad.central_instant end return GEA.options.number.control(id) and type(key)~="nil" and type(attribute)~="nil", GEA.trad.central_missing end, getValue=function(id, key, attribute) return (GEA.source.event.data.deviceId==tonumber(id) and tostring(GEA.source.event.data.keyId)==tostring(key) and tostring(GEA.source.event.data.keyAttribute)==tostring(attribute)) end }, Petite révision secondes, minutes, heures ;-) dans GEA : 30 : 30 secondes 60 : 60 secondes 1* 60 : 1 minute 60*60 : 60 minutes 60*60 : 1 heure 1*60*60 : 1 heure 2*60*60 : 2 heures 120*60 : 2 heures ;-)
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
@Cardane OK. J'avais commence un couple Scene/VD pour interagir avec un thermostat Nest. Si ca peut t'aider, c'est du Bearer aussi pour l'authentification -- --------------------------------------- -- Recuperation des datas "thermostats" -- -- --------------------------------------- function GetDataThermostats() httpNest:request(URL, { options = { method = 'GET', headers = { ["Content-Type"] = "application/json", ["Authorization"] = "Bearer "..access_token }, }, success = function(response) tools.debug(json.encode(response)) tools.info("Get status Thermostats : " ..response.status) if tonumber(response.status) == 200 then if response.data and response.data ~= "" then local jsonTable = json.decode(response.data) local CurrentTemperature = jsonTable.ambient_temperature_c TargetTemperature = jsonTable.target_temperature_c HvacMode = jsonTable.hvac_mode local HvacState = jsonTable.hvac_state --local FanTimerDuration = jsonTable.fan_timer_duration tools.info("NestCurrentTemperature : " ..CurrentTemperature.. " °C") tools.info("NestSetPoint : " ..TargetTemperature.. " °C") tools.info("NestMode : " ..HvacMode) tools.info("NestState : " ..HvacState) --tools.info("Fan_timer_duration : "..FanTimerDuration) setLabel(idVD_Nest, "NestTmp", CurrentTemperature.." °C") setLabel(idVD_Nest, "NestSetPoint", TargetTemperature.. " °C") setLabel(idVD_Nest, "NestMode", HvacMode) setLabel(idVD_Nest, "NestEtat", HvacState) setLabel(idVD_Nest, "NestMaj", date.. " - " ..heure) end end end, error = function(error) tools.error("Erreur : " ..error) end, }) end function PutDataStructures() httpNest:request(URLStructures , { success = function(response) tools.debug(json.encode(response)) if tonumber(response.status) == 200 then tools.info("PUT Structures OK : " ..date.. " - " ..heure) end end, error = function(err) tools.error("Erreur de PUT Structures : " ..date.. " - " ..heure) end, options = { method = 'PUT', headers = { ["content-type"] = "application/json", ["Authorization"] = "Bearer "..access_token }, data = datas --data = "{\"away\":\"away\"}" } }) end -
Cette erreur, c'est une erreur de retour json
-
Bonsoir @pixynico, Tu as tout a fait raison, Net.HTTPClient ne peut être utilisé que dans une scene. Oui pour moi c'est faisable, des que j'ai le temps j'essaie de te faire qqch. mais suis pas un pro du code
-
Velux ... intégration avec HC2, un peu de teasing :-)
pepite a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Mais t'as deja tout branché ? beau boulot. En LUA : ca doit être faisable avec un Net.HTTPClient Masi,t'as un login /Mot de passe pour communiquer avec le KLF 200 ? A priori il te faut un token aussi. -
@Gandalf Essaie ce code la stp, qu'on soit sur centralsceneevent = {name="CentralSceneEvent", control=function(id, key, attribute) return GEA.options.number.control(id) and type(key)~="nil" and type(attribute)~="nil", GEA.trad.central_missing end, getValue=function(id, key, attribute) tools.warning("Id : " .. GEA.source.event.data.deviceId) tools.warning("KeyId : " .. GEA.source.event.data.keyId) tools.warning("keyAttribute : " .. GEA.source.event.data.keyAttribute) return (GEA.source.event.data.deviceId==tonumber(id) and tostring(GEA.source.event.data.keyId)==tostring(key) and tostring(GEA.source.event.data.keyAttribute)==tostring(attribute)) end },
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
ah ben voila, je trouve ca dommage, un restart auto en lua juste du plugin, à l'image des scenes et VDs et workaround etait trouve ;-)
-
@Steven c'est bien pour ca que cela ne peut pas fonctionner du 1er coup ;-) mes gros doigts lol @Gandalf Tu peux remplacer comme t'as demande Steven avec ceci stp : centralsceneevent = {name="CentralSceneEvent", control=function(id, key, attribute) if (GEA.currentEntry.duration > -1) then return false, GEA.trad.central_instant end return GEA.options.number.control(id) and type(key)~="nil" and type(attribute)~="nil", GEA.trad.central_missing end, getValue=function(id, key, attribute) return (GEA.source.event.data.deviceId==tonumber(id) and tostring(GEA.source.event.data.keyId)==tostring(key) and tostring(GEA.source.event.data.keyAttribute)==tostring(attribute)) end },
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@Steven Oui oui je l'avais bien vu dans le debug, meme longueur, j'allais lui demander de modifier ;-)
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Ce qui me fait demander, suis pas asse expert pour ca, mais ne pourrait-on pas relancer un plugin en LUA ? ou le restarter