Lionel57 56 Signaler ce message Posté(e) 7 décembre 2014 Bonjour, Quelqu'un serait me dire pourquoi le code suivant me retourne systématiquement une erreur 400 (l'ID de la zone de chauffage est correct : si je lance "http://192.168.1.20/api/panels/heating?id=177" dans mon navigateur, j'obtiens bien le programme complet de la zone) ZoneId=177 local HC2 = Net.FHttp("192.168.1.20", 80) HC2:setBasicAuthentication("admin", "xxxxxxxx") result2 = '{"id":' .. ZoneId .. ',"properties":{"vacationTemperature": "10"}}' result,status,errorCode = HC2:PUT("/api/panels/heating?id=" .. ZoneId, result2); fibaro:debug(result .. " / " .. status .. " / " .. errorCode .. " -> " .. ZoneId) J'obtiens le résultat : [DEBUG] 10:55:44: {"type":"ERROR","reason":"id","message":"no id"} / 400 / 0 -> 177 Partager ce message Lien à poster Partager sur d’autres sites
PITP2 1 593 Signaler ce message Posté(e) 7 décembre 2014 Salut Lionel, je crois qu'il y a eu un changement dans l'API de Fibaro depuis les dernières versions avant http://192.168.1.20/api/panels/heating?id=177 maintenant http://192.168.1.20/api/panels/heating/177/ de plus lorsque j'essaie de faire une modification depuis l'interface API de Fibaro j'obtiens une erreur 503 et cela me fait planter ma box ... d'ailleurs si les heureux possesseurs d'une box de test pouvaient regarder de leur côté comment envoyer un PUT pour le panneau de chauffage sans tout planter via l'API ce serait cool Partager ce message Lien à poster Partager sur d’autres sites
Lionel57 56 Signaler ce message Posté(e) 7 décembre 2014 Comme toi, j'avais tenté avec la nouvelle adresse, mais comme toi, un plantage, alors peut être qu'il faut attendre la 4.022 Partager ce message Lien à poster Partager sur d’autres sites
hartyem 0 Signaler ce message Posté(e) 9 décembre 2014 J'avais un problème similaire avec la fonction PUT mais maintenant ça marche (merci à JC) sous 4.021. Dans mon cas je récupère une valeur de consommation sur un HEM qui n'est pas correctement reconnu par le HC2 sous 4.021 et je l'attribue à un module relais. Le code suivant fonctionne et je récupère correctement les valeurs et statistique sur le HC2, l'API du relais s'actualise à chaque changement du HEM. local deviceID = 342 local Conso = fibaro:getValue(367.0, "value") local json = '{"id":'..deviceID..',"properties":{"power":' ..Conso..'}}' local HC2 = Net.FHttp("192.168.1.xxx", 80) HC2:setBasicAuthentication("admin", "xxxxxxx") local response, status, errorCode = HC2:PUT("/api/devices/"..deviceID, json) if tonumber(status) == 200 then else fibaro:debug("Try again "..deviceID.. " "..status) end Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 mars 2017 salut non ça ne fonctionne pas Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 mars 2017 j'ai tester le code suivant il fonctionne uniquement avec propriété suivante: j'ai fait le teste avec : data = '{"id":'..deviceID..',"properties":{"roomID":"4"}}' et effectivement je peut changer l'emplacement du module d'une pièce à l'autre mai pour modifier : localProtectionState en valeur 2, je me demande si c'est possible vue que ce dernier n'est pas dans la liste API (PUT) en Model Schema suivante { "actions": "ACTIONS", "baseType": "", "configXml": "bool", "created": 0, "enabled": "bool", "id": 0, "interfaces": "aray", "modified": 0, "name": "", "parentId": 0, "properties": "PROPERTIES", "remoteGatewayId": 0, "roomID": 0, "sortOrder": 0, "type": "", "viewXml": "bool", "visible": "bool" } . --[[ %% properties %% globals --]] local deviceID = 16 local httpClient = net.HTTPClient(); httpClient:request('http://127.0.0.1:11111/api/devices', { success = function(response) if tonumber(response.status) == 200 then print("updated!"); else print("Response error " .. response.status) end end, error = function(err) print('Request error ' .. err) end, options = { method = 'PUT', headers = { ["content-type"] = 'application/json' }, ----"localProtectionState": "0" data = '{"id":'..deviceID..',"properties":{"roomID":"4"}}' } }); Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 mars 2017 (modifié) je n'arrive pas a déterminée si le localProtectionState et dans: "properties": { "parameters": ou "properties": . . . pour info il s'agit d'un FGRM222 ce probleme est très important pour moi, j'ai des enfant en bas sage qui appuie sur l'interrupteur des VL si je parvient a passer avec une scène le localProtectionState = 2 je désactive les boutons des vl ...... localProtectionState = 0 je j'active les boutons des vl et même en mode alarme, un voleur rentre chez vous par une petit porte ou fenêtre mai n'a pas la possibilité d’ouvrir les vl pour dérobé plus de chose. Modifié 15 mars 2017 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites