@@ -92,7 +92,7 @@ I'll list here all the custom cluster attribute with explanation about how to us
9292| 0xff01| 0x0139| 313| t.int16s| heat_lockout_temperature| -32768=off, celsius* 100| report/read/write|
9393| 0xff01| 0x013A| 314| t.int16s| cool_lockout_temperature| -32768=off, celsius* 100| read/write/report|
9494| 0xff01| 0x013B| 315| t.bitmab8| unknown| 0,4| read/report|
95- | 0xff01| 0x0200| 512| t.bitmap32| status | 0x00000000| read/report|
95+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status | 0x00000000| read/report|
9696| 0xff01| 0x0202| 514| t.enum8| unknown| 0,1,2,6| read|
9797| 0xff01| 0x0260| 608| t.bitmap16| unknown| 0, 7967| read/write/report|
9898| 0xff01| 0x0261| 609| t.bitmap16| unknown| 0| read/write/report|
@@ -191,7 +191,7 @@ I'll list here all the custom cluster attribute with explanation about how to us
191191| 0xff01| 0x00A0| 160| t.uint32_t| Timer| Time, 1 to 10800 seconds| read/write|
192192| 0xff01| 0x00A1| 161| t.uint32_t| Timer_countdown| Seconds remaining on timer| read|
193193| 0xff01| 0x0119| 281| t.uint16_t| ConnectedLoad| None: 0, watt| read/write|
194- | 0xff01| 0x0200| 512| t.bitmap32| status | 0x00000000| report/read|
194+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status | 0x00000000| report/read|
195195| 0xff01| 0xFFFD| 65533| t.uint16_t| cluster_revision| 1| read|
196196| --- | --- | --- | --- | --- | --- | ---|
197197| 0x0702| 0x0000| 0| t.uint48_t| CurrentSummationDelivered| Sum of delivered watt/hr| read/report|
@@ -224,17 +224,16 @@ I'll list here all the custom cluster attribute with explanation about how to us
224224| --- | --- | --- | --- | --- | --- | ---|
225225| 0xff01| 0x0001| 1| t.bool| unknown| 0, 1| read/write|
226226| 0xff01| 0x0002| 2| t.enum8| keypadLockout| 0 = unlocked, 1 = locked| read/write|
227- | 0xff01| 0x0003| 3| t.uint16_t| firmware_number| | read|
228- | 0xff01| 0x0004| 4| t.CharacterString| firmware_version| | read|
227+ | 0xff01| 0x0003| 3| t.uint16_t| firmware_number| 378 | read|
228+ | 0xff01| 0x0004| 4| t.CharacterString| firmware_version| 378 | read|
229229| 0xff01| 0x0060| 96| t.uint16_t| ConnectedLoad| watt/hr| read|
230- | 0xff01| 0x0070| 112| t.bitmap8| CurrentLoad| watt/hr| read|
231- | 0xff01| 0x0074| 116| t.enum8| Unknown| 255| read/write|
232- | 0xff01| 0x0080| 128| t.uint32_t| Unknown| 16908288 | read|
230+ | 0xff01| 0x0070| 112| t.bitmap8| CurrentLoad| watt/hr| read/report |
231+ | 0xff01| 0x0074| 116| t.enum8| Unknown| 0, 1, 255=undefined | read/write|
232+ | 0xff01| 0x0080| 128| t.uint32_t| Unknown| | read|
233233| 0xff01| 0x0090| 144| t.uint32_t| currentSummationDelivered| watt/hr| read/report|
234234| 0xff01| 0x00A0| 160| t.uint32_t| Timer| Time, 1 to 86400 seconds| read/write|
235235| 0xff01| 0x00A1| 161| t.uint32_t| Timer_countDown| Seconds remaining on timer| read|
236- | 0xff01| 0x00B0| 176| t.Bool| Unknown| 1| read/report|
237- | 0xff01| 0x0200| 512| t.bitmap32| status| 0x00000000 | read/report|
236+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status| 0x00000000 | read/report|
238237| 0xff01| 0xFFFD| 65533| t.uint16_t| cluster_revision| | read/report|
239238| --- | --- | --- | --- | --- | --- | ---|
240239| 0x0006| 0x0000| 0| t.Bool| OnOff| 1=on, 0=off| read/report|
@@ -251,17 +250,18 @@ I'll list here all the custom cluster attribute with explanation about how to us
251250
252251| Cluster| Attributes| Atribute decimal| Data type| Fonction | Value| Access|
253252| --- | --- | --- | --- | --- | --- | ---|
254- | 0xff01| 0x0002| 2| t.enum8| keypadLockout| 0 = unlocked, 1 = locked| read/write|
255- | 0xff01| 0x0003| 3| t.uint16_t| firmware_number| | read/write/report|
256- | 0xff01| 0x0004| 4| t.CharacterString| firmware_version| 1| read|
253+ | 0xff01| 0x0001| 1| t.Bool| Unknown| 0, 1| read/write/report|
254+ | 0xff01| 0x0002| 2| t.enum8| keypadLockout| 0 = unlocked, 1 = locked| read/write/report|
255+ | 0xff01| 0x0003| 3| t.uint16_t| firmware_number| 378| read/report|
256+ | 0xff01| 0x0004| 4| t.CharacterString| firmware_version| 378| read/report|
257257| 0xff01| 0x0010| 16| t.int16s| unknown| 400| |
258258| 0xff01| 0x0013| 19| t.enum8| unknown| 1,2,3,4,16,21| read/write|
259- | 0xff01| 0x0035| 53| t.uint16_t| unknown| 0| read/report|
260- | 0xff01| 0x0037| 55| t.uint16_t| unknown| 744| read/write/report|
261- | 0xff01| 0x0038| 56| t.enum8| unknown| 0| read/report|
259+ | 0xff01| 0x0035| 53| t.uint16_t| unknown| 0,22 | read/report|
260+ | 0xff01| 0x0037| 55| t.uint16_t| unknown| 744, 1000 | read/write/report|
261+ | 0xff01| 0x0038| 56| t.enum8| unknown| 0, 2 | read/report|
262262| 0xff01| 0x0060| 96| t.uint16_t| ConnectedLoad| watt/hr| read|
263- | 0xff01| 0x0070| 112| t.bitmap8| CurrentLoad| watt/hr| read|
264- | 0xff01| 0x0074| 116| t.enum8| unknown| 255| read/write/report|
263+ | 0xff01| 0x0070| 112| t.bitmap8| CurrentLoad| watt/hr| read/report |
264+ | 0xff01| 0x0074| 116| t.enum8| unknown| 0,1, 255| read/write/report|
265265| 0xff01| 0x0076| 118| t.uint8_t| drConfigWaterTempMin| 0=off, 45 to 55 celsius| read/write/report|
266266| 0xff01| 0x0077| 119| t.uint8_t| drConfigWaterTempTime| 2| read/write/report|
267267| 0xff01| 0x0078| 120| t.uint16_t| drWTTimeOn| 240| read/write/report|
@@ -270,26 +270,26 @@ I'll list here all the custom cluster attribute with explanation about how to us
270270| 0xff01| 0x007B| 123| t.uint16_t| unknown| 288| read/write/report|
271271| 0xff01| 0x007C| 124| t.int16s| min_measured_temp| water temp celsius* 100| read/report|
272272| 0xff01| 0x007D| 125| t.int16s| max_measured_temp| water temp celsius* 100| read/report|
273- | 0xff01| 0x007E| 126| t.enum8| water_temp_protection_type| 0| read/write/report|
273+ | 0xff01| 0x007E| 126| t.enum8| water_temp_protection_type| 0,1 | read/write/report|
274274| 0xff01| 0c0080| 128| t.uint32_t| unknown| 0| read/report|
275275| 0xff01| 0x0090| 144| t.uint32_t| CurrentSummationDelivered| kwh| read/report|
276276| 0xff01| 0x00A0| 160| t.uint32_t| Timer| Time, 1 to 86400 seconds| read/write/report|
277277| 0xff01| 0x00A1| 161| t.uint32_t| Timer_countDown| Seconds remaining on timer| read/report|
278- | 0xff01| 0x00B0| 176| t.Bool| unknown| 1| read/report|
279- | 0xff01| 0x0101| 257| Array | | read/report|
278+ | 0xff01| 0x00B0| 176| t.Bool| unknown| 0, 1| read/report|
279+ | 0xff01| 0x0101| 257| t.LVList | | read/report|
280280| 0xff01| 0x012A| 298| t.enum8| unknown| 60| read/write/report|
281- | 0xff01| 0x012C| 300| Array | unknown| | read/report|
282- | 0xff01| 0x0200| 512| t.bitmap32| status | 0x00000000| read/report|
281+ | 0xff01| 0x012C| 300| t.LVList | unknown| | read/report|
282+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status | ok= 0x00000000, leak cable disconnected=0x00000040, temperature sensor disconnected=0x00000020 | read/report|
283283| 0xff01| 0x0202| 514| t.enum8| unknown| 1| read/report|
284284| 0xff01| 0x0203| 515| t.enum8| unknown| 12| read/report|
285- | 0xff01| 0x0280| 640| t.int16s| max_measured_value| 5300| read/write/report|
285+ | 0xff01| 0x0280| 640| t.int16s| max_measured_value| 5300, 10000 | read/write/report|
286286| 0xff01| 0x0281| 641| t.uint16_t| unknown| 0| read/write/report|
287287| 0xff01| 0x0282| 642| t.uint16_t| unknown| 0| read/write/report|
288288| 0xff01| 0x0283| 643| t.uint8_t| ColdLoadPickupStatus| 1, 2| read/report|
289289| 0xff01| 0x0284| 644| t.uint16_t| coldLoadPickupRemainingTime| 65535=off countdown| |
290290| 0xff01| 0xFFFD| 65533| t.uint16_t| cluster_revision| | read|
291291| --- | --- | --- | --- | --- | --- | ---|
292- | 0x0500| 0x0002| 2| t.uint16_t| ZoneStatus| 0 =no leak, 1= leak| read|
292+ | 0x0500| 0x0002| 2| t.uint16_t| ZoneStatus| 48 =no leak, 49=temp sensor disconnected, 50= leak sensor disconnected | read|
293293| --- | --- | --- | --- | --- | --- | ---|
294294| 0x0006| 0x0000| 0| t.Bool| OnOff| 1=on, 0=off| read/report|
295295| --- | --- | --- | --- | --- | --- | ---|
@@ -311,12 +311,16 @@ I'll list here all the custom cluster attribute with explanation about how to us
311311| 1| 0x0001| 0x0020| 32| t.uint8_t| Battery_Voltage| Volt* 10| read/report|
312312| 1| 0x0001| 0x003e| 62| t.bitmap32| BatteryAlarmState| 0=no alarm, 1=alarm| read/report|
313313| --- | --- | --- | --- | --- | --- | --- | ---|
314+ | 1| 0xff01| 0x0070| 112| t.bitmap8| current_load| 0-24 Wh| read/report|
315+ | 1| 0xff01| 0x0074| 116| t.enum8| Unknown| 0,1,255=undefined| read/write/report|
314316| 1| 0xff01| 0x00A0| 160| t.uint32_t| Timer| Time, 1 to 10800 seconds| read/write|
315317| 2| 0xff01| 0x00A0| 160| t.uint32_t| Timer2| Time, 1 to 10800 seconds| read/write|
318+ | 1| 0xff01| 0x0200| 512| t.bitmap32| dev_status| 0| read/report|
316319| 1| 0xff01| 0x02A0| 672| t.uint32_t| input_on_delay| seconds, 0=off, 0 to 10800| read/write|
317320| 1| 0xff01| 0x02A1| 673| t.uint32_t| input_off_delay| seconds, 0=off, 0 to 10800| read/write|
318321| 2| 0xff01| 0x02A0| 672| t.uint32_t| input_on_delay| seconds, 0=off, 0 to 10800| read/write|
319322| 2| 0xff01| 0x02A1| 673| t.uint32_t| input_off_delay| seconds, 0=off, 0 to 10800| read/write|
323+ | 1| 0xff01| 0x00B0| 175| t,Bool| Unknown| 0,1| read/report|
320324| 1| 0xff01| 0xFFFD| 65533| t.uint16_t| cluster_revision| | report/read|
321325| --- | --- | --- | --- | --- | --- | --- | ---|
322326| 1| 0x0006| 0x0000| 0| t.Bool| OnOff| 1=on, 0=off| read/report|
@@ -326,6 +330,13 @@ I'll list here all the custom cluster attribute with explanation about how to us
326330| 2| 0x0402| 0x0000| 0| t.int16s| Measured value, outside temperature| celsius* 100| read/report|
327331| --- | --- | --- | --- | --- | --- | --- | ---|
328332| 1| 0x0405| 0x0000| 0| t.uint16_t| measured value, relative humidity| %| read/report|
333+ | --- | --- | --- | --- | --- | --- | --- | ---|
334+ | 1| 0x0B05| 0x011D| 285| t.int8s| rssi| -45| read/report|
335+ | --- | --- | --- | --- | --- | --- | --- | ---|
336+ | 1| 0x000F| 0x0055| 85| t.Bool| present_value| true=1, false=0| read/write/report|
337+ | 2| 0x000F| 0x0055| 85| t.Bool| present_value| true=1, false=0| read/write/report|
338+ | 1| 0x000F| 0x006F| 111| t.bitmap8| status-flag| 0x00=false, 0x01=true| read/report|
339+ | 2| 0x000F| 0x006F| 111| t.bitmap8| status-flag| 0x00=false, 0x01=true| read/report|
329340
330341- ** Valve** : VA4200WZ, VA4201WZ, VA4200ZB VA4201ZB, VA4220ZB, VA4221ZB
331342
@@ -335,7 +346,7 @@ I'll list here all the custom cluster attribute with explanation about how to us
335346| 0x0001| 0x0021| 33| t.uint8_t| Battery_percentage_remaining| %| read/report|
336347| 0x0001| 0x003e| 62| t.bitmap32| BatteryAlarmState| 0=no alarm, 1=alarm, 15=no battery| read/report|
337348| --- | --- | --- | --- | --- | --- | ---|
338- | 0xff01| 0x0200| 512| t.bitmap32| status /alarm| 0x00000000| read/report|
349+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status /alarm| 0x00000000| read/report|
339350| --- | --- | --- | --- | --- | --- | ---|
340351| 0x0006| 0x0000| 0| t.Bool| OnOff| 1=on, 0=off| read/report|
341352| --- | --- | --- | --- | --- | --- | ---|
@@ -360,15 +371,15 @@ I'll list here all the custom cluster attribute with explanation about how to us
360371| 0x0008| 0x0011| 17| t.uint8_t| On_level| 0=off, 1 to 255 valve openning value limit| read/write|
361372| --- | --- | --- | --- | --- | --- | ---|
362373| 0xff01| 0x0101| 257| Array| unknown| Array(type=AnonymousLVList, value=[ 0, 3, 3, 2] )| read|
363- | 0xff01| 0x0200| 512| t.bitmap32| status/alarm | 0x00000000| read/report|
374+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status | 0x00000000| read/report|
364375| 0xff01| 0x0230| 560| t.enum8| alarm_flow_threshold| 0=off,1=on| read/write|
365376| 0xff01| 0x0231| 561| t.enum8| alarm_options| 0=nothing,1=alarm,2=close,3=close and alarm,4=no flowmeter| read|
366377| 0xff01| 0x0240| 576| Array| flow_meter_config| 12 elements (uint8)| read/write|
367378| | | | | | no flow meter = Array(type=AnonymousLVList, value=[ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0] ) | |
368379| | | | | | FS4220 = Array(type=AnonymousLVList, value=[ 194, 17, 0, 0, 136, 119, 0, 0, 1, 0, 0, 0] ) | |
369380| | | | | | FS4221 = Array(type=AnonymousLVList, value=[ 159, 38, 0, 0, 76, 85, 1, 0, 1, 0, 0, 0] ) | |
370381| | | | | | FS4222 = Array(type=AnonymousLVList, value=[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0] ) | |
371- | 0xff01| 0x0241| 577| t.uint32_t| valve_countdown | seconds| read/write|
382+ | 0xff01| 0x0241| 577| t.uint32_t| alarm_disable_countdown | 0 = off, 1 to 86400 seconds (up to 24 hrs) | read/write|
372383| 0xff01| 0x0250| 592| t.uint32_t| power_source| 0x0001d4c0 (120000)= DC power, 0x00000001 (1)=ACUPS, 0x00000000 (0)=Battery| read/write|
373384| 0xff01| 0x0251| 593| t.uint32_t| emergency_power_source| 0x0000003c (60)=battery + ACUPS, 0x00000001=ACUPS, 0x00000000=battery| read/write|
374385| 0xff01| 0x0252| 594| t.uint32_t| abnormal_flow_duration| seconds ,900 (15 min) to 86400 (24hr)| read/write|
@@ -384,7 +395,7 @@ I'll list here all the custom cluster attribute with explanation about how to us
384395| 0x0404| 0x0003| 3| t.uint16_t| tolerance| ?| read|
385396| --- | --- | --- | --- | --- | --- | ---|
386397| 0x0500| 0x0000| 0| t.enum8| zone_state| 1=enrolled, 0=not enrolled| read|
387- | 0x0500| 0x0002| 2| t.bitmap16| zone_status| 56=flow? | read|
398+ | 0x0500| 0x0002| 2| t.bitmap16| zone_status| 48=ok, 50=flow meter disconnected, 56=low battery, 58= flow and low batt | read|
388399| --- | --- | --- | --- | --- | --- | ---|
389400| 0x0702| 0x0000| 0| t.uint48_t| flowVolumeDelivered| L/h| report/read|
390401| 0x0702| 0x0200| 512| t.bitmap8| status| 0=off, 1=off/armed, 2=on| read|
@@ -407,8 +418,8 @@ I'll list here all the custom cluster attribute with explanation about how to us
407418| 0xff01| 0x0034| 52| t.bitmap8| device_status| 0| read/report|
408419| 0xff01| 0x0035| 53| t.uint16_t| unknown| 29, 71, 72, 133| read|
409420| 0xff01| 0x0036| 54| t.uint16_t| battery_type| 7| read/write|
410- | 0xff01| 0x0080| 128| t.uint32_t| unknown| 16973824| read|
411- | 0xff01| 0x0200| 512| t.bitmap32| status | 0x00000000| read/report|
421+ | 0xff01| 0x0080| 128| t.uint32_t| unknown| 16973824| read/report |
422+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status | 0x00000000| read/report|
412423| 0xff01| 0xfffd| 65533| t.uint16_t| cluster_revision| 1| read|
413424| --- | --- | --- | --- | --- | --- | ---|
414425| 0x0001| 0x0020| 32| t.uint8_t| Battery_voltage| voltage * 10| read/report|
@@ -433,7 +444,7 @@ I'll list here all the custom cluster attribute with explanation about how to us
433444| 0xff01| 0x0004| 4| t.CharacterString| firmware_version| | read|
434445| 0xff01| 0x0030| 48| t.uint8_t| Unknown| 60| report/read/write|
435446| 0xff01| 0x0080| 128| t.uint32_t| Unknown| 0| read/report|
436- | 0xff01| 0x0200| 512| t.bitmap32| status | 0x00000000| read/report|
447+ | 0xff01| 0x0200| 512| t.bitmap32| dev_status | 0x00000000| read/report|
437448| 0xff01| 0xfffd| 65533| t.uint16_t| cluster_revision| | report/read|
438449
439450Propane level is reported as gauge needle angle cluster 0x000c, attribute 0x0055. There is no % value. In neviweb this is calculated depending on gauge type 5-95 or 10-80. If you need to set an alarm at 20% tank capacity then target angle 182 for 5-95 and 10-80 gauge. For 30% value 5-95 = 221 and 10-80 = 216.
@@ -495,7 +506,8 @@ Following are the cluster/attributes set for reproting in Neviweb:
495506| status| 0x0001| 0x003e| 0x1b| 60| 43688| 1|
496507| remaining battey percentage| 0x0001| 0x0021| 0x20| 0| 65535| 1|
497508| battery voltage| 0x0001| 0x0020| 0x20| 60| 43646| 1|
498- | present value, angle| 0x000c| 0x0055| 0x39| 5| 3757| 1|
509+ | battery alarm| 0x003E| 0x1B| 60| 43688| 1|
510+ |present value, angle|0x000c|0x0055|0x39|5|3666|1|Value of -2 = probe disconected
499511|device temperature|0x0402|0x0000|0x29|60|3678|1|(only if temperature goes below 5oC)
500512
501513- Calypso RM3500ZB:
@@ -528,7 +540,7 @@ Following are the cluster/attributes set for reproting in Neviweb:
528540| | 0xff01| 0x013B| | 0| 65535| | null|
529541
530542# Setting the flow meter model for your VA422xZB valve 2n gen.
531- To add your flow meter to your valve, you need to use the service ZHA Toolkit: Write Attribute. The data to set the flow meter is written in an attr_type array. The command is different for each type of flow meter:
543+ To add your flow meter to your valve, you need to use the service ZHA Toolkit: Write Attribute. The data to set the flow meter is written in an attr_type array. The command is different for each type of flow meter: (It is possible that ZHA will throw an error for the read_after_write portion but the attribut will be updated correctly).
532544- FS4220: (3/4 inch)
533545```
534546service: zha_toolkit.attr_write
@@ -540,7 +552,7 @@ data:
540552 attr_type: 0x48
541553 attr_val: [32, 12, 0, 194, 17, 0, 0, 136, 119, 0, 0, 1, 0, 0, 0]
542554 read_before_write: false
543- read_after_write: false
555+ read_after_write: true
544556```
545557- FS4221: (one inch)
546558```
@@ -553,7 +565,7 @@ data:
553565 attr_type: 0x48
554566 attr_val: [32, 12, 0, 159, 38, 0, 0, 76, 85, 1, 0, 1, 0, 0, 0]
555567 read_before_write: false
556- read_after_write: false
568+ read_after_write: true
557569```
558570- FS4222: (1.5 inch)
559571```
@@ -566,7 +578,7 @@ data:
566578 attr_type: 0x48
567579 attr_val: [32, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
568580 read_before_write: false
569- read_after_write: false
581+ read_after_write: true
570582```
571583- No flow meter:
572584```
@@ -579,7 +591,7 @@ data:
579591 attr_type: 0x48
580592 attr_val: [32, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
581593 read_before_write: false
582- read_after_write: false
594+ read_after_write: true
583595```
584596
585597## Light switch and dimmer double tap, long press reporting :
0 commit comments