Aller au contenu

modifier un paramètre en mode Json


Messages recommandés

Posté(e) (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é par 971jmd
Posté(e)

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)

 

Posté(e) (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é par jjacques68
Posté(e)

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)

 

 

Posté(e)

ç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

 

 

 

Posté(e) (modifié)

j'ai même tester le changement de 2 paramètres en même temps est ça fonctionne :60:

 

Modifié par 971jmd
  • Like 1
×
×
  • Créer...