971jmd 229 Signaler ce message Posté(e) 18 avril 2020 (modifié) salut à tous le sujet enregistrer un Json est fermer, je souhaite de laide sur le sujet j'ai tester le code suivant mai rien ne fonctionne local DeviceID = 14 -- id du module àparamétrer local DeviceParID = 1 -- # du paramètre local DeviceParSize = 0 local json = '{"id":"..DeviceID..","properties":{"parameters":[{"id": "1","size": "1","value":"0"}]}}" fibaro:debug(json) local HC2 = Net.FHttp("127.0.0.1", 11111); local response, status, errorCode = HC2:PUT("/api/devices/"..DeviceID, json) Exemple, je souhaite modifier le paramètre suivant d'un WP "properties": { "parameters": [ { "id": 1, "size": 1, "value": 1 }, merci de votre aide Modifié 18 avril 2020 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 j'ai pas testé, mais : un truc du genre MonDevice = api.get("/devices/"..DeviceID) MonDevice[DeviceParID].value = 0 api.put("/devices/"..DeviceID, MonDevice) Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 salut non ça ne fonctionne pas MonDevice c'est quoi exactement, ça correspond à ID du module ? Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 oui. tu as quoi comme erreur ? Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 nan pardon, MonDevice est une variable locale qui reçoit tout le contenu de DeviceID !! Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 tu peux faire un debug de MonDevice : MonDevice = api.get("/devices/"..DeviceID) print(json.encode(MonDevice)) MonDevice[DeviceParID].value = 0 api.put("/devices/"..DeviceID, MonDevice) Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 (modifié) ah attend je suis allé trop vite je crois : MonDevice = api.get("/devices/"..DeviceID) print(json.encode(MonDevice)) MonDevice.parameters[DeviceParID].value = 0 api.put("/devices/"..DeviceID, MonDevice) j'ai oublié "parameters" Modifié 18 avril 2020 par jjacques68 Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 voici le debug il affiche bien les paramètre du module mai erreur sur la fin . [DEBUG] 16:23:16: {"sortOrder":13,"modified":1584714642,"remoteGatewayId":0,"baseType":"com.fibaro.FGWP","type":"com.fibaro.FGWP101","created":1584714642,"properties":{"manufacturer":"","smsNotificationID":0,"pushNotificationID":0,"nodeId":3,"configured":true,"userDescription":"","isLight":true,"emailNotificationID":0,"remoteGatewayId":0,"zwaveInfo":"3,3,52","useTemplate":true,"model":"","endPointId":0,"pushNotificationType":0,"zwaveCompany":"Fibargroup","parameters":[{"size":1,"value":1,"id":1},{"size":1,"value":1,"id":16},{"size":1,"value":63,"id":34},{"size":1,"value":0,"id":35},{"size":2,"value":600,"id":39},{"size":1,"value":80,"id":40},{"size":1,"value":15,"id":42},{"size":1,"value":30,"id":43},{"size":1,"value":10,"id":45},{"size":2,"value":3600,"id":47},{"size":1,"value":0,"id":49},{"size":2,"value":300,"id":50},{"size":2,"value":500,"id":51},{"size":1,"value":6,"id":52},{"size":2,"value":25000,"id":60},{"size":1,"value":1,"id":61},{"size":1,"value":8,"id":62},{"size":1,"value":1,"id":63},{"size":2,"value":65535,"id":70}],"emailNotificationType":0,"deviceControlType":2,"zwaveVersion":"25.25","energy":55.38,"deviceGroup":[],"pollingTimeSec":0,"dead":false,"firmwareUpdate":{"updateVersion":"25.25","info":"","status":"UpToDate","progress":0},"logTemp":"","value":false,"saveLogs":true,"icon":{"source":"HC","path":"fibaro\/icons\/com.fibaro.FGWP_EU\/plug0.png"},"deadReason":"","log":"","deviceGroupMaster":0,"color":"off","serialNumber":"","updateVersion":"","showEnergy":true,"productInfo":"1,15,6,0,16,0,25,25","power":0,"deviceIcon":124,"parametersTemplate":"718","smsNotificationType":0,"markAsDead":true,"categories":["lights","ambience"]},"actions":{"reconfigure":0,"reset":0,"turnOn":0,"retryUpdate":1,"startUpdate":1,"updateFirmware":1,"abortUpdate":1,"turnOff":0},"isPlugin":false,"interfaces":["deviceGrouping","energy","fibaroFirmwareUpdate","light","power","zwave","zwaveMultiChannelAssociation"],"enabled":true,"name":"Suspension Cuisine","id":14,"parentId":13,"visible":true,"roomID":4} [DEBUG] 16:23:16: 2020-04-18 16:23:15.922856 [ fatal] Unknown exception: /opt/fibaro/scenes/363.lua:14: attempt to index field 'parameters' (a nil value) Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 bon et avec le properties maitntenant : MonDevice.properties.parameters[DeviceParID].value = 0 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 c'est ok ? Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 ça fonctionne chef mai si je quand je souhaite modifier le paramètre ID 16 ça fonctionne pas { "id": 16, "lastReportedValue": 1, "lastSetValue": 1, "size": 1, "value": 1 }, je je décompose le code: DeviceID correspond à ID du module ok mai DeviceParID je c'est pas trop Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 ben j'ai récupérer le nom de cette variable dans ton code du premier poste ! il est = 1 ! Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 soit du mets la variable à 16 soit tu fais : MonDevice.properties.parameters[16].value = 0 1 Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 oui j'ai tester comme ça mes j'ai pas de modification du paramètre ID 16, il reste à 1 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 c'est quoi ce paramètre, parce que l'ai,pas chez moi sur mes wallplug ? Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 ah attention, l'id du paramètre "16" n'est pas forcément le numéro 16 ! des numéros sont sauté ! Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 pour il apparaît dans le debug {"value":1,"id":16,"size":1,"lastSetValue":1,"lastReportedValue":1} Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 c'est le numéro 2 : MonDevice.properties.parameters[2].value = 0 Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 bizarre fibaro Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 si tu regardes dans le tableau de paramètre : id 1 = numéro 1 dans le table id 16 = numéro 2 id 34 = numéro 3 Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 tu a raison c'est bien le n2 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 si tu veux automatiser ça, va falloir créer une boucle et tester le l'ID du paramètre... Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 18 avril 2020 (modifié) j'ai même tester le changement de 2 paramètres en même temps est ça fonctionne Modifié 18 avril 2020 par 971jmd 1 Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 par contre ça veut dire qu'on a changé le paramètre numéro 16... suis entrain de regardé ce que c'est... Partager ce message Lien à poster Partager sur d’autres sites
jjacques68 602 Signaler ce message Posté(e) 18 avril 2020 ce serait l'id 61 qu'on a mis à 0 ! faut vérifier ce que c'est et le corriger si besoin ! Partager ce message Lien à poster Partager sur d’autres sites