971jmd Posté(e) le 18 avril 2020 Signaler Posté(e) le 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é le 18 avril 2020 par 971jmd
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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)
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 18 avril 2020 salut non ça ne fonctionne pas MonDevice c'est quoi exactement, ça correspond à ID du module ?
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 oui. tu as quoi comme erreur ?
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 nan pardon, MonDevice est une variable locale qui reçoit tout le contenu de DeviceID !!
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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)
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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é le 18 avril 2020 par jjacques68
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 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)
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 bon et avec le properties maitntenant : MonDevice.properties.parameters[DeviceParID].value = 0
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 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
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 ben j'ai récupérer le nom de cette variable dans ton code du premier poste ! il est = 1 !
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 soit du mets la variable à 16 soit tu fais : MonDevice.properties.parameters[16].value = 0 1
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 18 avril 2020 oui j'ai tester comme ça mes j'ai pas de modification du paramètre ID 16, il reste à 1
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 c'est quoi ce paramètre, parce que l'ai,pas chez moi sur mes wallplug ?
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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é !
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 18 avril 2020 pour il apparaît dans le debug {"value":1,"id":16,"size":1,"lastSetValue":1,"lastReportedValue":1}
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 c'est le numéro 2 : MonDevice.properties.parameters[2].value = 0
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 18 avril 2020 tu a raison c'est bien le n2
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 18 avril 2020 si tu veux automatiser ça, va falloir créer une boucle et tester le l'ID du paramètre...
971jmd Posté(e) le 18 avril 2020 Auteur Signaler Posté(e) le 18 avril 2020 (modifié) j'ai même tester le changement de 2 paramètres en même temps est ça fonctionne Modifié le 18 avril 2020 par 971jmd 1
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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...
jjacques68 Posté(e) le 18 avril 2020 Signaler Posté(e) le 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 !
Messages recommandés