1
+ {
2
+ "schema" : " devcap1.schema.json" ,
3
+ "manufacturername" : " ubisys" ,
4
+ "modelid" : " H1" ,
5
+ "vendor" : " ubisys" ,
6
+ "product" : " H1" ,
7
+ "sleeper" : false ,
8
+ "status" : " Gold" ,
9
+ "subdevices" : [
10
+ {
11
+ "type" : " $TYPE_THERMOSTAT" ,
12
+ "restapi" : " /sensors" ,
13
+ "uuid" : [
14
+ " $address.ext" ,
15
+ " 0x01" ,
16
+ " 0x0201"
17
+ ],
18
+ "meta" : {
19
+ "values" : {
20
+ "config/mode" : {"off" : 0 , "auto" : 1 , "heat" : 4 }
21
+ },
22
+ "group.endpoints" : [1 ]
23
+ },
24
+ "items" : [
25
+ {
26
+ "name" : " attr/id"
27
+ },
28
+ {
29
+ "name" : " attr/lastannounced"
30
+ },
31
+ {
32
+ "name" : " attr/lastseen"
33
+ },
34
+ {
35
+ "name" : " attr/manufacturername"
36
+ },
37
+ {
38
+ "name" : " attr/modelid"
39
+ },
40
+ {
41
+ "name" : " attr/name"
42
+ },
43
+ {
44
+ "name" : " attr/swversion"
45
+ },
46
+ {
47
+ "name" : " attr/type"
48
+ },
49
+ {
50
+ "name" : " attr/uniqueid"
51
+ },
52
+ {
53
+ "name" : " config/battery" ,
54
+ "parse" : {
55
+ "at" : " 0x0021" ,
56
+ "cl" : " 0x0001" ,
57
+ "ep" : 1 ,
58
+ "eval" : " Item.val = Attr.val / 2;" ,
59
+ "fn" : " zcl:attr"
60
+ },
61
+ "read" : {
62
+ "fn" : " none"
63
+ }
64
+ },
65
+ {
66
+ "name" : " config/checkin"
67
+ },
68
+ {
69
+ "name" : " config/group" ,
70
+ "default" : " auto"
71
+ },
72
+ {
73
+ "name" : " config/heatsetpoint" ,
74
+ "refresh.interval" : 3660
75
+ },
76
+ {
77
+ "name" : " config/mode" ,
78
+ "refresh.interval" : 3660 ,
79
+ "read" : {
80
+ "at" : " 0x001C" ,
81
+ "cl" : " 0x0201" ,
82
+ "ep" : 1 ,
83
+ "fn" : " zcl:attr"
84
+ },
85
+ "parse" : {
86
+ "at" : " 0x001C" ,
87
+ "cl" : " 0x0201" ,
88
+ "ep" : 1 ,
89
+ "eval" : " if (Attr.val == 0) { Item.val = 'off' } else if (Attr.val == 1) { Item.val = 'auto' } else if (Attr.val == 4) { Item.val = 'heat' };" ,
90
+ "fn" : " zcl:attr"
91
+ },
92
+ "write" : {
93
+ "at" : " 0x001C" ,
94
+ "cl" : " 0x0201" ,
95
+ "dt" : " 0x10" ,
96
+ "ep" : 1 ,
97
+ "eval" : " if (Item.val == 'off') { 0 } else if (Item.val == 'auto') { 1 } else if (Item.val == 'heat') { 4 };" ,
98
+ "fn" : " zcl:attr"
99
+ },
100
+ "default" : " heat"
101
+ },
102
+ {
103
+ "name" : " config/offset" ,
104
+ "refresh.interval" : 3660 ,
105
+ "read" : {
106
+ "at" : " 0x0003" ,
107
+ "cl" : " 0x0201" ,
108
+ "ep" : 1 ,
109
+ "fn" : " zcl:attr" ,
110
+ "mf" : " 0x10f2"
111
+ },
112
+ "parse" : {
113
+ "at" : " 0x0003" ,
114
+ "cl" : " 0x0201" ,
115
+ "ep" : 1 ,
116
+ "eval" : " Item.val = Attr.val * 100;" ,
117
+ "fn" : " zcl:attr" ,
118
+ "mf" : " 0x10f2"
119
+ },
120
+ "write" : {
121
+ "at" : " 0x0003" ,
122
+ "cl" : " 0x0201" ,
123
+ "dt" : " 0x30" ,
124
+ "ep" : 1 ,
125
+ "eval" : " parseInt(Item.val / 100);" ,
126
+ "fn" : " zcl:attr" ,
127
+ "mf" : " 0x10f2"
128
+ },
129
+ "range" : [-1000 , 1000 ]
130
+ },
131
+ {
132
+ "name" : " config/on"
133
+ },
134
+ {
135
+ "name" : " config/reachable"
136
+ },
137
+ {
138
+ "name" : " config/schedule" ,
139
+ "refresh.interval" : 3660 ,
140
+ "read" : {
141
+ "fn" : " zcl:cmd" ,
142
+ "ep" : " 0x01" ,
143
+ "cl" : " 0x0201" ,
144
+ "cmd" : " 0x02" ,
145
+ "eval" : " '7F01'"
146
+ }
147
+ },
148
+ {
149
+ "name" : " config/schedule_on" ,
150
+ "static" : true
151
+ },
152
+ {
153
+ "name" : " config/unoccupiedheatsetpoint" ,
154
+ "refresh.interval" : 3660 ,
155
+ "default" : 1600
156
+ },
157
+ {
158
+ "name" : " state/lastupdated"
159
+ },
160
+ {
161
+ "name" : " state/on" ,
162
+ "parse" : {
163
+ "at" : " 0x0008" ,
164
+ "cl" : " 0x0201" ,
165
+ "ep" : 1 ,
166
+ "eval" : " Item.val = Attr.val > 3;" ,
167
+ "fn" : " zcl:attr"
168
+ },
169
+ "read" : {
170
+ "fn" : " none"
171
+ }
172
+ },
173
+ {
174
+ "name" : " state/temperature" ,
175
+ "refresh.interval" : 3660 ,
176
+ "parse" : {
177
+ "at" : " 0x0000" ,
178
+ "cl" : " 0x0201" ,
179
+ "ep" : 1 ,
180
+ "eval" : " Item.val = Attr.val;" ,
181
+ "fn" : " zcl:attr"
182
+ }
183
+ },
184
+ {
185
+ "name" : " state/utc" ,
186
+ "refresh.interval" : 3660
187
+ },
188
+ {
189
+ "name" : " state/valve" ,
190
+ "refresh.interval" : 3660
191
+ }
192
+ ]
193
+ }
194
+ ],
195
+ "bindings" : [
196
+ {
197
+ "bind" : " unicast" ,
198
+ "src.ep" : 1 ,
199
+ "cl" : " 0x0001" ,
200
+ "report" : [
201
+ {
202
+ "at" : " 0x0021" ,
203
+ "dt" : " 0x20" ,
204
+ "min" : 3600 ,
205
+ "max" : 43200 ,
206
+ "change" : " 0x00000002"
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "bind" : " unicast" ,
212
+ "src.ep" : 1 ,
213
+ "cl" : " 0x0201" ,
214
+ "report" : [
215
+ {
216
+ "at" : " 0x0000" ,
217
+ "dt" : " 0x29" ,
218
+ "min" : 60 ,
219
+ "max" : 300 ,
220
+ "change" : " 0x00000064"
221
+ },
222
+ {
223
+ "at" : " 0x0008" ,
224
+ "dt" : " 0x20" ,
225
+ "min" : 60 ,
226
+ "max" : 3600 ,
227
+ "change" : " 0x00000001"
228
+ },
229
+ {
230
+ "at" : " 0x0012" ,
231
+ "dt" : " 0x29" ,
232
+ "min" : 1 ,
233
+ "max" : 3600 ,
234
+ "change" : " 0x00000064"
235
+ },
236
+ {
237
+ "at" : " 0x0014" ,
238
+ "dt" : " 0x29" ,
239
+ "min" : 1 ,
240
+ "max" : 3600 ,
241
+ "change" : " 0x00000064"
242
+ },
243
+ {
244
+ "at" : " 0x001C" ,
245
+ "dt" : " 0x30" ,
246
+ "min" : 1 ,
247
+ "max" : 3600
248
+ }
249
+ ]
250
+ },
251
+ {
252
+ "bind" : " groupcast" ,
253
+ "config.group" : 0 ,
254
+ "src.ep" : 1 ,
255
+ "cl" : " 0x0201"
256
+ }
257
+ ]
258
+ }
0 commit comments