diff --git a/devices/ouellet/OTH4000-ZB b/devices/ouellet/OTH4000-ZB new file mode 100644 index 0000000000..51a9d3f875 --- /dev/null +++ b/devices/ouellet/OTH4000-ZB @@ -0,0 +1,571 @@ +{ + "schema": "devcap1.schema.json", + "manufacturername": "Sinope Technologies", + "modelid": "OTH4000-ZB", + "vendor": "Ouellet", + "product": "OTH4000-ZB", + "sleeper": false, + "status": "Silver", + "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": 300, + "read": { + "at": "0x0010", + "cl": "0xff01", + "ep": 1, + "fn": "zcl", + "mf": "0x119c" + }, + "write": { + "at": "0x0010", + "cl": "0xff01", + "dt": "0x29", + "ep": 1, + "eval": "Item.val", + "fn": "zcl", + "mf": "0x119c" + }, + "parse": { + "at": "0x0010", + "cl": "0xff01", + "ep": 1, + "eval": "Item.val = Attr.val;", + "fn": "zcl", + "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", + "mf": "0x119c" + }, + "write": { + "at": "0x0402", + "cl": "0x0201", + "dt": "0x30", + "ep": 1, + "eval": "Item.val", + "fn": "zcl", + "mf": "0x119c" + }, + "parse": { + "at": "0x0402", + "cl": "0x0201", + "ep": 1, + "eval": "Item.val = Attr.val;", + "fn": "zcl", + "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", + "default": false + }, + { + "name": "config/unoccupiedheatsetpoint", + "refresh.interval": 360, + "read": { + "at": "0x0014", + "cl": "0x0201", + "ep": 1, + "fn": "zcl", + "mf": "0x119c" + }, + "write": { + "at": "0x0014", + "cl": "0x0201", + "dt": "0x29", + "ep": 1, + "eval": "Item.val", + "fn": "zcl", + "mf": "0x119c" + }, + "parse": { + "at": "0x0014", + "cl": "0x0201", + "ep": 1, + "eval": "Item.val = Attr.val;", + "fn": "zcl", + "mf": "0x119c" + }, + "default": 1800 + }, + { + "name": "state/lastupdated" + }, + { + "name": "state/lastupdated" + }, + { + "name": "state/on", + "refresh.interval": 5 + }, + { + "name": "state/temperature", + "refresh.interval": 30, + "read": { + "at": "0x0000", + "cl": "0x0201", + "ep": 1, + "fn": "zcl" + }, + "parse": { + "at": "0x0000", + "cl": "0x0201", + "ep": 1, + "eval": "Item.val = Attr.val + R.item('config/offset').val", + "fn": "zcl" + }, + "default": 0 + }, + { + "name": "state/valve", + "refresh.interval": 30, + "read": { + "at": "0x0008", + "cl": "0x0201", + "ep": 1, + "fn": "zcl", + "mf": "0x119c" + }, + "parse": { + "at": "0x0008", + "cl": "0x0201", + "ep": 1, + "eval": "Item.val = Attr.val;", + "fn": "zcl", + "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": 10, + "read": { + "at": "0x0508", + "cl": "0x0b04", + "ep": 1, + "fn": "zcl" + }, + "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": 10, + "read": { + "at": "0x050b", + "cl": "0x0b04", + "ep": 1, + "fn": "zcl" + }, + "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": 30, + "read": { + "at": "0x0505", + "cl": "0x0b04", + "ep": 1, + "fn": "zcl" + }, + "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" + }, + "parse": { + "at": "0x0000", + "cl": "0x0702", + "ep": 1, + "eval": "Item.val = Attr.val" + }, + "default": 0 + }, + { + "name": "state/lastupdated" + }, + { + "name": "state/power", + "refresh.interval": 30, + "read": { + "at": "0x050b", + "cl": "0x0b04", + "ep": 1, + "fn": "zcl" + }, + "parse": { + "at": "0x050B", + "cl": "0x0B04", + "ep": 1, + "eval": "if (Attr.val != -32768 && Attr.val != 32768) { Item.val = Attr.val; }", + "fn": "zcl" + }, + "default": 0 + } + ] + }, + { + "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", + "default": 0 + }, + { + "name": "config/on" + }, + { + "name": "config/reachable" + }, + { + "name": "state/lastupdated" + }, + { + "name": "state/temperature", + "refresh.interval": 30, + "read": { + "at": "0x0000", + "cl": "0x0402", + "ep": 1, + "fn": "zcl" + }, + "parse": { + "at": "0x0000", + "cl": "0x0402", + "ep": 1, + "eval": "Item.val = Attr.val + R.item('config/offset').val", + "fn": "zcl" + }, + "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" + } + ] + } + ] +}