diff --git a/devices/generic/constants.json b/devices/generic/constants.json index dbe320a635..6eeff4075f 100644 --- a/devices/generic/constants.json +++ b/devices/generic/constants.json @@ -19,6 +19,7 @@ "$TYPE_CARBONMONOXIDE_SENSOR": "ZHACarbonMonoxide", "$TYPE_FORMALDEHYDE_SENSOR": "ZHAFormaldehyde", "$TYPE_PARTICULATEMATTER_SENSOR": "ZHAParticulateMatter", + "$TYPE_CONTROL_SENSOR": "ZHAControl", "$TYPE_ALARM_SENSOR": "ZHAAlarm", "$TYPE_ANCILLARY_CONTROL": "ZHAAncillaryControl", "$TYPE_BATTERY_SENSOR": "ZHABattery", diff --git a/devices/generic/items/config_learnkey_item.json b/devices/generic/items/config_learnkey_item.json new file mode 100644 index 0000000000..8783a870ea --- /dev/null +++ b/devices/generic/items/config_learnkey_item.json @@ -0,0 +1,8 @@ +{ + "schema": "resourceitem1.schema.json", + "id": "config/learnkey", + "datatype": "String", + "access": "RW", + "public": true, + "description": "Memorise code." +} diff --git a/devices/generic/items/config_sendkey_item.json b/devices/generic/items/config_sendkey_item.json new file mode 100644 index 0000000000..e1036e2f7b --- /dev/null +++ b/devices/generic/items/config_sendkey_item.json @@ -0,0 +1,8 @@ +{ + "schema": "resourceitem1.schema.json", + "id": "config/sendkey", + "datatype": "String", + "access": "RW", + "public": true, + "description": "Send a code." +} diff --git a/devices/generic/subdevices/control_sensor.json b/devices/generic/subdevices/control_sensor.json new file mode 100644 index 0000000000..7c3575a8a5 --- /dev/null +++ b/devices/generic/subdevices/control_sensor.json @@ -0,0 +1,17 @@ +{ + "schema": "subdevice1.schema.json", + "type": "$TYPE_CONTROL_SENSOR", + "name": "ZHAControl", + "restapi": "/sensors", + "order": 20, + "uuid": [ + "$address.ext", + "0x01", + "0xFC82" + ], + "items": [ + "config/on", + "config/reachable", + "state/lastupdated" + ] +} diff --git a/devices/heiman/HS2IRC_IR_control.json b/devices/heiman/HS2IRC_IR_control.json new file mode 100644 index 0000000000..42f6b8647e --- /dev/null +++ b/devices/heiman/HS2IRC_IR_control.json @@ -0,0 +1,81 @@ +{ + "schema": "devcap1.schema.json", + "manufacturername": "HEIMAN", + "modelid": "IRControl-EM", + "vendor": "HEIMAN", + "product": "HS2IRC", + "sleeper": false, + "status": "Gold", + "subdevices": [ + { + "type": "$TYPE_CONTROL_SENSOR", + "restapi": "/sensors", + "uuid": [ + "$address.ext", + "0x01", + "0xFC82" + ], + "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": "state/lastupdated" + }, + { + "name": "config/sendkey", + "write": { + "fn": "zcl:cmd", + "ep": "0x01", + "cl": "0xfc82", + "cmd": "0xf0", + "eval": "('0'+parseInt(Item.val.split(',')[0]).toString(16)).slice(-2) + ('0'+parseInt(Item.val.split(',')[1]).toString(16)).slice(-2);" + } + }, + { + "name": "config/learnkey", + "write": { + "fn": "zcl:cmd", + "ep": "0x01", + "cl": "0xfc82", + "cmd": "0xf1", + "eval": "('0'+parseInt(Item.val.split(',')[0]).toString(16)).slice(-2) + ('0'+parseInt(Item.val.split(',')[1]).toString(16)).slice(-2);" + } + }, + { + "name": "config/reachable" + }, + { + "name": "config/on" + }, + { + "name": "config/reachable" + } + ] + } + ] +} \ No newline at end of file diff --git a/general.xml b/general.xml index 7690ccaa73..ddfb02bd5e 100644 --- a/general.xml +++ b/general.xml @@ -5253,6 +5253,68 @@ These devices can operate on either battery or mains power, and can have a wide + + + Heiman specific attributes for the device HS2IRC. + + + Create model ID + + + + + + Learn new code + + + + + + + Send a key + + + + + + + Delete a key + + + + + + + Get list code + + + + + The Response to the learn key request. + + + + + + + + The Response to the Get list request. + + + + + + + + The Response to the Create model request. + + + + + + + + Tuya Specific switch mode cluster.