|  | 
| 91 | 91 |             "fn": "zcl:attr", | 
| 92 | 92 |             "mf": "0x1037" | 
| 93 | 93 |           }, | 
|  | 94 | +          "write": { | 
|  | 95 | +            "at": "0x4008", | 
|  | 96 | +            "cl": "0x0201", | 
|  | 97 | +            "dt": "0x22", | 
|  | 98 | +            "ep": 1, | 
|  | 99 | +            "eval": "if (Item.val == true) { R.item('config/hostflags').val | 0x02 } else { R.item('config/hostflags').val & ~0x02};", | 
|  | 100 | +            "fn": "zcl:attr", | 
|  | 101 | +            "mf": "0x1037" | 
|  | 102 | +          }, | 
| 94 | 103 |           "read": { | 
| 95 | 104 |             "fn": "none" | 
| 96 | 105 |           }, | 
|  | 
| 99 | 108 |         { | 
| 100 | 109 |           "name": "config/heatsetpoint", | 
| 101 | 110 |           "refresh.interval": 660, | 
|  | 111 | +          "parse": { | 
|  | 112 | +            "at": "0x4003", | 
|  | 113 | +            "cl": "0x0201", | 
|  | 114 | +            "ep": 1, | 
|  | 115 | +            "eval": "Item.val = Attr.val", | 
|  | 116 | +            "fn": "zcl:attr", | 
|  | 117 | +            "mf": "0x1037" | 
|  | 118 | +          }, | 
| 102 | 119 |           "read": { | 
| 103 | 120 |             "at": "0x4003", | 
| 104 | 121 |             "cl": "0x0201", | 
|  | 
| 114 | 131 |             "eval": "Item.val", | 
| 115 | 132 |             "fn": "zcl:attr" | 
| 116 | 133 |           }, | 
| 117 |  | -          "parse": { | 
| 118 |  | -            "at": "0x4003", | 
| 119 |  | -            "cl": "0x0201", | 
| 120 |  | -            "ep": 1, | 
| 121 |  | -            "eval": "Item.val = Attr.val", | 
| 122 |  | -            "fn": "zcl:attr", | 
| 123 |  | -            "mf": "0x1037" | 
| 124 |  | -          }, | 
| 125 | 134 |           "default": 0 | 
| 126 | 135 |         }, | 
| 127 | 136 |         { | 
|  | 
| 156 | 165 |             "fn": "zcl:attr", | 
| 157 | 166 |             "mf": "0x1037" | 
| 158 | 167 |           }, | 
|  | 168 | +          "write": { | 
|  | 169 | +            "at": "0x4008", | 
|  | 170 | +            "cl": "0x0201", | 
|  | 171 | +            "dt": "0x22", | 
|  | 172 | +            "ep": 1, | 
|  | 173 | +            "eval": "if (Item.val == true) { R.item('config/hostflags').val | 0x80 } else { R.item('config/hostflags').val & ~0x80};", | 
|  | 174 | +            "fn": "zcl:attr", | 
|  | 175 | +            "mf": "0x1037" | 
|  | 176 | +          }, | 
| 159 | 177 |           "read": { | 
| 160 | 178 |             "fn": "none" | 
| 161 | 179 |           }, | 
|  | 
| 172 | 190 |             "fn": "zcl:attr", | 
| 173 | 191 |             "mf": "0x1037" | 
| 174 | 192 |           }, | 
|  | 193 | +          "write": { | 
|  | 194 | +            "at": "0x4008", | 
|  | 195 | +            "cl": "0x0201", | 
|  | 196 | +            "dt": "0x22", | 
|  | 197 | +            "ep": 1, | 
|  | 198 | +            "eval": "if (Item.val == 'off') { R.item('config/hostflags').val & ~0x04 | 0x20 } else if (Item.val == 'heat') { R.item('config/hostflags').val & ~0x20 | 0x04 } else if (Item.val == 'auto') { R.item('config/hostflags').val & ~0x20 & ~0x04 };", | 
|  | 199 | +            "fn": "zcl:attr", | 
|  | 200 | +            "mf": "0x1037" | 
|  | 201 | +          }, | 
| 175 | 202 |           "read": { | 
| 176 | 203 |             "fn": "none" | 
| 177 | 204 |           }, | 
|  | 
| 180 | 207 |         { | 
| 181 | 208 |           "name": "config/offset", | 
| 182 | 209 |           "refresh.interval": 3660, | 
| 183 |  | -          "write": { | 
|  | 210 | +          "parse": { | 
| 184 | 211 |             "at": "0x0010", | 
| 185 | 212 |             "cl": "0x0201", | 
| 186 |  | -            "dt": "0x28", | 
| 187 | 213 |             "ep": 1, | 
| 188 |  | -            "eval": "Item.val / 10;", | 
|  | 214 | +            "eval": "Item.val = Attr.val * 10;", | 
| 189 | 215 |             "fn": "zcl:attr" | 
| 190 | 216 |           }, | 
| 191 |  | -          "parse": { | 
|  | 217 | +          "write": { | 
| 192 | 218 |             "at": "0x0010", | 
| 193 | 219 |             "cl": "0x0201", | 
|  | 220 | +            "dt": "0x28", | 
| 194 | 221 |             "ep": 1, | 
| 195 |  | -            "eval": "Item.val = Attr.val * 10;", | 
|  | 222 | +            "eval": "Item.val / 10;", | 
| 196 | 223 |             "fn": "zcl:attr" | 
| 197 | 224 |           }, | 
| 198 | 225 |           "default": 0 | 
|  | 
| 243 | 270 |         { | 
| 244 | 271 |           "name": "state/temperature", | 
| 245 | 272 |           "refresh.interval": 660, | 
| 246 |  | -          "read": { | 
|  | 273 | +          "parse": { | 
| 247 | 274 |             "at": "0x0000", | 
| 248 | 275 |             "cl": "0x0201", | 
| 249 | 276 |             "ep": 1, | 
|  | 277 | +            "eval": "Item.val = Attr.val", | 
| 250 | 278 |             "fn": "zcl:attr" | 
| 251 | 279 |           }, | 
| 252 |  | -          "parse": { | 
|  | 280 | +          "read": { | 
| 253 | 281 |             "at": "0x0000", | 
| 254 | 282 |             "cl": "0x0201", | 
| 255 | 283 |             "ep": 1, | 
| 256 |  | -            "eval": "Item.val = Attr.val", | 
| 257 | 284 |             "fn": "zcl:attr" | 
| 258 | 285 |           }, | 
| 259 | 286 |           "default": 0 | 
| 260 | 287 |         }, | 
| 261 | 288 |         { | 
| 262 | 289 |           "name": "state/valve", | 
| 263 | 290 |           "refresh.interval": 660, | 
| 264 |  | -          "read": { | 
|  | 291 | +          "parse": { | 
| 265 | 292 |             "at": "0x0008", | 
| 266 | 293 |             "cl": "0x0201", | 
| 267 | 294 |             "ep": 1, | 
|  | 295 | +            "eval": "Item.val = (Attr.val / 255) * 100;", | 
| 268 | 296 |             "fn": "zcl:attr" | 
| 269 | 297 |           }, | 
| 270 |  | -          "parse": { | 
|  | 298 | +          "read": { | 
| 271 | 299 |             "at": "0x0008", | 
| 272 | 300 |             "cl": "0x0201", | 
| 273 | 301 |             "ep": 1, | 
| 274 |  | -            "eval": "Item.val = (Attr.val / 255) * 100;", | 
| 275 | 302 |             "fn": "zcl:attr" | 
| 276 | 303 |           }, | 
| 277 | 304 |           "default": 0 | 
|  | 
| 283 | 310 |             "at": "0x4008", | 
| 284 | 311 |             "cl": "0x0201", | 
| 285 | 312 |             "ep": 1, | 
| 286 |  | -            "eval": "Item.val = (Attr.val >> 3) & 0x01;", | 
|  | 313 | +            "eval": "Item.val = (R.item('config/hostflags') >> 3) & 0x01;", | 
| 287 | 314 |             "fn": "zcl:attr", | 
| 288 | 315 |             "mf": "0x1037" | 
| 289 | 316 |           }, | 
|  | 
0 commit comments