Aller au contenu

Api Hc2 - Paramètre Device - Définir Une Valeur De Type Bool Via Api


razowski

Messages recommandés

Bonjour,

 

Je me permets d'ouvrir un nouveau topic étant donné que je n'ai pas trouvé de réponse sur le forum.

 

J'ai récemment intégré un système d'alarme SATEL à  ma HC2. Tout fonctionne correctement. J'ai un cas que je souhaiterais modifier.

Les détecteurs de présence PIR sont identifiés comme des security sensor et par conséquent sont armés lorsque j'arme les détecteurs de la satel via la HC2.

 

Sur les détecteurs de type "security sensor", normalement dans les paramètres avancés du device, il existe la possibilité d'exclure certains capteurs du système d'alarme, mais cette option n'est affichée sur l'interface graphique de la HC2 lorsqu'il s'agit d'un détecteur satel. En regardant les paramètres du device via l'API par-contre, la propriété "alarmExclude" est bien existante. Je cherche donc à  définir à  "true" la propriété "alarmExclude" de ce device et c'est là  que je ne m'en sors pas.

 

Voici le json du device en question :

{
  "id": 2979,
  "name": "Remote CV",
  "roomID": 668,
  "type": "com.fibaro.satelZone",
  "baseType": "com.fibaro.securitySensor",
  "enabled": true,
  "visible": true,
  "isPlugin": true,
  "parentId": 2854,
  "remoteGatewayId": 0,
  "interfaces": [
    
  ],
  "properties": {
    "alarm": "false",
    "alarmDelay": "0",
    "alarmExclude": "false",
    "alarmMemory": "false",
    "alarmTimeTimestamp": "0",
    "armConditions": "{\"auto\":false,\"devices\":[{\"id\":2979,\"propertyName\":\"value\",\"propertyValue\":\"0\"}],\"time\":0}",
    "armConfig": "0",
    "armDelay": "0",
    "armError": "{}",
    "armTimeTimestamp": "0",
    "armed": "false",
    "dead": "false",
    "deviceControlType": "0",
    "deviceIcon": "2017",
    "disabled": "false",
    "emailNotificationID": "0",
    "emailNotificationType": "0",
    "fibaroAlarm": "false",
    "lastBreached": "0",
    "liliOffCommand": "",
    "liliOnCommand": "",
    "log": "",
    "logTemp": "",
    "longViolationTrouble": "false",
    "manufacturer": "",
    "model": "",
    "noViolationTrouble": "false",
    "pushNotificationID": "0",
    "pushNotificationType": "0",
    "remoteGatewayId": "0",
    "satelName": "Remote CV",
    "satelPartitionID": "2",
    "satelType": "47",
    "saveLogs": "true",
    "smsNotificationID": "0",
    "smsNotificationType": "0",
    "tamper": "false",
    "tamperAlarm": "false",
    "tamperAlarmMemory": "false",
    "userDescription": "",
    "value": "false",
    "zoneId": "125"
  },
  "actions": {
    "forceArm": 0,
    "meetArmConditions": 0,
    "setArmed": 1,
    "setDisabled": 1
  },
  "created": 1461703904,
  "modified": 1461703904,
  "sortOrder": 695
}

Et voici le code LUA d'un bouton d'un VD à  partir duquel j'essaie d'aller modifier la propriété "alarmExclude" :

----------------------------------
-- User Settings
----------------------------------
local DeviceID = 2979
----------------------------------
-- DO not change bellow this line
----------------------------------
    local HC2 = Net.FHttp("127.0.0.1",11111);
 
-- détermination de la version du firmware
payload = "/api/settings/info"
response, status, errorCode = HC2:GET(payload)
if tonumber(status) == 200 
  then
    payload = "/api/devices/" ..DeviceID
    response, status, errorCode = HC2:GET(payload)
    jsonTable = json.decode(response)
    fibaro:debug(jsonTable.id.. " - " ..jsonTable.name.. " - " ..jsonTable.properties.alarmExclude)
    -- préparation du nouveau json
    NewParameterToSet = '{"id":' ..DeviceID.. ',"properties":{"alarmExclude":true}}'
    -- écriture du nouveau json
    response, status, errorCode = HC2:PUT(payload, NewParameterToSet)
    fibaro:debug("Status = " ..status.. " - Error = " ..errorCode)
end

Je n'obtiens pas d'erreur mais la propriété "alarmExclude" du device dont l'ID est 2979 reste à  "false"

[DEBUG] 11:08:24: 2979 - Remote CV - false
[DEBUG] 11:08:24: Status = 200 - Error = 0

Est-ce que quelqu'un serait en mesure de m'aider, respectivement pourrait contrôler mon code LUA ? Si j'utilise le même code LUA pour aller modifier des paramètres autres que du type "bool" cela fonctionne...

 

Merci

@+

Lien vers le commentaire
Partager sur d’autres sites

Salut,

bizarre, mais il te manque un debug ou tu ne l'as pas mis volontairement ?

 

Tu peux comparer avec le VD de @jojo pour le code, voire tester avec son VD. Tiens nous au courant

 

http://www.domotique-fibaro.fr/index.php/topic/3839-modification-des-propri%C3%A9t%C3%A9s-dun-device/

Lien vers le commentaire
Partager sur d’autres sites

-> Non il me manque pas de debug, j'ai deux debug dans le code lua affiché...

 

-> Avec le VD de jojo la modification n'est pas appliquée non plus. J'ai essayé en mettant comme nouvelle valeur "true" / true / "1" / 1 mais la valeur n'est pas prise en considération. Je pense que c'est parce qu'il s'agit d'un device satel, car sur un FGMS par exemple, ça fonctionne...

Lien vers le commentaire
Partager sur d’autres sites

Sur un FGMS ça passe, dans mon cas c'est un device importé via le plugin SATEL (com.fibaro.satelZone) dont le basetype est com.fibaro.securitySensor mais je comprends pas pourquoi via l'API je peux pas modifier cette valeur étant donné que j'ai les droits et que la propriété existe...

Lien vers le commentaire
Partager sur d’autres sites

je viens d'essayer sur la propriété "armed" et làça passe... C'est àn'y rien comprendre... J'ai essayé sur un autre device satel des fois que, pareil, je peux modifier une valeur booléen mais pas la propriété "alarmExclude"

Lien vers le commentaire
Partager sur d’autres sites

vu que c'est un device qui provient du plugin Satel, je crains que tu ne soit confronté au même problème que moi quand j'ai voulu changer des propriétés de mon Nest, inclu également via le plugin => impossible.

Mais pourquoi dois-tu modifier cette propriété par LUA, si ça fonctionne avec l'interface WEB, car une fois qu'elle est définie, c'est bon ?

Lien vers le commentaire
Partager sur d’autres sites

Via IHM web le setting est pas dispo... Le but est d'utiliser les détecteurs PIR SATEL sur la HC2, mais sans qu'ils s'arment car je les veux que pour détection présence -> lumière On-Off

Mais je pense que c'est cuit.

Lien vers le commentaire
Partager sur d’autres sites

Je fais différemment: j'arme les détecteurs SATEL depuis la HC2, quand tous les détecteurs sont armés la partition SATEL est armée. L'avantage c'est que j'utilise que la HC2 qui gère la SATEL. Ainsi un slide up/down sur l'icône alarme dans l'app mobile Fibaro arme/désarme la SATEL et j'ai la visibilité sur chaque capteur. Si je fais différemment ça veut dire qu'il faut faire un VD qui en LUA arme/désarmé la partition de la SATEL. De plus, cela m'offre la possibilité de quand le moteur de la porte de garage se met en marche de désarmer la SATEL.

J'ai lu bcp de chose, notamment sur le fait qu'il fallait plutôt travailler sur les partitions mais le plugin SATEL a changé de comportement depuis sauf erreur de ma part.

Lien vers le commentaire
Partager sur d’autres sites

PS: ce que je fais pour exclure un capteur PIR de l'alarme m: sur la SATEL je l'exclu et je crée une sortie en lien avec ce capteur(zone) que je monitors avec la HC2. Le seul "hic" c'est que la sortie est vue comme un switch on/off sur la HC2 qui n'est pas typé "détecteur présence" et donc dans l'app mobile Fibaro il est pas visible dans la catégorie "Présence" mais dans la pièce uniquement. C'est plus du perfectionnisme qu'autre chose mais pour la famille je cherche àutiliser que l'app mobile Fibaro et que les modules apparaissent au bon endroit

Pour éviter que la HC2 déclenche la SATEL j'ai désactivé la possibilité àla HC2 de triggerer la SATEL

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...