Aller au contenu
Franco268

Fonction call

Recommended Posts

Hello,

 

Je suis à ma 3eme tentatives de migrer tous mes codes HC2 vers HC3. Et je bloque c'est des choses nuls pour lesquelles je ne trouve pas de réponse.

 

Je bloque là dessus:

Comment savoir si un capteur d'ouverture est armé?

Comment armer un carpteur?

 

Plus généralement comment connaitre tous les arguments hub.call d'un device?

 

Pouvez vous m'aider?

Partager ce message


Lien à poster
Partager sur d’autres sites

je json du device est la bible

http://<user>:<pwd>@<IPBox>/api/devices/<idDevice> 

// 20230122163112
// http://192.168.xxx.xxx/api/devices/193

{
  "id": 193,
  "name": "Chauf_Bureau_Vanne",
  "roomID": 231,
  "view": [
    {
      "assetsPath": "dynamic-plugins/com.fibaro.hvacSystem",
      "name": "com.fibaro.hvacSystem",
      "translatesPath": "/assets/i18n/com.fibaro.hvacSystem",
      "type": "ts"
    }
  ],
  "type": "com.fibaro.hvacSystem",
  "baseType": "com.fibaro.device",
  "enabled": true,
  "visible": true,
  "isPlugin": false,
  "parentId": 192,
  "viewXml": false,
  "hasUIView": false,
  "configXml": false,
  "interfaces": [
    "battery",
    "climatePanelExtension",
    "fibaroFirmwareUpdate",
    "heatingThermostatSetpoint",
    "thermostatMode",
    "zwave",
    "zwaveAlarm",
    "zwaveProtection"
  ],
  "properties": {
    "parameters": [
      {
        "id": 1,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      },
      {
        "id": 2,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      },
      {
        "id": 3,
        "lastReportedValue": 1,
        "lastSetValue": 1,
        "size": 1,
        "value": 1
      },
      {
        "id": 4,
        "lastReportedValue": 1,
        "lastSetValue": 1,
        "size": 1,
        "value": 1
      },
      {
        "id": 5,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      },
      {
        "id": 6,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      },
      {
        "id": 7,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      },
      {
        "id": 8,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      }
    ],
    "pollingTimeSec": 0,
    "zwaveCompany": "Eurotronics",
    "zwaveInfo": "3,4,61",
    "zwaveVersion": "0.16",
    "RFProtectionState": 0,
    "RFProtectionSupport": 0,
    "alarmLevel": 0,
    "alarmType": 0,
    "batteryLevel": 50,
    "batteryLowNotification": true,
    "categories": [
      "climate"
    ],
    "climatePanelSchedules": {
      "isOverrideActive": false,
      "schedulesCount": 0
    },
    "climatePanelTimestamp": 0,
    "configured": true,
    "dead": false,
    "deadReason": "",
    "defInterval": 0,
    "deviceControlType": 1,
    "deviceIcon": 70,
    "deviceRole": "Other",
    "endPointId": 0,
    "firmwareUpdate": {
      "info": "",
      "progress": 0,
      "status": "UpToDate",
      "updateVersion": "0.16"
    },
    "heatingThermostatSetpoint": 20.0,
    "heatingThermostatSetpointCapabilitiesMax": 28.0,
    "heatingThermostatSetpointCapabilitiesMin": 8.0,
    "heatingThermostatSetpointFuture": 20.0,
    "heatingThermostatSetpointStep": {
      "C": 0.5,
      "F": 1.0
    },
    "icon": {
      
    },
    "localProtectionState": 0,
    "localProtectionSupport": 7,
    "log": "",
    "logTemp": "",
    "manufacturer": "",
    "markAsDead": true,
    "maxInterval": 0,
    "minInterval": 0,
    "model": "",
    "nodeId": 15,
    "parametersTemplate": "895",
    "productInfo": "1,72,0,3,0,1,0,16",
    "protectionExclusiveControl": 0,
    "protectionExclusiveControlSupport": false,
    "protectionState": 0,
    "protectionTimeout": 0,
    "protectionTimeoutSupport": false,
    "saveLogs": true,
    "serialNumber": "",
    "setpointExpiryDate": 0,
    "stepInterval": 0,
    "supportedDeviceRoles": [
      "Other"
    ],
    "supportedThermostatModes": [
      "Off",
      "Heat",
      "EnergyHeat",
      "FullPower"
    ],
    "thermostatMode": "Heat",
    "thermostatModeFuture": "Heat",
    "thermostatModeManufacturerData": [
      
    ],
    "unit": "C",
    "updateVersion": "",
    "useTemplate": true,
    "userDescription": ""
  },
  "actions": {
    "abortUpdate": 1,
    "reconfigure": 0,
    "removeClimatePanelOverrideSchedule": 0,
    "retryUpdate": 1,
    "setAllClimatePanelSchedules": 1,
    "setClimatePanelOverrideSchedule": 1,
    "setClimatePanelScheduleState": 1,
    "setHeatingThermostatSetpoint": 1,
    "setInterval": 1,
    "setThermostatMode": 1,
    "startUpdate": 1,
    "updateFirmware": 1
  },
  "created": 1654708803,
  "modified": 1674353065,
  "sortOrder": 644
}

exemples :

Fibaro.call - hub.call
Note que hub.call() c'est le nouveau nom officiel à utiliser depuis le dernier firmware stable, même si Fibaro a annoncé qu'ils allaient conserver la rétro-compatibilité avec toutes les fonctions fibaro.*
https://manuals.fibaro.com/home-center-3-quick-apps/
hub.call(id[Thermostat], "setThermostatMode", "Off" | "Heat")
hub.call(id[Thermostat], "setHeatingThermostatSetpoint", consigne)
hub.call(2, "sendEmail", "Subject", "Body")
hub.call(id, "updateProperty", "value", 123)  -- update de la propriété "value" avec 123
Et on peut modifier ainsi les autres propriétés que "value", par exemple "power", "energy", "batteryLevel", etc...
Et Via l'API :
	/api/callAction?deviceID=123&name=updateProperty&arg1=value&arg2=123
hub.call(ID_GEA_Alarm, "setTime", 2, "22:22") -- mettre l'alarme #2 à 22:22
	Que ça soit en LUA, via GEA, ou encore l'API HTTP, les arguments des fonctions doivent toujours être donnés dans le même ordre si on veut que ça fonctionne.
hub.call(id["GOGLEHOME"], "GoogleHome", "Ceci est un test") -- appelle la méthode "GoogleHome" du QA dont l'ID est id["GOGLEHOME"] avec les paramètres

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Super! Un grand merci, j'ai enfin accès à la bible...

 

Mais... je n'ai pas trouvé l'équivalent de: fibaro:call(IdFenetreCuisine, "setArmed", "1")

Partager ce message


Lien à poster
Partager sur d’autres sites

ça n'existe plus.

Le panneau d'alarme de la HC3 fonctionne comme une vraie alarme, contrairement à la HC2 qui avait une logique étrange.

Tu mets des capteurs dans des zones d'alarmes (appelées partitions), et tu armes les zones selon tes besoins (et non pas les capteurs individuellement)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, c'est ce que j'avais cru comprendre....

Du coup, l'inverse: fibaro:getValue(639, "armed") n'est plus possible non plus?

J'ai vu le paramètre "tamper", sais tu me dire ce que c'est ?

 

Je demande ceci car j'ai constaté que quand le contact est ouvert et que l'on "force" l'activation de la zone, le contact ouvert ne s'arme pas

Modifié par Franco268

Partager ce message


Lien à poster
Partager sur d’autres sites

"armed" non plus du coup.

 

"tamper", c'est la protection anti-violation du capteur.
Traditionnellement sur un capteur d'alarme, c'est un contact qui touche le mur pour détecter l'arrachement du capteur.

Sur les modules Fibaro, le temper est un détecteur de déplacement intégré (avec un accéléromètre) pour détecter si le FGMS a été saisi à la main par exemple (ou shooté avec un objet contondant...). Ou bien si le capteur d'ouverture de fenêtre a été... ouvert (le petit capot plastique)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je creuse toujours dans la même direction...

 

Est il au moins possible de savoir quel capteur est dans une zone? (en lua)

 

image.png.3b34954eec7d87959b42d36e76c9732c.png

Partager ce message


Lien à poster
Partager sur d’autres sites

api.get("/alarms/v1/partitions/"..partitionId).devices

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×