{
  "schema": "devcap1.schema.json",
  "manufacturername": "Sinope Technologies",
  "modelid": "OTH4000-ZB",
  "vendor": "Ouellet",
  "product": "OTH4000-ZB",
  "sleeper": false,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_THERMOSTAT",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0201"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0301",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0201",
          "0x0204",
          "0x0B05"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/externalsensortemp",
          "description": "External sensor temperature used as Outdoor temperature on display.",
          "refresh.interval": 3660,
          "read": {
            "at": "0x0010",
            "cl": "0xff01",
            "ep": 1,
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "write": {
            "at": "0x0010",
            "cl": "0xff01",
            "dt": "0x29",
            "ep": 1,
            "eval": "Item.val",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "parse": {
            "at": "0x0010",
            "cl": "0xff01",
            "ep": 1,
            "eval": "Item.val = Attr.val;",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "default": -32768
        },
        {
          "name": "config/heatsetpoint",
          "default": 0
        },
        {
          "name": "config/ledindication",
          "description": "Use it for Backlight configuration.\n0 = On demand\n1 = Always ON",
          "refresh.interval": 300,
          "read": {
            "at": "0x0402",
            "cl": "0x0201",
            "ep": 1,
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "write": {
            "at": "0x0402",
            "cl": "0x0201",
            "dt": "0x30",
            "ep": 1,
            "eval": "Item.val",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "parse": {
            "at": "0x0402",
            "cl": "0x0201",
            "ep": 1,
            "eval": "Item.val = Attr.val;",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "default": 1
        },
        {
          "name": "config/mode"
        },
        {
          "name": "config/offset",
          "default": 0
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "config/schedule"
        },
        {
          "name": "config/schedule_on"
        },
        {
          "name": "config/unoccupiedheatsetpoint",
          "refresh.interval": 360,
          "read": {
            "at": "0x0014",
            "cl": "0x0201",
            "ep": 1,
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "write": {
            "at": "0x0014",
            "cl": "0x0201",
            "dt": "0x29",
            "ep": 1,
            "eval": "Item.val",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "parse": {
            "at": "0x0014",
            "cl": "0x0201",
            "ep": 1,
            "eval": "Item.val = Attr.val;",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "default": 1800
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/on"
        },
        {
          "name": "state/temperature",
          "refresh.interval": 420,
          "read": {
            "at": "0x0000",
            "cl": "0x0201",
            "ep": 1,
            "fn": "zcl:attr"
          },
          "parse": {
            "at": "0x0000",
            "cl": "0x0201",
            "ep": 1,
            "eval": "Item.val = Attr.val + R.item('config/offset').val",
            "fn": "zcl:attr"
          },
          "default": 0
        },
        {
          "name": "state/valve",
          "refresh.interval": 30,
          "read": {
            "at": "0x0008",
            "cl": "0x0201",
            "ep": 1,
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "parse": {
            "at": "0x0008",
            "cl": "0x0201",
            "ep": 1,
            "eval": "Item.val = Attr.val;",
            "fn": "zcl:attr",
            "mf": "0x119c"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_POWER_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0b04"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0301",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0B04"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/current",
          "refresh.interval": 360,
          "read": {
            "at": "0x0508",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl:attr"
          },
          "parse": {
            "at": "0x0508",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != 65535) { Item.val = Attr.val / 1000; }"
          },
          "default": 0
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/power",
          "refresh.interval": 360,
          "read": {
            "at": "0x050b",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl:attr"
          },
          "parse": {
            "at": "0x050b",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != -32768 && Attr.val != 32768) { Item.val = Attr.val; }"
          },
          "default": 0
        },
        {
          "name": "state/voltage",
          "refresh.interval": 360,
          "read": {
            "at": "0x0505",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl:attr"
          },
          "parse": {
            "at": "0x0505",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != 65535) { Item.val = Attr.val / 10 ; }"
          },
          "default": 0
        }
      ]
    },
    {
      "type": "$TYPE_CONSUMPTION_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0702"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0301",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0702"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/consumption",
          "refresh.interval": 30,
          "read": {
            "at": "0x0000",
            "cl": "0x0702",
            "ep": 1,
            "fn": "zcl:attr"
          },
          "parse": {
            "at": "0x0000",
            "cl": "0x0702",
            "ep": 1,
            "eval": "Item.val = Attr.val"
          },
          "default": 0
        },
        {
          "name": "state/lastupdated"
        }
      ]
    },
    {
      "type": "$TYPE_TEMPERATURE_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0402"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0301",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0402"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/offset"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/temperature",
          "refresh.interval": 30,
          "read": {
            "at": "0x0000",
            "cl": "0x0402",
            "ep": 1,
            "fn": "zcl:attr"
          },
          "parse": {
            "at": "0x0000",
            "cl": "0x0402",
            "ep": 1,
            "eval": "Item.val = Attr.val + R.item('config/offset').val",
            "fn": "zcl:attr"
          },
          "default": 0
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0204",
      "report": [
        {
          "at": "0x0001",
          "dt": "0x30",
          "min": 60,
          "max": 3600
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0B04",
      "report": [
        {
          "at": "0x050B",
          "dt": "0x29",
          "min": 1,
          "max": 300,
          "change": "0x00000001"
        },
        {
          "at": "0x0505",
          "dt": "0x21",
          "min": 1,
          "max": 300,
          "change": "0x0000000A"
        },
        {
          "at": "0x0508",
          "dt": "0x21",
          "min": 1,
          "max": 300,
          "change": "0x00000001"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0201",
      "report": [
        {
          "at": "0x0000",
          "dt": "0x29",
          "min": 30,
          "max": 360,
          "change": "0x0000000A"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0xFF01",
      "report": [
        {
          "at": "0x0010",
          "dt": "0x29",
          "mf": "0x119C",
          "min": 60,
          "max": 3600,
          "change": "0x0000000A"
        }
      ]
    }
  ]
}
