diff --git a/vendors/milesight-iot/cth-series/cth01-compress/CTH01.png b/vendors/milesight-iot/cth-series/cth01-compress/CTH01.png new file mode 100644 index 0000000..3f140ed Binary files /dev/null and b/vendors/milesight-iot/cth-series/cth01-compress/CTH01.png differ diff --git a/vendors/milesight-iot/cth-series/cth01-compress/README.md b/vendors/milesight-iot/cth-series/cth01-compress/README.md new file mode 100644 index 0000000..9d74353 --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01-compress/README.md @@ -0,0 +1,550 @@ +# CTH01 Sensor + +![CTH01](CTH01.png) + +For more detailed information, please visit [Milesight Official Website](https://www.milesight.com/iot/product/lorawan-sensor/cth01) + +## Payload Definition + +### Attribute + +| CHANNEL | ID | LENGTH | READ/WRITE | DEFAULT | RANGE | ENUM | +| :------ | :--: | :----: | :--------: | :-----: | :---: | :--: | +| LoRaWAN Settings | 0xCF | 1 | rw | | | | +| LoRaWAN Comand | 0xCF | 2 | rw | | | | +| LoRaWAN Version | 0xCF | 2 | rw | 2 | | 1:1.0.2
2:1.0.3
3:1.0.3
4:1.0.4 | +| TSL Version | 0xDF | 3 | r | | | | +| Product Name | 0xDE | 33 | rw | | | | +| PN | 0xDD | 33 | rw | | | | +| SN | 0xDB | 9 | r | | | | +| Product Version | 0xDA | 9 | r | | | | +| Hardware Version | 0xDA | 3 | r | | | | +| Firmware Version | 0xDA | 7 | r | | | | +| OEM ID | 0xD9 | 3 | rw | | | | +| Product Region | 0xD8 | 17 | r | | | | +| Device Information | 0xD7 | M | r | | | | +| Temperature | 0x01 | 3 | r | | -20 - 100 | | +| Voltage Three-phase Unbalance | 0x02 | 3 | r | | 0 - 100 | | +| THDi | 0x03 | 25 | r | | | | +| THDi | 0x03 | 3 | r | | | | +| THDi | 0x03 | 3 | r | 0 | 0 - 100 | | +| THDv | 0x04 | 7 | r | | | | +| THDv | 0x04 | 3 | r | | | | +| THDv | 0x04 | 3 | r | 0 | 0 - 100 | | +| Current(RMS) | 0x05 | 37 | r | | | | +| Current(RMS) | 0x05 | 4 | r | | | | +| Current(RMS) | 0x05 | 4 | r | 0 | 0 - 4000 | | +| Voltage(RMS) | 0x06 | 7 | r | | | | +| Voltage(RMS) | 0x06 | 3 | r | | | | +| Voltage(RMS) | 0x06 | 3 | r | 0 | 0 - 500 | | +| Power Factor | 0x07 | 1 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor a | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor1 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor2 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor3 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factorb | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor4 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor5 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor6 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor c | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor7 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor8 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor9 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor d | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor10 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor11 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor12 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Active Power | 0x08 | 1 | r | | | | +| Active Power | 0x08 | 2 | r | | | | +| Active Power | 0x08 | 2 | r | | | | +| Active Power a | 0x08 | 5 | r | 0 | | | +| Active Power | 0x08 | 9 | r | | | | +| Active Power1 | 0x08 | 5 | r | 0 | | | +| Active Power2 | 0x08 | 5 | r | 0 | | | +| Active Power3 | 0x08 | 5 | r | 0 | | | +| Active Power b | 0x08 | 5 | r | 0 | | | +| Active Power | 0x08 | 9 | r | | | | +| Active Power4 | 0x08 | 5 | r | 0 | | | +| Active Power5 | 0x08 | 5 | r | 0 | | | +| Active Power6 | 0x08 | 5 | r | 0 | | | +| Active Power | 0x09 | 1 | r | | | | +| Active Power | 0x09 | 2 | r | | | | +| Active Power | 0x09 | 2 | r | | | | +| Active Power c | 0x09 | 5 | r | 0 | | | +| Active Power | 0x09 | 9 | r | | | | +| Active Power7 | 0x09 | 5 | r | 0 | | | +| Active Power8 | 0x09 | 5 | r | 0 | | | +| Active Power9 | 0x09 | 5 | r | 0 | | | +| Active Power d | 0x09 | 5 | r | 0 | | | +| Active Power | 0x09 | 9 | r | | | | +| Active Power10 | 0x09 | 5 | r | 0 | | | +| Active Power11 | 0x09 | 5 | r | 0 | | | +| Active Power12 | 0x09 | 5 | r | 0 | | | +| Reactive Power | 0x0A | 1 | r | | | | +| Reactive Power | 0x0A | 2 | r | | | | +| Reactive Power | 0x0A | 2 | r | | | | +| Reactive Power a | 0x0A | 5 | r | 0 | | | +| Reactive Power | 0x0A | 9 | r | | | | +| Reactive Power1 | 0x0A | 5 | r | 0 | | | +| Reactive Power2 | 0x0A | 5 | r | 0 | | | +| Reactive Power3 | 0x0A | 5 | r | 0 | | | +| Reactive Power b | 0x0A | 5 | r | 0 | | | +| Reactive Power | 0x0A | 9 | r | | | | +| Reactive Power4 | 0x0A | 5 | r | 0 | | | +| Reactive Power5 | 0x0A | 5 | r | 0 | | | +| Reactive Power6 | 0x0A | 5 | r | 0 | | | +| Reactive Power | 0x0B | 1 | r | | | | +| Reactive Power | 0x0B | 2 | r | | | | +| Reactive Power | 0x0B | 2 | r | | | | +| Reactive Power c | 0x0B | 5 | r | 0 | | | +| Reactive Power | 0x0B | 9 | r | | | | +| Reactive Power7 | 0x0B | 5 | r | 0 | | | +| Reactive Power8 | 0x0B | 5 | r | 0 | | | +| Reactive Power9 | 0x0B | 5 | r | 0 | | | +| Reactive Power d | 0x0B | 5 | r | 0 | | | +| Reactive Power | 0x0B | 9 | r | | | | +| Reactive Power10 | 0x0B | 5 | r | 0 | | | +| Reactive Power11 | 0x0B | 5 | r | 0 | | | +| Reactive Power12 | 0x0B | 5 | r | 0 | | | +| Apparent Power | 0x0C | 1 | r | | | | +| Apparent Power | 0x0C | 2 | r | | | | +| Apparent Power | 0x0C | 2 | r | | | | +| Apparent Power a | 0x0C | 5 | r | 0 | | | +| Apparent Power | 0x0C | 9 | r | | | | +| Apparent Power1 | 0x0C | 5 | r | 0 | | | +| Apparent Power2 | 0x0C | 5 | r | 0 | | | +| Apparent Power3 | 0x0C | 5 | r | 0 | | | +| Apparent Power b | 0x0C | 5 | r | 0 | | | +| Apparent Power | 0x0C | 9 | r | | | | +| Apparent Power4 | 0x0C | 5 | r | 0 | | | +| Apparent Power5 | 0x0C | 5 | r | 0 | | | +| Apparent Power6 | 0x0C | 5 | r | 0 | | | +| Apparent Power | 0x0D | 1 | r | | | | +| Apparent Power | 0x0D | 2 | r | | | | +| Apparent Power | 0x0D | 2 | r | | | | +| Apparent Power c | 0x0D | 5 | r | 0 | | | +| Apparent Power | 0x0D | 9 | r | | | | +| Apparent Power7 | 0x0D | 5 | r | 0 | | | +| Apparent Power8 | 0x0D | 5 | r | 0 | | | +| Apparent Power9 | 0x0D | 5 | r | 0 | | | +| Apparent Power d | 0x0D | 5 | r | 0 | | | +| Apparent Power | 0x0D | 9 | r | | | | +| Apparent Power10 | 0x0D | 5 | r | 0 | | | +| Apparent Power11 | 0x0D | 5 | r | 0 | | | +| Apparent Power12 | 0x0D | 5 | r | 0 | | | +| Imported Active Energy | 0x0E | 1 | r | | | | +| Imported Active Energy | 0x0E | 2 | r | | | | +| Imported Active Energy | 0x0E | 2 | r | | | | +| Imported Active Energy a | 0x0E | 5 | r | 0 | | | +| Imported Active Energy | 0x0E | 9 | r | | | | +| Imported Active Energy1 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy2 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy3 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy b | 0x0E | 5 | r | 0 | | | +| Imported Active Energy | 0x0E | 9 | r | | | | +| Imported Active Energy4 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy5 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy6 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy | 0x0F | 1 | r | | | | +| Imported Active Energy | 0x0F | 2 | r | | | | +| Imported Active Energy | 0x0F | 2 | r | | | | +| Imported Active Energy c | 0x0F | 5 | r | 0 | | | +| Imported Active Energy | 0x0F | 9 | r | | | | +| Imported Active Energy7 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy8 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy9 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy d | 0x0F | 5 | r | 0 | | | +| Imported Active Energy | 0x0F | 9 | r | | | | +| Imported Active Energy10 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy11 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy12 | 0x0F | 5 | r | 0 | | | +| Exported Active Energy | 0x10 | 1 | r | | | | +| Exported Active Energy | 0x10 | 2 | r | | | | +| Exported Active Energy | 0x10 | 2 | r | | | | +| Exported Active Energy a | 0x10 | 5 | r | 0 | | | +| Exported Active Energy | 0x10 | 9 | r | | | | +| Exported Active Energy1 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy2 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy3 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy b | 0x10 | 5 | r | 0 | | | +| Exported Active Energy | 0x10 | 9 | r | | | | +| Exported Active Energy4 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy5 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy6 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy | 0x11 | 1 | r | | | | +| Exported Active Energy | 0x11 | 2 | r | | | | +| Exported Active Energy | 0x11 | 2 | r | | | | +| Exported Active Energy c | 0x11 | 5 | r | 0 | | | +| Exported Active Energy | 0x11 | 9 | r | | | | +| Exported Active Energy7 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy8 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy9 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy d | 0x11 | 5 | r | 0 | | | +| Exported Active Energy | 0x11 | 9 | r | | | | +| Exported Active Energy10 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy11 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy12 | 0x11 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x12 | 1 | r | | | | +| Imported Reactive Energy | 0x12 | 2 | r | | | | +| Imported Reactive Energy | 0x12 | 2 | r | | | | +| Imported Reactive Energy a | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x12 | 9 | r | | | | +| Imported Reactive Energy1 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy2 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy3 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy b | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x12 | 9 | r | | | | +| Imported Reactive Energy4 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy5 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy6 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x13 | 1 | r | | | | +| Imported Reactive Energy | 0x13 | 2 | r | | | | +| Imported Reactive Energy | 0x13 | 2 | r | | | | +| Imported Reactive Energy c | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x13 | 9 | r | | | | +| Imported Reactive Energy7 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy8 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy9 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy d | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x13 | 9 | r | | | | +| Imported Reactive Energy10 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy11 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy12 | 0x13 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x14 | 1 | r | | | | +| Exported Reactive Energy | 0x14 | 2 | r | | | | +| Exported Reactive Energy | 0x14 | 2 | r | | | | +| Exported Reactive Energy a | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x14 | 9 | r | | | | +| Exported Reactive Energy1 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy2 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy3 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy b | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x14 | 9 | r | | | | +| Exported Reactive Energy4 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy5 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy6 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x15 | 1 | r | | | | +| Exported Reactive Energy | 0x15 | 2 | r | | | | +| Exported Reactive Energy | 0x15 | 2 | r | | | | +| Exported Reactive Energy | 0x15 | 9 | r | | | | +| Exported Reactive Energy7 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy8 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy9 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy d | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x15 | 9 | r | | | | +| Exported Reactive Energy10 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy11 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy12 | 0x15 | 5 | r | 0 | | | +| Apparent Energy | 0x16 | 1 | r | | | | +| Apparent Energy | 0x16 | 2 | r | | | | +| Apparent Energy | 0x16 | 2 | r | | | | +| Apparent Energy a | 0x16 | 5 | r | 0 | | | +| Apparent Energy | 0x16 | 9 | r | | | | +| Apparent Energy1 | 0x16 | 5 | r | 0 | | | +| Apparent Energy2 | 0x16 | 5 | r | 0 | | | +| Apparent Energy3 | 0x16 | 5 | r | 0 | | | +| Apparent Energy b | 0x16 | 5 | r | 0 | | | +| Apparent Energy | 0x16 | 9 | r | | | | +| Apparent Energy4 | 0x16 | 5 | r | 0 | | | +| Apparent Energy5 | 0x16 | 5 | r | 0 | | | +| Apparent Energy6 | 0x16 | 5 | r | 0 | | | +| Apparent Energy | 0x17 | 1 | r | | | | +| Apparent Energy | 0x17 | 2 | r | | | | +| Apparent Energy | 0x17 | 2 | r | | | | +| Apparent Energy c | 0x17 | 5 | r | 0 | | | +| Apparent Energy | 0x17 | 9 | r | | | | +| Apparent Energy7 | 0x17 | 5 | r | 0 | | | +| Apparent Energy8 | 0x17 | 5 | r | 0 | | | +| Apparent Energy9 | 0x17 | 5 | r | 0 | | | +| Apparent Energy d | 0x17 | 5 | r | 0 | | | +| Apparent Energy | 0x17 | 9 | r | | | | +| Apparent Energy10 | 0x17 | 5 | r | 0 | | | +| Apparent Energy11 | 0x17 | 5 | r | 0 | | | +| Apparent Energy12 | 0x17 | 5 | r | 0 | | | +| Historical Data Type | 0x40 | 2 | r | | | | +| Historical Data Type | 0x40 | 2 | r | 1 | | 1:month energy
2:month min
3:month max | +| Collecting Interval | 0x60 | 1 | rw | | | | +| Collecting Interval Unit | 0x60 | 2 | rw | 0 | | 0:second
1:min | +| Collecting Interval | 0x60 | 3 | rw | 30 | 10 - 64800 | | +| Collecting Interval | 0x60 | 3 | rw | 1 | 1 - 1440 | | +| Report Interval | 0x61 | 1 | rw | | | | +| Report Interval Unit | 0x61 | 2 | rw | 1 | | 0:second
1:min | +| Report Interval | 0x61 | 3 | rw | 30 | 10 - 64800 | | +| Report Interval | 0x61 | 3 | rw | 1 | 1 - 1440 | | +| Device Status | 0xC8 | 2 | rw | 0 | | 0:Power Off
1:Power On | +| Temperature Unit | 0x63 | 2 | rw | 0 | | 0:℃
1:℉ | +| Bluetooth Name | 0x64 | 1 | rw | | | | +| Name Length | 0x64 | 2 | rw | 13 | 1 - 13 | | +| Name | 0x64 | 1 | rw | | | | +| Data Storage Settings | 0xC5 | 1 | rw | | | | +| Sub-command | 0xC5 | 2 | rw | 0 | | | +| Data Storage Enable | 0xC5 | 2 | rw | 0 | | 0:disable
1:enable | +| Data Retransmission Enable | 0xC5 | 2 | rw | 0 | | 0:disable
1:enable | +| Retransmission Interval | 0xC5 | 3 | rw | 600 | 30 - 1200 | | +| Retrieval Interval | 0xC5 | 3 | rw | 60 | 30 - 1200 | | +| Voltage Channel | 0x66 | 2 | rw | 0 | | 0:four_wire
1:three_wire | +| Group a | 0x67 | 1 | rw | | | | +| Circuit Type | 0x67 | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x67 | 10 | rw | | | | +| Current Channel Configuration | 0x67 | 4 | rw | | | | +| Current Direction | 0x67 | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x67 | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Group b | 0x68 | 1 | rw | | | | +| Circuit Type | 0x68 | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x68 | 10 | rw | | | | +| Current Channel Configuration | 0x68 | 4 | rw | | | | +| Current Direction | 0x68 | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x68 | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Group c | 0x69 | 1 | rw | | | | +| Circuit Type | 0x69 | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x69 | 10 | rw | | | | +| Current Channel Configuration | 0x69 | 4 | rw | | | | +| Current Direction | 0x69 | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x69 | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Group d | 0x6A | 1 | rw | | | | +| Circuit Type | 0x6A | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x6A | 10 | rw | | | | +| Current Channel Configuration | 0x6A | 4 | rw | | | | +| Current Direction | 0x6A | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x6A | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Temperature Calibration Settings | 0x6B | 4 | rw | | | | +| Temperature Calibration | 0x6B | 2 | rw | 0 | | 0:disable
1:enable | +| Calibration Value | 0x6B | 3 | rw | 0 | -120 - 120 | | +| Time Zone | 0xC7 | 3 | rw | 0 | | -720:UTC-12(IDLW)
-660:UTC-11(SST)
-600:UTC-10(HST)
-570:UTC-9:30(MIT)
-540:UTC-9(AKST)
-480:UTC-8(PST)
-420:UTC-7(MST)
-360:UTC-6(CST)
-300:UTC-5(EST)
-240:UTC-4(AST)
-210:UTC-3:30(NST)
-180:UTC-3(BRT)
-120:UTC-2(FNT)
-60:UTC-1(CVT)
0:UTC(WET)
60:UTC+1(CET)
120:UTC+2(EET)
180:UTC+3(MSK)
210:UTC+3:30(IRST)
240:UTC+4(GST)
270:UTC+4:30(AFT)
300:UTC+5(PKT)
330:UTC+5:30(IST)
345:UTC+5:45(NPT)
360:UTC+6(BHT)
390:UTC+6:30(MMT)
420:UTC+7(ICT)
480:UTC+8(CT/CST)
540:UTC+9(JST)
570:UTC+9:30(ACST)
600:UTC+10(AEST)
630:UTC+10:30(LHST)
660:UTC+11(VUT)
720:UTC+12(NZST)
765:UTC+12:45(CHAST)
780:UTC+13(PHOT)
840:UTC+14(LINT) | +| Daylight Saving Time | 0xC6 | M | rw | | | | +| Daylight Saving Time | 0xC6 | 2 | rw | 0 | | 0:disable
1:enable | +| DST Bias | 0xC6 | 2 | rw | 60 | 0 - 120 | | +| Month | 0xC6 | 2 | rw | 1 | | 1:Jan.
2:Feb.
3:Mar.
4:Apr.
5:May
6:Jun.
7:Jul.
8:Aug.
9:Sep.
10:Oct.
11:Nov.
12:Dec. | +| Number of Week | 0xC6 | 2 | rw | 1 | | 1:1st
2: 2nd
3: 3rd
4: 4th
5: last | +| Week | 0xC6 | 2 | rw | 1 | | 1:Mon.
2:Tues.
3:Wed.
4:Thurs.
5:Fri.
6:Sat.
7:Sun. | +| Time | 0xC6 | 3 | rw | 0 | | 0:00:00
60:01:00
120:02:00
180:03:00
240:04:00
300:05:00
360:06:00
420:07:00
480:08:00
540:09:00
600:10:00
660:11:00
720:12:00
780:13:00
840:14:00
900:15:00
960:16:00
1020:17:00
1080:18:00
1140:19:00
1200:20:00
1260:21:00
1320:22:00
1380:23:00 | +| Month | 0xC6 | 2 | rw | 1 | | 1:Jan.
2:Feb.
3:Mar.
4:Apr.
5:May
6:Jun.
7:Jul.
8:Aug.
9:Sep.
10:Oct.
11:Nov.
12:Dec. | +| Number of Week | 0xC6 | 2 | rw | 1 | | 1:1st
2: 2nd
3: 3rd
4: 4th
5: last | +| Week | 0xC6 | 2 | rw | 1 | | 1:Mon.
2:Tues.
3:Wed.
4:Thurs.
5:Fri.
6:Sat.
7:Sun. | +| Time | 0xC6 | 3 | rw | 0 | | 0:00:00
60:01:00
120:02:00
180:03:00
240:04:00
300:05:00
360:06:00
420:07:00
480:08:00
540:09:00
600:10:00
660:11:00
720:12:00
780:13:00
840:14:00
900:15:00
960:16:00
1020:17:00
1080:18:00
1140:19:00
1200:20:00
1260:21:00
1320:22:00
1380:23:00 | +| Temperature Threshold Alarm Settings | 0x76 | 7 | rw | | | | +| Threshold Alarm Enable | 0x76 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x76 | 2 | rw | 0 | | 0:disable
1:condition: x2:condition: x>B
3:condition: A≤x≤B
4:condition: xB | +| Value A | 0x76 | 3 | rw | 0 | -20 - 100 | | +| Value B | 0x76 | 3 | rw | 0 | -20 - 100 | | +| Current Threshold Alarm Settings | 0x77 | 1 | rw | | | | +| Current Threshold Alarm | 0x77 | 8 | rw | | | | +| Threshold Alarm Channel | 0x77 | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x77 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x77 | 2 | rw | 0 | | 0:disable
1:condition: x2:condition: x>B
3:condition: A≤x≤B
4:condition: x
B | +| Value A | 0x77 | 3 | rw | 0 | 0 - 4000 | | +| Value B | 0x77 | 3 | rw | 0 | 0 - 4000 | | +| Voltage Threshold Alarm Settings | 0x78 | 1 | rw | | | | +| Voltage Threshold Alarm | 0x78 | 8 | rw | | | | +| Threshold Alarm Channel | 0x78 | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x78 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x78 | 2 | rw | 0 | | 0:disable
1:condition: x2:condition: x>B
3:condition: A≤x≤B
4:condition: x
B | +| Value A | 0x78 | 3 | rw | 0 | 0 - 500 | | +| Value B | 0x78 | 3 | rw | 0 | 0 - 500 | | +| THDi Threshold Alarm Settings | 0x79 | 8 | rw | | | | +| THDi Threshold Alarm | 0x79 | 8 | rw | | | | +| Threshold Alarm Channel | 0x79 | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x79 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x79 | 2 | rw | 0 | | 0:disable
2:condition: x>B | +| Value A | 0x79 | 3 | rw | 0 | 0 - 100 | | +| Value B | 0x79 | 3 | rw | 8 | 1 - 100 | | +| THDv Threshold Alarm Settings | 0x7A | 8 | rw | | | | +| THDv Threshold Alarm | 0x7A | 8 | rw | | | | +| Threshold Alarm Channel | 0x7A | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x7A | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x7A | 2 | rw | 0 | | 0:disable
2:condition: x>B | +| Value A | 0x7A | 3 | rw | 0 | 0 - 100 | | +| Value B | 0x7A | 3 | rw | 5 | 1 - 100 | | +| Voltage Three-phase Unbalance Threshold Alarm Settings | 0x7B | 7 | rw | | | | +| Threshold Alarm Enable | 0x7B | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x7B | 2 | rw | 0 | | 0:disable
2:condition: x>B | +| Value A | 0x7B | 3 | rw | 0 | 0 - 100 | | +| Value B | 0x7B | 3 | rw | 3 | 1 - 100 | | +| Threshold Alarm Global Settings | 0x7C | 1 | rw | | | | +| Alarm Interval | 0x7C | 3 | rw | 5 | 1 - 1440 | | +| Alarm Times | 0x7C | 3 | rw | 3 | 1 - 1000 | | +| Threshold Released Report Enable | 0x7C | 2 | rw | 0 | | 0:disable
1:enable | +| Monthly Statistics Time | 0x6D | 1 | rw | | | | +| day | 0x6D | 2 | rw | 1 | 1 - 28 | | +| hour | 0x6D | 2 | rw | 0 | 0 - 23 | | +| minute | 0x6D | 2 | rw | 0 | 0 - 59 | | +| Report Parameters | 0x6C | 3 | rw | | | | +| Temperature | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| Current(RMS) | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Voltage(RMS) | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Power Factor | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| Active Power | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| ReActive Power | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Apparent Power | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Imported Active Energy | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| Exported Active Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Imported Reactive Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Exported Reactive Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Apparent Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| THDi | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| THDv | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Voltage Three-phase Unbalance | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | + +### Event + +| CHANNEL | ID | LENGTH | READ/WRITE | DEFAULT | RANGE | ENUM | +| :------ | :--: | :----: | :--------: | :-----: | :---: | :--: | +| Sequence Number Check Response | 0xFF | 2 | r | | | | +| Order Check Response | 0xFE | 2 | r | | | | +| Command Response | 0xEF | 1 | r | | | | +| Request to Push All Configurations | 0xEE | 1 | r | | | | +| Historical Data | 0xED | 6 | r | | | | +| Temperature Threshold Alarm | 0x30 | 1 | r | | | | +| Current Threshold Alarm | 0x31 | 1 | r | | | | +| Voltage Threshold Alarm | 0x32 | 1 | r | | | | +| THDi Threshold Alarm | 0x33 | 1 | r | | | | +| THDv Threshold Alarm | 0x34 | 1 | r | | | | +| Voltage Three-phase Unbalance Threshold Alarm | 0x35 | 1 | r | | | | +| Power Failure Alarm | 0x36 | 1 | r | | | | + +### Service + +| CHANNEL | ID | LENGTH | READ/WRITE | DEFAULT | RANGE | ENUM | +| :------ | :--: | :----: | :--------: | :-----: | :---: | :--: | +| Sequence Number Check | 0xFF | 2 | w | | | | +| Sequence Number | 0xFF | 2 | w | 0 | 0 - 255 | | +| Sequence Number | 0xFF | 2 | r | 0 | 0 - 255 | | +| Order Check | 0xFE | 2 | w | | | | +| Order | 0xFE | 2 | w | 0 | 0 - 255 | | +| Command Queries | 0xEF | 1 | w | | | | +| Query Information | 0xEF | 2 | w | | | | +| Command Length | 0xEF | 2 | w | 1 | 1 - 15 | | +| The command that was queried | 0xEF | 1 | w | | | | +| Answer Result | 0xEF | 2 | r | 0 | | 0:success
1:unknow
2:error order
3:error passwd
4:error read params
5:error write params
6:error read
7:error write
8:error read apply
9:error write apply | +| Command Length | 0xEF | 2 | r | 1 | 1 - 15 | | +| Answered Commands | 0xEF | 1 | r | | | | +| Request to Query All Configurations | 0xEE | 1 | w | | | | +| Historical Data Mode | 0xED | 2 | r | | | 0:target time
1:historical time | +| Historical Data Timestamps | 0xED | 5 | r | | | | +| Alarm Type | 0x30 | 2 | r | | | | +| Collection Error | 0x30 | 1 | r | | | | +| Overrange (Lower Limit) | 0x30 | 1 | r | | | | +| Overrange (Upper Limit) | 0x30 | 1 | r | | | | +| No Data | 0x30 | 1 | r | | | | +| Temperature Below Threshold Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Below Threshold Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Exceeds Threshold Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Exceeds Threshold Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Between Thresholds Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Between Thresholds Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Outside Thresholds Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Outside Thresholds Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Alarm Channel | 0x31 | 2 | r | | 0 - 11 | | +| Current Threshold Alarm Info | 0x31 | 1 | r | | | | +| Alarm Type | 0x31 | 2 | r | | | | +| Collection Error | 0x31 | 1 | r | | | | +| Overrange (Lower Limit) | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Overrange (Upper Limit) | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| No Data | 0x31 | 1 | r | | | | +| Overrange Release | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Below Threshold Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Below Threshold Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Exceeds Threshold Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Exceeds Threshold Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current in-Range Thresholds Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current in-Range Thresholds Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Out-of-Range Thresholds Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Out-of-Range Thresholds Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Alarm Channel | 0x32 | 2 | r | | 0 - 11 | | +| Voltage Threshold Alarm Info | 0x32 | 1 | r | | | | +| Alarm Type | 0x32 | 2 | r | | | | +| Collection Error | 0x32 | 1 | r | | | | +| Overrange (Lower Limit) | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Overrange (Upper Limit) | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| No Data | 0x32 | 1 | r | | | | +| Overrange Release | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Below Threshold Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Below Threshold Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Exceeds Threshold Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Exceeds Threshold Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage in-Range Thresholds Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage in-Range Thresholds Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Out-of-Range Thresholds Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Out-of-Range Thresholds Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Alarm Channel | 0x33 | 2 | r | | 0 - 11 | | +| THDi Threshold Alarm Info | 0x33 | 1 | r | | | | +| Alarm Type | 0x33 | 2 | r | | | | +| Collection Error | 0x33 | 1 | r | | | | +| THDi Exceeds Threshold Alarm Released | 0x33 | 3 | r | | | | +| THDi | 0x33 | 3 | r | | | | +| THDi Exceeds Threshold Alarm | 0x33 | 3 | r | | | | +| THDi | 0x33 | 3 | r | | | | +| Alarm Channel | 0x34 | 2 | r | | 0 - 11 | | +| THDv Threshold Alarm Info | 0x34 | 1 | r | | | | +| Alarm Type | 0x34 | 2 | r | | | | +| Collection Error | 0x34 | 1 | r | | | | +| THDv Exceeds Threshold Alarm Released | 0x34 | 3 | r | | | | +| THDv | 0x34 | 3 | r | | | | +| THDv Exceeds Threshold Alarm | 0x34 | 3 | r | | | | +| THDv | 0x34 | 3 | r | | | | +| Alarm Type | 0x35 | 2 | r | | | | +| Collection Error | 0x35 | 1 | r | | | | +| Voltage Three-phase Unbalance Exceeds Threshold Alarm Released | 0x35 | 3 | r | | | | +| Voltage Three-phase Unbalance | 0x35 | 3 | r | | | | +| Voltage Three-phase Unbalance Exceeds Threshold Alarm | 0x35 | 3 | r | | | | +| Voltage Three-phase Unbalance | 0x35 | 3 | r | | | | +| Reset | 0xBF | 1 | w | | | | +| Reboot | 0xBE | 1 | w | | | | +| Stop Retrieval | 0x5D | 1 | w | | | | +| Stop Retrieval | 0x5D | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Retrieval (Time Period) | 0x5B | 6 | w | | | | +| Type | 0x5B | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Time Point | 0x5B | 5 | w | | | | +| Retrieval (Time Period) | 0x5C | 10 | w | | | | +| Type | 0x5C | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Start Time | 0x5C | 5 | w | | | | +| End Time | 0x5C | 5 | w | | | | +| Query Device Status | 0xB9 | 1 | w | | | | +| Time Synchronize | 0xB8 | 1 | w | | | | +| Time Synchronize | 0xB7 | 5 | w | | | | +| Timestamp | 0xB7 | 5 | w | | | | +| Network Reconnection | 0xB6 | 1 | w | | | | +| Clear Cumulative Energy Consumption | 0x5F | 2 | w | | | | +| Channel Number | 0x5F | 2 | w | 0 | 0 - 12 | | +| Clear Historical Data | 0x5E | 2 | w | | | | +| Data Type to Clear | 0x5E | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Query Data Storage Configuration | 0x57 | 1 | w | | | | + diff --git a/vendors/milesight-iot/cth-series/cth01-compress/cth01-codec.json b/vendors/milesight-iot/cth-series/cth01-compress/cth01-codec.json new file mode 100644 index 0000000..24a82b8 --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01-compress/cth01-codec.json @@ -0,0 +1,7030 @@ +{ + "version": "1.0.0", + "object": [ + { + "id": "active_power1.group1_value", + "name": "Active Power a", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.mask2" + ] + }, + { + "id": "active_power1.group1.chan1", + "name": "Active Power1", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group1.chan2", + "active_power1.group1.chan3" + ] + }, + { + "id": "active_power1.group1.chan2", + "name": "Active Power2", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group1.chan1", + "active_power1.group1.chan3" + ] + }, + { + "id": "active_power1.group1.chan3", + "name": "Active Power3", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group1.chan1", + "active_power1.group1.chan2" + ] + }, + { + "id": "active_power1.group2_value", + "name": "Active Power b", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.mask2" + ] + }, + { + "id": "active_power1.group2.chan1", + "name": "Active Power4", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group2.chan2", + "active_power1.group2.chan3" + ] + }, + { + "id": "active_power1.group2.chan2", + "name": "Active Power5", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group2.chan1", + "active_power1.group2.chan3" + ] + }, + { + "id": "active_power1.group2.chan3", + "name": "Active Power6", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group2.chan1", + "active_power1.group2.chan2" + ] + }, + { + "id": "active_power1.mask1", + "name": "Active Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power a" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power b" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "active_power1.mask2" + ] + }, + { + "id": "active_power1.mask2", + "name": "Active Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power a" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power b" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "active_power2.group1_value", + "name": "Active Power c", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.mask2" + ] + }, + { + "id": "active_power2.group1.chan1", + "name": "Active Power7", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group1.chan2", + "active_power2.group1.chan3" + ] + }, + { + "id": "active_power2.group1.chan2", + "name": "Active Power8", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group1.chan1", + "active_power2.group1.chan3" + ] + }, + { + "id": "active_power2.group1.chan3", + "name": "Active Power9", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group1.chan1", + "active_power2.group1.chan2" + ] + }, + { + "id": "active_power2.group2_value", + "name": "Active Power d", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.mask2" + ] + }, + { + "id": "active_power2.group2.chan1", + "name": "Active Power10", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group2.chan2", + "active_power2.group2.chan3" + ] + }, + { + "id": "active_power2.group2.chan2", + "name": "Active Power11", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group2.chan1", + "active_power2.group2.chan3" + ] + }, + { + "id": "active_power2.group2.chan3", + "name": "Active Power12", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group2.chan1", + "active_power2.group2.chan2" + ] + }, + { + "id": "active_power2.mask1", + "name": "Active Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power c" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power d" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "active_power2.mask2" + ] + }, + { + "id": "active_power2.mask2", + "name": "Active Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power c" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power d" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "alarm_global_settings.interval", + "name": "Alarm Interval", + "value": "5", + "unit": "min", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 1, + 1440 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "alarm_global_settings.times", + "alarm_global_settings.release_enable" + ] + }, + { + "id": "alarm_global_settings.release_enable", + "name": "Threshold Released Report Enable", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "alarm_global_settings.interval", + "alarm_global_settings.times" + ] + }, + { + "id": "alarm_global_settings.times", + "name": "Alarm Times", + "value": "3", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 1, + 1000 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "alarm_global_settings.interval", + "alarm_global_settings.release_enable" + ] + }, + { + "id": "apparent_energy1.group1_value", + "name": "Apparent Energy a", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.mask2" + ] + }, + { + "id": "apparent_energy1.group1.chan1", + "name": "Apparent Energy1", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group1.chan2", + "apparent_energy1.group1.chan3" + ] + }, + { + "id": "apparent_energy1.group1.chan2", + "name": "Apparent Energy2", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group1.chan1", + "apparent_energy1.group1.chan3" + ] + }, + { + "id": "apparent_energy1.group1.chan3", + "name": "Apparent Energy3", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group1.chan1", + "apparent_energy1.group1.chan2" + ] + }, + { + "id": "apparent_energy1.group2_value", + "name": "Apparent Energy b", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.mask2" + ] + }, + { + "id": "apparent_energy1.group2.chan1", + "name": "Apparent Energy4", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group2.chan2", + "apparent_energy1.group2.chan3" + ] + }, + { + "id": "apparent_energy1.group2.chan2", + "name": "Apparent Energy5", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group2.chan1", + "apparent_energy1.group2.chan3" + ] + }, + { + "id": "apparent_energy1.group2.chan3", + "name": "Apparent Energy6", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group2.chan1", + "apparent_energy1.group2.chan2" + ] + }, + { + "id": "apparent_energy1.mask1", + "name": "Apparent Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy a" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy b" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_energy1.mask2" + ] + }, + { + "id": "apparent_energy1.mask2", + "name": "Apparent Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy a" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy b" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "apparent_energy2.group1_value", + "name": "Apparent Energy c", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.mask2" + ] + }, + { + "id": "apparent_energy2.group1.chan1", + "name": "Apparent Energy7", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group1.chan2", + "apparent_energy2.group1.chan3" + ] + }, + { + "id": "apparent_energy2.group1.chan2", + "name": "Apparent Energy8", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group1.chan1", + "apparent_energy2.group1.chan3" + ] + }, + { + "id": "apparent_energy2.group1.chan3", + "name": "Apparent Energy9", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group1.chan1", + "apparent_energy2.group1.chan2" + ] + }, + { + "id": "apparent_energy2.group2_value", + "name": "Apparent Energy d", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.mask2" + ] + }, + { + "id": "apparent_energy2.group2.chan1", + "name": "Apparent Energy10", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group2.chan2", + "apparent_energy2.group2.chan3" + ] + }, + { + "id": "apparent_energy2.group2.chan2", + "name": "Apparent Energy11", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group2.chan1", + "apparent_energy2.group2.chan3" + ] + }, + { + "id": "apparent_energy2.group2.chan3", + "name": "Apparent Energy12", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group2.chan1", + "apparent_energy2.group2.chan2" + ] + }, + { + "id": "apparent_energy2.mask1", + "name": "Apparent Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy c" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy d" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_energy2.mask2" + ] + }, + { + "id": "apparent_energy2.mask2", + "name": "Apparent Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy c" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy d" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "apparent_power1.group1_value", + "name": "Apparent Power a", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.mask2" + ] + }, + { + "id": "apparent_power1.group1.chan1", + "name": "Apparent Power1", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group1.chan2", + "apparent_power1.group1.chan3" + ] + }, + { + "id": "apparent_power1.group1.chan2", + "name": "Apparent Power2", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group1.chan1", + "apparent_power1.group1.chan3" + ] + }, + { + "id": "apparent_power1.group1.chan3", + "name": "Apparent Power3", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group1.chan1", + "apparent_power1.group1.chan2" + ] + }, + { + "id": "apparent_power1.group2_value", + "name": "Apparent Power b", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.mask2" + ] + }, + { + "id": "apparent_power1.group2.chan1", + "name": "Apparent Power4", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group2.chan2", + "apparent_power1.group2.chan3" + ] + }, + { + "id": "apparent_power1.group2.chan2", + "name": "Apparent Power5", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group2.chan1", + "apparent_power1.group2.chan3" + ] + }, + { + "id": "apparent_power1.group2.chan3", + "name": "Apparent Power6", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group2.chan1", + "apparent_power1.group2.chan2" + ] + }, + { + "id": "apparent_power1.mask1", + "name": "Apparent Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power a" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power b" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_power1.mask2" + ] + }, + { + "id": "apparent_power1.mask2", + "name": "Apparent Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power a" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power b" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "apparent_power2.group1_value", + "name": "Apparent Power c", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.mask2" + ] + }, + { + "id": "apparent_power2.group1.chan1", + "name": "Apparent Power7", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group1.chan2", + "apparent_power2.group1.chan3" + ] + }, + { + "id": "apparent_power2.group1.chan2", + "name": "Apparent Power8", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group1.chan1", + "apparent_power2.group1.chan3" + ] + }, + { + "id": "apparent_power2.group1.chan3", + "name": "Apparent Power9", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group1.chan1", + "apparent_power2.group1.chan2" + ] + }, + { + "id": "apparent_power2.group2_value", + "name": "Apparent Power d", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.mask2" + ] + }, + { + "id": "apparent_power2.group2.chan1", + "name": "Apparent Power10", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group2.chan2", + "apparent_power2.group2.chan3" + ] + }, + { + "id": "apparent_power2.group2.chan2", + "name": "Apparent Power11", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group2.chan1", + "apparent_power2.group2.chan3" + ] + }, + { + "id": "apparent_power2.group2.chan3", + "name": "Apparent Power12", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group2.chan1", + "apparent_power2.group2.chan2" + ] + }, + { + "id": "apparent_power2.mask1", + "name": "Apparent Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power c" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power d" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_power2.mask2" + ] + }, + { + "id": "apparent_power2.mask2", + "name": "Apparent Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power c" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power d" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "bluetooth_name.content", + "name": "Name", + "value": "", + "unit": "", + "access_mode": "RW", + "data_type": "TEXT", + "value_type": "STRING", + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "max_length": 13, + "reference": [ + "bluetooth_name.length" + ] + }, + { + "id": "bluetooth_name.length", + "name": "Name Length", + "value": "13", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 13 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "bluetooth_name.content" + ] + }, + { + "id": "clear_data.type", + "name": "Data Type to Clear", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_alarm.channel", + "name": "Alarm Channel", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "current_alarm.info.exceed_range_alarm_deactivation.current", + "current_alarm.info.exceed_range_alarm_trigger.current", + "current_alarm.info.lower_range_alarm_deactivation.current", + "current_alarm.info.lower_range_alarm_trigger.current", + "current_alarm.info.lower_range_error.current", + "current_alarm.info.over_range_alarm_deactivation.current", + "current_alarm.info.over_range_alarm_trigger.current", + "current_alarm.info.over_range_error.current", + "current_alarm.info.over_range_release.current", + "current_alarm.info.type", + "current_alarm.info.within_range_alarm_deactivation.current", + "current_alarm.info.within_range_alarm_trigger.current" + ] + }, + { + "id": "current_alarm.info.exceed_range_alarm_deactivation.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.exceed_range_alarm_trigger.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.lower_range_alarm_deactivation.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.lower_range_alarm_trigger.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.lower_range_error.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_alarm_deactivation.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_alarm_trigger.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_error.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_release.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.type", + "name": "Alarm Type", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 1, + "name": "Overrange (Lower Limit)" + }, + { + "value": 2, + "name": "Overrange (Upper Limit)" + }, + { + "value": 3, + "name": "No Data" + }, + { + "value": 4, + "name": "Overrange Release" + }, + { + "value": 16, + "name": "Current Below Threshold Alarm Released" + }, + { + "value": 17, + "name": "Current Below Threshold Alarm" + }, + { + "value": 18, + "name": "Current Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Current Exceeds Threshold Alarm" + }, + { + "value": 20, + "name": "Current in-Range Thresholds Alarm Released" + }, + { + "value": 21, + "name": "Current in-Range Thresholds Alarm" + }, + { + "value": 22, + "name": "Current Out-of-Range Thresholds Alarm Released" + }, + { + "value": 23, + "name": "Current Out-of-Range Thresholds Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_alarm.info.within_range_alarm_deactivation.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.within_range_alarm_trigger.current", + "name": "Current", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_interface1.type", + "name": "Circuit Type", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_interface2.type", + "name": "Circuit Type", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_interface3.type", + "name": "Circuit Type", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_interface4.type", + "name": "Circuit Type", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.command", + "name": "Sub-command", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Data Storage Enable" + }, + { + "value": 1, + "name": "Data Retransmission Enable" + }, + { + "value": 2, + "name": "Retransmission Interval" + }, + { + "value": 3, + "name": "Retrieval Interval" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.enable", + "name": "Data Storage Enable", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.retransmission_enable", + "name": "Data Retransmission Enable", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.retransmission_interval", + "name": "Retransmission Interval", + "value": "600", + "unit": "s", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 30, + 1200 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 73, + "bacnet_unit_type": "UNITS_SECONDS", + "reference": [] + }, + { + "id": "data_storage_settings.retrieval_interval", + "name": "Retrieval Interval", + "value": "60", + "unit": "s", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 30, + 1200 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 73, + "bacnet_unit_type": "UNITS_SECONDS", + "reference": [] + }, + { + "id": "daylight_saving_time.daylight_saving_time_offset", + "name": "DST Bias", + "value": "60", + "unit": "min", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 120 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.enable", + "name": "Daylight Saving Time", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.end_hour_min", + "name": "Time", + "value": "0", + "unit": "min", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT16", + "values": [ + { + "value": 0, + "name": "00:00" + }, + { + "value": 60, + "name": "01:00" + }, + { + "value": 120, + "name": "02:00" + }, + { + "value": 180, + "name": "03:00" + }, + { + "value": 240, + "name": "04:00" + }, + { + "value": 300, + "name": "05:00" + }, + { + "value": 360, + "name": "06:00" + }, + { + "value": 420, + "name": "07:00" + }, + { + "value": 480, + "name": "08:00" + }, + { + "value": 540, + "name": "09:00" + }, + { + "value": 600, + "name": "10:00" + }, + { + "value": 660, + "name": "11:00" + }, + { + "value": 720, + "name": "12:00" + }, + { + "value": 780, + "name": "13:00" + }, + { + "value": 840, + "name": "14:00" + }, + { + "value": 900, + "name": "15:00" + }, + { + "value": 960, + "name": "16:00" + }, + { + "value": 1020, + "name": "17:00" + }, + { + "value": 1080, + "name": "18:00" + }, + { + "value": 1140, + "name": "19:00" + }, + { + "value": 1200, + "name": "20:00" + }, + { + "value": 1260, + "name": "21:00" + }, + { + "value": 1320, + "name": "22:00" + }, + { + "value": 1380, + "name": "23:00" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day" + ] + }, + { + "id": "daylight_saving_time.end_month", + "name": "Month", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Jan." + }, + { + "value": 2, + "name": "Feb." + }, + { + "value": 3, + "name": "Mar." + }, + { + "value": 4, + "name": "Apr." + }, + { + "value": 5, + "name": "May" + }, + { + "value": 6, + "name": "Jun." + }, + { + "value": 7, + "name": "Jul." + }, + { + "value": 8, + "name": "Aug." + }, + { + "value": 9, + "name": "Sep." + }, + { + "value": 10, + "name": "Oct." + }, + { + "value": 11, + "name": "Nov." + }, + { + "value": 12, + "name": "Dec." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.end_week_day", + "name": "Week", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Mon." + }, + { + "value": 2, + "name": "Tues." + }, + { + "value": 3, + "name": "Wed." + }, + { + "value": 4, + "name": "Thurs." + }, + { + "value": 5, + "name": "Fri." + }, + { + "value": 6, + "name": "Sat." + }, + { + "value": 7, + "name": "Sun." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.end_week_num", + "name": "Number of Week", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "1st" + }, + { + "value": 2, + "name": "2nd" + }, + { + "value": 3, + "name": "3rd" + }, + { + "value": 4, + "name": "4th" + }, + { + "value": 5, + "name": "last" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_hour_min", + "name": "Time", + "value": "0", + "unit": "min", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT16", + "values": [ + { + "value": 0, + "name": "00:00" + }, + { + "value": 60, + "name": "01:00" + }, + { + "value": 120, + "name": "02:00" + }, + { + "value": 180, + "name": "03:00" + }, + { + "value": 240, + "name": "04:00" + }, + { + "value": 300, + "name": "05:00" + }, + { + "value": 360, + "name": "06:00" + }, + { + "value": 420, + "name": "07:00" + }, + { + "value": 480, + "name": "08:00" + }, + { + "value": 540, + "name": "09:00" + }, + { + "value": 600, + "name": "10:00" + }, + { + "value": 660, + "name": "11:00" + }, + { + "value": 720, + "name": "12:00" + }, + { + "value": 780, + "name": "13:00" + }, + { + "value": 840, + "name": "14:00" + }, + { + "value": 900, + "name": "15:00" + }, + { + "value": 960, + "name": "16:00" + }, + { + "value": 1020, + "name": "17:00" + }, + { + "value": 1080, + "name": "18:00" + }, + { + "value": 1140, + "name": "19:00" + }, + { + "value": 1200, + "name": "20:00" + }, + { + "value": 1260, + "name": "21:00" + }, + { + "value": 1320, + "name": "22:00" + }, + { + "value": 1380, + "name": "23:00" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_month", + "name": "Month", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Jan." + }, + { + "value": 2, + "name": "Feb." + }, + { + "value": 3, + "name": "Mar." + }, + { + "value": 4, + "name": "Apr." + }, + { + "value": 5, + "name": "May" + }, + { + "value": 6, + "name": "Jun." + }, + { + "value": 7, + "name": "Jul." + }, + { + "value": 8, + "name": "Aug." + }, + { + "value": 9, + "name": "Sep." + }, + { + "value": 10, + "name": "Oct." + }, + { + "value": 11, + "name": "Nov." + }, + { + "value": 12, + "name": "Dec." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_week_day", + "name": "Week", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Mon." + }, + { + "value": 2, + "name": "Tues." + }, + { + "value": 3, + "name": "Wed." + }, + { + "value": 4, + "name": "Thurs." + }, + { + "value": 5, + "name": "Fri." + }, + { + "value": 6, + "name": "Sat." + }, + { + "value": 7, + "name": "Sun." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_week_num", + "name": "Number of Week", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "1st" + }, + { + "value": 2, + "name": "2nd" + }, + { + "value": 3, + "name": "3rd" + }, + { + "value": 4, + "name": "4th" + }, + { + "value": 5, + "name": "last" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "forward_active_energy1.group1_value", + "name": "Imported Active Energy a", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.mask2" + ] + }, + { + "id": "forward_active_energy1.group1.chan1", + "name": "Imported Active Energy1", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group1.chan2", + "forward_active_energy1.group1.chan3" + ] + }, + { + "id": "forward_active_energy1.group1.chan2", + "name": "Imported Active Energy2", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group1.chan1", + "forward_active_energy1.group1.chan3" + ] + }, + { + "id": "forward_active_energy1.group1.chan3", + "name": "Imported Active Energy3", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group1.chan1", + "forward_active_energy1.group1.chan2" + ] + }, + { + "id": "forward_active_energy1.group2_value", + "name": "Imported Active Energy b", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.mask2" + ] + }, + { + "id": "forward_active_energy1.group2.chan1", + "name": "Imported Active Energy4", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group2.chan2", + "forward_active_energy1.group2.chan3" + ] + }, + { + "id": "forward_active_energy1.group2.chan2", + "name": "Imported Active Energy5", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group2.chan1", + "forward_active_energy1.group2.chan3" + ] + }, + { + "id": "forward_active_energy1.group2.chan3", + "name": "Imported Active Energy6", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group2.chan1", + "forward_active_energy1.group2.chan2" + ] + }, + { + "id": "forward_active_energy1.mask1", + "name": "Imported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy a" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy b" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_active_energy1.mask2" + ] + }, + { + "id": "forward_active_energy1.mask2", + "name": "Imported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy a" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy b" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "forward_active_energy2.group1_value", + "name": "Imported Active Energy c", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.mask2" + ] + }, + { + "id": "forward_active_energy2.group1.chan1", + "name": "Imported Active Energy7", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group1.chan2", + "forward_active_energy2.group1.chan3" + ] + }, + { + "id": "forward_active_energy2.group1.chan2", + "name": "Imported Active Energy8", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group1.chan1", + "forward_active_energy2.group1.chan3" + ] + }, + { + "id": "forward_active_energy2.group1.chan3", + "name": "Imported Active Energy9", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group1.chan1", + "forward_active_energy2.group1.chan2" + ] + }, + { + "id": "forward_active_energy2.group2_value", + "name": "Imported Active Energy d", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.mask2" + ] + }, + { + "id": "forward_active_energy2.group2.chan1", + "name": "Imported Active Energy10", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group2.chan2", + "forward_active_energy2.group2.chan3" + ] + }, + { + "id": "forward_active_energy2.group2.chan2", + "name": "Imported Active Energy11", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group2.chan1", + "forward_active_energy2.group2.chan3" + ] + }, + { + "id": "forward_active_energy2.group2.chan3", + "name": "Imported Active Energy12", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group2.chan1", + "forward_active_energy2.group2.chan2" + ] + }, + { + "id": "forward_active_energy2.mask1", + "name": "Imported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy c" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy d" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_active_energy2.mask2" + ] + }, + { + "id": "forward_active_energy2.mask2", + "name": "Imported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy c" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy d" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "forward_reactive_energy1.group1_value", + "name": "Imported Reactive Energy a", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.mask2" + ] + }, + { + "id": "forward_reactive_energy1.group1.chan1", + "name": "Imported Reactive Energy1", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group1.chan2", + "forward_reactive_energy1.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group1.chan2", + "name": "Imported Reactive Energy2", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group1.chan1", + "forward_reactive_energy1.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group1.chan3", + "name": "Imported Reactive Energy3", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group1.chan1", + "forward_reactive_energy1.group1.chan2" + ] + }, + { + "id": "forward_reactive_energy1.group2_value", + "name": "Imported Reactive Energy b", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.mask2" + ] + }, + { + "id": "forward_reactive_energy1.group2.chan1", + "name": "Imported Reactive Energy4", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group2.chan2", + "forward_reactive_energy1.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group2.chan2", + "name": "Imported Reactive Energy5", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group2.chan1", + "forward_reactive_energy1.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group2.chan3", + "name": "Imported Reactive Energy6", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group2.chan1", + "forward_reactive_energy1.group2.chan2" + ] + }, + { + "id": "forward_reactive_energy1.mask1", + "name": "Imported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy a" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy b" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_reactive_energy1.mask2" + ] + }, + { + "id": "forward_reactive_energy1.mask2", + "name": "Imported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy a" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy b" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "forward_reactive_energy2.group1_value", + "name": "Imported Reactive Energy c", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.mask2" + ] + }, + { + "id": "forward_reactive_energy2.group1.chan1", + "name": "Imported Reactive Energy7", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group1.chan2", + "forward_reactive_energy2.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group1.chan2", + "name": "Imported Reactive Energy8", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group1.chan1", + "forward_reactive_energy2.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group1.chan3", + "name": "Imported Reactive Energy9", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group1.chan1", + "forward_reactive_energy2.group1.chan2" + ] + }, + { + "id": "forward_reactive_energy2.group2_value", + "name": "Imported Reactive Energy d", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.mask2" + ] + }, + { + "id": "forward_reactive_energy2.group2.chan1", + "name": "Imported Reactive Energy10", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group2.chan2", + "forward_reactive_energy2.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group2.chan2", + "name": "Imported Reactive Energy11", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group2.chan1", + "forward_reactive_energy2.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group2.chan3", + "name": "Imported Reactive Energy12", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group2.chan1", + "forward_reactive_energy2.group2.chan2" + ] + }, + { + "id": "forward_reactive_energy2.mask1", + "name": "Imported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy c" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy d" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_reactive_energy2.mask2" + ] + }, + { + "id": "forward_reactive_energy2.mask2", + "name": "Imported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy c" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy d" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "historical_data_report.mode", + "name": "Historical Data Mode", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "target time" + }, + { + "value": 1, + "name": "historical time" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "historical_data_report.timestamp" + ] + }, + { + "id": "historical_data_report.timestamp", + "name": "Historical Data Timestamps", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "historical_data_report.mode" + ] + }, + { + "id": "history_type.type", + "name": "Historical Data Type", + "value": "1", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "month energy" + }, + { + "value": 2, + "name": "month min" + }, + { + "value": 3, + "name": "month max" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "month_statistics_settings.day", + "name": "day", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 28 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "month_statistics_settings.hour", + "month_statistics_settings.minute" + ] + }, + { + "id": "month_statistics_settings.hour", + "name": "hour", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 23 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "month_statistics_settings.day", + "month_statistics_settings.minute" + ] + }, + { + "id": "month_statistics_settings.minute", + "name": "minute", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 59 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "month_statistics_settings.day", + "month_statistics_settings.hour" + ] + }, + { + "id": "oem_id", + "name": "OEM ID", + "value": "", + "unit": "", + "access_mode": "RW", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 4, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "power_factor.group1_value", + "name": "Power Factor a", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group1.chan1", + "name": "Power Factor1", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group1.chan2", + "power_factor.group1.chan3" + ] + }, + { + "id": "power_factor.group1.chan2", + "name": "Power Factor2", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group1.chan1", + "power_factor.group1.chan3" + ] + }, + { + "id": "power_factor.group1.chan3", + "name": "Power Factor3", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group1.chan1", + "power_factor.group1.chan2" + ] + }, + { + "id": "power_factor.group2_value", + "name": "Power Factorb", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group2.chan1", + "name": "Power Factor4", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group2.chan2", + "power_factor.group2.chan3" + ] + }, + { + "id": "power_factor.group2.chan2", + "name": "Power Factor5", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group2.chan1", + "power_factor.group2.chan3" + ] + }, + { + "id": "power_factor.group2.chan3", + "name": "Power Factor6", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group2.chan1", + "power_factor.group2.chan2" + ] + }, + { + "id": "power_factor.group3_value", + "name": "Power Factor c", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group3.chan1", + "name": "Power Factor7", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group3.chan2", + "power_factor.group3.chan3" + ] + }, + { + "id": "power_factor.group3.chan2", + "name": "Power Factor8", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group3.chan1", + "power_factor.group3.chan3" + ] + }, + { + "id": "power_factor.group3.chan3", + "name": "Power Factor9", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group3.chan1", + "power_factor.group3.chan2" + ] + }, + { + "id": "power_factor.group4_value", + "name": "Power Factor d", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group4.chan1", + "name": "Power Factor10", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group4.chan2", + "power_factor.group4.chan3" + ] + }, + { + "id": "power_factor.group4.chan2", + "name": "Power Factor11", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group4.chan1", + "power_factor.group4.chan3" + ] + }, + { + "id": "power_factor.group4.chan3", + "name": "Power Factor12", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group4.chan1", + "power_factor.group4.chan2" + ] + }, + { + "id": "power_factor.mask1", + "name": "Power Factor", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.mask2", + "name": "Power Factor", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.mask3", + "name": "Power Factor", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.mask4", + "name": "Power Factor", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "product_sn", + "name": "SN", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 16, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "query_device_status", + "name": "Query Device Status", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "query_history_set", + "name": "Query Data Storage Configuration", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reactive_power1.group1_value", + "name": "Reactive Power a", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.mask2" + ] + }, + { + "id": "reactive_power1.group1.chan1", + "name": "Reactive Power1", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group1.chan2", + "reactive_power1.group1.chan3" + ] + }, + { + "id": "reactive_power1.group1.chan2", + "name": "Reactive Power2", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group1.chan1", + "reactive_power1.group1.chan3" + ] + }, + { + "id": "reactive_power1.group1.chan3", + "name": "Reactive Power3", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group1.chan1", + "reactive_power1.group1.chan2" + ] + }, + { + "id": "reactive_power1.group2_value", + "name": "Reactive Power b", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.mask2" + ] + }, + { + "id": "reactive_power1.group2.chan1", + "name": "Reactive Power4", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group2.chan2", + "reactive_power1.group2.chan3" + ] + }, + { + "id": "reactive_power1.group2.chan2", + "name": "Reactive Power5", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group2.chan1", + "reactive_power1.group2.chan3" + ] + }, + { + "id": "reactive_power1.group2.chan3", + "name": "Reactive Power6", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group2.chan1", + "reactive_power1.group2.chan2" + ] + }, + { + "id": "reactive_power1.mask1", + "name": "Reactive Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power a" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power b" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reactive_power1.mask2" + ] + }, + { + "id": "reactive_power1.mask2", + "name": "Reactive Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power a" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power b" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reactive_power2.group1_value", + "name": "Reactive Power c", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.mask2" + ] + }, + { + "id": "reactive_power2.group1.chan1", + "name": "Reactive Power7", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group1.chan2", + "reactive_power2.group1.chan3" + ] + }, + { + "id": "reactive_power2.group1.chan2", + "name": "Reactive Power8", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group1.chan1", + "reactive_power2.group1.chan3" + ] + }, + { + "id": "reactive_power2.group1.chan3", + "name": "Reactive Power9", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group1.chan1", + "reactive_power2.group1.chan2" + ] + }, + { + "id": "reactive_power2.group2_value", + "name": "Reactive Power d", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.mask2" + ] + }, + { + "id": "reactive_power2.group2.chan1", + "name": "Reactive Power10", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group2.chan2", + "reactive_power2.group2.chan3" + ] + }, + { + "id": "reactive_power2.group2.chan2", + "name": "Reactive Power11", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group2.chan1", + "reactive_power2.group2.chan3" + ] + }, + { + "id": "reactive_power2.group2.chan3", + "name": "Reactive Power12", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group2.chan1", + "reactive_power2.group2.chan2" + ] + }, + { + "id": "reactive_power2.mask1", + "name": "Reactive Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power c" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power d" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reactive_power2.mask2" + ] + }, + { + "id": "reactive_power2.mask2", + "name": "Reactive Power", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power c" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power d" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reboot", + "name": "Reboot", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reconnect", + "name": "Network Reconnection", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "report_enable.active_power", + "name": "Active Power", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.apparent_energy", + "name": "Apparent Energy", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.apparent_power", + "name": "Apparent Power", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.current", + "name": "Current(RMS)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.forward_active_energy", + "name": "Imported Active Energy", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.forward_reactive_energy", + "name": "Imported Reactive Energy", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.power_factor", + "name": "Power Factor", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.reactive_power", + "name": "ReActive Power", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.reverse_active_energy", + "name": "Exported Active Energy", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.reverse_reactive_energy", + "name": "Exported Reactive Energy", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.temperature", + "name": "Temperature", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.thdi", + "name": "THDi", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.thdv", + "name": "THDv", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.voltage", + "name": "Voltage(RMS)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.voltage_unbalance", + "name": "Voltage Three-phase Unbalance", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv" + ] + }, + { + "id": "reporting_interval.minutes_of_time", + "name": "Report Interval", + "value": "1", + "unit": "min", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 1, + 1440 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "reporting_interval.unit" + ] + }, + { + "id": "reporting_interval.seconds_of_time", + "name": "Report Interval", + "value": "30", + "unit": "s", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 10, + 64800 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 73, + "bacnet_unit_type": "UNITS_SECONDS", + "reference": [ + "reporting_interval.unit" + ] + }, + { + "id": "reporting_interval.unit", + "name": "Report Interval Unit", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "second" + }, + { + "value": 1, + "name": "min" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "request_query_all_configurations", + "name": "Request to Query All Configurations", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reset", + "name": "Reset", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reset_energy.channel", + "name": "Channel Number", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 12 + ], + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "retrieve_historical_data_by_time_range.end_time", + "name": "End Time", + "value": "", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time_range.type", + "retrieve_historical_data_by_time_range.start_time" + ] + }, + { + "id": "retrieve_historical_data_by_time_range.start_time", + "name": "Start Time", + "value": "", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time_range.type", + "retrieve_historical_data_by_time_range.end_time" + ] + }, + { + "id": "retrieve_historical_data_by_time_range.type", + "name": "Type", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time_range.start_time", + "retrieve_historical_data_by_time_range.end_time" + ] + }, + { + "id": "retrieve_historical_data_by_time.time", + "name": "Time Point", + "value": "", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time.type" + ] + }, + { + "id": "retrieve_historical_data_by_time.type", + "name": "Type", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time.time" + ] + }, + { + "id": "reverse_active_energy1.group1_value", + "name": "Exported Active Energy a", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.mask2" + ] + }, + { + "id": "reverse_active_energy1.group1.chan1", + "name": "Exported Active Energy1", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group1.chan2", + "reverse_active_energy1.group1.chan3" + ] + }, + { + "id": "reverse_active_energy1.group1.chan2", + "name": "Exported Active Energy2", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group1.chan1", + "reverse_active_energy1.group1.chan3" + ] + }, + { + "id": "reverse_active_energy1.group1.chan3", + "name": "Exported Active Energy3", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group1.chan1", + "reverse_active_energy1.group1.chan2" + ] + }, + { + "id": "reverse_active_energy1.group2_value", + "name": "Exported Active Energy b", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.mask2" + ] + }, + { + "id": "reverse_active_energy1.group2.chan1", + "name": "Exported Active Energy4", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group2.chan2", + "reverse_active_energy1.group2.chan3" + ] + }, + { + "id": "reverse_active_energy1.group2.chan2", + "name": "Exported Active Energy5", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group2.chan1", + "reverse_active_energy1.group2.chan3" + ] + }, + { + "id": "reverse_active_energy1.group2.chan3", + "name": "Exported Active Energy6", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group2.chan1", + "reverse_active_energy1.group2.chan2" + ] + }, + { + "id": "reverse_active_energy1.mask1", + "name": "Exported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy a" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy b" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_active_energy1.mask2" + ] + }, + { + "id": "reverse_active_energy1.mask2", + "name": "Exported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy a" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy b" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reverse_active_energy2.group1_value", + "name": "Exported Active Energy c", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.mask2" + ] + }, + { + "id": "reverse_active_energy2.group1.chan1", + "name": "Exported Active Energy7", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group1.chan2", + "reverse_active_energy2.group1.chan3" + ] + }, + { + "id": "reverse_active_energy2.group1.chan2", + "name": "Exported Active Energy8", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group1.chan1", + "reverse_active_energy2.group1.chan3" + ] + }, + { + "id": "reverse_active_energy2.group1.chan3", + "name": "Exported Active Energy9", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group1.chan1", + "reverse_active_energy2.group1.chan2" + ] + }, + { + "id": "reverse_active_energy2.group2_value", + "name": "Exported Active Energy d", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.mask2" + ] + }, + { + "id": "reverse_active_energy2.group2.chan1", + "name": "Exported Active Energy10", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group2.chan2", + "reverse_active_energy2.group2.chan3" + ] + }, + { + "id": "reverse_active_energy2.group2.chan2", + "name": "Exported Active Energy11", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group2.chan1", + "reverse_active_energy2.group2.chan3" + ] + }, + { + "id": "reverse_active_energy2.group2.chan3", + "name": "Exported Active Energy12", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group2.chan1", + "reverse_active_energy2.group2.chan2" + ] + }, + { + "id": "reverse_active_energy2.mask1", + "name": "Exported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy c" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy d" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_active_energy2.mask2" + ] + }, + { + "id": "reverse_active_energy2.mask2", + "name": "Exported Active Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy c" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy d" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reverse_reactive_energy1.group1_value", + "name": "Exported Reactive Energy a", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.mask2" + ] + }, + { + "id": "reverse_reactive_energy1.group1.chan1", + "name": "Exported Reactive Energy1", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group1.chan2", + "reverse_reactive_energy1.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group1.chan2", + "name": "Exported Reactive Energy2", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group1.chan1", + "reverse_reactive_energy1.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group1.chan3", + "name": "Exported Reactive Energy3", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group1.chan1", + "reverse_reactive_energy1.group1.chan2" + ] + }, + { + "id": "reverse_reactive_energy1.group2_value", + "name": "Exported Reactive Energy b", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.mask2" + ] + }, + { + "id": "reverse_reactive_energy1.group2.chan1", + "name": "Exported Reactive Energy4", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group2.chan2", + "reverse_reactive_energy1.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group2.chan2", + "name": "Exported Reactive Energy5", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group2.chan1", + "reverse_reactive_energy1.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group2.chan3", + "name": "Exported Reactive Energy6", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group2.chan1", + "reverse_reactive_energy1.group2.chan2" + ] + }, + { + "id": "reverse_reactive_energy1.mask1", + "name": "Exported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy a" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy b" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_reactive_energy1.mask2" + ] + }, + { + "id": "reverse_reactive_energy1.mask2", + "name": "Exported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy a" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy b" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reverse_reactive_energy2.group1.chan1", + "name": "Exported Reactive Energy7", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group1.chan2", + "reverse_reactive_energy2.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group1.chan2", + "name": "Exported Reactive Energy8", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group1.chan1", + "reverse_reactive_energy2.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group1.chan3", + "name": "Exported Reactive Energy9", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group1.chan1", + "reverse_reactive_energy2.group1.chan2" + ] + }, + { + "id": "reverse_reactive_energy2.group2_value", + "name": "Exported Reactive Energy d", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.mask2" + ] + }, + { + "id": "reverse_reactive_energy2.group2.chan1", + "name": "Exported Reactive Energy10", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group2.chan2", + "reverse_reactive_energy2.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group2.chan2", + "name": "Exported Reactive Energy11", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group2.chan1", + "reverse_reactive_energy2.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group2.chan3", + "name": "Exported Reactive Energy12", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group2.chan1", + "reverse_reactive_energy2.group2.chan2" + ] + }, + { + "id": "reverse_reactive_energy2.mask1", + "name": "Exported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy c" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy d" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_reactive_energy2.mask2" + ] + }, + { + "id": "reverse_reactive_energy2.mask2", + "name": "Exported Reactive Energy", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy c" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy d" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "stop_historical_data_retrieval.type", + "name": "Stop Retrieval", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "synchronize_time", + "name": "Time Synchronize", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS" + }, + { + "id": "temperature_alarm_settings.enable", + "name": "Threshold Alarm Enable", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_min", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm_settings.threshold_condition", + "name": "Threshold Mode", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "condition: xB" + }, + { + "value": 3, + "name": "condition: A≤x≤B" + }, + { + "value": 4, + "name": "condition: x
B" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_min", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm_settings.threshold_max", + "name": "Value B", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_min" + ] + }, + { + "id": "temperature_alarm_settings.threshold_min", + "name": "Value A", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm.exceed_range_alarm_deactivation.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.exceed_range_alarm_trigger.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.lower_range_alarm_deactivation.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.lower_range_alarm_trigger.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.over_range_alarm_deactivation.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.over_range_alarm_trigger.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.type", + "name": "Alarm Type", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 1, + "name": "Overrange (Lower Limit)" + }, + { + "value": 2, + "name": "Overrange (Upper Limit)" + }, + { + "value": 3, + "name": "No Data" + }, + { + "value": 16, + "name": "Temperature Below Threshold Alarm Released" + }, + { + "value": 17, + "name": "Temperature Below Threshold Alarm" + }, + { + "value": 18, + "name": "Temperature Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Temperature Exceeds Threshold Alarm" + }, + { + "value": 20, + "name": "Temperature Between Thresholds Alarm Released" + }, + { + "value": 21, + "name": "Temperature Between Thresholds Alarm" + }, + { + "value": 22, + "name": "Temperature Outside Thresholds Alarm Released" + }, + { + "value": 23, + "name": "Temperature Outside Thresholds Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "temperature_alarm.within_range_alarm_deactivation.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_alarm.within_range_alarm_trigger.temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [] + }, + { + "id": "temperature_calibration_settings.calibration_value", + "name": "Calibration Value", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -120, + 120 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_calibration_settings.enable" + ] + }, + { + "id": "temperature_calibration_settings.enable", + "name": "Temperature Calibration", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "temperature_calibration_settings.calibration_value" + ] + }, + { + "id": "temperature_unit", + "name": "Temperature Unit", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "℃" + }, + { + "value": 1, + "name": "℉" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "thdi_alarm.channel", + "name": "Alarm Channel", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "thdi_alarm.info.over_range_alarm_deactivation.thdi", + "thdi_alarm.info.over_range_alarm_trigger.thdi", + "thdi_alarm.info.type" + ] + }, + { + "id": "thdi_alarm.info.over_range_alarm_deactivation.thdi", + "name": "THDi", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdi_alarm.info.over_range_alarm_trigger.thdi", + "name": "THDi", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdi_alarm.info.type", + "name": "Alarm Type", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 18, + "name": "THDi Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "THDi Exceeds Threshold Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "thdv_alarm.channel", + "name": "Alarm Channel", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "thdv_alarm.info.over_range_alarm_deactivation.thdv", + "thdv_alarm.info.over_range_alarm_trigger.thdv", + "thdv_alarm.info.type" + ] + }, + { + "id": "thdv_alarm.info.over_range_alarm_deactivation.thdv", + "name": "THDv", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdv_alarm.info.over_range_alarm_trigger.thdv", + "name": "THDv", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdv_alarm.info.type", + "name": "Alarm Type", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 18, + "name": "THDv Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "THDv Exceeds Threshold Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "time_zone", + "name": "Time Zone", + "value": "0", + "unit": "min", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "INT16", + "values": [ + { + "value": -720, + "name": "UTC-12(IDLW)" + }, + { + "value": -660, + "name": "UTC-11(SST)" + }, + { + "value": -600, + "name": "UTC-10(HST)" + }, + { + "value": -570, + "name": "UTC-9:30(MIT)" + }, + { + "value": -540, + "name": "UTC-9(AKST)" + }, + { + "value": -480, + "name": "UTC-8(PST)" + }, + { + "value": -420, + "name": "UTC-7(MST)" + }, + { + "value": -360, + "name": "UTC-6(CST)" + }, + { + "value": -300, + "name": "UTC-5(EST)" + }, + { + "value": -240, + "name": "UTC-4(AST)" + }, + { + "value": -210, + "name": "UTC-3:30(NST)" + }, + { + "value": -180, + "name": "UTC-3(BRT)" + }, + { + "value": -120, + "name": "UTC-2(FNT)" + }, + { + "value": -60, + "name": "UTC-1(CVT)" + }, + { + "value": 0, + "name": "UTC(WET)" + }, + { + "value": 60, + "name": "UTC+1(CET)" + }, + { + "value": 120, + "name": "UTC+2(EET)" + }, + { + "value": 180, + "name": "UTC+3(MSK)" + }, + { + "value": 210, + "name": "UTC+3:30(IRST)" + }, + { + "value": 240, + "name": "UTC+4(GST)" + }, + { + "value": 270, + "name": "UTC+4:30(AFT)" + }, + { + "value": 300, + "name": "UTC+5(PKT)" + }, + { + "value": 330, + "name": "UTC+5:30(IST)" + }, + { + "value": 345, + "name": "UTC+5:45(NPT)" + }, + { + "value": 360, + "name": "UTC+6(BHT)" + }, + { + "value": 390, + "name": "UTC+6:30(MMT)" + }, + { + "value": 420, + "name": "UTC+7(ICT)" + }, + { + "value": 480, + "name": "UTC+8(CT/CST)" + }, + { + "value": 540, + "name": "UTC+9(JST)" + }, + { + "value": 570, + "name": "UTC+9:30(ACST)" + }, + { + "value": 600, + "name": "UTC+10(AEST)" + }, + { + "value": 630, + "name": "UTC+10:30(LHST)" + }, + { + "value": 660, + "name": "UTC+11(VUT)" + }, + { + "value": 720, + "name": "UTC+12(NZST)" + }, + { + "value": 765, + "name": "UTC+12:45(CHAST)" + }, + { + "value": 780, + "name": "UTC+13(PHOT)" + }, + { + "value": 840, + "name": "UTC+14(LINT)" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES" + }, + { + "id": "tsl_version", + "name": "TSL Version", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 4, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "version.firmware_version", + "name": "Firmware Version", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 12, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "version.hardware_version" + ] + }, + { + "id": "version.hardware_version", + "name": "Hardware Version", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 4, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "version.firmware_version" + ] + }, + { + "id": "voltage_alarm.channel", + "name": "Alarm Channel", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "voltage_alarm.info.exceed_range_alarm_deactivation.voltage", + "voltage_alarm.info.exceed_range_alarm_trigger.voltage", + "voltage_alarm.info.lower_range_alarm_deactivation.voltage", + "voltage_alarm.info.lower_range_alarm_trigger.voltage", + "voltage_alarm.info.lower_range_error.voltage", + "voltage_alarm.info.over_range_alarm_deactivation.voltage", + "voltage_alarm.info.over_range_alarm_trigger.voltage", + "voltage_alarm.info.over_range_error.voltage", + "voltage_alarm.info.over_range_release.voltage", + "voltage_alarm.info.type", + "voltage_alarm.info.within_range_alarm_deactivation.voltage", + "voltage_alarm.info.within_range_alarm_trigger.voltage" + ] + }, + { + "id": "voltage_alarm.info.exceed_range_alarm_deactivation.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.exceed_range_alarm_trigger.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.lower_range_alarm_deactivation.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.lower_range_alarm_trigger.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.lower_range_error.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_alarm_deactivation.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_alarm_trigger.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_error.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_release.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.type", + "name": "Alarm Type", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 1, + "name": "Overrange (Lower Limit)" + }, + { + "value": 2, + "name": "Overrange (Upper Limit)" + }, + { + "value": 3, + "name": "No Data" + }, + { + "value": 4, + "name": "Overrange Release" + }, + { + "value": 16, + "name": "Voltage Below Threshold Alarm Released" + }, + { + "value": 17, + "name": "Voltage Below Threshold Alarm" + }, + { + "value": 18, + "name": "Voltage Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Voltage Exceeds Threshold Alarm" + }, + { + "value": 20, + "name": "Voltage in-Range Thresholds Alarm Released" + }, + { + "value": 21, + "name": "Voltage in-Range Thresholds Alarm" + }, + { + "value": 22, + "name": "Voltage Out-of-Range Thresholds Alarm Released" + }, + { + "value": 23, + "name": "Voltage Out-of-Range Thresholds Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "voltage_alarm.info.within_range_alarm_deactivation.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.within_range_alarm_trigger.voltage", + "name": "Voltage", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_interface", + "name": "Voltage Channel", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "four_wire" + }, + { + "value": 1, + "name": "three_wire" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "voltage_three_phase_imbalcance", + "name": "Voltage Three-phase Unbalance", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT" + }, + { + "id": "voltage_unbalance_alarm_settings.enable", + "name": "Threshold Alarm Enable", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "voltage_unbalance_alarm_settings.threshold_condition", + "voltage_unbalance_alarm_settings.threshold_min", + "voltage_unbalance_alarm_settings.threshold_max" + ] + }, + { + "id": "voltage_unbalance_alarm_settings.threshold_condition", + "name": "Threshold Mode", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 2, + "name": "condition: x>B" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "voltage_unbalance_alarm_settings.enable", + "voltage_unbalance_alarm_settings.threshold_min", + "voltage_unbalance_alarm_settings.threshold_max" + ] + }, + { + "id": "voltage_unbalance_alarm_settings.threshold_max", + "name": "Value B", + "value": "3", + "unit": "%", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [ + "voltage_unbalance_alarm_settings.enable", + "voltage_unbalance_alarm_settings.threshold_condition", + "voltage_unbalance_alarm_settings.threshold_min" + ] + }, + { + "id": "voltage_unbalance_alarm_settings.threshold_min", + "name": "Value A", + "value": "0", + "unit": "%", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [ + "voltage_unbalance_alarm_settings.enable", + "voltage_unbalance_alarm_settings.threshold_condition", + "voltage_unbalance_alarm_settings.threshold_max" + ] + }, + { + "id": "voltage_unbalance_alarm.over_range_alarm_deactivation.voltage_unbalance", + "name": "Voltage Three-phase Unbalance", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "voltage_unbalance_alarm.over_range_alarm_trigger.voltage_unbalance", + "name": "Voltage Three-phase Unbalance", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "voltage_unbalance_alarm.type", + "name": "Alarm Type", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 18, + "name": "Voltage Three-phase Unbalance Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Voltage Three-phase Unbalance Exceeds Threshold Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + } + ] +} \ No newline at end of file diff --git a/vendors/milesight-iot/cth-series/cth01-compress/cth01-decoder.js b/vendors/milesight-iot/cth-series/cth01-compress/cth01-decoder.js new file mode 100644 index 0000000..b2cba7c --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01-compress/cth01-decoder.js @@ -0,0 +1,69 @@ +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(b){var a=0;return function(){return ah;h++)f={},f.value=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.thdi),a.thdi.push(f);break;case 4:a.thdv= +[];for(h=0;3>h;h++)f={},f.value=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.thdv),a.thdv.push(f);break;case 5:a.current=[];for(h=0;12>h;h++)f={},f.value=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current),a.current.push(f);break;case 6:a.voltage=[];for(h=0;3>h;h++)f={},f.value=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage),a.voltage.push(f);break;case 7:a.power_factor=parseMaskBasedData(b,c,4,readUInt8,1,100,"power_factor",e);break;case 8:a.active_power1=parseMaskBasedData(b,c,2,readInt32LE, +4,1E3,"active_power",e);break;case 9:a.active_power2=parseMaskBasedData(b,c,2,readInt32LE,4,1E3,"active_power",e);break;case 10:a.reactive_power1=parseMaskBasedData(b,c,2,readInt32LE,4,1E3,"reactive_power",e);break;case 11:a.reactive_power2=parseMaskBasedData(b,c,2,readInt32LE,4,1E3,"reactive_power",e);break;case 12:a.apparent_power1=parseMaskBasedData(b,c,2,readInt32LE,4,1E3,"apparent_power",e);break;case 13:a.apparent_power2=parseMaskBasedData(b,c,2,readInt32LE,4,1E3,"apparent_power",e);break;case 14:a.forward_active_energy1= +parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"forward_active_energy",e);break;case 15:a.forward_active_energy2=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"forward_active_energy",e);break;case 16:a.reverse_active_energy1=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"reverse_active_energy",e);break;case 17:a.reverse_active_energy2=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"reverse_active_energy",e);break;case 18:a.forward_reactive_energy1=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"forward_reactive_energy", +e);break;case 19:a.forward_reactive_energy2=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"forward_reactive_energy",e);break;case 20:a.reverse_reactive_energy1=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"reverse_reactive_energy",e);break;case 21:a.reverse_reactive_energy2=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"reverse_reactive_energy",e);break;case 22:a.apparent_energy1=parseMaskBasedData(b,c,2,readUInt32LE,4,1E3,"apparent_energy",e);break;case 23:a.apparent_energy2=parseMaskBasedData(b,c,2, +readUInt32LE,4,1E3,"apparent_energy",e);break;case 64:a.history_type=a.history_type||{};a.history_type.type=readUInt8(b,c,1);break;case 48:a.event=a.event||[];a.temperature_alarm={};a.temperature_alarm.type=readUInt8(b,c,1);0==a.temperature_alarm.type&&(a.temperature_alarm.collection_error=a.temperature_alarm.collection_error||{});1==a.temperature_alarm.type&&(a.temperature_alarm.lower_range_error=a.temperature_alarm.lower_range_error||{});2==a.temperature_alarm.type&&(a.temperature_alarm.over_range_error= +a.temperature_alarm.over_range_error||{});3==a.temperature_alarm.type&&(a.temperature_alarm.no_data=a.temperature_alarm.no_data||{});16==a.temperature_alarm.type&&(a.temperature_alarm.lower_range_alarm_deactivation=a.temperature_alarm.lower_range_alarm_deactivation||{},a.temperature_alarm.lower_range_alarm_deactivation.temperature=readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));17==a.temperature_alarm.type&&(a.temperature_alarm.lower_range_alarm_trigger=a.temperature_alarm.lower_range_alarm_trigger|| +{},a.temperature_alarm.lower_range_alarm_trigger.temperature=readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));18==a.temperature_alarm.type&&(a.temperature_alarm.over_range_alarm_deactivation=a.temperature_alarm.over_range_alarm_deactivation||{},a.temperature_alarm.over_range_alarm_deactivation.temperature=readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));19==a.temperature_alarm.type&&(a.temperature_alarm.over_range_alarm_trigger=a.temperature_alarm.over_range_alarm_trigger||{},a.temperature_alarm.over_range_alarm_trigger.temperature= +readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));20==a.temperature_alarm.type&&(a.temperature_alarm.within_range_alarm_deactivation=a.temperature_alarm.within_range_alarm_deactivation||{},a.temperature_alarm.within_range_alarm_deactivation.temperature=readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));21==a.temperature_alarm.type&&(a.temperature_alarm.within_range_alarm_trigger=a.temperature_alarm.within_range_alarm_trigger||{},a.temperature_alarm.within_range_alarm_trigger.temperature= +readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));22==a.temperature_alarm.type&&(a.temperature_alarm.exceed_range_alarm_deactivation=a.temperature_alarm.exceed_range_alarm_deactivation||{},a.temperature_alarm.exceed_range_alarm_deactivation.temperature=readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));23==a.temperature_alarm.type&&(a.temperature_alarm.exceed_range_alarm_trigger=a.temperature_alarm.exceed_range_alarm_trigger||{},a.temperature_alarm.exceed_range_alarm_trigger.temperature= +readWithErrorCheck(readInt16LE(b,c,2)/100,e.temperature));a.event.push(a.temperature_alarm);break;case 49:a.event=a.event||[];a.current_alarm={};a.current_alarm.channel=readUInt8(b,c,1);a.current_alarm.info=a.current_alarm.info||{};a.current_alarm.info.type=readUInt8(b,c,1);0==a.current_alarm.info.type&&(a.current_alarm.info.collection_error=a.current_alarm.info.collection_error||{});1==a.current_alarm.info.type&&(a.current_alarm.info.lower_range_error=a.current_alarm.info.lower_range_error||{},a.current_alarm.info.lower_range_error.current= +readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));2==a.current_alarm.info.type&&(a.current_alarm.info.over_range_error=a.current_alarm.info.over_range_error||{},a.current_alarm.info.over_range_error.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));3==a.current_alarm.info.type&&(a.current_alarm.info.no_data=a.current_alarm.info.no_data||{});4==a.current_alarm.info.type&&(a.current_alarm.info.over_range_release=a.current_alarm.info.over_range_release||{},a.current_alarm.info.over_range_release.current= +readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));16==a.current_alarm.info.type&&(a.current_alarm.info.lower_range_alarm_deactivation=a.current_alarm.info.lower_range_alarm_deactivation||{},a.current_alarm.info.lower_range_alarm_deactivation.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));17==a.current_alarm.info.type&&(a.current_alarm.info.lower_range_alarm_trigger=a.current_alarm.info.lower_range_alarm_trigger||{},a.current_alarm.info.lower_range_alarm_trigger.current=readWithErrorCheck(readUInt24LE(b, +c,3)/100,e.current));18==a.current_alarm.info.type&&(a.current_alarm.info.over_range_alarm_deactivation=a.current_alarm.info.over_range_alarm_deactivation||{},a.current_alarm.info.over_range_alarm_deactivation.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));19==a.current_alarm.info.type&&(a.current_alarm.info.over_range_alarm_trigger=a.current_alarm.info.over_range_alarm_trigger||{},a.current_alarm.info.over_range_alarm_trigger.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current)); +20==a.current_alarm.info.type&&(a.current_alarm.info.within_range_alarm_deactivation=a.current_alarm.info.within_range_alarm_deactivation||{},a.current_alarm.info.within_range_alarm_deactivation.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));21==a.current_alarm.info.type&&(a.current_alarm.info.within_range_alarm_trigger=a.current_alarm.info.within_range_alarm_trigger||{},a.current_alarm.info.within_range_alarm_trigger.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current)); +22==a.current_alarm.info.type&&(a.current_alarm.info.exceed_range_alarm_deactivation=a.current_alarm.info.exceed_range_alarm_deactivation||{},a.current_alarm.info.exceed_range_alarm_deactivation.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current));23==a.current_alarm.info.type&&(a.current_alarm.info.exceed_range_alarm_trigger=a.current_alarm.info.exceed_range_alarm_trigger||{},a.current_alarm.info.exceed_range_alarm_trigger.current=readWithErrorCheck(readUInt24LE(b,c,3)/100,e.current)); +a.event.push(a.current_alarm);break;case 50:a.event=a.event||[];a.voltage_alarm={};a.voltage_alarm.channel=readUInt8(b,c,1);a.voltage_alarm.info=a.voltage_alarm.info||{};a.voltage_alarm.info.type=readUInt8(b,c,1);0==a.voltage_alarm.info.type&&(a.voltage_alarm.info.collection_error=a.voltage_alarm.info.collection_error||{});1==a.voltage_alarm.info.type&&(a.voltage_alarm.info.lower_range_error=a.voltage_alarm.info.lower_range_error||{},a.voltage_alarm.info.lower_range_error.voltage=readWithErrorCheck(readUInt16LE(b, +c,2)/100,e.voltage));2==a.voltage_alarm.info.type&&(a.voltage_alarm.info.over_range_error=a.voltage_alarm.info.over_range_error||{},a.voltage_alarm.info.over_range_error.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage));3==a.voltage_alarm.info.type&&(a.voltage_alarm.info.no_data=a.voltage_alarm.info.no_data||{});4==a.voltage_alarm.info.type&&(a.voltage_alarm.info.over_range_release=a.voltage_alarm.info.over_range_release||{},a.voltage_alarm.info.over_range_release.voltage=readWithErrorCheck(readUInt16LE(b, +c,2)/100,e.voltage));16==a.voltage_alarm.info.type&&(a.voltage_alarm.info.lower_range_alarm_deactivation=a.voltage_alarm.info.lower_range_alarm_deactivation||{},a.voltage_alarm.info.lower_range_alarm_deactivation.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage));17==a.voltage_alarm.info.type&&(a.voltage_alarm.info.lower_range_alarm_trigger=a.voltage_alarm.info.lower_range_alarm_trigger||{},a.voltage_alarm.info.lower_range_alarm_trigger.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100, +e.voltage));18==a.voltage_alarm.info.type&&(a.voltage_alarm.info.over_range_alarm_deactivation=a.voltage_alarm.info.over_range_alarm_deactivation||{},a.voltage_alarm.info.over_range_alarm_deactivation.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage));19==a.voltage_alarm.info.type&&(a.voltage_alarm.info.over_range_alarm_trigger=a.voltage_alarm.info.over_range_alarm_trigger||{},a.voltage_alarm.info.over_range_alarm_trigger.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage)); +20==a.voltage_alarm.info.type&&(a.voltage_alarm.info.within_range_alarm_deactivation=a.voltage_alarm.info.within_range_alarm_deactivation||{},a.voltage_alarm.info.within_range_alarm_deactivation.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage));21==a.voltage_alarm.info.type&&(a.voltage_alarm.info.within_range_alarm_trigger=a.voltage_alarm.info.within_range_alarm_trigger||{},a.voltage_alarm.info.within_range_alarm_trigger.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage)); +22==a.voltage_alarm.info.type&&(a.voltage_alarm.info.exceed_range_alarm_deactivation=a.voltage_alarm.info.exceed_range_alarm_deactivation||{},a.voltage_alarm.info.exceed_range_alarm_deactivation.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage));23==a.voltage_alarm.info.type&&(a.voltage_alarm.info.exceed_range_alarm_trigger=a.voltage_alarm.info.exceed_range_alarm_trigger||{},a.voltage_alarm.info.exceed_range_alarm_trigger.voltage=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage)); +a.event.push(a.voltage_alarm);break;case 51:a.event=a.event||[];a.thdi_alarm={};a.thdi_alarm.channel=readUInt8(b,c,1);a.thdi_alarm.info=a.thdi_alarm.info||{};a.thdi_alarm.info.type=readUInt8(b,c,1);0==a.thdi_alarm.info.type&&(a.thdi_alarm.info.collection_error=a.thdi_alarm.info.collection_error||{});18==a.thdi_alarm.info.type&&(a.thdi_alarm.info.over_range_alarm_deactivation=a.thdi_alarm.info.over_range_alarm_deactivation||{},a.thdi_alarm.info.over_range_alarm_deactivation.thdi=readWithErrorCheck(readUInt16LE(b, +c,2)/100,e.thdi));19==a.thdi_alarm.info.type&&(a.thdi_alarm.info.over_range_alarm_trigger=a.thdi_alarm.info.over_range_alarm_trigger||{},a.thdi_alarm.info.over_range_alarm_trigger.thdi=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.thdi));a.event.push(a.thdi_alarm);break;case 52:a.event=a.event||[];a.thdv_alarm={};a.thdv_alarm.channel=readUInt8(b,c,1);a.thdv_alarm.info=a.thdv_alarm.info||{};a.thdv_alarm.info.type=readUInt8(b,c,1);0==a.thdv_alarm.info.type&&(a.thdv_alarm.info.collection_error=a.thdv_alarm.info.collection_error|| +{});18==a.thdv_alarm.info.type&&(a.thdv_alarm.info.over_range_alarm_deactivation=a.thdv_alarm.info.over_range_alarm_deactivation||{},a.thdv_alarm.info.over_range_alarm_deactivation.thdv=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.thdv));19==a.thdv_alarm.info.type&&(a.thdv_alarm.info.over_range_alarm_trigger=a.thdv_alarm.info.over_range_alarm_trigger||{},a.thdv_alarm.info.over_range_alarm_trigger.thdv=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.thdv));a.event.push(a.thdv_alarm);break;case 53:a.event= +a.event||[];a.voltage_unbalance_alarm={};a.voltage_unbalance_alarm.type=readUInt8(b,c,1);0==a.voltage_unbalance_alarm.type&&(a.voltage_unbalance_alarm.collection_error=a.voltage_unbalance_alarm.collection_error||{});18==a.voltage_unbalance_alarm.type&&(a.voltage_unbalance_alarm.over_range_alarm_deactivation=a.voltage_unbalance_alarm.over_range_alarm_deactivation||{},a.voltage_unbalance_alarm.over_range_alarm_deactivation.voltage_unbalance=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage_unbalance)); +19==a.voltage_unbalance_alarm.type&&(a.voltage_unbalance_alarm.over_range_alarm_trigger=a.voltage_unbalance_alarm.over_range_alarm_trigger||{},a.voltage_unbalance_alarm.over_range_alarm_trigger.voltage_unbalance=readWithErrorCheck(readUInt16LE(b,c,2)/100,e.voltage_unbalance));a.event.push(a.voltage_unbalance_alarm);break;case 54:a.power_loss_alarm=readOnlyCommand(b,c,0);break;case 96:a.collection_interval=a.collection_interval||{};a.collection_interval.unit=readUInt8(b,c,1);0==a.collection_interval.unit&& +(a.collection_interval.seconds_of_time=readUInt16LE(b,c,2));1==a.collection_interval.unit&&(a.collection_interval.minutes_of_time=readUInt16LE(b,c,2));break;case 97:a.reporting_interval=a.reporting_interval||{};a.reporting_interval.unit=readUInt8(b,c,1);0==a.reporting_interval.unit&&(a.reporting_interval.seconds_of_time=readUInt16LE(b,c,2));1==a.reporting_interval.unit&&(a.reporting_interval.minutes_of_time=readUInt16LE(b,c,2));break;case 200:a.device_status=readUInt8(b,c,1);break;case 99:a.temperature_unit= +readUInt8(b,c,1);break;case 100:a.bluetooth_name=a.bluetooth_name||{};a.bluetooth_name.length=readUInt8(b,c,1);a.bluetooth_name.content=readString(b,c,a.bluetooth_name.length);break;case 197:a.data_storage_settings=a.data_storage_settings||{};h=readUInt8(b,c,1);0==h&&(a.data_storage_settings.enable=readUInt8(b,c,1));1==h&&(a.data_storage_settings.retransmission_enable=readUInt8(b,c,1));2==h&&(a.data_storage_settings.retransmission_interval=readUInt16LE(b,c,2));3==h&&(a.data_storage_settings.retrieval_interval= +readUInt16LE(b,c,2));break;case 102:a.voltage_interface=readUInt8(b,c,1);break;case 103:a.current_interface1=a.current_interface1||{};a.current_interface1.type=readUInt8(b,c,1);a.current_interface1.config=[];for(h=0;3>h;h++)f={},f.direction=readUInt8(b,c,1),f.range=readUInt16LE(b,c,2),a.current_interface1.config.push(f);break;case 104:a.current_interface2=a.current_interface2||{};a.current_interface2.type=readUInt8(b,c,1);a.current_interface2.config=[];for(h=0;3>h;h++)f={},f.direction=readUInt8(b, +c,1),f.range=readUInt16LE(b,c,2),a.current_interface2.config.push(f);break;case 105:a.current_interface3=a.current_interface3||{};a.current_interface3.type=readUInt8(b,c,1);a.current_interface3.config=[];for(h=0;3>h;h++)f={},f.direction=readUInt8(b,c,1),f.range=readUInt16LE(b,c,2),a.current_interface3.config.push(f);break;case 106:a.current_interface4=a.current_interface4||{};a.current_interface4.type=readUInt8(b,c,1);a.current_interface4.config=[];for(h=0;3>h;h++)f={},f.direction=readUInt8(b,c,1), +f.range=readUInt16LE(b,c,2),a.current_interface4.config.push(f);break;case 107:a.temperature_calibration_settings=a.temperature_calibration_settings||{};a.temperature_calibration_settings.enable=readUInt8(b,c,1);a.temperature_calibration_settings.calibration_value=readInt16LE(b,c,2)/100;break;case 199:a.time_zone=readInt16LE(b,c,2);break;case 198:a.daylight_saving_time=a.daylight_saving_time||{};a.daylight_saving_time.enable=readUInt8(b,c,1);a.daylight_saving_time.daylight_saving_time_offset=readUInt8(b, +c,1);a.daylight_saving_time.start_month=readUInt8(b,c,1);f=readUInt8(b,c,1);a.daylight_saving_time.start_week_num=extractBits(f,4,8);a.daylight_saving_time.start_week_day=extractBits(f,0,4);a.daylight_saving_time.start_hour_min=readUInt16LE(b,c,2);a.daylight_saving_time.end_month=readUInt8(b,c,1);f=readUInt8(b,c,1);a.daylight_saving_time.end_week_num=extractBits(f,4,8);a.daylight_saving_time.end_week_day=extractBits(f,0,4);a.daylight_saving_time.end_hour_min=readUInt16LE(b,c,2);break;case 118:a.temperature_alarm_settings= +a.temperature_alarm_settings||{};a.temperature_alarm_settings.enable=readUInt8(b,c,1);a.temperature_alarm_settings.threshold_condition=readUInt8(b,c,1);a.temperature_alarm_settings.threshold_min=readInt16LE(b,c,2)/100;a.temperature_alarm_settings.threshold_max=readInt16LE(b,c,2)/100;break;case 119:a.current_alarm_settings=a.current_alarm_settings||[];h=readUInt8(b,c,1);f=pickArrayItem(a.current_alarm_settings,h,"channel");f.channel=h;insertArrayItem(a.current_alarm_settings,f,"channel");f.enable= +readUInt8(b,c,1);f.threshold_condition=readUInt8(b,c,1);f.threshold_min=readInt16LE(b,c,2);f.threshold_max=readInt16LE(b,c,2);break;case 120:a.voltage_alarm_settings=a.voltage_alarm_settings||[];h=readUInt8(b,c,1);f=pickArrayItem(a.voltage_alarm_settings,h,"channel");f.channel=h;insertArrayItem(a.voltage_alarm_settings,f,"channel");f.enable=readUInt8(b,c,1);f.threshold_condition=readUInt8(b,c,1);f.threshold_min=readInt16LE(b,c,2);f.threshold_max=readInt16LE(b,c,2);break;case 121:a.thdi_alarm_settings= +a.thdi_alarm_settings||[];h=readUInt8(b,c,1);f=pickArrayItem(a.thdi_alarm_settings,h,"channel");f.channel=h;insertArrayItem(a.thdi_alarm_settings,f,"channel");f.enable=readUInt8(b,c,1);f.threshold_condition=readUInt8(b,c,1);f.threshold_min=readInt16LE(b,c,2);f.threshold_max=readInt16LE(b,c,2);break;case 122:a.thdv_alarm_settings=a.thdv_alarm_settings||[];h=readUInt8(b,c,1);f=pickArrayItem(a.thdv_alarm_settings,h,"channel");f.channel=h;insertArrayItem(a.thdv_alarm_settings,f,"channel");f.enable=readUInt8(b, +c,1);f.threshold_condition=readUInt8(b,c,1);f.threshold_min=readInt16LE(b,c,2);f.threshold_max=readInt16LE(b,c,2);break;case 123:a.voltage_unbalance_alarm_settings=a.voltage_unbalance_alarm_settings||{};a.voltage_unbalance_alarm_settings.enable=readUInt8(b,c,1);a.voltage_unbalance_alarm_settings.threshold_condition=readUInt8(b,c,1);a.voltage_unbalance_alarm_settings.threshold_min=readInt16LE(b,c,2);a.voltage_unbalance_alarm_settings.threshold_max=readInt16LE(b,c,2);break;case 124:a.alarm_global_settings= +a.alarm_global_settings||{};a.alarm_global_settings.interval=readUInt16LE(b,c,2);a.alarm_global_settings.times=readUInt16LE(b,c,2);a.alarm_global_settings.release_enable=readUInt8(b,c,1);break;case 109:a.month_statistics_settings=a.month_statistics_settings||{};a.month_statistics_settings.day=readUInt8(b,c,1);a.month_statistics_settings.hour=readUInt8(b,c,1);a.month_statistics_settings.minute=readUInt8(b,c,1);break;case 108:a.report_enable=a.report_enable||{};f=readUInt16LE(b,c,2);a.report_enable.temperature= +extractBits(f,0,1);a.report_enable.current=extractBits(f,1,2);a.report_enable.voltage=extractBits(f,2,3);a.report_enable.power_factor=extractBits(f,3,4);a.report_enable.active_power=extractBits(f,4,5);a.report_enable.reactive_power=extractBits(f,5,6);a.report_enable.apparent_power=extractBits(f,6,7);a.report_enable.forward_active_energy=extractBits(f,7,8);a.report_enable.reverse_active_energy=extractBits(f,8,9);a.report_enable.forward_reactive_energy=extractBits(f,9,10);a.report_enable.reverse_reactive_energy= +extractBits(f,10,11);a.report_enable.apparent_energy=extractBits(f,11,12);a.report_enable.thdi=extractBits(f,12,13);a.report_enable.thdv=extractBits(f,13,14);a.report_enable.voltage_unbalance=extractBits(f,14,15);break;case 191:a.reset=readOnlyCommand(b,c,0);break;case 190:a.reboot=readOnlyCommand(b,c,0);break;case 93:a.stop_historical_data_retrieval=a.stop_historical_data_retrieval||{};a.stop_historical_data_retrieval.type=readUInt8(b,c,1);break;case 91:a.retrieve_historical_data_by_time=a.retrieve_historical_data_by_time|| +{};a.retrieve_historical_data_by_time.type=readUInt8(b,c,1);a.retrieve_historical_data_by_time.time=readUInt32LE(b,c,4);break;case 92:a.retrieve_historical_data_by_time_range=a.retrieve_historical_data_by_time_range||{};a.retrieve_historical_data_by_time_range.type=readUInt8(b,c,1);a.retrieve_historical_data_by_time_range.start_time=readUInt32LE(b,c,4);a.retrieve_historical_data_by_time_range.end_time=readUInt32LE(b,c,4);break;case 185:a.query_device_status=readOnlyCommand(b,c,0);break;case 184:a.synchronize_time= +readOnlyCommand(b,c,0);break;case 183:a.set_time=a.set_time||{};a.set_time.timestamp=readUInt32LE(b,c,4);break;case 182:a.reconnect=readOnlyCommand(b,c,0);break;case 95:a.reset_energy=a.reset_energy||{};a.reset_energy.channel=readUInt8(b,c,1);break;case 94:a.clear_data=a.clear_data||{};a.clear_data.type=readUInt8(b,c,1);break;case 87:a.query_history_set=readOnlyCommand(b,c,0)}if(0=m;m++)k["group"+l]["chan"+m]=readWithErrorCheck(g(b,a,e)/c,f[h])}return k}function readUInt24LE(b,a,d){b=readBytes(b,a,d);return(b[2]<<16)+(b[1]<<8)+b[0]&16777215} +function readInt24LE(b,a,d){b=readUInt24LE(b,a,d);return 8388607>>0}function readInt32LE(b,a,d){b=readUInt32LE(b,a,d);return 2147483647>>10&31;return Number(((0===b>>>15?1:-1)*(0===a?(b&1023)<<1:b&1023|1024)*Math.pow(2,a-25)).toFixed(2))} +function readFloatLE(b,a,d){b=readBytes(b,a,d);b=b[3]<<24|b[2]<<16|b[1]<<8|b[0];a=b>>>23&255;return(0===b>>>31?1:-1)*(0===a?(b&8388607)<<1:b&8388607|8388608)*Math.pow(2,a-150)} +function readString(b,a,d){var g="";b=readBytes(b,a,d);a=0;for(var e,c,h;a=d?g+=String.fromCharCode(d):223>=d?(e=b[a++],g+=String.fromCharCode((d&31)<<6|e&63)):239>=d?(e=b[a++],c=b[a++],g+=String.fromCharCode((d&15)<<12|(e&63)<<6|c&63)):247>=d&&(e=b[a++],c=b[a++],h=b[a++],d=(d&7)<<18|(e&63)<<12|(c&63)<<6|h&63,d-=65536,g+=String.fromCharCode((d>>10)+55296),g+=String.fromCharCode((d&1023)+56320));return g.replace(/\u0000+$/g,"")} +function readHexString(b,a,d){var g=[];b=readBytes(b,a,d);for(a=0;ab||65535=d)throw Error("invalid bit range");return b>>>a&(1<a.request_check_sequence_number.sequence_number||255a.request_check_order.order||255 +p.length;)p="0"+p;z.push(p);console.log(z);A.push("_item")}else A.push(p)});var q=A.join(".");if((q=cmdMap()[q])&&-1!==q.indexOf("xx")){var g=0;q=q.replace(/xx/g,function(){return z[g++]})}if(q){var D=q.length/2;b.writeUInt8(239);b.writeUInt8(D);b.writeHexString(q,D,!0)}}c=c.concat(b.toBytes())}"request_query_all_configurations"in a&&(b=new Buffer,b.writeUInt8(238),c=c.concat(b.toBytes()));if("history"in a)for(g=0;ga.temperature||100a.voltage_three_phase_imbalcance||100h.value||100h.value||100h.value||4E3f.value||500a.temperature_alarm.lower_range_alarm_deactivation.temperature|| +100a.temperature_alarm.lower_range_alarm_trigger.temperature||100a.temperature_alarm.over_range_alarm_deactivation.temperature||100a.temperature_alarm.over_range_alarm_trigger.temperature|| +100a.temperature_alarm.within_range_alarm_deactivation.temperature||100a.temperature_alarm.within_range_alarm_trigger.temperature||100a.temperature_alarm.exceed_range_alarm_deactivation.temperature|| +100a.temperature_alarm.exceed_range_alarm_trigger.temperature||100a.current_alarm.channel||11a.voltage_alarm.channel||11a.thdi_alarm.channel|| +11a.thdv_alarm.channel||11a.collection_interval.seconds_of_time||64800a.collection_interval.minutes_of_time||1440a.reporting_interval.seconds_of_time|| +64800a.reporting_interval.minutes_of_time||1440a.bluetooth_name.length||13a.data_storage_settings.retransmission_interval||1200a.data_storage_settings.retrieval_interval||1200a.temperature_calibration_settings.calibration_value||120a.daylight_saving_time.daylight_saving_time_offset||120a.temperature_alarm_settings.threshold_min||100a.temperature_alarm_settings.threshold_max||100e.threshold_min||4E3e.threshold_max||4E3e.threshold_min||500e.threshold_max||500e.threshold_min||100e.threshold_max||100e.threshold_min||100e.threshold_max||100a.voltage_unbalance_alarm_settings.threshold_min||100a.voltage_unbalance_alarm_settings.threshold_max||100a.alarm_global_settings.interval||1440a.alarm_global_settings.times||1E3a.month_statistics_settings.day||28a.month_statistics_settings.hour||23a.month_statistics_settings.minute||59a.reset_energy.channel|| +12m.max))throw Error(a+".group"+f+"_value must be between "+m.min+" and "+m.max);e.call(n,k*l)}if(1==c["mask"+f])for(var r=1;3>=r;r++)if(k=c["group"+f]["chan"+r],"error"===k)n.writeBytes(v);else{if(m&&(km.max))throw Error(a+".group"+f+".chan"+ +r+" must be between "+m.min+" and "+m.max);e.call(n,k*l)}}return n}function Buffer(){this.buffer=[]}Buffer.prototype._write=function(a,c,f){a=Math.round(a);for(var d,e=0;e>d&255)};Buffer.prototype.writeUInt8=function(a){this._write(a,1,!0)};Buffer.prototype.writeInt8=function(a){this._write(0>a?a+256:a,1,!0)};Buffer.prototype.writeUInt16LE=function(a){this._write(a,2,!0)};Buffer.prototype.writeInt16LE=function(a){this._write(0>a?a+65536:a,2,!0)}; +Buffer.prototype.writeUInt24LE=function(a){this._write(a,3,!0)};Buffer.prototype.writeInt24LE=function(a){this._write(0>a?a+16777216:a,3,!0)};Buffer.prototype.writeUInt32LE=function(a){this._write(a,4,!0)};Buffer.prototype.writeInt32LE=function(a){this._write(0>a?a+4294967296:a,4,!0)}; +Buffer.prototype.writeBytes=function(a,c,f){void 0===f&&(f=!1);if(ca.length)for(f=a.length;fd?c.push(d):2048>d?(c.push(192|d>>6),c.push(128|d&63)):65536>d?(c.push(224|d>>12),c.push(128|d>>6&63),c.push(128|d&63)):2097152>d&&(c.push(240|d>>18),c.push(128|d>>12&63),c.push(128|d>>6&63),c.push(128|d&63))}return c}function isValid(a){return void 0!==a&&null!==a&&""!==a} +function cmdMap(){return{request_check_sequence_number:"ff",request_check_order:"fe",request_command_queries:"ef",request_query_all_configurations:"ee",historical_data_report:"ed",lorawan_configuration_settings:"cf","lorawan_configuration_settings.version":"cfd8",tsl_version:"df",product_name:"de",product_pn:"dd",product_sn:"db",version:"da",oem_id:"d9",product_frequency_band:"d8",device_info:"d7",temperature:"01",voltage_three_phase_imbalcance:"02",thdi:"03","thdi._item":"03xx",thdv:"04","thdv._item":"04xx", +current:"05","current._item":"05xx",voltage:"06","voltage._item":"06xx",power_factor:"07",active_power1:"08",active_power2:"09",reactive_power1:"0a",reactive_power2:"0b",apparent_power1:"0c",apparent_power2:"0d",forward_active_energy1:"0e",forward_active_energy2:"0f",reverse_active_energy1:"10",reverse_active_energy2:"11",forward_reactive_energy1:"12",forward_reactive_energy2:"13",reverse_reactive_energy1:"14",reverse_reactive_energy2:"15",apparent_energy1:"16",apparent_energy2:"17",history_type:"40", +temperature_alarm:"30",current_alarm:"31",voltage_alarm:"32",thdi_alarm:"33",thdv_alarm:"34",voltage_unbalance_alarm:"35",power_loss_alarm:"36",collection_interval:"60",reporting_interval:"61",device_status:"c8",temperature_unit:"63",bluetooth_name:"64",data_storage_settings:"c5","data_storage_settings.enable":"c500","data_storage_settings.retransmission_enable":"c501","data_storage_settings.retransmission_interval":"c502","data_storage_settings.retrieval_interval":"c503",voltage_interface:"66",current_interface1:"67", +"current_interface1.config._item":"undefinedxx",current_interface2:"68","current_interface2.config._item":"undefinedxx",current_interface3:"69","current_interface3.config._item":"undefinedxx",current_interface4:"6a","current_interface4.config._item":"undefinedxx",temperature_calibration_settings:"6b",time_zone:"c7",daylight_saving_time:"c6",temperature_alarm_settings:"76",current_alarm_settings:"77","current_alarm_settings._item":"77xx",voltage_alarm_settings:"78","voltage_alarm_settings._item":"78xx", +thdi_alarm_settings:"79","thdi_alarm_settings._item":"79xx",thdv_alarm_settings:"7a","thdv_alarm_settings._item":"7axx",voltage_unbalance_alarm_settings:"7b",alarm_global_settings:"7c",month_statistics_settings:"6d",report_enable:"6c",reset:"bf",reboot:"be",stop_historical_data_retrieval:"5d",retrieve_historical_data_by_time:"5b",retrieve_historical_data_by_time_range:"5c",query_device_status:"b9",synchronize_time:"b8",set_time:"b7",reconnect:"b6",reset_energy:"5f",clear_data:"5e",query_history_set:"57"}} +; diff --git a/vendors/milesight-iot/cth-series/cth01/CTH01.png b/vendors/milesight-iot/cth-series/cth01/CTH01.png new file mode 100644 index 0000000..3f140ed Binary files /dev/null and b/vendors/milesight-iot/cth-series/cth01/CTH01.png differ diff --git a/vendors/milesight-iot/cth-series/cth01/README.md b/vendors/milesight-iot/cth-series/cth01/README.md new file mode 100644 index 0000000..9d74353 --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01/README.md @@ -0,0 +1,550 @@ +# CTH01 Sensor + +![CTH01](CTH01.png) + +For more detailed information, please visit [Milesight Official Website](https://www.milesight.com/iot/product/lorawan-sensor/cth01) + +## Payload Definition + +### Attribute + +| CHANNEL | ID | LENGTH | READ/WRITE | DEFAULT | RANGE | ENUM | +| :------ | :--: | :----: | :--------: | :-----: | :---: | :--: | +| LoRaWAN Settings | 0xCF | 1 | rw | | | | +| LoRaWAN Comand | 0xCF | 2 | rw | | | | +| LoRaWAN Version | 0xCF | 2 | rw | 2 | | 1:1.0.2
2:1.0.3
3:1.0.3
4:1.0.4 | +| TSL Version | 0xDF | 3 | r | | | | +| Product Name | 0xDE | 33 | rw | | | | +| PN | 0xDD | 33 | rw | | | | +| SN | 0xDB | 9 | r | | | | +| Product Version | 0xDA | 9 | r | | | | +| Hardware Version | 0xDA | 3 | r | | | | +| Firmware Version | 0xDA | 7 | r | | | | +| OEM ID | 0xD9 | 3 | rw | | | | +| Product Region | 0xD8 | 17 | r | | | | +| Device Information | 0xD7 | M | r | | | | +| Temperature | 0x01 | 3 | r | | -20 - 100 | | +| Voltage Three-phase Unbalance | 0x02 | 3 | r | | 0 - 100 | | +| THDi | 0x03 | 25 | r | | | | +| THDi | 0x03 | 3 | r | | | | +| THDi | 0x03 | 3 | r | 0 | 0 - 100 | | +| THDv | 0x04 | 7 | r | | | | +| THDv | 0x04 | 3 | r | | | | +| THDv | 0x04 | 3 | r | 0 | 0 - 100 | | +| Current(RMS) | 0x05 | 37 | r | | | | +| Current(RMS) | 0x05 | 4 | r | | | | +| Current(RMS) | 0x05 | 4 | r | 0 | 0 - 4000 | | +| Voltage(RMS) | 0x06 | 7 | r | | | | +| Voltage(RMS) | 0x06 | 3 | r | | | | +| Voltage(RMS) | 0x06 | 3 | r | 0 | 0 - 500 | | +| Power Factor | 0x07 | 1 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor | 0x07 | 2 | r | | | | +| Power Factor a | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor1 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor2 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor3 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factorb | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor4 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor5 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor6 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor c | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor7 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor8 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor9 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor d | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor | 0x07 | 4 | r | | | | +| Power Factor10 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor11 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Power Factor12 | 0x07 | 2 | r | 0 | 0 - 100 | | +| Active Power | 0x08 | 1 | r | | | | +| Active Power | 0x08 | 2 | r | | | | +| Active Power | 0x08 | 2 | r | | | | +| Active Power a | 0x08 | 5 | r | 0 | | | +| Active Power | 0x08 | 9 | r | | | | +| Active Power1 | 0x08 | 5 | r | 0 | | | +| Active Power2 | 0x08 | 5 | r | 0 | | | +| Active Power3 | 0x08 | 5 | r | 0 | | | +| Active Power b | 0x08 | 5 | r | 0 | | | +| Active Power | 0x08 | 9 | r | | | | +| Active Power4 | 0x08 | 5 | r | 0 | | | +| Active Power5 | 0x08 | 5 | r | 0 | | | +| Active Power6 | 0x08 | 5 | r | 0 | | | +| Active Power | 0x09 | 1 | r | | | | +| Active Power | 0x09 | 2 | r | | | | +| Active Power | 0x09 | 2 | r | | | | +| Active Power c | 0x09 | 5 | r | 0 | | | +| Active Power | 0x09 | 9 | r | | | | +| Active Power7 | 0x09 | 5 | r | 0 | | | +| Active Power8 | 0x09 | 5 | r | 0 | | | +| Active Power9 | 0x09 | 5 | r | 0 | | | +| Active Power d | 0x09 | 5 | r | 0 | | | +| Active Power | 0x09 | 9 | r | | | | +| Active Power10 | 0x09 | 5 | r | 0 | | | +| Active Power11 | 0x09 | 5 | r | 0 | | | +| Active Power12 | 0x09 | 5 | r | 0 | | | +| Reactive Power | 0x0A | 1 | r | | | | +| Reactive Power | 0x0A | 2 | r | | | | +| Reactive Power | 0x0A | 2 | r | | | | +| Reactive Power a | 0x0A | 5 | r | 0 | | | +| Reactive Power | 0x0A | 9 | r | | | | +| Reactive Power1 | 0x0A | 5 | r | 0 | | | +| Reactive Power2 | 0x0A | 5 | r | 0 | | | +| Reactive Power3 | 0x0A | 5 | r | 0 | | | +| Reactive Power b | 0x0A | 5 | r | 0 | | | +| Reactive Power | 0x0A | 9 | r | | | | +| Reactive Power4 | 0x0A | 5 | r | 0 | | | +| Reactive Power5 | 0x0A | 5 | r | 0 | | | +| Reactive Power6 | 0x0A | 5 | r | 0 | | | +| Reactive Power | 0x0B | 1 | r | | | | +| Reactive Power | 0x0B | 2 | r | | | | +| Reactive Power | 0x0B | 2 | r | | | | +| Reactive Power c | 0x0B | 5 | r | 0 | | | +| Reactive Power | 0x0B | 9 | r | | | | +| Reactive Power7 | 0x0B | 5 | r | 0 | | | +| Reactive Power8 | 0x0B | 5 | r | 0 | | | +| Reactive Power9 | 0x0B | 5 | r | 0 | | | +| Reactive Power d | 0x0B | 5 | r | 0 | | | +| Reactive Power | 0x0B | 9 | r | | | | +| Reactive Power10 | 0x0B | 5 | r | 0 | | | +| Reactive Power11 | 0x0B | 5 | r | 0 | | | +| Reactive Power12 | 0x0B | 5 | r | 0 | | | +| Apparent Power | 0x0C | 1 | r | | | | +| Apparent Power | 0x0C | 2 | r | | | | +| Apparent Power | 0x0C | 2 | r | | | | +| Apparent Power a | 0x0C | 5 | r | 0 | | | +| Apparent Power | 0x0C | 9 | r | | | | +| Apparent Power1 | 0x0C | 5 | r | 0 | | | +| Apparent Power2 | 0x0C | 5 | r | 0 | | | +| Apparent Power3 | 0x0C | 5 | r | 0 | | | +| Apparent Power b | 0x0C | 5 | r | 0 | | | +| Apparent Power | 0x0C | 9 | r | | | | +| Apparent Power4 | 0x0C | 5 | r | 0 | | | +| Apparent Power5 | 0x0C | 5 | r | 0 | | | +| Apparent Power6 | 0x0C | 5 | r | 0 | | | +| Apparent Power | 0x0D | 1 | r | | | | +| Apparent Power | 0x0D | 2 | r | | | | +| Apparent Power | 0x0D | 2 | r | | | | +| Apparent Power c | 0x0D | 5 | r | 0 | | | +| Apparent Power | 0x0D | 9 | r | | | | +| Apparent Power7 | 0x0D | 5 | r | 0 | | | +| Apparent Power8 | 0x0D | 5 | r | 0 | | | +| Apparent Power9 | 0x0D | 5 | r | 0 | | | +| Apparent Power d | 0x0D | 5 | r | 0 | | | +| Apparent Power | 0x0D | 9 | r | | | | +| Apparent Power10 | 0x0D | 5 | r | 0 | | | +| Apparent Power11 | 0x0D | 5 | r | 0 | | | +| Apparent Power12 | 0x0D | 5 | r | 0 | | | +| Imported Active Energy | 0x0E | 1 | r | | | | +| Imported Active Energy | 0x0E | 2 | r | | | | +| Imported Active Energy | 0x0E | 2 | r | | | | +| Imported Active Energy a | 0x0E | 5 | r | 0 | | | +| Imported Active Energy | 0x0E | 9 | r | | | | +| Imported Active Energy1 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy2 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy3 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy b | 0x0E | 5 | r | 0 | | | +| Imported Active Energy | 0x0E | 9 | r | | | | +| Imported Active Energy4 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy5 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy6 | 0x0E | 5 | r | 0 | | | +| Imported Active Energy | 0x0F | 1 | r | | | | +| Imported Active Energy | 0x0F | 2 | r | | | | +| Imported Active Energy | 0x0F | 2 | r | | | | +| Imported Active Energy c | 0x0F | 5 | r | 0 | | | +| Imported Active Energy | 0x0F | 9 | r | | | | +| Imported Active Energy7 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy8 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy9 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy d | 0x0F | 5 | r | 0 | | | +| Imported Active Energy | 0x0F | 9 | r | | | | +| Imported Active Energy10 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy11 | 0x0F | 5 | r | 0 | | | +| Imported Active Energy12 | 0x0F | 5 | r | 0 | | | +| Exported Active Energy | 0x10 | 1 | r | | | | +| Exported Active Energy | 0x10 | 2 | r | | | | +| Exported Active Energy | 0x10 | 2 | r | | | | +| Exported Active Energy a | 0x10 | 5 | r | 0 | | | +| Exported Active Energy | 0x10 | 9 | r | | | | +| Exported Active Energy1 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy2 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy3 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy b | 0x10 | 5 | r | 0 | | | +| Exported Active Energy | 0x10 | 9 | r | | | | +| Exported Active Energy4 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy5 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy6 | 0x10 | 5 | r | 0 | | | +| Exported Active Energy | 0x11 | 1 | r | | | | +| Exported Active Energy | 0x11 | 2 | r | | | | +| Exported Active Energy | 0x11 | 2 | r | | | | +| Exported Active Energy c | 0x11 | 5 | r | 0 | | | +| Exported Active Energy | 0x11 | 9 | r | | | | +| Exported Active Energy7 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy8 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy9 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy d | 0x11 | 5 | r | 0 | | | +| Exported Active Energy | 0x11 | 9 | r | | | | +| Exported Active Energy10 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy11 | 0x11 | 5 | r | 0 | | | +| Exported Active Energy12 | 0x11 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x12 | 1 | r | | | | +| Imported Reactive Energy | 0x12 | 2 | r | | | | +| Imported Reactive Energy | 0x12 | 2 | r | | | | +| Imported Reactive Energy a | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x12 | 9 | r | | | | +| Imported Reactive Energy1 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy2 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy3 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy b | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x12 | 9 | r | | | | +| Imported Reactive Energy4 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy5 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy6 | 0x12 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x13 | 1 | r | | | | +| Imported Reactive Energy | 0x13 | 2 | r | | | | +| Imported Reactive Energy | 0x13 | 2 | r | | | | +| Imported Reactive Energy c | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x13 | 9 | r | | | | +| Imported Reactive Energy7 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy8 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy9 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy d | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy | 0x13 | 9 | r | | | | +| Imported Reactive Energy10 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy11 | 0x13 | 5 | r | 0 | | | +| Imported Reactive Energy12 | 0x13 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x14 | 1 | r | | | | +| Exported Reactive Energy | 0x14 | 2 | r | | | | +| Exported Reactive Energy | 0x14 | 2 | r | | | | +| Exported Reactive Energy a | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x14 | 9 | r | | | | +| Exported Reactive Energy1 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy2 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy3 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy b | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x14 | 9 | r | | | | +| Exported Reactive Energy4 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy5 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy6 | 0x14 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x15 | 1 | r | | | | +| Exported Reactive Energy | 0x15 | 2 | r | | | | +| Exported Reactive Energy | 0x15 | 2 | r | | | | +| Exported Reactive Energy | 0x15 | 9 | r | | | | +| Exported Reactive Energy7 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy8 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy9 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy d | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy | 0x15 | 9 | r | | | | +| Exported Reactive Energy10 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy11 | 0x15 | 5 | r | 0 | | | +| Exported Reactive Energy12 | 0x15 | 5 | r | 0 | | | +| Apparent Energy | 0x16 | 1 | r | | | | +| Apparent Energy | 0x16 | 2 | r | | | | +| Apparent Energy | 0x16 | 2 | r | | | | +| Apparent Energy a | 0x16 | 5 | r | 0 | | | +| Apparent Energy | 0x16 | 9 | r | | | | +| Apparent Energy1 | 0x16 | 5 | r | 0 | | | +| Apparent Energy2 | 0x16 | 5 | r | 0 | | | +| Apparent Energy3 | 0x16 | 5 | r | 0 | | | +| Apparent Energy b | 0x16 | 5 | r | 0 | | | +| Apparent Energy | 0x16 | 9 | r | | | | +| Apparent Energy4 | 0x16 | 5 | r | 0 | | | +| Apparent Energy5 | 0x16 | 5 | r | 0 | | | +| Apparent Energy6 | 0x16 | 5 | r | 0 | | | +| Apparent Energy | 0x17 | 1 | r | | | | +| Apparent Energy | 0x17 | 2 | r | | | | +| Apparent Energy | 0x17 | 2 | r | | | | +| Apparent Energy c | 0x17 | 5 | r | 0 | | | +| Apparent Energy | 0x17 | 9 | r | | | | +| Apparent Energy7 | 0x17 | 5 | r | 0 | | | +| Apparent Energy8 | 0x17 | 5 | r | 0 | | | +| Apparent Energy9 | 0x17 | 5 | r | 0 | | | +| Apparent Energy d | 0x17 | 5 | r | 0 | | | +| Apparent Energy | 0x17 | 9 | r | | | | +| Apparent Energy10 | 0x17 | 5 | r | 0 | | | +| Apparent Energy11 | 0x17 | 5 | r | 0 | | | +| Apparent Energy12 | 0x17 | 5 | r | 0 | | | +| Historical Data Type | 0x40 | 2 | r | | | | +| Historical Data Type | 0x40 | 2 | r | 1 | | 1:month energy
2:month min
3:month max | +| Collecting Interval | 0x60 | 1 | rw | | | | +| Collecting Interval Unit | 0x60 | 2 | rw | 0 | | 0:second
1:min | +| Collecting Interval | 0x60 | 3 | rw | 30 | 10 - 64800 | | +| Collecting Interval | 0x60 | 3 | rw | 1 | 1 - 1440 | | +| Report Interval | 0x61 | 1 | rw | | | | +| Report Interval Unit | 0x61 | 2 | rw | 1 | | 0:second
1:min | +| Report Interval | 0x61 | 3 | rw | 30 | 10 - 64800 | | +| Report Interval | 0x61 | 3 | rw | 1 | 1 - 1440 | | +| Device Status | 0xC8 | 2 | rw | 0 | | 0:Power Off
1:Power On | +| Temperature Unit | 0x63 | 2 | rw | 0 | | 0:℃
1:℉ | +| Bluetooth Name | 0x64 | 1 | rw | | | | +| Name Length | 0x64 | 2 | rw | 13 | 1 - 13 | | +| Name | 0x64 | 1 | rw | | | | +| Data Storage Settings | 0xC5 | 1 | rw | | | | +| Sub-command | 0xC5 | 2 | rw | 0 | | | +| Data Storage Enable | 0xC5 | 2 | rw | 0 | | 0:disable
1:enable | +| Data Retransmission Enable | 0xC5 | 2 | rw | 0 | | 0:disable
1:enable | +| Retransmission Interval | 0xC5 | 3 | rw | 600 | 30 - 1200 | | +| Retrieval Interval | 0xC5 | 3 | rw | 60 | 30 - 1200 | | +| Voltage Channel | 0x66 | 2 | rw | 0 | | 0:four_wire
1:three_wire | +| Group a | 0x67 | 1 | rw | | | | +| Circuit Type | 0x67 | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x67 | 10 | rw | | | | +| Current Channel Configuration | 0x67 | 4 | rw | | | | +| Current Direction | 0x67 | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x67 | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Group b | 0x68 | 1 | rw | | | | +| Circuit Type | 0x68 | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x68 | 10 | rw | | | | +| Current Channel Configuration | 0x68 | 4 | rw | | | | +| Current Direction | 0x68 | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x68 | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Group c | 0x69 | 1 | rw | | | | +| Circuit Type | 0x69 | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x69 | 10 | rw | | | | +| Current Channel Configuration | 0x69 | 4 | rw | | | | +| Current Direction | 0x69 | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x69 | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Group d | 0x6A | 1 | rw | | | | +| Circuit Type | 0x6A | 2 | rw | 0 | | 0:one_phase
1:three_phase | +| Current Channel Configuration | 0x6A | 10 | rw | | | | +| Current Channel Configuration | 0x6A | 4 | rw | | | | +| Current Direction | 0x6A | 2 | rw | 0 | | 0:forward
1:reserse | +| Channel Range | 0x6A | 3 | rw | 0 | | 0:NONE
1:100A
2:300A
3:500A
4:1000A
5:4000A | +| Temperature Calibration Settings | 0x6B | 4 | rw | | | | +| Temperature Calibration | 0x6B | 2 | rw | 0 | | 0:disable
1:enable | +| Calibration Value | 0x6B | 3 | rw | 0 | -120 - 120 | | +| Time Zone | 0xC7 | 3 | rw | 0 | | -720:UTC-12(IDLW)
-660:UTC-11(SST)
-600:UTC-10(HST)
-570:UTC-9:30(MIT)
-540:UTC-9(AKST)
-480:UTC-8(PST)
-420:UTC-7(MST)
-360:UTC-6(CST)
-300:UTC-5(EST)
-240:UTC-4(AST)
-210:UTC-3:30(NST)
-180:UTC-3(BRT)
-120:UTC-2(FNT)
-60:UTC-1(CVT)
0:UTC(WET)
60:UTC+1(CET)
120:UTC+2(EET)
180:UTC+3(MSK)
210:UTC+3:30(IRST)
240:UTC+4(GST)
270:UTC+4:30(AFT)
300:UTC+5(PKT)
330:UTC+5:30(IST)
345:UTC+5:45(NPT)
360:UTC+6(BHT)
390:UTC+6:30(MMT)
420:UTC+7(ICT)
480:UTC+8(CT/CST)
540:UTC+9(JST)
570:UTC+9:30(ACST)
600:UTC+10(AEST)
630:UTC+10:30(LHST)
660:UTC+11(VUT)
720:UTC+12(NZST)
765:UTC+12:45(CHAST)
780:UTC+13(PHOT)
840:UTC+14(LINT) | +| Daylight Saving Time | 0xC6 | M | rw | | | | +| Daylight Saving Time | 0xC6 | 2 | rw | 0 | | 0:disable
1:enable | +| DST Bias | 0xC6 | 2 | rw | 60 | 0 - 120 | | +| Month | 0xC6 | 2 | rw | 1 | | 1:Jan.
2:Feb.
3:Mar.
4:Apr.
5:May
6:Jun.
7:Jul.
8:Aug.
9:Sep.
10:Oct.
11:Nov.
12:Dec. | +| Number of Week | 0xC6 | 2 | rw | 1 | | 1:1st
2: 2nd
3: 3rd
4: 4th
5: last | +| Week | 0xC6 | 2 | rw | 1 | | 1:Mon.
2:Tues.
3:Wed.
4:Thurs.
5:Fri.
6:Sat.
7:Sun. | +| Time | 0xC6 | 3 | rw | 0 | | 0:00:00
60:01:00
120:02:00
180:03:00
240:04:00
300:05:00
360:06:00
420:07:00
480:08:00
540:09:00
600:10:00
660:11:00
720:12:00
780:13:00
840:14:00
900:15:00
960:16:00
1020:17:00
1080:18:00
1140:19:00
1200:20:00
1260:21:00
1320:22:00
1380:23:00 | +| Month | 0xC6 | 2 | rw | 1 | | 1:Jan.
2:Feb.
3:Mar.
4:Apr.
5:May
6:Jun.
7:Jul.
8:Aug.
9:Sep.
10:Oct.
11:Nov.
12:Dec. | +| Number of Week | 0xC6 | 2 | rw | 1 | | 1:1st
2: 2nd
3: 3rd
4: 4th
5: last | +| Week | 0xC6 | 2 | rw | 1 | | 1:Mon.
2:Tues.
3:Wed.
4:Thurs.
5:Fri.
6:Sat.
7:Sun. | +| Time | 0xC6 | 3 | rw | 0 | | 0:00:00
60:01:00
120:02:00
180:03:00
240:04:00
300:05:00
360:06:00
420:07:00
480:08:00
540:09:00
600:10:00
660:11:00
720:12:00
780:13:00
840:14:00
900:15:00
960:16:00
1020:17:00
1080:18:00
1140:19:00
1200:20:00
1260:21:00
1320:22:00
1380:23:00 | +| Temperature Threshold Alarm Settings | 0x76 | 7 | rw | | | | +| Threshold Alarm Enable | 0x76 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x76 | 2 | rw | 0 | | 0:disable
1:condition: x2:condition: x>B
3:condition: A≤x≤B
4:condition: x
B | +| Value A | 0x76 | 3 | rw | 0 | -20 - 100 | | +| Value B | 0x76 | 3 | rw | 0 | -20 - 100 | | +| Current Threshold Alarm Settings | 0x77 | 1 | rw | | | | +| Current Threshold Alarm | 0x77 | 8 | rw | | | | +| Threshold Alarm Channel | 0x77 | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x77 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x77 | 2 | rw | 0 | | 0:disable
1:condition: x2:condition: x>B
3:condition: A≤x≤B
4:condition: x
B | +| Value A | 0x77 | 3 | rw | 0 | 0 - 4000 | | +| Value B | 0x77 | 3 | rw | 0 | 0 - 4000 | | +| Voltage Threshold Alarm Settings | 0x78 | 1 | rw | | | | +| Voltage Threshold Alarm | 0x78 | 8 | rw | | | | +| Threshold Alarm Channel | 0x78 | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x78 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x78 | 2 | rw | 0 | | 0:disable
1:condition: x2:condition: x>B
3:condition: A≤x≤B
4:condition: x
B | +| Value A | 0x78 | 3 | rw | 0 | 0 - 500 | | +| Value B | 0x78 | 3 | rw | 0 | 0 - 500 | | +| THDi Threshold Alarm Settings | 0x79 | 8 | rw | | | | +| THDi Threshold Alarm | 0x79 | 8 | rw | | | | +| Threshold Alarm Channel | 0x79 | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x79 | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x79 | 2 | rw | 0 | | 0:disable
2:condition: x>B | +| Value A | 0x79 | 3 | rw | 0 | 0 - 100 | | +| Value B | 0x79 | 3 | rw | 8 | 1 - 100 | | +| THDv Threshold Alarm Settings | 0x7A | 8 | rw | | | | +| THDv Threshold Alarm | 0x7A | 8 | rw | | | | +| Threshold Alarm Channel | 0x7A | 2 | rw | 0 | | | +| Threshold Alarm Enable | 0x7A | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x7A | 2 | rw | 0 | | 0:disable
2:condition: x>B | +| Value A | 0x7A | 3 | rw | 0 | 0 - 100 | | +| Value B | 0x7A | 3 | rw | 5 | 1 - 100 | | +| Voltage Three-phase Unbalance Threshold Alarm Settings | 0x7B | 7 | rw | | | | +| Threshold Alarm Enable | 0x7B | 2 | rw | 0 | | 0:disable
1:enable | +| Threshold Mode | 0x7B | 2 | rw | 0 | | 0:disable
2:condition: x>B | +| Value A | 0x7B | 3 | rw | 0 | 0 - 100 | | +| Value B | 0x7B | 3 | rw | 3 | 1 - 100 | | +| Threshold Alarm Global Settings | 0x7C | 1 | rw | | | | +| Alarm Interval | 0x7C | 3 | rw | 5 | 1 - 1440 | | +| Alarm Times | 0x7C | 3 | rw | 3 | 1 - 1000 | | +| Threshold Released Report Enable | 0x7C | 2 | rw | 0 | | 0:disable
1:enable | +| Monthly Statistics Time | 0x6D | 1 | rw | | | | +| day | 0x6D | 2 | rw | 1 | 1 - 28 | | +| hour | 0x6D | 2 | rw | 0 | 0 - 23 | | +| minute | 0x6D | 2 | rw | 0 | 0 - 59 | | +| Report Parameters | 0x6C | 3 | rw | | | | +| Temperature | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| Current(RMS) | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Voltage(RMS) | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Power Factor | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| Active Power | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| ReActive Power | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Apparent Power | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Imported Active Energy | 0x6C | 3 | rw | 1 | | 0:disable
1:enable | +| Exported Active Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Imported Reactive Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Exported Reactive Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Apparent Energy | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| THDi | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| THDv | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | +| Voltage Three-phase Unbalance | 0x6C | 3 | rw | 0 | | 0:disable
1:enable | + +### Event + +| CHANNEL | ID | LENGTH | READ/WRITE | DEFAULT | RANGE | ENUM | +| :------ | :--: | :----: | :--------: | :-----: | :---: | :--: | +| Sequence Number Check Response | 0xFF | 2 | r | | | | +| Order Check Response | 0xFE | 2 | r | | | | +| Command Response | 0xEF | 1 | r | | | | +| Request to Push All Configurations | 0xEE | 1 | r | | | | +| Historical Data | 0xED | 6 | r | | | | +| Temperature Threshold Alarm | 0x30 | 1 | r | | | | +| Current Threshold Alarm | 0x31 | 1 | r | | | | +| Voltage Threshold Alarm | 0x32 | 1 | r | | | | +| THDi Threshold Alarm | 0x33 | 1 | r | | | | +| THDv Threshold Alarm | 0x34 | 1 | r | | | | +| Voltage Three-phase Unbalance Threshold Alarm | 0x35 | 1 | r | | | | +| Power Failure Alarm | 0x36 | 1 | r | | | | + +### Service + +| CHANNEL | ID | LENGTH | READ/WRITE | DEFAULT | RANGE | ENUM | +| :------ | :--: | :----: | :--------: | :-----: | :---: | :--: | +| Sequence Number Check | 0xFF | 2 | w | | | | +| Sequence Number | 0xFF | 2 | w | 0 | 0 - 255 | | +| Sequence Number | 0xFF | 2 | r | 0 | 0 - 255 | | +| Order Check | 0xFE | 2 | w | | | | +| Order | 0xFE | 2 | w | 0 | 0 - 255 | | +| Command Queries | 0xEF | 1 | w | | | | +| Query Information | 0xEF | 2 | w | | | | +| Command Length | 0xEF | 2 | w | 1 | 1 - 15 | | +| The command that was queried | 0xEF | 1 | w | | | | +| Answer Result | 0xEF | 2 | r | 0 | | 0:success
1:unknow
2:error order
3:error passwd
4:error read params
5:error write params
6:error read
7:error write
8:error read apply
9:error write apply | +| Command Length | 0xEF | 2 | r | 1 | 1 - 15 | | +| Answered Commands | 0xEF | 1 | r | | | | +| Request to Query All Configurations | 0xEE | 1 | w | | | | +| Historical Data Mode | 0xED | 2 | r | | | 0:target time
1:historical time | +| Historical Data Timestamps | 0xED | 5 | r | | | | +| Alarm Type | 0x30 | 2 | r | | | | +| Collection Error | 0x30 | 1 | r | | | | +| Overrange (Lower Limit) | 0x30 | 1 | r | | | | +| Overrange (Upper Limit) | 0x30 | 1 | r | | | | +| No Data | 0x30 | 1 | r | | | | +| Temperature Below Threshold Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Below Threshold Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Exceeds Threshold Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Exceeds Threshold Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Between Thresholds Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Between Thresholds Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Outside Thresholds Alarm Released | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Temperature Outside Thresholds Alarm | 0x30 | 3 | r | | | | +| Temperature | 0x30 | 3 | r | | -20 - 100 | | +| Alarm Channel | 0x31 | 2 | r | | 0 - 11 | | +| Current Threshold Alarm Info | 0x31 | 1 | r | | | | +| Alarm Type | 0x31 | 2 | r | | | | +| Collection Error | 0x31 | 1 | r | | | | +| Overrange (Lower Limit) | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Overrange (Upper Limit) | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| No Data | 0x31 | 1 | r | | | | +| Overrange Release | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Below Threshold Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Below Threshold Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Exceeds Threshold Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Exceeds Threshold Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current in-Range Thresholds Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current in-Range Thresholds Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Out-of-Range Thresholds Alarm Released | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Current Out-of-Range Thresholds Alarm | 0x31 | 4 | r | | | | +| Current | 0x31 | 4 | r | | | | +| Alarm Channel | 0x32 | 2 | r | | 0 - 11 | | +| Voltage Threshold Alarm Info | 0x32 | 1 | r | | | | +| Alarm Type | 0x32 | 2 | r | | | | +| Collection Error | 0x32 | 1 | r | | | | +| Overrange (Lower Limit) | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Overrange (Upper Limit) | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| No Data | 0x32 | 1 | r | | | | +| Overrange Release | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Below Threshold Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Below Threshold Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Exceeds Threshold Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Exceeds Threshold Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage in-Range Thresholds Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage in-Range Thresholds Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Out-of-Range Thresholds Alarm Released | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Voltage Out-of-Range Thresholds Alarm | 0x32 | 3 | r | | | | +| Voltage | 0x32 | 3 | r | | | | +| Alarm Channel | 0x33 | 2 | r | | 0 - 11 | | +| THDi Threshold Alarm Info | 0x33 | 1 | r | | | | +| Alarm Type | 0x33 | 2 | r | | | | +| Collection Error | 0x33 | 1 | r | | | | +| THDi Exceeds Threshold Alarm Released | 0x33 | 3 | r | | | | +| THDi | 0x33 | 3 | r | | | | +| THDi Exceeds Threshold Alarm | 0x33 | 3 | r | | | | +| THDi | 0x33 | 3 | r | | | | +| Alarm Channel | 0x34 | 2 | r | | 0 - 11 | | +| THDv Threshold Alarm Info | 0x34 | 1 | r | | | | +| Alarm Type | 0x34 | 2 | r | | | | +| Collection Error | 0x34 | 1 | r | | | | +| THDv Exceeds Threshold Alarm Released | 0x34 | 3 | r | | | | +| THDv | 0x34 | 3 | r | | | | +| THDv Exceeds Threshold Alarm | 0x34 | 3 | r | | | | +| THDv | 0x34 | 3 | r | | | | +| Alarm Type | 0x35 | 2 | r | | | | +| Collection Error | 0x35 | 1 | r | | | | +| Voltage Three-phase Unbalance Exceeds Threshold Alarm Released | 0x35 | 3 | r | | | | +| Voltage Three-phase Unbalance | 0x35 | 3 | r | | | | +| Voltage Three-phase Unbalance Exceeds Threshold Alarm | 0x35 | 3 | r | | | | +| Voltage Three-phase Unbalance | 0x35 | 3 | r | | | | +| Reset | 0xBF | 1 | w | | | | +| Reboot | 0xBE | 1 | w | | | | +| Stop Retrieval | 0x5D | 1 | w | | | | +| Stop Retrieval | 0x5D | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Retrieval (Time Period) | 0x5B | 6 | w | | | | +| Type | 0x5B | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Time Point | 0x5B | 5 | w | | | | +| Retrieval (Time Period) | 0x5C | 10 | w | | | | +| Type | 0x5C | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Start Time | 0x5C | 5 | w | | | | +| End Time | 0x5C | 5 | w | | | | +| Query Device Status | 0xB9 | 1 | w | | | | +| Time Synchronize | 0xB8 | 1 | w | | | | +| Time Synchronize | 0xB7 | 5 | w | | | | +| Timestamp | 0xB7 | 5 | w | | | | +| Network Reconnection | 0xB6 | 1 | w | | | | +| Clear Cumulative Energy Consumption | 0x5F | 2 | w | | | | +| Channel Number | 0x5F | 2 | w | 0 | 0 - 12 | | +| Clear Historical Data | 0x5E | 2 | w | | | | +| Data Type to Clear | 0x5E | 2 | w | 0 | | 0:alarm data
1:period data
2:month energy data
3:month min_max data | +| Query Data Storage Configuration | 0x57 | 1 | w | | | | + diff --git a/vendors/milesight-iot/cth-series/cth01/cth01-codec.json b/vendors/milesight-iot/cth-series/cth01/cth01-codec.json new file mode 100644 index 0000000..9f323e6 --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01/cth01-codec.json @@ -0,0 +1,7037 @@ +{ + "version": "1.0.0", + "object": [ + { + "id": "active_power1.group1_value", + "name": "Active Power a(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.mask2" + ] + }, + { + "id": "active_power1.group1.chan1", + "name": "Active Power1(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group1.chan2", + "active_power1.group1.chan3" + ] + }, + { + "id": "active_power1.group1.chan2", + "name": "Active Power2(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group1.chan1", + "active_power1.group1.chan3" + ] + }, + { + "id": "active_power1.group1.chan3", + "name": "Active Power3(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group1.chan1", + "active_power1.group1.chan2" + ] + }, + { + "id": "active_power1.group2_value", + "name": "Active Power b(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.mask2" + ] + }, + { + "id": "active_power1.group2.chan1", + "name": "Active Power4(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group2.chan2", + "active_power1.group2.chan3" + ] + }, + { + "id": "active_power1.group2.chan2", + "name": "Active Power5(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group2.chan1", + "active_power1.group2.chan3" + ] + }, + { + "id": "active_power1.group2.chan3", + "name": "Active Power6(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power1.group2.chan1", + "active_power1.group2.chan2" + ] + }, + { + "id": "active_power1.mask1", + "name": "Active Power(Active Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power a" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power b" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "active_power1.mask2" + ] + }, + { + "id": "active_power1.mask2", + "name": "Active Power(Active Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power a" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power b" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "active_power2.group1_value", + "name": "Active Power c(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.mask2" + ] + }, + { + "id": "active_power2.group1.chan1", + "name": "Active Power7(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group1.chan2", + "active_power2.group1.chan3" + ] + }, + { + "id": "active_power2.group1.chan2", + "name": "Active Power8(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group1.chan1", + "active_power2.group1.chan3" + ] + }, + { + "id": "active_power2.group1.chan3", + "name": "Active Power9(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group1.chan1", + "active_power2.group1.chan2" + ] + }, + { + "id": "active_power2.group2_value", + "name": "Active Power d(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.mask2" + ] + }, + { + "id": "active_power2.group2.chan1", + "name": "Active Power10(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group2.chan2", + "active_power2.group2.chan3" + ] + }, + { + "id": "active_power2.group2.chan2", + "name": "Active Power11(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group2.chan1", + "active_power2.group2.chan3" + ] + }, + { + "id": "active_power2.group2.chan3", + "name": "Active Power12(Active Power)", + "value": "0", + "unit": "kW", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 48, + "bacnet_unit_type": "UNITS_KILOWATTS", + "reference": [ + "active_power2.group2.chan1", + "active_power2.group2.chan2" + ] + }, + { + "id": "active_power2.mask1", + "name": "Active Power(Active Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power c" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power d" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "active_power2.mask2" + ] + }, + { + "id": "active_power2.mask2", + "name": "Active Power(Active Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Active Power c" + }, + { + "value": 1, + "name": "Active Power" + }, + { + "value": 0, + "name": "Active Power d" + }, + { + "value": 1, + "name": "Active Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "alarm_global_settings.interval", + "name": "Alarm Interval(Threshold Alarm Global Settings)", + "value": "5", + "unit": "min", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 1, + 1440 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "alarm_global_settings.times", + "alarm_global_settings.release_enable" + ] + }, + { + "id": "alarm_global_settings.release_enable", + "name": "Threshold Released Report Enable(Threshold Alarm Global Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "alarm_global_settings.interval", + "alarm_global_settings.times" + ] + }, + { + "id": "alarm_global_settings.times", + "name": "Alarm Times(Threshold Alarm Global Settings)", + "value": "3", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 1, + 1000 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "alarm_global_settings.interval", + "alarm_global_settings.release_enable" + ] + }, + { + "id": "apparent_energy1.group1_value", + "name": "Apparent Energy a(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.mask2" + ] + }, + { + "id": "apparent_energy1.group1.chan1", + "name": "Apparent Energy1(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group1.chan2", + "apparent_energy1.group1.chan3" + ] + }, + { + "id": "apparent_energy1.group1.chan2", + "name": "Apparent Energy2(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group1.chan1", + "apparent_energy1.group1.chan3" + ] + }, + { + "id": "apparent_energy1.group1.chan3", + "name": "Apparent Energy3(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group1.chan1", + "apparent_energy1.group1.chan2" + ] + }, + { + "id": "apparent_energy1.group2_value", + "name": "Apparent Energy b(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.mask2" + ] + }, + { + "id": "apparent_energy1.group2.chan1", + "name": "Apparent Energy4(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group2.chan2", + "apparent_energy1.group2.chan3" + ] + }, + { + "id": "apparent_energy1.group2.chan2", + "name": "Apparent Energy5(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group2.chan1", + "apparent_energy1.group2.chan3" + ] + }, + { + "id": "apparent_energy1.group2.chan3", + "name": "Apparent Energy6(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy1.group2.chan1", + "apparent_energy1.group2.chan2" + ] + }, + { + "id": "apparent_energy1.mask1", + "name": "Apparent Energy(Apparent Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy a" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy b" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_energy1.mask2" + ] + }, + { + "id": "apparent_energy1.mask2", + "name": "Apparent Energy(Apparent Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy a" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy b" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "apparent_energy2.group1_value", + "name": "Apparent Energy c(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.mask2" + ] + }, + { + "id": "apparent_energy2.group1.chan1", + "name": "Apparent Energy7(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group1.chan2", + "apparent_energy2.group1.chan3" + ] + }, + { + "id": "apparent_energy2.group1.chan2", + "name": "Apparent Energy8(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group1.chan1", + "apparent_energy2.group1.chan3" + ] + }, + { + "id": "apparent_energy2.group1.chan3", + "name": "Apparent Energy9(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group1.chan1", + "apparent_energy2.group1.chan2" + ] + }, + { + "id": "apparent_energy2.group2_value", + "name": "Apparent Energy d(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.mask2" + ] + }, + { + "id": "apparent_energy2.group2.chan1", + "name": "Apparent Energy10(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group2.chan2", + "apparent_energy2.group2.chan3" + ] + }, + { + "id": "apparent_energy2.group2.chan2", + "name": "Apparent Energy11(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group2.chan1", + "apparent_energy2.group2.chan3" + ] + }, + { + "id": "apparent_energy2.group2.chan3", + "name": "Apparent Energy12(Apparent Energy)", + "value": "0", + "unit": "kVAh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 240, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS", + "reference": [ + "apparent_energy2.group2.chan1", + "apparent_energy2.group2.chan2" + ] + }, + { + "id": "apparent_energy2.mask1", + "name": "Apparent Energy(Apparent Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy c" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy d" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_energy2.mask2" + ] + }, + { + "id": "apparent_energy2.mask2", + "name": "Apparent Energy(Apparent Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Energy c" + }, + { + "value": 1, + "name": "Apparent Energy" + }, + { + "value": 0, + "name": "Apparent Energy d" + }, + { + "value": 1, + "name": "Apparent Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "apparent_power1.group1_value", + "name": "Apparent Power a(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.mask2" + ] + }, + { + "id": "apparent_power1.group1.chan1", + "name": "Apparent Power1(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group1.chan2", + "apparent_power1.group1.chan3" + ] + }, + { + "id": "apparent_power1.group1.chan2", + "name": "Apparent Power2(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group1.chan1", + "apparent_power1.group1.chan3" + ] + }, + { + "id": "apparent_power1.group1.chan3", + "name": "Apparent Power3(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group1.chan1", + "apparent_power1.group1.chan2" + ] + }, + { + "id": "apparent_power1.group2_value", + "name": "Apparent Power b(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.mask2" + ] + }, + { + "id": "apparent_power1.group2.chan1", + "name": "Apparent Power4(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group2.chan2", + "apparent_power1.group2.chan3" + ] + }, + { + "id": "apparent_power1.group2.chan2", + "name": "Apparent Power5(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group2.chan1", + "apparent_power1.group2.chan3" + ] + }, + { + "id": "apparent_power1.group2.chan3", + "name": "Apparent Power6(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power1.group2.chan1", + "apparent_power1.group2.chan2" + ] + }, + { + "id": "apparent_power1.mask1", + "name": "Apparent Power(Apparent Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power a" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power b" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_power1.mask2" + ] + }, + { + "id": "apparent_power1.mask2", + "name": "Apparent Power(Apparent Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power a" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power b" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "apparent_power2.group1_value", + "name": "Apparent Power c(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.mask2" + ] + }, + { + "id": "apparent_power2.group1.chan1", + "name": "Apparent Power7(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group1.chan2", + "apparent_power2.group1.chan3" + ] + }, + { + "id": "apparent_power2.group1.chan2", + "name": "Apparent Power8(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group1.chan1", + "apparent_power2.group1.chan3" + ] + }, + { + "id": "apparent_power2.group1.chan3", + "name": "Apparent Power9(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group1.chan1", + "apparent_power2.group1.chan2" + ] + }, + { + "id": "apparent_power2.group2_value", + "name": "Apparent Power d(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.mask2" + ] + }, + { + "id": "apparent_power2.group2.chan1", + "name": "Apparent Power10(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group2.chan2", + "apparent_power2.group2.chan3" + ] + }, + { + "id": "apparent_power2.group2.chan2", + "name": "Apparent Power11(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group2.chan1", + "apparent_power2.group2.chan3" + ] + }, + { + "id": "apparent_power2.group2.chan3", + "name": "Apparent Power12(Apparent Power)", + "value": "0", + "unit": "kVA", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 9, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES", + "reference": [ + "apparent_power2.group2.chan1", + "apparent_power2.group2.chan2" + ] + }, + { + "id": "apparent_power2.mask1", + "name": "Apparent Power(Apparent Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power c" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power d" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "apparent_power2.mask2" + ] + }, + { + "id": "apparent_power2.mask2", + "name": "Apparent Power(Apparent Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Apparent Power c" + }, + { + "value": 1, + "name": "Apparent Power" + }, + { + "value": 0, + "name": "Apparent Power d" + }, + { + "value": 1, + "name": "Apparent Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "bluetooth_name.content", + "name": "Name(Bluetooth Name)", + "value": "", + "unit": "", + "access_mode": "RW", + "data_type": "TEXT", + "value_type": "STRING", + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "max_length": 13, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "bluetooth_name.length" + ] + }, + { + "id": "bluetooth_name.length", + "name": "Name Length(Bluetooth Name)", + "value": "13", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 13 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "bluetooth_name.content" + ] + }, + { + "id": "celsius_temperature", + "name": "Celsius Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS" + }, + { + "id": "clear_data.type", + "name": "Data Type to Clear(Clear Historical Data)", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_alarm.channel", + "name": "Alarm Channel(Current Threshold Alarm)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "current_alarm.info.exceed_range_alarm_deactivation.current", + "current_alarm.info.exceed_range_alarm_trigger.current", + "current_alarm.info.lower_range_alarm_deactivation.current", + "current_alarm.info.lower_range_alarm_trigger.current", + "current_alarm.info.lower_range_error.current", + "current_alarm.info.over_range_alarm_deactivation.current", + "current_alarm.info.over_range_alarm_trigger.current", + "current_alarm.info.over_range_error.current", + "current_alarm.info.over_range_release.current", + "current_alarm.info.type", + "current_alarm.info.within_range_alarm_deactivation.current", + "current_alarm.info.within_range_alarm_trigger.current" + ] + }, + { + "id": "current_alarm.info.exceed_range_alarm_deactivation.current", + "name": "Current(Current Out-of-Range Thresholds Alarm Released)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.exceed_range_alarm_trigger.current", + "name": "Current(Current Out-of-Range Thresholds Alarm)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.lower_range_alarm_deactivation.current", + "name": "Current(Current Below Threshold Alarm Released)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.lower_range_alarm_trigger.current", + "name": "Current(Current Below Threshold Alarm)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.lower_range_error.current", + "name": "Current(Overrange (Lower Limit))", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_alarm_deactivation.current", + "name": "Current(Current Exceeds Threshold Alarm Released)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_alarm_trigger.current", + "name": "Current(Current Exceeds Threshold Alarm)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_error.current", + "name": "Current(Overrange (Upper Limit))", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.over_range_release.current", + "name": "Current(Overrange Release)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.type", + "name": "Alarm Type(Current Threshold Alarm Info)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 1, + "name": "Overrange (Lower Limit)" + }, + { + "value": 2, + "name": "Overrange (Upper Limit)" + }, + { + "value": 3, + "name": "No Data" + }, + { + "value": 4, + "name": "Overrange Release" + }, + { + "value": 16, + "name": "Current Below Threshold Alarm Released" + }, + { + "value": 17, + "name": "Current Below Threshold Alarm" + }, + { + "value": 18, + "name": "Current Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Current Exceeds Threshold Alarm" + }, + { + "value": 20, + "name": "Current in-Range Thresholds Alarm Released" + }, + { + "value": 21, + "name": "Current in-Range Thresholds Alarm" + }, + { + "value": 22, + "name": "Current Out-of-Range Thresholds Alarm Released" + }, + { + "value": 23, + "name": "Current Out-of-Range Thresholds Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_alarm.info.within_range_alarm_deactivation.current", + "name": "Current(Current in-Range Thresholds Alarm Released)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_alarm.info.within_range_alarm_trigger.current", + "name": "Current(Current in-Range Thresholds Alarm)", + "value": "", + "unit": "a", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 67, + "bacnet_unit_type": "UNITS_YEARS", + "reference": [] + }, + { + "id": "current_interface1.type", + "name": "Circuit Type A(Group a)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_interface2.type", + "name": "Circuit Type B(Group b)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_interface3.type", + "name": "Circuit Type C(Group c)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "current_interface4.type", + "name": "Circuit Type D(Group d)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "one_phase" + }, + { + "value": 1, + "name": "three_phase" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.command", + "name": "Sub-command(Data Storage Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Data Storage Enable" + }, + { + "value": 1, + "name": "Data Retransmission Enable" + }, + { + "value": 2, + "name": "Retransmission Interval" + }, + { + "value": 3, + "name": "Retrieval Interval" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.enable", + "name": "Data Storage Enable(Data Storage Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.retransmission_enable", + "name": "Data Retransmission Enable(Data Storage Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "data_storage_settings.retransmission_interval", + "name": "Retransmission Interval(Data Storage Settings)", + "value": "600", + "unit": "s", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 120, + 1200 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 73, + "bacnet_unit_type": "UNITS_SECONDS", + "reference": [] + }, + { + "id": "data_storage_settings.retrieval_interval", + "name": "Retrieval Interval(Data Storage Settings)", + "value": "120", + "unit": "s", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 120, + 1200 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 73, + "bacnet_unit_type": "UNITS_SECONDS", + "reference": [] + }, + { + "id": "daylight_saving_time.daylight_saving_time_offset", + "name": "DST Bias(Daylight Saving Time)", + "value": "60", + "unit": "min", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 120 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.enable", + "name": "Daylight Saving Time(Daylight Saving Time)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.end_hour_min", + "name": "Time(Daylight Saving Time)", + "value": "0", + "unit": "min", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT16", + "values": [ + { + "value": 0, + "name": "00:00" + }, + { + "value": 60, + "name": "01:00" + }, + { + "value": 120, + "name": "02:00" + }, + { + "value": 180, + "name": "03:00" + }, + { + "value": 240, + "name": "04:00" + }, + { + "value": 300, + "name": "05:00" + }, + { + "value": 360, + "name": "06:00" + }, + { + "value": 420, + "name": "07:00" + }, + { + "value": 480, + "name": "08:00" + }, + { + "value": 540, + "name": "09:00" + }, + { + "value": 600, + "name": "10:00" + }, + { + "value": 660, + "name": "11:00" + }, + { + "value": 720, + "name": "12:00" + }, + { + "value": 780, + "name": "13:00" + }, + { + "value": 840, + "name": "14:00" + }, + { + "value": 900, + "name": "15:00" + }, + { + "value": 960, + "name": "16:00" + }, + { + "value": 1020, + "name": "17:00" + }, + { + "value": 1080, + "name": "18:00" + }, + { + "value": 1140, + "name": "19:00" + }, + { + "value": 1200, + "name": "20:00" + }, + { + "value": 1260, + "name": "21:00" + }, + { + "value": 1320, + "name": "22:00" + }, + { + "value": 1380, + "name": "23:00" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day" + ] + }, + { + "id": "daylight_saving_time.end_month", + "name": "Month(Daylight Saving Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Jan." + }, + { + "value": 2, + "name": "Feb." + }, + { + "value": 3, + "name": "Mar." + }, + { + "value": 4, + "name": "Apr." + }, + { + "value": 5, + "name": "May" + }, + { + "value": 6, + "name": "Jun." + }, + { + "value": 7, + "name": "Jul." + }, + { + "value": 8, + "name": "Aug." + }, + { + "value": 9, + "name": "Sep." + }, + { + "value": 10, + "name": "Oct." + }, + { + "value": 11, + "name": "Nov." + }, + { + "value": 12, + "name": "Dec." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.end_week_day", + "name": "Week(Daylight Saving Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Mon." + }, + { + "value": 2, + "name": "Tues." + }, + { + "value": 3, + "name": "Wed." + }, + { + "value": 4, + "name": "Thurs." + }, + { + "value": 5, + "name": "Fri." + }, + { + "value": 6, + "name": "Sat." + }, + { + "value": 7, + "name": "Sun." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.end_week_num", + "name": "Number of Week(Daylight Saving Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "1st" + }, + { + "value": 2, + "name": "2nd" + }, + { + "value": 3, + "name": "3rd" + }, + { + "value": 4, + "name": "4th" + }, + { + "value": 5, + "name": "last" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_hour_min", + "name": "Time(Daylight Saving Time)", + "value": "0", + "unit": "min", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT16", + "values": [ + { + "value": 0, + "name": "00:00" + }, + { + "value": 60, + "name": "01:00" + }, + { + "value": 120, + "name": "02:00" + }, + { + "value": 180, + "name": "03:00" + }, + { + "value": 240, + "name": "04:00" + }, + { + "value": 300, + "name": "05:00" + }, + { + "value": 360, + "name": "06:00" + }, + { + "value": 420, + "name": "07:00" + }, + { + "value": 480, + "name": "08:00" + }, + { + "value": 540, + "name": "09:00" + }, + { + "value": 600, + "name": "10:00" + }, + { + "value": 660, + "name": "11:00" + }, + { + "value": 720, + "name": "12:00" + }, + { + "value": 780, + "name": "13:00" + }, + { + "value": 840, + "name": "14:00" + }, + { + "value": 900, + "name": "15:00" + }, + { + "value": 960, + "name": "16:00" + }, + { + "value": 1020, + "name": "17:00" + }, + { + "value": 1080, + "name": "18:00" + }, + { + "value": 1140, + "name": "19:00" + }, + { + "value": 1200, + "name": "20:00" + }, + { + "value": 1260, + "name": "21:00" + }, + { + "value": 1320, + "name": "22:00" + }, + { + "value": 1380, + "name": "23:00" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_month", + "name": "Month(Daylight Saving Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Jan." + }, + { + "value": 2, + "name": "Feb." + }, + { + "value": 3, + "name": "Mar." + }, + { + "value": 4, + "name": "Apr." + }, + { + "value": 5, + "name": "May" + }, + { + "value": 6, + "name": "Jun." + }, + { + "value": 7, + "name": "Jul." + }, + { + "value": 8, + "name": "Aug." + }, + { + "value": 9, + "name": "Sep." + }, + { + "value": 10, + "name": "Oct." + }, + { + "value": 11, + "name": "Nov." + }, + { + "value": 12, + "name": "Dec." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_week_day", + "name": "Week(Daylight Saving Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "Mon." + }, + { + "value": 2, + "name": "Tues." + }, + { + "value": 3, + "name": "Wed." + }, + { + "value": 4, + "name": "Thurs." + }, + { + "value": 5, + "name": "Fri." + }, + { + "value": 6, + "name": "Sat." + }, + { + "value": 7, + "name": "Sun." + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_num", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "daylight_saving_time.start_week_num", + "name": "Number of Week(Daylight Saving Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "1st" + }, + { + "value": 2, + "name": "2nd" + }, + { + "value": 3, + "name": "3rd" + }, + { + "value": 4, + "name": "4th" + }, + { + "value": 5, + "name": "last" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "daylight_saving_time.enable", + "daylight_saving_time.daylight_saving_time_offset", + "daylight_saving_time.start_month", + "daylight_saving_time.start_week_day", + "daylight_saving_time.start_hour_min", + "daylight_saving_time.end_month", + "daylight_saving_time.end_week_num", + "daylight_saving_time.end_week_day", + "daylight_saving_time.end_hour_min" + ] + }, + { + "id": "device_status", + "name": "Device Status", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Off" + }, + { + "value": 1, + "name": "Power On" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "fahrenheit_temperature", + "name": "Fahrenheit Temperature", + "value": "", + "unit": "℉", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -4, + 212 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 64, + "bacnet_unit_type": "UNITS_DEGREES_FAHRENHEIT" + }, + { + "id": "forward_active_energy1.group1_value", + "name": "Imported Active Energy a(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.mask2" + ] + }, + { + "id": "forward_active_energy1.group1.chan1", + "name": "Imported Active Energy1(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group1.chan2", + "forward_active_energy1.group1.chan3" + ] + }, + { + "id": "forward_active_energy1.group1.chan2", + "name": "Imported Active Energy2(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group1.chan1", + "forward_active_energy1.group1.chan3" + ] + }, + { + "id": "forward_active_energy1.group1.chan3", + "name": "Imported Active Energy3(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group1.chan1", + "forward_active_energy1.group1.chan2" + ] + }, + { + "id": "forward_active_energy1.group2_value", + "name": "Imported Active Energy b(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.mask2" + ] + }, + { + "id": "forward_active_energy1.group2.chan1", + "name": "Imported Active Energy4(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group2.chan2", + "forward_active_energy1.group2.chan3" + ] + }, + { + "id": "forward_active_energy1.group2.chan2", + "name": "Imported Active Energy5(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group2.chan1", + "forward_active_energy1.group2.chan3" + ] + }, + { + "id": "forward_active_energy1.group2.chan3", + "name": "Imported Active Energy6(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy1.group2.chan1", + "forward_active_energy1.group2.chan2" + ] + }, + { + "id": "forward_active_energy1.mask1", + "name": "Imported Active Energy(Imported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy a" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy b" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_active_energy1.mask2" + ] + }, + { + "id": "forward_active_energy1.mask2", + "name": "Imported Active Energy(Imported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy a" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy b" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "forward_active_energy2.group1_value", + "name": "Imported Active Energy c(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.mask2" + ] + }, + { + "id": "forward_active_energy2.group1.chan1", + "name": "Imported Active Energy7(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group1.chan2", + "forward_active_energy2.group1.chan3" + ] + }, + { + "id": "forward_active_energy2.group1.chan2", + "name": "Imported Active Energy8(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group1.chan1", + "forward_active_energy2.group1.chan3" + ] + }, + { + "id": "forward_active_energy2.group1.chan3", + "name": "Imported Active Energy9(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group1.chan1", + "forward_active_energy2.group1.chan2" + ] + }, + { + "id": "forward_active_energy2.group2_value", + "name": "Imported Active Energy d(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.mask2" + ] + }, + { + "id": "forward_active_energy2.group2.chan1", + "name": "Imported Active Energy10(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group2.chan2", + "forward_active_energy2.group2.chan3" + ] + }, + { + "id": "forward_active_energy2.group2.chan2", + "name": "Imported Active Energy11(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group2.chan1", + "forward_active_energy2.group2.chan3" + ] + }, + { + "id": "forward_active_energy2.group2.chan3", + "name": "Imported Active Energy12(Imported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "forward_active_energy2.group2.chan1", + "forward_active_energy2.group2.chan2" + ] + }, + { + "id": "forward_active_energy2.mask1", + "name": "Imported Active Energy(Imported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy c" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy d" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_active_energy2.mask2" + ] + }, + { + "id": "forward_active_energy2.mask2", + "name": "Imported Active Energy(Imported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Active Energy c" + }, + { + "value": 1, + "name": "Imported Active Energy" + }, + { + "value": 0, + "name": "Imported Active Energy d" + }, + { + "value": 1, + "name": "Imported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "forward_reactive_energy1.group1_value", + "name": "Imported Reactive Energy a(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.mask2" + ] + }, + { + "id": "forward_reactive_energy1.group1.chan1", + "name": "Imported Reactive Energy1(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group1.chan2", + "forward_reactive_energy1.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group1.chan2", + "name": "Imported Reactive Energy2(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group1.chan1", + "forward_reactive_energy1.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group1.chan3", + "name": "Imported Reactive Energy3(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group1.chan1", + "forward_reactive_energy1.group1.chan2" + ] + }, + { + "id": "forward_reactive_energy1.group2_value", + "name": "Imported Reactive Energy b(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.mask2" + ] + }, + { + "id": "forward_reactive_energy1.group2.chan1", + "name": "Imported Reactive Energy4(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group2.chan2", + "forward_reactive_energy1.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group2.chan2", + "name": "Imported Reactive Energy5(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group2.chan1", + "forward_reactive_energy1.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy1.group2.chan3", + "name": "Imported Reactive Energy6(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy1.group2.chan1", + "forward_reactive_energy1.group2.chan2" + ] + }, + { + "id": "forward_reactive_energy1.mask1", + "name": "Imported Reactive Energy(Imported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy a" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy b" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_reactive_energy1.mask2" + ] + }, + { + "id": "forward_reactive_energy1.mask2", + "name": "Imported Reactive Energy(Imported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy a" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy b" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "forward_reactive_energy2.group1_value", + "name": "Imported Reactive Energy c(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.mask2" + ] + }, + { + "id": "forward_reactive_energy2.group1.chan1", + "name": "Imported Reactive Energy7(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group1.chan2", + "forward_reactive_energy2.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group1.chan2", + "name": "Imported Reactive Energy8(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group1.chan1", + "forward_reactive_energy2.group1.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group1.chan3", + "name": "Imported Reactive Energy9(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group1.chan1", + "forward_reactive_energy2.group1.chan2" + ] + }, + { + "id": "forward_reactive_energy2.group2_value", + "name": "Imported Reactive Energy d(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.mask2" + ] + }, + { + "id": "forward_reactive_energy2.group2.chan1", + "name": "Imported Reactive Energy10(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group2.chan2", + "forward_reactive_energy2.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group2.chan2", + "name": "Imported Reactive Energy11(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group2.chan1", + "forward_reactive_energy2.group2.chan3" + ] + }, + { + "id": "forward_reactive_energy2.group2.chan3", + "name": "Imported Reactive Energy12(Imported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "forward_reactive_energy2.group2.chan1", + "forward_reactive_energy2.group2.chan2" + ] + }, + { + "id": "forward_reactive_energy2.mask1", + "name": "Imported Reactive Energy(Imported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy c" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy d" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "forward_reactive_energy2.mask2" + ] + }, + { + "id": "forward_reactive_energy2.mask2", + "name": "Imported Reactive Energy(Imported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Imported Reactive Energy c" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + }, + { + "value": 0, + "name": "Imported Reactive Energy d" + }, + { + "value": 1, + "name": "Imported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "historical_data_report.mode", + "name": "Historical Data Mode(Historical Data)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "target time" + }, + { + "value": 1, + "name": "historical time" + }, + { + "value": 2, + "name": "month time" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "historical_data_report.timestamp" + ] + }, + { + "id": "historical_data_report.timestamp", + "name": "Historical Data Timestamps(Historical Data)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "historical_data_report.mode" + ] + }, + { + "id": "history_type.type", + "name": "Historical Data Type(Historical Data Type)", + "value": "1", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "month energy" + }, + { + "value": 2, + "name": "month min" + }, + { + "value": 3, + "name": "month max" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "month_statistics_settings.day", + "name": "day(Monthly Statistics Time)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 28 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "month_statistics_settings.hour", + "month_statistics_settings.minute" + ] + }, + { + "id": "month_statistics_settings.hour", + "name": "hour(Monthly Statistics Time)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 23 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "month_statistics_settings.day", + "month_statistics_settings.minute" + ] + }, + { + "id": "month_statistics_settings.minute", + "name": "minute(Monthly Statistics Time)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 59 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "month_statistics_settings.day", + "month_statistics_settings.hour" + ] + }, + { + "id": "oem_id", + "name": "OEM ID", + "value": "", + "unit": "", + "access_mode": "RW", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 4, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "power_factor.group1_value", + "name": "Power Factor a(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group1.chan1", + "name": "Power Factor1(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group1.chan2", + "power_factor.group1.chan3" + ] + }, + { + "id": "power_factor.group1.chan2", + "name": "Power Factor2(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group1.chan1", + "power_factor.group1.chan3" + ] + }, + { + "id": "power_factor.group1.chan3", + "name": "Power Factor3(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group1.chan1", + "power_factor.group1.chan2" + ] + }, + { + "id": "power_factor.group2_value", + "name": "Power Factorb(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group2.chan1", + "name": "Power Factor4(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group2.chan2", + "power_factor.group2.chan3" + ] + }, + { + "id": "power_factor.group2.chan2", + "name": "Power Factor5(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group2.chan1", + "power_factor.group2.chan3" + ] + }, + { + "id": "power_factor.group2.chan3", + "name": "Power Factor6(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group2.chan1", + "power_factor.group2.chan2" + ] + }, + { + "id": "power_factor.group3_value", + "name": "Power Factor c(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group3.chan1", + "name": "Power Factor7(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group3.chan2", + "power_factor.group3.chan3" + ] + }, + { + "id": "power_factor.group3.chan2", + "name": "Power Factor8(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group3.chan1", + "power_factor.group3.chan3" + ] + }, + { + "id": "power_factor.group3.chan3", + "name": "Power Factor9(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group3.chan1", + "power_factor.group3.chan2" + ] + }, + { + "id": "power_factor.group4_value", + "name": "Power Factor d(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.group4.chan1", + "name": "Power Factor10(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group4.chan2", + "power_factor.group4.chan3" + ] + }, + { + "id": "power_factor.group4.chan2", + "name": "Power Factor11(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group4.chan1", + "power_factor.group4.chan3" + ] + }, + { + "id": "power_factor.group4.chan3", + "name": "Power Factor12(Power Factor)", + "value": "0", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.group4.chan1", + "power_factor.group4.chan2" + ] + }, + { + "id": "power_factor.mask1", + "name": "Power Factor(Power Factor)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.mask2", + "name": "Power Factor(Power Factor)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.mask3", + "name": "Power Factor(Power Factor)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "power_factor.mask4" + ] + }, + { + "id": "power_factor.mask4", + "name": "Power Factor(Power Factor)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Power Factor a" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factorb" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor c" + }, + { + "value": 1, + "name": "Power Factor" + }, + { + "value": 0, + "name": "Power Factor d" + }, + { + "value": 1, + "name": "Power Factor" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "product_sn", + "name": "SN", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 16, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "query_device_status", + "name": "Query Device Status", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "query_history_set", + "name": "Query Data Storage Configuration", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reactive_power1.group1_value", + "name": "Reactive Power a(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.mask2" + ] + }, + { + "id": "reactive_power1.group1.chan1", + "name": "Reactive Power1(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group1.chan2", + "reactive_power1.group1.chan3" + ] + }, + { + "id": "reactive_power1.group1.chan2", + "name": "Reactive Power2(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group1.chan1", + "reactive_power1.group1.chan3" + ] + }, + { + "id": "reactive_power1.group1.chan3", + "name": "Reactive Power3(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group1.chan1", + "reactive_power1.group1.chan2" + ] + }, + { + "id": "reactive_power1.group2_value", + "name": "Reactive Power b(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.mask2" + ] + }, + { + "id": "reactive_power1.group2.chan1", + "name": "Reactive Power4(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group2.chan2", + "reactive_power1.group2.chan3" + ] + }, + { + "id": "reactive_power1.group2.chan2", + "name": "Reactive Power5(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group2.chan1", + "reactive_power1.group2.chan3" + ] + }, + { + "id": "reactive_power1.group2.chan3", + "name": "Reactive Power6(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power1.group2.chan1", + "reactive_power1.group2.chan2" + ] + }, + { + "id": "reactive_power1.mask1", + "name": "Reactive Power(Reactive Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power a" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power b" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reactive_power1.mask2" + ] + }, + { + "id": "reactive_power1.mask2", + "name": "Reactive Power(Reactive Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power a" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power b" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reactive_power2.group1_value", + "name": "Reactive Power c(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.mask2" + ] + }, + { + "id": "reactive_power2.group1.chan1", + "name": "Reactive Power7(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group1.chan2", + "reactive_power2.group1.chan3" + ] + }, + { + "id": "reactive_power2.group1.chan2", + "name": "Reactive Power8(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group1.chan1", + "reactive_power2.group1.chan3" + ] + }, + { + "id": "reactive_power2.group1.chan3", + "name": "Reactive Power9(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group1.chan1", + "reactive_power2.group1.chan2" + ] + }, + { + "id": "reactive_power2.group2_value", + "name": "Reactive Power d(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.mask2" + ] + }, + { + "id": "reactive_power2.group2.chan1", + "name": "Reactive Power10(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group2.chan2", + "reactive_power2.group2.chan3" + ] + }, + { + "id": "reactive_power2.group2.chan2", + "name": "Reactive Power11(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group2.chan1", + "reactive_power2.group2.chan3" + ] + }, + { + "id": "reactive_power2.group2.chan3", + "name": "Reactive Power12(Reactive Power)", + "value": "0", + "unit": "kvar", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 12, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERES_REACTIVE", + "reference": [ + "reactive_power2.group2.chan1", + "reactive_power2.group2.chan2" + ] + }, + { + "id": "reactive_power2.mask1", + "name": "Reactive Power(Reactive Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power c" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power d" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reactive_power2.mask2" + ] + }, + { + "id": "reactive_power2.mask2", + "name": "Reactive Power(Reactive Power)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Reactive Power c" + }, + { + "value": 1, + "name": "Reactive Power" + }, + { + "value": 0, + "name": "Reactive Power d" + }, + { + "value": 1, + "name": "Reactive Power" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reboot", + "name": "Reboot", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reconnect", + "name": "Network Reconnection", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "report_enable.active_power", + "name": "Active Power(Report Parameters)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.apparent_energy", + "name": "Apparent Energy(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.apparent_power", + "name": "Apparent Power(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.current", + "name": "Current(RMS)(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.forward_active_energy", + "name": "Imported Active Energy(Report Parameters)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.forward_reactive_energy", + "name": "Imported Reactive Energy(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.power_factor", + "name": "Power Factor(Report Parameters)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.reactive_power", + "name": "ReActive Power(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.reverse_active_energy", + "name": "Exported Active Energy(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.reverse_reactive_energy", + "name": "Exported Reactive Energy(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.temperature", + "name": "Temperature(Report Parameters)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.thdi", + "name": "THDi(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.thdv", + "name": "THDv(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.voltage", + "name": "Voltage(RMS)(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv", + "report_enable.voltage_unbalance" + ] + }, + { + "id": "report_enable.voltage_unbalance", + "name": "Voltage Three-phase Unbalance(Report Parameters)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "report_enable.temperature", + "report_enable.current", + "report_enable.voltage", + "report_enable.power_factor", + "report_enable.active_power", + "report_enable.reactive_power", + "report_enable.apparent_power", + "report_enable.forward_active_energy", + "report_enable.reverse_active_energy", + "report_enable.forward_reactive_energy", + "report_enable.reverse_reactive_energy", + "report_enable.apparent_energy", + "report_enable.thdi", + "report_enable.thdv" + ] + }, + { + "id": "reporting_interval.minutes_of_time", + "name": "Report Interval(Report Interval)", + "value": "10", + "unit": "min", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 1, + 1440 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES", + "reference": [ + "reporting_interval.unit" + ] + }, + { + "id": "reporting_interval.seconds_of_time", + "name": "Report Interval(Report Interval)", + "value": "600", + "unit": "s", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT16", + "range": [ + 10, + 64800 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 73, + "bacnet_unit_type": "UNITS_SECONDS", + "reference": [ + "reporting_interval.unit" + ] + }, + { + "id": "reporting_interval.unit", + "name": "Report Interval Unit(Report Interval)", + "value": "1", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "second" + }, + { + "value": 1, + "name": "min" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reset", + "name": "Reset", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "reset_energy.channel", + "name": "Channel Number(Clear Cumulative Energy Consumption)", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 12 + ], + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "retrieve_historical_data_by_time_range.end_time", + "name": "End Time(Retrieval (Time Period))", + "value": "", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time_range.type", + "retrieve_historical_data_by_time_range.start_time" + ] + }, + { + "id": "retrieve_historical_data_by_time_range.start_time", + "name": "Start Time(Retrieval (Time Period))", + "value": "", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time_range.type", + "retrieve_historical_data_by_time_range.end_time" + ] + }, + { + "id": "retrieve_historical_data_by_time_range.type", + "name": "Type(Retrieval (Time Period))", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time_range.start_time", + "retrieve_historical_data_by_time_range.end_time" + ] + }, + { + "id": "retrieve_historical_data_by_time.time", + "name": "Time Point(Retrieval (Time Period))", + "value": "", + "unit": "", + "access_mode": "W", + "data_type": "NUMBER", + "value_type": "UINT8", + "bacnet_type": "analog_output_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time.type" + ] + }, + { + "id": "retrieve_historical_data_by_time.type", + "name": "Type(Retrieval (Time Period))", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "retrieve_historical_data_by_time.time" + ] + }, + { + "id": "reverse_active_energy1.group1_value", + "name": "Exported Active Energy a(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.mask2" + ] + }, + { + "id": "reverse_active_energy1.group1.chan1", + "name": "Exported Active Energy1(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group1.chan2", + "reverse_active_energy1.group1.chan3" + ] + }, + { + "id": "reverse_active_energy1.group1.chan2", + "name": "Exported Active Energy2(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group1.chan1", + "reverse_active_energy1.group1.chan3" + ] + }, + { + "id": "reverse_active_energy1.group1.chan3", + "name": "Exported Active Energy3(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group1.chan1", + "reverse_active_energy1.group1.chan2" + ] + }, + { + "id": "reverse_active_energy1.group2_value", + "name": "Exported Active Energy b(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.mask2" + ] + }, + { + "id": "reverse_active_energy1.group2.chan1", + "name": "Exported Active Energy4(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group2.chan2", + "reverse_active_energy1.group2.chan3" + ] + }, + { + "id": "reverse_active_energy1.group2.chan2", + "name": "Exported Active Energy5(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group2.chan1", + "reverse_active_energy1.group2.chan3" + ] + }, + { + "id": "reverse_active_energy1.group2.chan3", + "name": "Exported Active Energy6(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy1.group2.chan1", + "reverse_active_energy1.group2.chan2" + ] + }, + { + "id": "reverse_active_energy1.mask1", + "name": "Exported Active Energy(Exported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy a" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy b" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_active_energy1.mask2" + ] + }, + { + "id": "reverse_active_energy1.mask2", + "name": "Exported Active Energy(Exported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy a" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy b" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reverse_active_energy2.group1_value", + "name": "Exported Active Energy c(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.mask2" + ] + }, + { + "id": "reverse_active_energy2.group1.chan1", + "name": "Exported Active Energy7(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group1.chan2", + "reverse_active_energy2.group1.chan3" + ] + }, + { + "id": "reverse_active_energy2.group1.chan2", + "name": "Exported Active Energy8(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group1.chan1", + "reverse_active_energy2.group1.chan3" + ] + }, + { + "id": "reverse_active_energy2.group1.chan3", + "name": "Exported Active Energy9(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group1.chan1", + "reverse_active_energy2.group1.chan2" + ] + }, + { + "id": "reverse_active_energy2.group2_value", + "name": "Exported Active Energy d(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.mask2" + ] + }, + { + "id": "reverse_active_energy2.group2.chan1", + "name": "Exported Active Energy10(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group2.chan2", + "reverse_active_energy2.group2.chan3" + ] + }, + { + "id": "reverse_active_energy2.group2.chan2", + "name": "Exported Active Energy11(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group2.chan1", + "reverse_active_energy2.group2.chan3" + ] + }, + { + "id": "reverse_active_energy2.group2.chan3", + "name": "Exported Active Energy12(Exported Active Energy)", + "value": "0", + "unit": "kWh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 19, + "bacnet_unit_type": "UNITS_KILOWATT_HOURS", + "reference": [ + "reverse_active_energy2.group2.chan1", + "reverse_active_energy2.group2.chan2" + ] + }, + { + "id": "reverse_active_energy2.mask1", + "name": "Exported Active Energy(Exported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy c" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy d" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_active_energy2.mask2" + ] + }, + { + "id": "reverse_active_energy2.mask2", + "name": "Exported Active Energy(Exported Active Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Active Energy c" + }, + { + "value": 1, + "name": "Exported Active Energy" + }, + { + "value": 0, + "name": "Exported Active Energy d" + }, + { + "value": 1, + "name": "Exported Active Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reverse_reactive_energy1.group1_value", + "name": "Exported Reactive Energy a(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.mask2" + ] + }, + { + "id": "reverse_reactive_energy1.group1.chan1", + "name": "Exported Reactive Energy1(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group1.chan2", + "reverse_reactive_energy1.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group1.chan2", + "name": "Exported Reactive Energy2(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group1.chan1", + "reverse_reactive_energy1.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group1.chan3", + "name": "Exported Reactive Energy3(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group1.chan1", + "reverse_reactive_energy1.group1.chan2" + ] + }, + { + "id": "reverse_reactive_energy1.group2_value", + "name": "Exported Reactive Energy b(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.mask2" + ] + }, + { + "id": "reverse_reactive_energy1.group2.chan1", + "name": "Exported Reactive Energy4(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group2.chan2", + "reverse_reactive_energy1.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group2.chan2", + "name": "Exported Reactive Energy5(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group2.chan1", + "reverse_reactive_energy1.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy1.group2.chan3", + "name": "Exported Reactive Energy6(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy1.group2.chan1", + "reverse_reactive_energy1.group2.chan2" + ] + }, + { + "id": "reverse_reactive_energy1.mask1", + "name": "Exported Reactive Energy(Exported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy a" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy b" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_reactive_energy1.mask2" + ] + }, + { + "id": "reverse_reactive_energy1.mask2", + "name": "Exported Reactive Energy(Exported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy a" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy b" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "reverse_reactive_energy2.group1_value", + "name": "Exported Reactive Energy c(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.mask2" + ] + }, + { + "id": "reverse_reactive_energy2.group1.chan1", + "name": "Exported Reactive Energy7(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group1.chan2", + "reverse_reactive_energy2.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group1.chan2", + "name": "Exported Reactive Energy8(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group1.chan1", + "reverse_reactive_energy2.group1.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group1.chan3", + "name": "Exported Reactive Energy9(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group1.chan1", + "reverse_reactive_energy2.group1.chan2" + ] + }, + { + "id": "reverse_reactive_energy2.group2_value", + "name": "Exported Reactive Energy d(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.mask2" + ] + }, + { + "id": "reverse_reactive_energy2.group2.chan1", + "name": "Exported Reactive Energy10(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group2.chan2", + "reverse_reactive_energy2.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group2.chan2", + "name": "Exported Reactive Energy11(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group2.chan1", + "reverse_reactive_energy2.group2.chan3" + ] + }, + { + "id": "reverse_reactive_energy2.group2.chan3", + "name": "Exported Reactive Energy12(Exported Reactive Energy)", + "value": "0", + "unit": "kVArh", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 243, + "bacnet_unit_type": "UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE", + "reference": [ + "reverse_reactive_energy2.group2.chan1", + "reverse_reactive_energy2.group2.chan2" + ] + }, + { + "id": "reverse_reactive_energy2.mask1", + "name": "Exported Reactive Energy(Exported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy c" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy d" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "reverse_reactive_energy2.mask2" + ] + }, + { + "id": "reverse_reactive_energy2.mask2", + "name": "Exported Reactive Energy(Exported Reactive Energy)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Exported Reactive Energy c" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + }, + { + "value": 0, + "name": "Exported Reactive Energy d" + }, + { + "value": 1, + "name": "Exported Reactive Energy" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "stop_historical_data_retrieval.type", + "name": "Stop Retrieval(Stop Retrieval)", + "value": "0", + "unit": "", + "access_mode": "W", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "alarm data" + }, + { + "value": 1, + "name": "period data" + }, + { + "value": 2, + "name": "month energy data" + }, + { + "value": 3, + "name": "month min_max data" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "synchronize_time", + "name": "Time Synchronize", + "access_mode": "W", + "data_type": "BOOL", + "value_type": "UINT8", + "unit": "", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "bacnet_type": "binary_output_object", + "value": "", + "values": [ + { + "value": 0, + "name": "no" + }, + { + "value": 1, + "name": "yes" + } + ] + }, + { + "id": "temperature", + "name": "Temperature", + "value": "", + "unit": "°C", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS" + }, + { + "id": "temperature_alarm_settings.celsius_threshold_max", + "name": "Celsius Value B(Temperature Threshold Alarm Settings)", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_min" + ] + }, + { + "id": "temperature_alarm_settings.celsius_threshold_min", + "name": "Celsius Value A(Temperature Threshold Alarm Settings)", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm_settings.enable", + "name": "Threshold Alarm Enable(Temperature Threshold Alarm Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_min", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm_settings.fahrenheit_threshold_max", + "name": "Fahrenheit Value B(Temperature Threshold Alarm Settings)", + "value": "32", + "unit": "℉", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -4, + 212 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 64, + "bacnet_unit_type": "UNITS_DEGREES_FAHRENHEIT", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_min" + ] + }, + { + "id": "temperature_alarm_settings.fahrenheit_threshold_min", + "name": "Fahrenheit Value A(Temperature Threshold Alarm Settings)", + "value": "32", + "unit": "℉", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -4, + 212 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 64, + "bacnet_unit_type": "UNITS_DEGREES_FAHRENHEIT", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm_settings.threshold_condition", + "name": "Threshold Mode(Temperature Threshold Alarm Settings)", + "value": "2", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 1, + "name": "condition: xB" + }, + { + "value": 3, + "name": "condition: A≤x≤B" + }, + { + "value": 4, + "name": "condition: x
B" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_min", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm_settings.threshold_max", + "name": "Value B(Temperature Threshold Alarm Settings)", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_min" + ] + }, + { + "id": "temperature_alarm_settings.threshold_min", + "name": "Value A(Temperature Threshold Alarm Settings)", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -20, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_alarm_settings.enable", + "temperature_alarm_settings.threshold_condition", + "temperature_alarm_settings.threshold_max" + ] + }, + { + "id": "temperature_alarm.type", + "name": "Alarm Type(Temperature Threshold Alarm)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 1, + "name": "Overrange (Lower Limit)" + }, + { + "value": 2, + "name": "Overrange (Upper Limit)" + }, + { + "value": 3, + "name": "No Data" + }, + { + "value": 16, + "name": "Temperature Below Threshold Alarm Released" + }, + { + "value": 17, + "name": "Temperature Below Threshold Alarm" + }, + { + "value": 18, + "name": "Temperature Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Temperature Exceeds Threshold Alarm" + }, + { + "value": 20, + "name": "Temperature Between Thresholds Alarm Released" + }, + { + "value": 21, + "name": "Temperature Between Thresholds Alarm" + }, + { + "value": 22, + "name": "Temperature Outside Thresholds Alarm Released" + }, + { + "value": 23, + "name": "Temperature Outside Thresholds Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "temperature_calibration_settings.calibration_value", + "name": "Calibration Value(Temperature Calibration Settings)", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -120, + 120 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_calibration_settings.enable" + ] + }, + { + "id": "temperature_calibration_settings.celsius_calibration_value", + "name": "Celsius Calibration Value(Temperature Calibration Settings)", + "value": "0", + "unit": "°C", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -120, + 120 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 62, + "bacnet_unit_type": "UNITS_DEGREES_CELSIUS", + "reference": [ + "temperature_calibration_settings.enable" + ] + }, + { + "id": "temperature_calibration_settings.enable", + "name": "Temperature Calibration(Temperature Calibration Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "temperature_calibration_settings.calibration_value" + ] + }, + { + "id": "temperature_calibration_settings.fahrenheit_calibration_value", + "name": "Fahrenheit Calibration Value(Temperature Calibration Settings)", + "value": "32", + "unit": "℉", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + -184, + 248 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 64, + "bacnet_unit_type": "UNITS_DEGREES_FAHRENHEIT", + "reference": [ + "temperature_calibration_settings.enable" + ] + }, + { + "id": "temperature_unit", + "name": "Temperature Unit", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "℃" + }, + { + "value": 1, + "name": "℉" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "thdi_alarm.channel", + "name": "Alarm Channel(THDi Threshold Alarm)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "thdi_alarm.info.over_range_alarm_deactivation.thdi", + "thdi_alarm.info.over_range_alarm_trigger.thdi", + "thdi_alarm.info.type" + ] + }, + { + "id": "thdi_alarm.info.over_range_alarm_deactivation.thdi", + "name": "THDi(THDi Exceeds Threshold Alarm Released)", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdi_alarm.info.over_range_alarm_trigger.thdi", + "name": "THDi(THDi Exceeds Threshold Alarm)", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdi_alarm.info.type", + "name": "Alarm Type(THDi Threshold Alarm Info)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 18, + "name": "THDi Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "THDi Exceeds Threshold Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "thdv_alarm.channel", + "name": "Alarm Channel(THDv Threshold Alarm)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "thdv_alarm.info.over_range_alarm_deactivation.thdv", + "thdv_alarm.info.over_range_alarm_trigger.thdv", + "thdv_alarm.info.type" + ] + }, + { + "id": "thdv_alarm.info.over_range_alarm_deactivation.thdv", + "name": "THDv(THDv Exceeds Threshold Alarm Released)", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdv_alarm.info.over_range_alarm_trigger.thdv", + "name": "THDv(THDv Exceeds Threshold Alarm)", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [] + }, + { + "id": "thdv_alarm.info.type", + "name": "Alarm Type(THDv Threshold Alarm Info)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 18, + "name": "THDv Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "THDv Exceeds Threshold Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "time_zone", + "name": "Time Zone", + "value": "0", + "unit": "min", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "INT16", + "values": [ + { + "value": -720, + "name": "UTC-12(IDLW)" + }, + { + "value": -660, + "name": "UTC-11(SST)" + }, + { + "value": -600, + "name": "UTC-10(HST)" + }, + { + "value": -570, + "name": "UTC-9:30(MIT)" + }, + { + "value": -540, + "name": "UTC-9(AKST)" + }, + { + "value": -480, + "name": "UTC-8(PST)" + }, + { + "value": -420, + "name": "UTC-7(MST)" + }, + { + "value": -360, + "name": "UTC-6(CST)" + }, + { + "value": -300, + "name": "UTC-5(EST)" + }, + { + "value": -240, + "name": "UTC-4(AST)" + }, + { + "value": -210, + "name": "UTC-3:30(NST)" + }, + { + "value": -180, + "name": "UTC-3(BRT)" + }, + { + "value": -120, + "name": "UTC-2(FNT)" + }, + { + "value": -60, + "name": "UTC-1(CVT)" + }, + { + "value": 0, + "name": "UTC(WET)" + }, + { + "value": 60, + "name": "UTC+1(CET)" + }, + { + "value": 120, + "name": "UTC+2(EET)" + }, + { + "value": 180, + "name": "UTC+3(MSK)" + }, + { + "value": 210, + "name": "UTC+3:30(IRST)" + }, + { + "value": 240, + "name": "UTC+4(GST)" + }, + { + "value": 270, + "name": "UTC+4:30(AFT)" + }, + { + "value": 300, + "name": "UTC+5(PKT)" + }, + { + "value": 330, + "name": "UTC+5:30(IST)" + }, + { + "value": 345, + "name": "UTC+5:45(NPT)" + }, + { + "value": 360, + "name": "UTC+6(BHT)" + }, + { + "value": 390, + "name": "UTC+6:30(MMT)" + }, + { + "value": 420, + "name": "UTC+7(ICT)" + }, + { + "value": 480, + "name": "UTC+8(CT/CST)" + }, + { + "value": 540, + "name": "UTC+9(JST)" + }, + { + "value": 570, + "name": "UTC+9:30(ACST)" + }, + { + "value": 600, + "name": "UTC+10(AEST)" + }, + { + "value": 630, + "name": "UTC+10:30(LHST)" + }, + { + "value": 660, + "name": "UTC+11(VUT)" + }, + { + "value": 720, + "name": "UTC+12(NZST)" + }, + { + "value": 765, + "name": "UTC+12:45(CHAST)" + }, + { + "value": 780, + "name": "UTC+13(PHOT)" + }, + { + "value": 840, + "name": "UTC+14(LINT)" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 72, + "bacnet_unit_type": "UNITS_MINUTES" + }, + { + "id": "tsl_version", + "name": "TSL Version", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 4, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "version.firmware_version", + "name": "Firmware Version(Product Version)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 12, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "version.hardware_version" + ] + }, + { + "id": "version.hardware_version", + "name": "Hardware Version(Product Version)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "TEXT", + "value_type": "STRING", + "max_length": 4, + "bacnet_type": "character_string_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "version.firmware_version" + ] + }, + { + "id": "voltage_alarm.channel", + "name": "Alarm Channel(Voltage Threshold Alarm)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 0, + 11 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "voltage_alarm.info.exceed_range_alarm_deactivation.voltage", + "voltage_alarm.info.exceed_range_alarm_trigger.voltage", + "voltage_alarm.info.lower_range_alarm_deactivation.voltage", + "voltage_alarm.info.lower_range_alarm_trigger.voltage", + "voltage_alarm.info.lower_range_error.voltage", + "voltage_alarm.info.over_range_alarm_deactivation.voltage", + "voltage_alarm.info.over_range_alarm_trigger.voltage", + "voltage_alarm.info.over_range_error.voltage", + "voltage_alarm.info.over_range_release.voltage", + "voltage_alarm.info.type", + "voltage_alarm.info.within_range_alarm_deactivation.voltage", + "voltage_alarm.info.within_range_alarm_trigger.voltage" + ] + }, + { + "id": "voltage_alarm.info.exceed_range_alarm_deactivation.voltage", + "name": "Voltage(Voltage Out-of-Range Thresholds Alarm Released)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.exceed_range_alarm_trigger.voltage", + "name": "Voltage(Voltage Out-of-Range Thresholds Alarm)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.lower_range_alarm_deactivation.voltage", + "name": "Voltage(Voltage Below Threshold Alarm Released)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.lower_range_alarm_trigger.voltage", + "name": "Voltage(Voltage Below Threshold Alarm)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.lower_range_error.voltage", + "name": "Voltage(Overrange (Lower Limit))", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_alarm_deactivation.voltage", + "name": "Voltage(Voltage Exceeds Threshold Alarm Released)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_alarm_trigger.voltage", + "name": "Voltage(Voltage Exceeds Threshold Alarm)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_error.voltage", + "name": "Voltage(Overrange (Upper Limit))", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.over_range_release.voltage", + "name": "Voltage(Overrange Release)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.type", + "name": "Alarm Type(Voltage Threshold Alarm Info)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 1, + "name": "Overrange (Lower Limit)" + }, + { + "value": 2, + "name": "Overrange (Upper Limit)" + }, + { + "value": 3, + "name": "No Data" + }, + { + "value": 4, + "name": "Overrange Release" + }, + { + "value": 16, + "name": "Voltage Below Threshold Alarm Released" + }, + { + "value": 17, + "name": "Voltage Below Threshold Alarm" + }, + { + "value": 18, + "name": "Voltage Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Voltage Exceeds Threshold Alarm" + }, + { + "value": 20, + "name": "Voltage in-Range Thresholds Alarm Released" + }, + { + "value": 21, + "name": "Voltage in-Range Thresholds Alarm" + }, + { + "value": 22, + "name": "Voltage Out-of-Range Thresholds Alarm Released" + }, + { + "value": 23, + "name": "Voltage Out-of-Range Thresholds Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + }, + { + "id": "voltage_alarm.info.within_range_alarm_deactivation.voltage", + "name": "Voltage(Voltage in-Range Thresholds Alarm Released)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_alarm.info.within_range_alarm_trigger.voltage", + "name": "Voltage(Voltage in-Range Thresholds Alarm)", + "value": "", + "unit": "V", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 5, + "bacnet_unit_type": "UNITS_VOLTS", + "reference": [] + }, + { + "id": "voltage_interface", + "name": "Voltage Channel", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "four_wire" + }, + { + "value": 1, + "name": "three_wire" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS" + }, + { + "id": "voltage_three_phase_imbalcance", + "name": "Voltage Three-phase Unbalance", + "value": "", + "unit": "%", + "access_mode": "R", + "data_type": "NUMBER", + "value_type": "FLOAT", + "range": [ + 0, + 100 + ], + "bacnet_type": "analog_input_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT" + }, + { + "id": "voltage_unbalance_alarm_settings.enable", + "name": "Threshold Alarm Enable(Voltage Three-phase Unbalance Threshold Alarm Settings)", + "value": "0", + "unit": "", + "access_mode": "RW", + "data_type": "BOOL", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "disable" + }, + { + "value": 1, + "name": "enable" + } + ], + "bacnet_type": "binary_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "voltage_unbalance_alarm_settings.threshold_condition", + "voltage_unbalance_alarm_settings.threshold_min", + "voltage_unbalance_alarm_settings.threshold_max" + ] + }, + { + "id": "voltage_unbalance_alarm_settings.threshold_condition", + "name": "Threshold Mode(Voltage Three-phase Unbalance Threshold Alarm Settings)", + "value": "2", + "unit": "", + "access_mode": "RW", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 2, + "name": "condition: x>B" + }, + { + "value": 2, + "name": "condition: x>B" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [ + "voltage_unbalance_alarm_settings.enable", + "voltage_unbalance_alarm_settings.threshold_min", + "voltage_unbalance_alarm_settings.threshold_max" + ] + }, + { + "id": "voltage_unbalance_alarm_settings.threshold_max", + "name": "Value B(Voltage Three-phase Unbalance Threshold Alarm Settings)", + "value": "3", + "unit": "%", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [ + "voltage_unbalance_alarm_settings.enable", + "voltage_unbalance_alarm_settings.threshold_condition", + "voltage_unbalance_alarm_settings.threshold_min" + ] + }, + { + "id": "voltage_unbalance_alarm_settings.threshold_min", + "name": "Value A(Voltage Three-phase Unbalance Threshold Alarm Settings)", + "value": "1", + "unit": "%", + "access_mode": "RW", + "data_type": "NUMBER", + "value_type": "UINT8", + "range": [ + 1, + 100 + ], + "bacnet_type": "analog_value_object", + "bacnet_unit_type_id": 98, + "bacnet_unit_type": "UNITS_PERCENT", + "reference": [ + "voltage_unbalance_alarm_settings.enable", + "voltage_unbalance_alarm_settings.threshold_condition", + "voltage_unbalance_alarm_settings.threshold_max" + ] + }, + { + "id": "voltage_unbalance_alarm.type", + "name": "Alarm Type(Voltage Three-phase Unbalance Threshold Alarm)", + "value": "", + "unit": "", + "access_mode": "R", + "data_type": "ENUM", + "value_type": "UINT8", + "values": [ + { + "value": 0, + "name": "Collection Error" + }, + { + "value": 18, + "name": "Voltage Three-phase Unbalance Exceeds Threshold Alarm Released" + }, + { + "value": 19, + "name": "Voltage Three-phase Unbalance Exceeds Threshold Alarm" + } + ], + "bacnet_type": "multistate_value_object", + "bacnet_unit_type_id": 95, + "bacnet_unit_type": "UNITS_NO_UNITS", + "reference": [] + } + ] +} \ No newline at end of file diff --git a/vendors/milesight-iot/cth-series/cth01/cth01-decoder.js b/vendors/milesight-iot/cth-series/cth01/cth01-decoder.js new file mode 100644 index 0000000..9e15087 --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01/cth01-decoder.js @@ -0,0 +1,1501 @@ +/** + * Payload Decoder + * + * Copyright 2025 Milesight IoT + * + * @product CTH01 + */ + +/* eslint no-redeclare: "off" */ +/* eslint-disable */ +// Chirpstack v4 +function decodeUplink(input) { + var decoded = milesightDeviceDecode(input.bytes); + return { data: decoded }; +} + +// Chirpstack v3 +function Decode(fPort, bytes) { + return milesightDeviceDecode(bytes); +} + +// The Things Network +function Decoder(bytes, port) { + return milesightDeviceDecode(bytes); +} +/* eslint-enable */ + +function milesightDeviceDecode(bytes) { + var decoded = {}; + var result = {}; + var history = []; + var error_value_map = { + current: 0xFFFFFF / 100, + voltage: 0xFFFF / 100, + forward_active_energy: 0xFFFFFFFF / 1000, + reverse_active_energy: 0xFFFFFFFF / 1000, + forward_reactive_energy: 0xFFFFFFFF / 1000, + reverse_reactive_energy: 0xFFFFFFFF / 1000, + apparent_energy: 0xFFFFFFFF / 1000, + power_factor: 0xFF / 100, + active_power: -0.001, + reactive_power: -0.001, + apparent_power: -0.001, + thdi: 0xFFFF / 100, + thdv: 0xFFFF / 100, + voltage_three_phase_imbalcance: 0xFFFF / 100 + } + + var unknown_command = 0; + var counterObj = {}; + for (counterObj.i = 0; counterObj.i < bytes.length; ) { + var command_id = bytes[counterObj.i++]; + switch (command_id) { + case 0xff: + decoded.check_sequence_number_reply = decoded.check_sequence_number_reply || {}; + decoded.check_sequence_number_reply.sequence_number = readUInt8(bytes, counterObj, 1); + break; + case 0xfe: + decoded.check_order_reply = readOnlyCommand(bytes, counterObj, 1); + break; + case 0xef: + decoded.ans = decoded.ans || []; + var ans_item = {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + // 0:success, 1:unknow, 2:error order, 3:error passwd, 4:error read params, 5:error write params, 6:error read, 7:error write, 8:error read apply, 9:error write apply + ans_item.result = extractBits(bitOptions, 4, 8); + ans_item.length = extractBits(bitOptions, 0, 4); + ans_item.id = readCommand(bytes, counterObj, ans_item.length); + decoded.ans.push(ans_item); + break; + case 0xee: + decoded.all_configurations_request_by_device = readOnlyCommand(bytes, counterObj, 0); + break; + case 0xed: + if (history.length === 0) { + for (var k in decoded) { + if (decoded.hasOwnProperty(k)) { + result[k] = decoded[k]; + } + } + } + decoded = {}; + // skip type + readUInt8(bytes, counterObj, 1); + decoded.timestamp = readUInt32LE(bytes, counterObj, 4); + history.push(decoded); + break; + case 0xcf: + decoded.lorawan_configuration_settings = decoded.lorawan_configuration_settings || {}; + var lorawan_configuration_settings_command = readUInt8(bytes, counterObj, 1); + if (lorawan_configuration_settings_command == 0xd8) { + // 1:1.0.2, 2:1.0.3, 3:1.0.3, 4:1.0.4 + decoded.lorawan_configuration_settings.version = readUInt8(bytes, counterObj, 1); + } + break; + case 0xdf: + decoded.tsl_version = readProtocolVersion(readBytes(bytes, counterObj, 2)); + break; + case 0xde: + decoded.product_name = readString(bytes, counterObj, 32); + break; + case 0xdd: + decoded.product_pn = readString(bytes, counterObj, 32); + break; + case 0xdb: + decoded.product_sn = readHexString(bytes, counterObj, 8); + break; + case 0xda: + decoded.version = decoded.version || {}; + decoded.version.hardware_version = readHardwareVersion(readBytes(bytes, counterObj, 2)); + decoded.version.firmware_version = readFirmwareVersion(readBytes(bytes, counterObj, 6)); + break; + case 0xd9: + decoded.oem_id = readHexString(bytes, counterObj, 2); + break; + case 0xd8: + decoded.product_frequency_band = readString(bytes, counterObj, 16); + break; + case 0xd7: + decoded.device_info = readOnlyCommand(bytes, counterObj, 72); + break; + case 0x01: + decoded.temperature = readInt16LE(bytes, counterObj, 2) / 100; + break; + case 0x02: + decoded.voltage_three_phase_imbalcance = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage_three_phase_imbalcance); + break; + case 0x03: + decoded.thdi = []; + for (var i = 0; i < 12; i++) { + var thdi_item = {}; + thdi_item.value = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.thdi); + decoded.thdi.push(thdi_item); + } + break; + case 0x04: + decoded.thdv = []; + for (var i = 0; i < 3; i++) { + var thdv_item = {}; + thdv_item.value = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.thdv); + decoded.thdv.push(thdv_item); + } + break; + case 0x05: + decoded.current = []; + for (var i = 0; i < 12; i++) { + var current_item = {}; + current_item.value = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + decoded.current.push(current_item); + } + break; + case 0x06: + decoded.voltage = []; + for (var i = 0; i < 3; i++) { + var voltage_item = {}; + voltage_item.value = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + decoded.voltage.push(voltage_item); + } + break; + case 0x07: + decoded.power_factor = decoded.power_factor || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.power_factor.mask1 = extractBits(bitOptions, 0, 1); + decoded.power_factor.mask2 = extractBits(bitOptions, 1, 2); + decoded.power_factor.mask3 = extractBits(bitOptions, 2, 3); + decoded.power_factor.mask4 = extractBits(bitOptions, 3, 4); + if (decoded.power_factor.mask1 == 0x00) { + decoded.power_factor.group1_value = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask1 == 0x01) { + decoded.power_factor.group1 = decoded.power_factor.group1 || {}; + decoded.power_factor.group1.chan1 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group1.chan2 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group1.chan3 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask2 == 0x00) { + decoded.power_factor.group2_value = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask2 == 0x01) { + decoded.power_factor.group2 = decoded.power_factor.group2 || {}; + decoded.power_factor.group2.chan1 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group2.chan2 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group2.chan3 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask3 == 0x00) { + decoded.power_factor.group3_value = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask3 == 0x01) { + decoded.power_factor.group3 = decoded.power_factor.group3 || {}; + decoded.power_factor.group3.chan1 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group3.chan2 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group3.chan3 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask4 == 0x00) { + decoded.power_factor.group4_value = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + if (decoded.power_factor.mask4 == 0x01) { + decoded.power_factor.group4 = decoded.power_factor.group4 || {}; + decoded.power_factor.group4.chan1 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group4.chan2 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + decoded.power_factor.group4.chan3 = readWithErrorCheck(readUInt8(bytes, counterObj, 1) / 100, error_value_map.power_factor); + } + break; + case 0x08: + decoded.active_power1 = decoded.active_power1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.active_power1.mask1 = extractBits(bitOptions, 0, 1); + decoded.active_power1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.active_power1.mask1 == 0x00) { + decoded.active_power1.group1_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + if (decoded.active_power1.mask1 == 0x01) { + decoded.active_power1.group1 = decoded.active_power1.group1 || {}; + decoded.active_power1.group1.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power1.group1.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power1.group1.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + if (decoded.active_power1.mask2 == 0x00) { + decoded.active_power1.group2_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + if (decoded.active_power1.mask2 == 0x01) { + decoded.active_power1.group2 = decoded.active_power1.group2 || {}; + decoded.active_power1.group2.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power1.group2.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power1.group2.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + break; + case 0x09: + decoded.active_power2 = decoded.active_power2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.active_power2.mask1 = extractBits(bitOptions, 0, 1); + decoded.active_power2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.active_power2.mask1 == 0x00) { + decoded.active_power2.group1_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + if (decoded.active_power2.mask1 == 0x01) { + decoded.active_power2.group1 = decoded.active_power2.group1 || {}; + decoded.active_power2.group1.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power2.group1.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power2.group1.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + if (decoded.active_power2.mask2 == 0x00) { + decoded.active_power2.group2_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + if (decoded.active_power2.mask2 == 0x01) { + decoded.active_power2.group2 = decoded.active_power2.group2 || {}; + decoded.active_power2.group2.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power2.group2.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + decoded.active_power2.group2.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.active_power); + } + break; + case 0x0a: + decoded.reactive_power1 = decoded.reactive_power1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.reactive_power1.mask1 = extractBits(bitOptions, 0, 1); + decoded.reactive_power1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.reactive_power1.mask1 == 0x00) { + decoded.reactive_power1.group1_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + if (decoded.reactive_power1.mask1 == 0x01) { + decoded.reactive_power1.group1 = decoded.reactive_power1.group1 || {}; + decoded.reactive_power1.group1.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power1.group1.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power1.group1.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + if (decoded.reactive_power1.mask2 == 0x00) { + decoded.reactive_power1.group2_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + if (decoded.reactive_power1.mask2 == 0x01) { + decoded.reactive_power1.group2 = decoded.reactive_power1.group2 || {}; + decoded.reactive_power1.group2.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power1.group2.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power1.group2.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + break; + case 0x0b: + decoded.reactive_power2 = decoded.reactive_power2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.reactive_power2.mask1 = extractBits(bitOptions, 0, 1); + decoded.reactive_power2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.reactive_power2.mask1 == 0x00) { + decoded.reactive_power2.group1_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + if (decoded.reactive_power2.mask1 == 0x01) { + decoded.reactive_power2.group1 = decoded.reactive_power2.group1 || {}; + decoded.reactive_power2.group1.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power2.group1.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power2.group1.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + if (decoded.reactive_power2.mask2 == 0x00) { + decoded.reactive_power2.group2_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + if (decoded.reactive_power2.mask2 == 0x01) { + decoded.reactive_power2.group2 = decoded.reactive_power2.group2 || {}; + decoded.reactive_power2.group2.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power2.group2.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + decoded.reactive_power2.group2.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reactive_power); + } + break; + case 0x0c: + decoded.apparent_power1 = decoded.apparent_power1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.apparent_power1.mask1 = extractBits(bitOptions, 0, 1); + decoded.apparent_power1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.apparent_power1.mask1 == 0x00) { + decoded.apparent_power1.group1_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + if (decoded.apparent_power1.mask1 == 0x01) { + decoded.apparent_power1.group1 = decoded.apparent_power1.group1 || {}; + decoded.apparent_power1.group1.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power1.group1.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power1.group1.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + if (decoded.apparent_power1.mask2 == 0x00) { + decoded.apparent_power1.group2_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + if (decoded.apparent_power1.mask2 == 0x01) { + decoded.apparent_power1.group2 = decoded.apparent_power1.group2 || {}; + decoded.apparent_power1.group2.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power1.group2.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power1.group2.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + break; + case 0x0d: + decoded.apparent_power2 = decoded.apparent_power2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.apparent_power2.mask1 = extractBits(bitOptions, 0, 1); + decoded.apparent_power2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.apparent_power2.mask1 == 0x00) { + decoded.apparent_power2.group1_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + if (decoded.apparent_power2.mask1 == 0x01) { + decoded.apparent_power2.group1 = decoded.apparent_power2.group1 || {}; + decoded.apparent_power2.group1.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power2.group1.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power2.group1.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + if (decoded.apparent_power2.mask2 == 0x00) { + decoded.apparent_power2.group2_value = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + if (decoded.apparent_power2.mask2 == 0x01) { + decoded.apparent_power2.group2 = decoded.apparent_power2.group2 || {}; + decoded.apparent_power2.group2.chan1 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power2.group2.chan2 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + decoded.apparent_power2.group2.chan3 = readWithErrorCheck(readInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_power); + } + break; + case 0x0e: + decoded.forward_active_energy1 = decoded.forward_active_energy1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.forward_active_energy1.mask1 = extractBits(bitOptions, 0, 1); + decoded.forward_active_energy1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.forward_active_energy1.mask1 == 0x00) { + decoded.forward_active_energy1.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + if (decoded.forward_active_energy1.mask1 == 0x01) { + decoded.forward_active_energy1.group1 = decoded.forward_active_energy1.group1 || {}; + decoded.forward_active_energy1.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy1.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy1.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + if (decoded.forward_active_energy1.mask2 == 0x00) { + decoded.forward_active_energy1.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + if (decoded.forward_active_energy1.mask2 == 0x01) { + decoded.forward_active_energy1.group2 = decoded.forward_active_energy1.group2 || {}; + decoded.forward_active_energy1.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy1.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy1.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + break; + case 0x0f: + decoded.forward_active_energy2 = decoded.forward_active_energy2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.forward_active_energy2.mask1 = extractBits(bitOptions, 0, 1); + decoded.forward_active_energy2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.forward_active_energy2.mask1 == 0x00) { + decoded.forward_active_energy2.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + if (decoded.forward_active_energy2.mask1 == 0x01) { + decoded.forward_active_energy2.group1 = decoded.forward_active_energy2.group1 || {}; + decoded.forward_active_energy2.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy2.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy2.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + if (decoded.forward_active_energy2.mask2 == 0x00) { + decoded.forward_active_energy2.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + if (decoded.forward_active_energy2.mask2 == 0x01) { + decoded.forward_active_energy2.group2 = decoded.forward_active_energy2.group2 || {}; + decoded.forward_active_energy2.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy2.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + decoded.forward_active_energy2.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_active_energy); + } + break; + case 0x10: + decoded.reverse_active_energy1 = decoded.reverse_active_energy1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.reverse_active_energy1.mask1 = extractBits(bitOptions, 0, 1); + decoded.reverse_active_energy1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.reverse_active_energy1.mask1 == 0x00) { + decoded.reverse_active_energy1.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + if (decoded.reverse_active_energy1.mask1 == 0x01) { + decoded.reverse_active_energy1.group1 = decoded.reverse_active_energy1.group1 || {}; + decoded.reverse_active_energy1.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy1.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy1.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + if (decoded.reverse_active_energy1.mask2 == 0x00) { + decoded.reverse_active_energy1.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + if (decoded.reverse_active_energy1.mask2 == 0x01) { + decoded.reverse_active_energy1.group2 = decoded.reverse_active_energy1.group2 || {}; + decoded.reverse_active_energy1.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy1.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy1.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + break; + case 0x11: + decoded.reverse_active_energy2 = decoded.reverse_active_energy2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.reverse_active_energy2.mask1 = extractBits(bitOptions, 0, 1); + decoded.reverse_active_energy2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.reverse_active_energy2.mask1 == 0x00) { + decoded.reverse_active_energy2.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + if (decoded.reverse_active_energy2.mask1 == 0x01) { + decoded.reverse_active_energy2.group1 = decoded.reverse_active_energy2.group1 || {}; + decoded.reverse_active_energy2.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy2.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy2.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + if (decoded.reverse_active_energy2.mask2 == 0x00) { + decoded.reverse_active_energy2.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + if (decoded.reverse_active_energy2.mask2 == 0x01) { + decoded.reverse_active_energy2.group2 = decoded.reverse_active_energy2.group2 || {}; + decoded.reverse_active_energy2.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy2.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + decoded.reverse_active_energy2.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_active_energy); + } + break; + case 0x12: + decoded.forward_reactive_energy1 = decoded.forward_reactive_energy1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.forward_reactive_energy1.mask1 = extractBits(bitOptions, 0, 1); + decoded.forward_reactive_energy1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.forward_reactive_energy1.mask1 == 0x00) { + decoded.forward_reactive_energy1.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + if (decoded.forward_reactive_energy1.mask1 == 0x01) { + decoded.forward_reactive_energy1.group1 = decoded.forward_reactive_energy1.group1 || {}; + decoded.forward_reactive_energy1.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy1.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy1.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + if (decoded.forward_reactive_energy1.mask2 == 0x00) { + decoded.forward_reactive_energy1.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + if (decoded.forward_reactive_energy1.mask2 == 0x01) { + decoded.forward_reactive_energy1.group2 = decoded.forward_reactive_energy1.group2 || {}; + decoded.forward_reactive_energy1.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy1.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy1.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + break; + case 0x13: + decoded.forward_reactive_energy2 = decoded.forward_reactive_energy2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.forward_reactive_energy2.mask1 = extractBits(bitOptions, 0, 1); + decoded.forward_reactive_energy2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.forward_reactive_energy2.mask1 == 0x00) { + decoded.forward_reactive_energy2.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + if (decoded.forward_reactive_energy2.mask1 == 0x01) { + decoded.forward_reactive_energy2.group1 = decoded.forward_reactive_energy2.group1 || {}; + decoded.forward_reactive_energy2.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy2.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy2.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + if (decoded.forward_reactive_energy2.mask2 == 0x00) { + decoded.forward_reactive_energy2.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + if (decoded.forward_reactive_energy2.mask2 == 0x01) { + decoded.forward_reactive_energy2.group2 = decoded.forward_reactive_energy2.group2 || {}; + decoded.forward_reactive_energy2.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy2.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + decoded.forward_reactive_energy2.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.forward_reactive_energy); + } + break; + case 0x14: + decoded.reverse_reactive_energy1 = decoded.reverse_reactive_energy1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.reverse_reactive_energy1.mask1 = extractBits(bitOptions, 0, 1); + decoded.reverse_reactive_energy1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.reverse_reactive_energy1.mask1 == 0x00) { + decoded.reverse_reactive_energy1.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + if (decoded.reverse_reactive_energy1.mask1 == 0x01) { + decoded.reverse_reactive_energy1.group1 = decoded.reverse_reactive_energy1.group1 || {}; + decoded.reverse_reactive_energy1.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy1.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy1.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + if (decoded.reverse_reactive_energy1.mask2 == 0x00) { + decoded.reverse_reactive_energy1.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + if (decoded.reverse_reactive_energy1.mask2 == 0x01) { + decoded.reverse_reactive_energy1.group2 = decoded.reverse_reactive_energy1.group2 || {}; + decoded.reverse_reactive_energy1.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy1.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy1.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + break; + case 0x15: + decoded.reverse_reactive_energy2 = decoded.reverse_reactive_energy2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.reverse_reactive_energy2.mask1 = extractBits(bitOptions, 0, 1); + decoded.reverse_reactive_energy2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.reverse_reactive_energy2.mask1 == 0x00) { + decoded.reverse_reactive_energy2.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + if (decoded.reverse_reactive_energy2.mask1 == 0x01) { + decoded.reverse_reactive_energy2.group1 = decoded.reverse_reactive_energy2.group1 || {}; + decoded.reverse_reactive_energy2.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy2.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy2.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + if (decoded.reverse_reactive_energy2.mask2 == 0x00) { + decoded.reverse_reactive_energy2.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + if (decoded.reverse_reactive_energy2.mask2 == 0x01) { + decoded.reverse_reactive_energy2.group2 = decoded.reverse_reactive_energy2.group2 || {}; + decoded.reverse_reactive_energy2.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy2.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + decoded.reverse_reactive_energy2.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.reverse_reactive_energy); + } + break; + case 0x16: + decoded.apparent_energy1 = decoded.apparent_energy1 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.apparent_energy1.mask1 = extractBits(bitOptions, 0, 1); + decoded.apparent_energy1.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.apparent_energy1.mask1 == 0x00) { + decoded.apparent_energy1.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + if (decoded.apparent_energy1.mask1 == 0x01) { + decoded.apparent_energy1.group1 = decoded.apparent_energy1.group1 || {}; + decoded.apparent_energy1.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy1.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy1.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + if (decoded.apparent_energy1.mask2 == 0x00) { + decoded.apparent_energy1.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + if (decoded.apparent_energy1.mask2 == 0x01) { + decoded.apparent_energy1.group2 = decoded.apparent_energy1.group2 || {}; + decoded.apparent_energy1.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy1.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy1.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + break; + case 0x17: + decoded.apparent_energy2 = decoded.apparent_energy2 || {}; + var bitOptions = readUInt8(bytes, counterObj, 1); + decoded.apparent_energy2.mask1 = extractBits(bitOptions, 0, 1); + decoded.apparent_energy2.mask2 = extractBits(bitOptions, 1, 2); + if (decoded.apparent_energy2.mask1 == 0x00) { + decoded.apparent_energy2.group1_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + if (decoded.apparent_energy2.mask1 == 0x01) { + decoded.apparent_energy2.group1 = decoded.apparent_energy2.group1 || {}; + decoded.apparent_energy2.group1.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy2.group1.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy2.group1.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + if (decoded.apparent_energy2.mask2 == 0x00) { + decoded.apparent_energy2.group2_value = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + if (decoded.apparent_energy2.mask2 == 0x01) { + decoded.apparent_energy2.group2 = decoded.apparent_energy2.group2 || {}; + decoded.apparent_energy2.group2.chan1 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy2.group2.chan2 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + decoded.apparent_energy2.group2.chan3 = readWithErrorCheck(readUInt32LE(bytes, counterObj, 4) / 1000, error_value_map.apparent_energy); + } + break; + case 0x40: + decoded.history_type = decoded.history_type || {}; + // 1:month energy, 2:month min, 3:month max + decoded.history_type.type = readUInt8(bytes, counterObj, 1); + break; + case 0x30: + decoded.event = decoded.event || []; + decoded.temperature_alarm = {}; + decoded.temperature_alarm.type = readUInt8(bytes, counterObj, 1); + if (decoded.temperature_alarm.type == 0x00) { + decoded.temperature_alarm.collection_error = decoded.temperature_alarm.collection_error || {}; + } + if (decoded.temperature_alarm.type == 0x01) { + decoded.temperature_alarm.lower_range_error = decoded.temperature_alarm.lower_range_error || {}; + } + if (decoded.temperature_alarm.type == 0x02) { + decoded.temperature_alarm.over_range_error = decoded.temperature_alarm.over_range_error || {}; + } + if (decoded.temperature_alarm.type == 0x03) { + decoded.temperature_alarm.no_data = decoded.temperature_alarm.no_data || {}; + } + if (decoded.temperature_alarm.type == 0x10) { + decoded.temperature_alarm.lower_range_alarm_deactivation = decoded.temperature_alarm.lower_range_alarm_deactivation || {}; + decoded.temperature_alarm.lower_range_alarm_deactivation.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.lower_range_alarm_deactivation.temperature; + } + if (decoded.temperature_alarm.type == 0x11) { + decoded.temperature_alarm.lower_range_alarm_trigger = decoded.temperature_alarm.lower_range_alarm_trigger || {}; + decoded.temperature_alarm.lower_range_alarm_trigger.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.lower_range_alarm_trigger.temperature; + } + if (decoded.temperature_alarm.type == 0x12) { + decoded.temperature_alarm.over_range_alarm_deactivation = decoded.temperature_alarm.over_range_alarm_deactivation || {}; + decoded.temperature_alarm.over_range_alarm_deactivation.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.over_range_alarm_deactivation.temperature; + } + if (decoded.temperature_alarm.type == 0x13) { + decoded.temperature_alarm.over_range_alarm_trigger = decoded.temperature_alarm.over_range_alarm_trigger || {}; + decoded.temperature_alarm.over_range_alarm_trigger.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.over_range_alarm_trigger.temperature; + } + if (decoded.temperature_alarm.type == 0x14) { + decoded.temperature_alarm.within_range_alarm_deactivation = decoded.temperature_alarm.within_range_alarm_deactivation || {}; + decoded.temperature_alarm.within_range_alarm_deactivation.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.within_range_alarm_deactivation.temperature; + } + if (decoded.temperature_alarm.type == 0x15) { + decoded.temperature_alarm.within_range_alarm_trigger = decoded.temperature_alarm.within_range_alarm_trigger || {}; + decoded.temperature_alarm.within_range_alarm_trigger.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.within_range_alarm_trigger.temperature; + } + if (decoded.temperature_alarm.type == 0x16) { + decoded.temperature_alarm.exceed_range_alarm_deactivation = decoded.temperature_alarm.exceed_range_alarm_deactivation || {}; + decoded.temperature_alarm.exceed_range_alarm_deactivation.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.exceed_range_alarm_deactivation.temperature; + } + if (decoded.temperature_alarm.type == 0x17) { + decoded.temperature_alarm.exceed_range_alarm_trigger = decoded.temperature_alarm.exceed_range_alarm_trigger || {}; + decoded.temperature_alarm.exceed_range_alarm_trigger.temperature = readWithErrorCheck(readInt16LE(bytes, counterObj, 2) / 100, error_value_map.temperature); + // decoded.temperature = decoded.temperature_alarm.exceed_range_alarm_trigger.temperature; + } + decoded.event.push(decoded.temperature_alarm); + break; + case 0x31: + decoded.event = decoded.event || []; + decoded.current_alarm = {}; + decoded.current_alarm.channel = readUInt8(bytes, counterObj, 1); + decoded.current_alarm.info = decoded.current_alarm.info || {}; + decoded.current_alarm.info.type = readUInt8(bytes, counterObj, 1); + if (decoded.current_alarm.info.type == 0x00) { + decoded.current_alarm.info.collection_error = decoded.current_alarm.info.collection_error || {}; + } + if (decoded.current_alarm.info.type == 0x01) { + decoded.current_alarm.info.lower_range_error = decoded.current_alarm.info.lower_range_error || {}; + decoded.current_alarm.info.lower_range_error.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.lower_range_error.current; + } + if (decoded.current_alarm.info.type == 0x02) { + decoded.current_alarm.info.over_range_error = decoded.current_alarm.info.over_range_error || {}; + decoded.current_alarm.info.over_range_error.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.over_range_error.current; + } + if (decoded.current_alarm.info.type == 0x03) { + decoded.current_alarm.info.no_data = decoded.current_alarm.info.no_data || {}; + } + if (decoded.current_alarm.info.type == 0x04) { + decoded.current_alarm.info.over_range_release = decoded.current_alarm.info.over_range_release || {}; + decoded.current_alarm.info.over_range_release.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.over_range_release.current; + } + if (decoded.current_alarm.info.type == 0x10) { + decoded.current_alarm.info.lower_range_alarm_deactivation = decoded.current_alarm.info.lower_range_alarm_deactivation || {}; + decoded.current_alarm.info.lower_range_alarm_deactivation.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.lower_range_alarm_deactivation.current; + } + if (decoded.current_alarm.info.type == 0x11) { + decoded.current_alarm.info.lower_range_alarm_trigger = decoded.current_alarm.info.lower_range_alarm_trigger || {}; + decoded.current_alarm.info.lower_range_alarm_trigger.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.lower_range_alarm_trigger.current; + } + if (decoded.current_alarm.info.type == 0x12) { + decoded.current_alarm.info.over_range_alarm_deactivation = decoded.current_alarm.info.over_range_alarm_deactivation || {}; + decoded.current_alarm.info.over_range_alarm_deactivation.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.over_range_alarm_deactivation.current; + } + if (decoded.current_alarm.info.type == 0x13) { + decoded.current_alarm.info.over_range_alarm_trigger = decoded.current_alarm.info.over_range_alarm_trigger || {}; + decoded.current_alarm.info.over_range_alarm_trigger.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.over_range_alarm_trigger.current; + } + if (decoded.current_alarm.info.type == 0x14) { + decoded.current_alarm.info.within_range_alarm_deactivation = decoded.current_alarm.info.within_range_alarm_deactivation || {}; + decoded.current_alarm.info.within_range_alarm_deactivation.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.within_range_alarm_deactivation.current; + } + if (decoded.current_alarm.info.type == 0x15) { + decoded.current_alarm.info.within_range_alarm_trigger = decoded.current_alarm.info.within_range_alarm_trigger || {}; + decoded.current_alarm.info.within_range_alarm_trigger.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.within_range_alarm_trigger.current; + } + if (decoded.current_alarm.info.type == 0x16) { + decoded.current_alarm.info.exceed_range_alarm_deactivation = decoded.current_alarm.info.exceed_range_alarm_deactivation || {}; + decoded.current_alarm.info.exceed_range_alarm_deactivation.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.exceed_range_alarm_deactivation.current; + } + if (decoded.current_alarm.info.type == 0x17) { + decoded.current_alarm.info.exceed_range_alarm_trigger = decoded.current_alarm.info.exceed_range_alarm_trigger || {}; + decoded.current_alarm.info.exceed_range_alarm_trigger.current = readWithErrorCheck(readUInt24LE(bytes, counterObj, 3) / 100, error_value_map.current); + // decoded.current = decoded.current_alarm.info.exceed_range_alarm_trigger.current; + } + decoded.event.push(decoded.current_alarm); + break; + case 0x32: + decoded.event = decoded.event || []; + decoded.voltage_alarm = {}; + decoded.voltage_alarm.channel = readUInt8(bytes, counterObj, 1); + decoded.voltage_alarm.info = decoded.voltage_alarm.info || {}; + decoded.voltage_alarm.info.type = readUInt8(bytes, counterObj, 1); + if (decoded.voltage_alarm.info.type == 0x00) { + decoded.voltage_alarm.info.collection_error = decoded.voltage_alarm.info.collection_error || {}; + } + if (decoded.voltage_alarm.info.type == 0x01) { + decoded.voltage_alarm.info.lower_range_error = decoded.voltage_alarm.info.lower_range_error || {}; + decoded.voltage_alarm.info.lower_range_error.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.lower_range_error.voltage; + } + if (decoded.voltage_alarm.info.type == 0x02) { + decoded.voltage_alarm.info.over_range_error = decoded.voltage_alarm.info.over_range_error || {}; + decoded.voltage_alarm.info.over_range_error.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.over_range_error.voltage; + } + if (decoded.voltage_alarm.info.type == 0x03) { + decoded.voltage_alarm.info.no_data = decoded.voltage_alarm.info.no_data || {}; + } + if (decoded.voltage_alarm.info.type == 0x04) { + decoded.voltage_alarm.info.over_range_release = decoded.voltage_alarm.info.over_range_release || {}; + decoded.voltage_alarm.info.over_range_release.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.over_range_release.voltage; + } + if (decoded.voltage_alarm.info.type == 0x10) { + decoded.voltage_alarm.info.lower_range_alarm_deactivation = decoded.voltage_alarm.info.lower_range_alarm_deactivation || {}; + decoded.voltage_alarm.info.lower_range_alarm_deactivation.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.lower_range_alarm_deactivation.voltage; + } + if (decoded.voltage_alarm.info.type == 0x11) { + decoded.voltage_alarm.info.lower_range_alarm_trigger = decoded.voltage_alarm.info.lower_range_alarm_trigger || {}; + decoded.voltage_alarm.info.lower_range_alarm_trigger.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.lower_range_alarm_trigger.voltage; + } + if (decoded.voltage_alarm.info.type == 0x12) { + decoded.voltage_alarm.info.over_range_alarm_deactivation = decoded.voltage_alarm.info.over_range_alarm_deactivation || {}; + decoded.voltage_alarm.info.over_range_alarm_deactivation.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.over_range_alarm_deactivation.voltage; + } + if (decoded.voltage_alarm.info.type == 0x13) { + decoded.voltage_alarm.info.over_range_alarm_trigger = decoded.voltage_alarm.info.over_range_alarm_trigger || {}; + decoded.voltage_alarm.info.over_range_alarm_trigger.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.over_range_alarm_trigger.voltage; + } + if (decoded.voltage_alarm.info.type == 0x14) { + decoded.voltage_alarm.info.within_range_alarm_deactivation = decoded.voltage_alarm.info.within_range_alarm_deactivation || {}; + decoded.voltage_alarm.info.within_range_alarm_deactivation.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.within_range_alarm_deactivation.voltage; + } + if (decoded.voltage_alarm.info.type == 0x15) { + decoded.voltage_alarm.info.within_range_alarm_trigger = decoded.voltage_alarm.info.within_range_alarm_trigger || {}; + decoded.voltage_alarm.info.within_range_alarm_trigger.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.within_range_alarm_trigger.voltage; + } + if (decoded.voltage_alarm.info.type == 0x16) { + decoded.voltage_alarm.info.exceed_range_alarm_deactivation = decoded.voltage_alarm.info.exceed_range_alarm_deactivation || {}; + decoded.voltage_alarm.info.exceed_range_alarm_deactivation.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.exceed_range_alarm_deactivation.voltage; + } + if (decoded.voltage_alarm.info.type == 0x17) { + decoded.voltage_alarm.info.exceed_range_alarm_trigger = decoded.voltage_alarm.info.exceed_range_alarm_trigger || {}; + decoded.voltage_alarm.info.exceed_range_alarm_trigger.voltage = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage); + // decoded.voltage = decoded.voltage_alarm.info.exceed_range_alarm_trigger.voltage; + } + decoded.event.push(decoded.voltage_alarm); + break; + case 0x33: + decoded.event = decoded.event || []; + decoded.thdi_alarm = {}; + decoded.thdi_alarm.channel = readUInt8(bytes, counterObj, 1); + decoded.thdi_alarm.info = decoded.thdi_alarm.info || {}; + decoded.thdi_alarm.info.type = readUInt8(bytes, counterObj, 1); + if (decoded.thdi_alarm.info.type == 0x00) { + decoded.thdi_alarm.info.collection_error = decoded.thdi_alarm.info.collection_error || {}; + } + if (decoded.thdi_alarm.info.type == 0x12) { + decoded.thdi_alarm.info.over_range_alarm_deactivation = decoded.thdi_alarm.info.over_range_alarm_deactivation || {}; + decoded.thdi_alarm.info.over_range_alarm_deactivation.thdi = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.thdi); + // decoded.thdi = decoded.thdi_alarm.info.over_range_alarm_deactivation.thdi; + } + if (decoded.thdi_alarm.info.type == 0x13) { + decoded.thdi_alarm.info.over_range_alarm_trigger = decoded.thdi_alarm.info.over_range_alarm_trigger || {}; + decoded.thdi_alarm.info.over_range_alarm_trigger.thdi = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.thdi); + // decoded.thdi = decoded.thdi_alarm.info.over_range_alarm_trigger.thdi; + } + decoded.event.push(decoded.thdi_alarm); + break; + case 0x34: + decoded.event = decoded.event || []; + decoded.thdv_alarm = {}; + decoded.thdv_alarm.channel = readUInt8(bytes, counterObj, 1); + decoded.thdv_alarm.info = decoded.thdv_alarm.info || {}; + decoded.thdv_alarm.info.type = readUInt8(bytes, counterObj, 1); + if (decoded.thdv_alarm.info.type == 0x00) { + decoded.thdv_alarm.info.collection_error = decoded.thdv_alarm.info.collection_error || {}; + } + if (decoded.thdv_alarm.info.type == 0x12) { + decoded.thdv_alarm.info.over_range_alarm_deactivation = decoded.thdv_alarm.info.over_range_alarm_deactivation || {}; + decoded.thdv_alarm.info.over_range_alarm_deactivation.thdv = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.thdv); + // decoded.thdv = decoded.thdv_alarm.info.over_range_alarm_deactivation.thdv; + } + if (decoded.thdv_alarm.info.type == 0x13) { + decoded.thdv_alarm.info.over_range_alarm_trigger = decoded.thdv_alarm.info.over_range_alarm_trigger || {}; + decoded.thdv_alarm.info.over_range_alarm_trigger.thdv = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.thdv); + // decoded.thdv = decoded.thdv_alarm.info.over_range_alarm_trigger.thdv; + } + decoded.event.push(decoded.thdv_alarm); + break; + case 0x35: + decoded.event = decoded.event || []; + decoded.voltage_unbalance_alarm = {}; + decoded.voltage_unbalance_alarm.type = readUInt8(bytes, counterObj, 1); + if (decoded.voltage_unbalance_alarm.type == 0x00) { + decoded.voltage_unbalance_alarm.collection_error = decoded.voltage_unbalance_alarm.collection_error || {}; + } + if (decoded.voltage_unbalance_alarm.type == 0x12) { + decoded.voltage_unbalance_alarm.over_range_alarm_deactivation = decoded.voltage_unbalance_alarm.over_range_alarm_deactivation || {}; + decoded.voltage_unbalance_alarm.over_range_alarm_deactivation.voltage_unbalance = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage_unbalance); + // decoded.voltage_three_phase_imbalcance = decoded.voltage_unbalance_alarm.over_range_alarm_deactivation.voltage_unbalance; + } + if (decoded.voltage_unbalance_alarm.type == 0x13) { + decoded.voltage_unbalance_alarm.over_range_alarm_trigger = decoded.voltage_unbalance_alarm.over_range_alarm_trigger || {}; + decoded.voltage_unbalance_alarm.over_range_alarm_trigger.voltage_unbalance = readWithErrorCheck(readUInt16LE(bytes, counterObj, 2) / 100, error_value_map.voltage_unbalance); + // decoded.voltage_three_phase_imbalcance = decoded.voltage_unbalance_alarm.over_range_alarm_trigger.voltage_unbalance; + } + decoded.event.push(decoded.voltage_unbalance_alarm); + break; + case 0x36: + decoded.power_loss_alarm = readOnlyCommand(bytes, counterObj, 0); + break; + case 0x60: + decoded.collection_interval = decoded.collection_interval || {}; + // 0:second, 1:min + decoded.collection_interval.unit = readUInt8(bytes, counterObj, 1); + if (decoded.collection_interval.unit == 0x00) { + decoded.collection_interval.seconds_of_time = readUInt16LE(bytes, counterObj, 2); + } + if (decoded.collection_interval.unit == 0x01) { + decoded.collection_interval.minutes_of_time = readUInt16LE(bytes, counterObj, 2); + } + break; + case 0x61: + decoded.reporting_interval = decoded.reporting_interval || {}; + // 0:second, 1:min + decoded.reporting_interval.unit = readUInt8(bytes, counterObj, 1); + if (decoded.reporting_interval.unit == 0x00) { + decoded.reporting_interval.seconds_of_time = readUInt16LE(bytes, counterObj, 2); + } + if (decoded.reporting_interval.unit == 0x01) { + decoded.reporting_interval.minutes_of_time = readUInt16LE(bytes, counterObj, 2); + } + break; + case 0xc8: + // 0:Power Off, 1:Power On + decoded.device_status = readUInt8(bytes, counterObj, 1); + break; + case 0x63: + // 0:℃, 1:℉ + decoded.temperature_unit = readUInt8(bytes, counterObj, 1); + break; + case 0x64: + decoded.bluetooth_name = decoded.bluetooth_name || {}; + decoded.bluetooth_name.length = readUInt8(bytes, counterObj, 1); + decoded.bluetooth_name.content = readString(bytes, counterObj, decoded.bluetooth_name.length); + break; + case 0xc5: + decoded.data_storage_settings = decoded.data_storage_settings || {}; + var data_storage_settings_command = readUInt8(bytes, counterObj, 1); + if (data_storage_settings_command == 0x00) { + // 0:disable, 1:enable + decoded.data_storage_settings.enable = readUInt8(bytes, counterObj, 1); + } + if (data_storage_settings_command == 0x01) { + // 0:disable, 1:enable + decoded.data_storage_settings.retransmission_enable = readUInt8(bytes, counterObj, 1); + } + if (data_storage_settings_command == 0x02) { + decoded.data_storage_settings.retransmission_interval = readUInt16LE(bytes, counterObj, 2); + } + if (data_storage_settings_command == 0x03) { + decoded.data_storage_settings.retrieval_interval = readUInt16LE(bytes, counterObj, 2); + } + break; + case 0x66: + // 0:four_wire, 1:three_wire + decoded.voltage_interface = readUInt8(bytes, counterObj, 1); + break; + case 0x67: + decoded.current_interface1 = decoded.current_interface1 || {}; + // 0:one_phase, 1:three_phase + decoded.current_interface1.type = readUInt8(bytes, counterObj, 1); + decoded.current_interface1.config = []; + for (var i = 0; i < 3; i++) { + var config_item = {}; + // 0:forward, 1:reserse + config_item.direction = readUInt8(bytes, counterObj, 1); + config_item.range = readUInt16LE(bytes, counterObj, 2); + decoded.current_interface1.config.push(config_item); + } + break; + case 0x68: + decoded.current_interface2 = decoded.current_interface2 || {}; + // 0:one_phase, 1:three_phase + decoded.current_interface2.type = readUInt8(bytes, counterObj, 1); + decoded.current_interface2.config = []; + for (var i = 0; i < 3; i++) { + var config_item = {}; + // 0:forward, 1:reserse + config_item.direction = readUInt8(bytes, counterObj, 1); + config_item.range = readUInt16LE(bytes, counterObj, 2); + decoded.current_interface2.config.push(config_item); + } + break; + case 0x69: + decoded.current_interface3 = decoded.current_interface3 || {}; + // 0:one_phase, 1:three_phase + decoded.current_interface3.type = readUInt8(bytes, counterObj, 1); + decoded.current_interface3.config = []; + for (var i = 0; i < 3; i++) { + var config_item = {}; + // 0:forward, 1:reserse + config_item.direction = readUInt8(bytes, counterObj, 1); + config_item.range = readUInt16LE(bytes, counterObj, 2); + decoded.current_interface3.config.push(config_item); + } + break; + case 0x6a: + decoded.current_interface4 = decoded.current_interface4 || {}; + // 0:one_phase, 1:three_phase + decoded.current_interface4.type = readUInt8(bytes, counterObj, 1); + decoded.current_interface4.config = []; + for (var i = 0; i < 3; i++) { + var config_item = {}; + // 0:forward, 1:reserse + config_item.direction = readUInt8(bytes, counterObj, 1); + config_item.range = readUInt16LE(bytes, counterObj, 2); + decoded.current_interface4.config.push(config_item); + } + break; + case 0x6b: + decoded.temperature_calibration_settings = decoded.temperature_calibration_settings || {}; + // 0:disable, 1:enable + decoded.temperature_calibration_settings.enable = readUInt8(bytes, counterObj, 1); + decoded.temperature_calibration_settings.calibration_value = readInt16LE(bytes, counterObj, 2) / 100; + break; + case 0xc7: + decoded.time_zone = readInt16LE(bytes, counterObj, 2); + break; + case 0xc6: + decoded.daylight_saving_time = decoded.daylight_saving_time || {}; + // 0:disable, 1:enable + decoded.daylight_saving_time.enable = readUInt8(bytes, counterObj, 1); + decoded.daylight_saving_time.daylight_saving_time_offset = readUInt8(bytes, counterObj, 1); + // 1:Jan., 2:Feb., 3:Mar., 4:Apr., 5:May, 6:Jun., 7:Jul., 8:Aug., 9:Sep., 10:Oct., 11:Nov., 12:Dec. + decoded.daylight_saving_time.start_month = readUInt8(bytes, counterObj, 1); + var bitOptions = readUInt8(bytes, counterObj, 1); + // 1:1st, 2: 2nd, 3: 3rd, 4: 4th, 5: last + decoded.daylight_saving_time.start_week_num = extractBits(bitOptions, 4, 8); + // 1:Mon., 2:Tues., 3:Wed., 4:Thurs., 5:Fri., 6:Sat., 7:Sun. + decoded.daylight_saving_time.start_week_day = extractBits(bitOptions, 0, 4); + decoded.daylight_saving_time.start_hour_min = readUInt16LE(bytes, counterObj, 2); + // 1:Jan., 2:Feb., 3:Mar., 4:Apr., 5:May, 6:Jun., 7:Jul., 8:Aug., 9:Sep., 10:Oct., 11:Nov., 12:Dec. + decoded.daylight_saving_time.end_month = readUInt8(bytes, counterObj, 1); + var bitOptions = readUInt8(bytes, counterObj, 1); + // 1:1st, 2: 2nd, 3: 3rd, 4: 4th, 5: last + decoded.daylight_saving_time.end_week_num = extractBits(bitOptions, 4, 8); + // 1:Mon., 2:Tues., 3:Wed., 4:Thurs., 5:Fri., 6:Sat., 7:Sun. + decoded.daylight_saving_time.end_week_day = extractBits(bitOptions, 0, 4); + decoded.daylight_saving_time.end_hour_min = readUInt16LE(bytes, counterObj, 2); + break; + case 0x76: + decoded.temperature_alarm_settings = decoded.temperature_alarm_settings || {}; + // 0:disable, 1:enable + decoded.temperature_alarm_settings.enable = readUInt8(bytes, counterObj, 1); + // 0:disable, 1:condition: xB, 3:condition: A≤x≤B, 4:condition: xB + decoded.temperature_alarm_settings.threshold_condition = readUInt8(bytes, counterObj, 1); + decoded.temperature_alarm_settings.threshold_min = readInt16LE(bytes, counterObj, 2) / 100; + decoded.temperature_alarm_settings.threshold_max = readInt16LE(bytes, counterObj, 2) / 100; + break; + case 0x77: + decoded.current_alarm_settings = decoded.current_alarm_settings || []; + var channel = readUInt8(bytes, counterObj, 1); + var current_alarm_settings_item = pickArrayItem(decoded.current_alarm_settings, channel, 'channel'); + current_alarm_settings_item.channel = channel; + insertArrayItem(decoded.current_alarm_settings, current_alarm_settings_item, 'channel'); + // 0:disable, 1:enable + current_alarm_settings_item.enable = readUInt8(bytes, counterObj, 1); + // 0:disable, 1:condition: xB, 3:condition: A≤x≤B, 4:condition: xB + current_alarm_settings_item.threshold_condition = readUInt8(bytes, counterObj, 1); + current_alarm_settings_item.threshold_min = readInt16LE(bytes, counterObj, 2); + current_alarm_settings_item.threshold_max = readInt16LE(bytes, counterObj, 2); + break; + case 0x78: + decoded.voltage_alarm_settings = decoded.voltage_alarm_settings || []; + var channel = readUInt8(bytes, counterObj, 1); + var voltage_alarm_settings_item = pickArrayItem(decoded.voltage_alarm_settings, channel, 'channel'); + voltage_alarm_settings_item.channel = channel; + insertArrayItem(decoded.voltage_alarm_settings, voltage_alarm_settings_item, 'channel'); + // 0:disable, 1:enable + voltage_alarm_settings_item.enable = readUInt8(bytes, counterObj, 1); + // 0:disable, 1:condition: xB, 3:condition: A≤x≤B, 4:condition: xB + voltage_alarm_settings_item.threshold_condition = readUInt8(bytes, counterObj, 1); + voltage_alarm_settings_item.threshold_min = readInt16LE(bytes, counterObj, 2); + voltage_alarm_settings_item.threshold_max = readInt16LE(bytes, counterObj, 2); + break; + case 0x79: + decoded.thdi_alarm_settings = decoded.thdi_alarm_settings || []; + var channel = readUInt8(bytes, counterObj, 1); + var thdi_alarm_settings_item = pickArrayItem(decoded.thdi_alarm_settings, channel, 'channel'); + thdi_alarm_settings_item.channel = channel; + insertArrayItem(decoded.thdi_alarm_settings, thdi_alarm_settings_item, 'channel'); + // 0:disable, 1:enable + thdi_alarm_settings_item.enable = readUInt8(bytes, counterObj, 1); + // 0:disable, 2:condition: x>B + thdi_alarm_settings_item.threshold_condition = readUInt8(bytes, counterObj, 1); + thdi_alarm_settings_item.threshold_min = readInt16LE(bytes, counterObj, 2); + thdi_alarm_settings_item.threshold_max = readInt16LE(bytes, counterObj, 2); + break; + case 0x7a: + decoded.thdv_alarm_settings = decoded.thdv_alarm_settings || []; + var channel = readUInt8(bytes, counterObj, 1); + var thdv_alarm_settings_item = pickArrayItem(decoded.thdv_alarm_settings, channel, 'channel'); + thdv_alarm_settings_item.channel = channel; + insertArrayItem(decoded.thdv_alarm_settings, thdv_alarm_settings_item, 'channel'); + // 0:disable, 1:enable + thdv_alarm_settings_item.enable = readUInt8(bytes, counterObj, 1); + // 0:disable, 2:condition: x>B + thdv_alarm_settings_item.threshold_condition = readUInt8(bytes, counterObj, 1); + thdv_alarm_settings_item.threshold_min = readInt16LE(bytes, counterObj, 2); + thdv_alarm_settings_item.threshold_max = readInt16LE(bytes, counterObj, 2); + break; + case 0x7b: + decoded.voltage_unbalance_alarm_settings = decoded.voltage_unbalance_alarm_settings || {}; + // 0:disable, 1:enable + decoded.voltage_unbalance_alarm_settings.enable = readUInt8(bytes, counterObj, 1); + // 0:disable, 2:condition: x>B + decoded.voltage_unbalance_alarm_settings.threshold_condition = readUInt8(bytes, counterObj, 1); + decoded.voltage_unbalance_alarm_settings.threshold_min = readInt16LE(bytes, counterObj, 2); + decoded.voltage_unbalance_alarm_settings.threshold_max = readInt16LE(bytes, counterObj, 2); + break; + case 0x7c: + decoded.alarm_global_settings = decoded.alarm_global_settings || {}; + decoded.alarm_global_settings.interval = readUInt16LE(bytes, counterObj, 2); + decoded.alarm_global_settings.times = readUInt16LE(bytes, counterObj, 2); + // 0:disable, 1:enable + decoded.alarm_global_settings.release_enable = readUInt8(bytes, counterObj, 1); + break; + case 0x6d: + decoded.month_statistics_settings = decoded.month_statistics_settings || {}; + decoded.month_statistics_settings.day = readUInt8(bytes, counterObj, 1); + decoded.month_statistics_settings.hour = readUInt8(bytes, counterObj, 1); + decoded.month_statistics_settings.minute = readUInt8(bytes, counterObj, 1); + break; + case 0x6c: + decoded.report_enable = decoded.report_enable || {}; + var bitOptions = readUInt16LE(bytes, counterObj, 2); + decoded.report_enable.temperature = extractBits(bitOptions, 0, 1); + decoded.report_enable.current = extractBits(bitOptions, 1, 2); + decoded.report_enable.voltage = extractBits(bitOptions, 2, 3); + decoded.report_enable.power_factor = extractBits(bitOptions, 3, 4); + decoded.report_enable.active_power = extractBits(bitOptions, 4, 5); + decoded.report_enable.reactive_power = extractBits(bitOptions, 5, 6); + decoded.report_enable.apparent_power = extractBits(bitOptions, 6, 7); + decoded.report_enable.forward_active_energy = extractBits(bitOptions, 7, 8); + decoded.report_enable.reverse_active_energy = extractBits(bitOptions, 8, 9); + decoded.report_enable.forward_reactive_energy = extractBits(bitOptions, 9, 10); + decoded.report_enable.reverse_reactive_energy = extractBits(bitOptions, 10, 11); + decoded.report_enable.apparent_energy = extractBits(bitOptions, 11, 12); + decoded.report_enable.thdi = extractBits(bitOptions, 12, 13); + decoded.report_enable.thdv = extractBits(bitOptions, 13, 14); + decoded.report_enable.voltage_unbalance = extractBits(bitOptions, 14, 15); + break; + case 0xbf: + decoded.reset = readOnlyCommand(bytes, counterObj, 0); + break; + case 0xbe: + decoded.reboot = readOnlyCommand(bytes, counterObj, 0); + break; + case 0x5d: + decoded.stop_historical_data_retrieval = decoded.stop_historical_data_retrieval || {}; + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + decoded.stop_historical_data_retrieval.type = readUInt8(bytes, counterObj, 1); + break; + case 0x5b: + decoded.retrieve_historical_data_by_time = decoded.retrieve_historical_data_by_time || {}; + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + decoded.retrieve_historical_data_by_time.type = readUInt8(bytes, counterObj, 1); + decoded.retrieve_historical_data_by_time.time = readUInt32LE(bytes, counterObj, 4); + break; + case 0x5c: + decoded.retrieve_historical_data_by_time_range = decoded.retrieve_historical_data_by_time_range || {}; + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + decoded.retrieve_historical_data_by_time_range.type = readUInt8(bytes, counterObj, 1); + decoded.retrieve_historical_data_by_time_range.start_time = readUInt32LE(bytes, counterObj, 4); + decoded.retrieve_historical_data_by_time_range.end_time = readUInt32LE(bytes, counterObj, 4); + break; + case 0xb9: + decoded.query_device_status = readOnlyCommand(bytes, counterObj, 0); + break; + case 0xb8: + decoded.synchronize_time = readOnlyCommand(bytes, counterObj, 0); + break; + case 0xb7: + decoded.set_time = decoded.set_time || {}; + decoded.set_time.timestamp = readUInt32LE(bytes, counterObj, 4); + break; + case 0xb6: + decoded.reconnect = readOnlyCommand(bytes, counterObj, 0); + break; + case 0x5f: + decoded.reset_energy = decoded.reset_energy || {}; + decoded.reset_energy.channel = readUInt8(bytes, counterObj, 1); + break; + case 0x5e: + decoded.clear_data = decoded.clear_data || {}; + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + decoded.clear_data.type = readUInt8(bytes, counterObj, 1); + break; + case 0x57: + decoded.query_history_set = readOnlyCommand(bytes, counterObj, 0); + break; + } + if (unknown_command) { + throw new Error('unknown command: ' + command_id); + } + } + + if (Object.keys(history).length > 0) { + result.history = history; + } else { + for (var k2 in decoded) { + if (decoded.hasOwnProperty(k2)) { + result[k2] = decoded[k2]; + } + } + } + + return result; +} + +function readOnlyCommand(bytes) { + return 1; +} + +function readUnknownDataType(allBytes, counterObj, end) { + throw new Error('Unknown data type encountered. Please Contact Developer.'); +} + +function readBytes(allBytes, counterObj, end) { + var bytes = allBytes.slice(counterObj.i, counterObj.i + end); + counterObj.i += end; + return bytes; +} + +function readProtocolVersion(bytes) { + var major = bytes[0] & 0xff; + var minor = bytes[1] & 0xff; + return 'v' + major + '.' + minor; +} + +function readHardwareVersion(bytes) { + var major = bytes[0] & 0xff; + var minor = bytes[1] & 0xff; + return 'v' + major + '.' + minor; +} + +function readFirmwareVersion(bytes) { + var major = bytes[0] & 0xff; + var minor = bytes[1] & 0xff; + var release = bytes[2] & 0xff; + var alpha = bytes[3] & 0xff; + var unit_test = bytes[4] & 0xff; + var test = bytes[5] & 0xff; + + var version = 'v' + major + '.' + minor; + if (release !== 0) version += '-r' + release; + if (alpha !== 0) version += '-a' + alpha; + if (unit_test !== 0) version += '-u' + unit_test; + if (test !== 0) version += '-t' + test; + return version; +} + +/* eslint-disable */ +function readUInt8(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); + return bytes[0] & 0xff; +} + +function readInt8(allBytes, counterObj, end) { + var ref = readUInt8(allBytes, counterObj, end); + return ref > 0x7f ? ref - 0x100 : ref; +} + +function readUInt16LE(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); + var value = (bytes[1] << 8) + bytes[0]; + return value & 0xffff; +} + +function readInt16LE(allBytes, counterObj, end) { + var ref = readUInt16LE(allBytes, counterObj, end); + return ref > 0x7fff ? ref - 0x10000 : ref; +} + +function readWithErrorCheck(value, errorValue) { + if (value == errorValue) { + return 'error'; + } + return value; +} + +function readUInt24LE(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); // 3 bytes expected + var value = (bytes[2] << 16) + (bytes[1] << 8) + bytes[0]; + return value & 0xffffff; +} + +function readInt24LE(allBytes, counterObj, end) { + var ref = readUInt24LE(allBytes, counterObj, end); + return ref > 0x7fffff ? ref - 0x1000000 : ref; +} + +function readUInt32LE(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); + var value = (bytes[3] << 24) + (bytes[2] << 16) + (bytes[1] << 8) + bytes[0]; + return (value & 0xffffffff) >>> 0; +} + +function readInt32LE(allBytes, counterObj, end) { + var ref = readUInt32LE(allBytes, counterObj, end); + return ref > 0x7fffffff ? ref - 0x100000000 : ref; +} + +function readFloat16LE(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); + var bits = (bytes[1] << 8) | bytes[0]; + var sign = bits >>> 15 === 0 ? 1.0 : -1.0; + var e = (bits >>> 10) & 0x1f; + var m = e === 0 ? (bits & 0x3ff) << 1 : (bits & 0x3ff) | 0x400; + var f = sign * m * Math.pow(2, e - 25); + + var n = Number(f.toFixed(2)); + return n; +} + +function readFloatLE(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); + var bits = (bytes[3] << 24) | (bytes[2] << 16) | (bytes[1] << 8) | bytes[0]; + var sign = bits >>> 31 === 0 ? 1.0 : -1.0; + var e = (bits >>> 23) & 0xff; + var m = e === 0 ? (bits & 0x7fffff) << 1 : (bits & 0x7fffff) | 0x800000; + var f = sign * m * Math.pow(2, e - 150); + return f; +} + +function readString(allBytes, counterObj, end) { + var str = ""; + var bytes = readBytes(allBytes, counterObj, end); + var i = 0; + var byte1, byte2, byte3, byte4; + while (i < bytes.length) { + byte1 = bytes[i++]; + if (byte1 <= 0x7f) { + str += String.fromCharCode(byte1); + } else if (byte1 <= 0xdf) { + byte2 = bytes[i++]; + str += String.fromCharCode(((byte1 & 0x1f) << 6) | (byte2 & 0x3f)); + } else if (byte1 <= 0xef) { + byte2 = bytes[i++]; + byte3 = bytes[i++]; + str += String.fromCharCode(((byte1 & 0x0f) << 12) | ((byte2 & 0x3f) << 6) | (byte3 & 0x3f)); + } else if (byte1 <= 0xf7) { + byte2 = bytes[i++]; + byte3 = bytes[i++]; + byte4 = bytes[i++]; + var codepoint = ((byte1 & 0x07) << 18) | ((byte2 & 0x3f) << 12) | ((byte3 & 0x3f) << 6) | (byte4 & 0x3f); + codepoint -= 0x10000; + str += String.fromCharCode((codepoint >> 10) + 0xd800); + str += String.fromCharCode((codepoint & 0x3ff) + 0xdc00); + } + } + return str.replace(/\u0000+$/g, ''); +} + +function readHexString(allBytes, counterObj, end) { + var temp = []; + var bytes = readBytes(allBytes, counterObj, end); + for (var idx = 0; idx < bytes.length; idx++) { + temp.push(("0" + (bytes[idx] & 0xff).toString(16)).slice(-2)); + } + return temp.join("").replace(/\u0000+$/g, ''); +} + +function readHexStringLE(allBytes, counterObj, end) { + var temp = []; + var bytes = readBytes(allBytes, counterObj, end); + for (var idx = bytes.length - 1; idx >= 0; idx--) { + temp.push(("0" + (bytes[idx] & 0xff).toString(16)).slice(-2)); + } + return temp.join("").replace(/\u0000+$/g, ''); +} + +function extractBits(byte, startBit, endBit) { + if (byte < 0 || byte > 0xffff) { + throw new Error("byte must be in range 0..65535"); + } + if (startBit >= endBit) { + throw new Error("invalid bit range"); + } + + var width = endBit - startBit; + var mask = (1 << width) - 1; + return (byte >>> startBit) & mask; +} + +function pickArrayItem(array, index, idName) { + for (var i = 0; i < array.length; i++) { + if (array[i][idName] === index) { + return array[i]; + } + } + + return {}; +} + +function insertArrayItem(array, item, idName) { + for (var i = 0; i < array.length; i++) { + if (array[i][idName] === item[idName]) { + array[i] = item; + return; + } + } + array.push(item); +} + +function readCommand(allBytes, counterObj, end) { + var bytes = readBytes(allBytes, counterObj, end); + var cmd = bytes + .map(function(b) { + var hex = b.toString(16); + return hex.length === 1 ? '0' + hex : hex; + }) + .join('') + .toLowerCase(); + + var map = cmdMap(); + for (var key in map) { + var xxs = []; + var isMatch = false; + if (key.length !== cmd.length) { + continue; + } + for (var i = 0; i < key.length; i += 2) { + var hexString = key.slice(i, i + 2); + var cmdString = cmd.slice(i, i + 2); + if (hexString === cmdString || hexString === 'xx') { + if (hexString === 'xx') { + xxs.push('.' + parseInt(cmdString, 16)); + } + isMatch = true; + continue; + } else { + isMatch = false; + break; + } + } + if (isMatch) { + var propertyId = map[key]; + if (propertyId.indexOf('._item') === -1) { + return propertyId; + } + var j = 0; + var result = propertyId.replace(/\._item/g, function() { + return xxs[j++]; + }); + return result; + } + } + return null; +} + +function cmdMap() { + return { + "10": "reverse_active_energy1", + "11": "reverse_active_energy2", + "12": "forward_reactive_energy1", + "13": "forward_reactive_energy2", + "14": "reverse_reactive_energy1", + "15": "reverse_reactive_energy2", + "16": "apparent_energy1", + "17": "apparent_energy2", + "30": "temperature_alarm", + "31": "current_alarm", + "32": "voltage_alarm", + "33": "thdi_alarm", + "34": "thdv_alarm", + "35": "voltage_unbalance_alarm", + "36": "power_loss_alarm", + "40": "history_type", + "57": "query_history_set", + "60": "collection_interval", + "61": "reporting_interval", + "63": "temperature_unit", + "64": "bluetooth_name", + "66": "voltage_interface", + "67": "current_interface1", + "68": "current_interface2", + "69": "current_interface3", + "76": "temperature_alarm_settings", + "77": "current_alarm_settings", + "78": "voltage_alarm_settings", + "79": "thdi_alarm_settings", + "ff": "request_check_sequence_number", + "fe": "request_check_order", + "ef": "request_command_queries", + "ee": "request_query_all_configurations", + "ed": "historical_data_report", + "cf": "lorawan_configuration_settings", + "cfd8": "lorawan_configuration_settings.version", + "df": "tsl_version", + "de": "product_name", + "dd": "product_pn", + "db": "product_sn", + "da": "version", + "d9": "oem_id", + "d8": "product_frequency_band", + "d7": "device_info", + "01": "temperature", + "02": "voltage_three_phase_imbalcance", + "03": "thdi", + "03xx": "thdi._item", + "04": "thdv", + "04xx": "thdv._item", + "05": "current", + "05xx": "current._item", + "06": "voltage", + "06xx": "voltage._item", + "07": "power_factor", + "08": "active_power1", + "09": "active_power2", + "0a": "reactive_power1", + "0b": "reactive_power2", + "0c": "apparent_power1", + "0d": "apparent_power2", + "0e": "forward_active_energy1", + "0f": "forward_active_energy2", + "c8": "device_status", + "c5": "data_storage_settings", + "c500": "data_storage_settings.enable", + "c501": "data_storage_settings.retransmission_enable", + "c502": "data_storage_settings.retransmission_interval", + "c503": "data_storage_settings.retrieval_interval", + "undefinedxx": "current_interface4.config._item", + "6a": "current_interface4", + "6b": "temperature_calibration_settings", + "c7": "time_zone", + "c6": "daylight_saving_time", + "77xx": "current_alarm_settings._item", + "78xx": "voltage_alarm_settings._item", + "79xx": "thdi_alarm_settings._item", + "7a": "thdv_alarm_settings", + "7axx": "thdv_alarm_settings._item", + "7b": "voltage_unbalance_alarm_settings", + "7c": "alarm_global_settings", + "6d": "month_statistics_settings", + "6c": "report_enable", + "bf": "reset", + "be": "reboot", + "5d": "stop_historical_data_retrieval", + "5b": "retrieve_historical_data_by_time", + "5c": "retrieve_historical_data_by_time_range", + "b9": "query_device_status", + "b8": "synchronize_time", + "b7": "set_time", + "b6": "reconnect", + "5f": "reset_energy", + "5e": "clear_data" + }; +} \ No newline at end of file diff --git a/vendors/milesight-iot/cth-series/cth01/cth01-encoder.js b/vendors/milesight-iot/cth-series/cth01/cth01-encoder.js new file mode 100644 index 0000000..2c8a13f --- /dev/null +++ b/vendors/milesight-iot/cth-series/cth01/cth01-encoder.js @@ -0,0 +1,2388 @@ +/** + * Payload Encoder + * + * Copyright 2025 Milesight IoT + * + * @product CTH01 + */ + +/* eslint no-redeclare: "off" */ +/* eslint-disable */ +// Chirpstack v4 +function encodeDownlink(input) { + var encoded = milesightDeviceEncode(input.data); + return { bytes: encoded }; +} + +// Chirpstack v3 +function Encode(fPort, obj) { + return milesightDeviceEncode(obj); +} + +// The Things Network +function Encoder(obj, port) { + return milesightDeviceEncode(obj); +} +/* eslint-enable */ + +function milesightDeviceEncode(payload) { + var encoded = []; + var error_value_map = { + current: [0xFF, 0xFF, 0xFF], + voltage: [0xFF, 0xFF], + forward_active_energy: [0xFF, 0xFF, 0xFF, 0xFF], + reverse_active_energy: [0xFF, 0xFF, 0xFF, 0xFF], + forward_reactive_energy: [0xFF, 0xFF, 0xFF, 0xFF], + reverse_reactive_energy: [0xFF, 0xFF, 0xFF, 0xFF], + apparent_energy: [0xFF, 0xFF, 0xFF, 0xFF], + power_factor: [0xFF], + active_power: [0xFF, 0xFF, 0xFF, 0xFF], + reactive_power: [0xFF, 0xFF, 0xFF, 0xFF], + apparent_power: [0xFF, 0xFF, 0xFF, 0xFF], + thdi: [0xFF, 0xFF], + thdv: [0xFF, 0xFF], + voltage_three_phase_imbalcance: [0xFF, 0xFF] + } + //0xff + if ('request_check_sequence_number' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xff); + if (payload.request_check_sequence_number.sequence_number < 0 || payload.request_check_sequence_number.sequence_number > 255) { + throw new Error('request_check_sequence_number.sequence_number must be between 0 and 255'); + } + buffer.writeUInt8(payload.request_check_sequence_number.sequence_number); + encoded = encoded.concat(buffer.toBytes()); + } + //0xfe + if ('request_check_order' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xfe); + if (payload.request_check_order.order < 0 || payload.request_check_order.order > 255) { + throw new Error('request_check_order.order must be between 0 and 255'); + } + buffer.writeUInt8(payload.request_check_order.order); + encoded = encoded.concat(buffer.toBytes()); + } + //0xef + if ('req' in payload) { + var buffer = new Buffer(); + var reqList = payload.req; + for (var idx = 0; idx < reqList.length; idx++) { + var req_command = reqList[idx]; + var pureNumber = []; + var formateStrParts = []; + + req_command.split('.').forEach(function(part) { + if (/^[0-9]+$/.test(part)) { + // padStart ES5 兼容 + var hex = Number(part).toString(16); + while (hex.length < 2) { hex = '0' + hex; } + pureNumber.push(hex); + console.log(pureNumber); + formateStrParts.push('_item'); + } else { + formateStrParts.push(part); + } + }); + + var formateStr = formateStrParts.join('.'); + var hexString = cmdMap()[formateStr]; + + if (hexString && hexString.indexOf('xx') !== -1) { + var i = 0; + hexString = hexString.replace(/xx/g, function() { + return pureNumber[i++]; + }); + } + + if (hexString) { + var length = hexString.length / 2; + buffer.writeUInt8(0xef); + buffer.writeUInt8(length); + buffer.writeHexString(hexString, length, true); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0xee + if ('request_query_all_configurations' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xee); + encoded = encoded.concat(buffer.toBytes()); + } + //0xed + if ('history' in payload) { + for (var i = 0; i < payload.history.length; i++) { + var buffer = new Buffer(); + var history = payload.history[i]; + buffer.writeUInt8(0xed); + // 0:target time, 1:historical time + buffer.writeUInt8(1); + buffer.writeUInt32LE(history.timestamp); + var reset = {}; + for (var k in history) { + if (history.hasOwnProperty(k) && k !== "timestamp") { + reset[k] = history[k]; + } + } + + encoded = encoded.concat(buffer.toBytes()); + encoded = encoded.concat(milesightDeviceEncode(reset)); + } + } + //0xcf + if ('lorawan_configuration_settings' in payload) { + var buffer = new Buffer(); + if (isValid(payload.lorawan_configuration_settings.version)) { + buffer.writeUInt8(0xcf); + // 1:1.0.2, 2:1.0.3, 3:1.0.3, 4:1.0.4 + buffer.writeUInt8(0xd8); + // 1:1.0.2, 2:1.0.3, 3:1.0.3, 4:1.0.4 + buffer.writeUInt8(payload.lorawan_configuration_settings.version); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0xde + if ('product_name' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xde); + buffer.writeString(payload.product_name, 32); + encoded = encoded.concat(buffer.toBytes()); + } + //0xdd + if ('product_pn' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xdd); + buffer.writeString(payload.product_pn, 32); + encoded = encoded.concat(buffer.toBytes()); + } + //0xdb + if ('product_sn' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xdb); + buffer.writeHexString(payload.product_sn, 8); + encoded = encoded.concat(buffer.toBytes()); + } + //0xd9 + if ('oem_id' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xd9); + buffer.writeHexString(payload.oem_id, 2); + encoded = encoded.concat(buffer.toBytes()); + } + //0xd8 + if ('product_frequency_band' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xd8); + buffer.writeString(payload.product_frequency_band, 16); + encoded = encoded.concat(buffer.toBytes()); + } + //0xd7 + if ('device_info' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xd7); + encoded = encoded.concat(buffer.toBytes()); + } + //0x01 + if ('temperature' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x01); + if (payload.temperature < -20 || payload.temperature > 100) { + throw new Error('temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature * 100); + encoded = encoded.concat(buffer.toBytes()); + } + //0x02 + if ('voltage_three_phase_imbalcance' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x02); + if (payload.voltage_three_phase_imbalcance === 'error') { + buffer.writeBytes(error_value_map.voltage_three_phase_imbalcance); + } else { + if (payload.voltage_three_phase_imbalcance < 0 || payload.voltage_three_phase_imbalcance > 100) { + throw new Error('voltage_three_phase_imbalcance must be between 0 and 100'); + } + buffer.writeUInt16LE(payload.voltage_three_phase_imbalcance * 100); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x03 + if ('thdi' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x03); + for (var i = 0; i < payload.thdi.length; i++) { + var thdi_item = payload.thdi[i]; + if (thdi_item.value === 'error') { + buffer.writeBytes(error_value_map.thdi); + } else { + if (thdi_item.value < 0 || thdi_item.value > 100) { + throw new Error('value must be between 0 and 100'); + } + buffer.writeUInt16LE(thdi_item.value * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x04 + if ('thdv' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x04); + for (var i = 0; i < payload.thdv.length; i++) { + var thdv_item = payload.thdv[i]; + if (thdv_item.value === 'error') { + buffer.writeBytes(error_value_map.thdv); + } else { + if (thdv_item.value < 0 || thdv_item.value > 100) { + throw new Error('value must be between 0 and 100'); + } + buffer.writeUInt16LE(thdv_item.value * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x05 + if ('current' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x05); + for (var i = 0; i < payload.current.length; i++) { + var current_item = payload.current[i]; + if (current_item.value === 'error') { + buffer.writeBytes(error_value_map.current); + } else { + if (current_item.value < 0 || current_item.value > 4000) { + throw new Error('value must be between 0 and 4000'); + } + buffer.writeUInt24LE(current_item.value * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x06 + if ('voltage' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x06); + for (var i = 0; i < payload.voltage.length; i++) { + var voltage_item = payload.voltage[i]; + if (voltage_item.value === 'error') { + buffer.writeBytes(error_value_map.voltage); + } else { + if (voltage_item.value < 0 || voltage_item.value > 500) { + throw new Error('value must be between 0 and 500'); + } + buffer.writeUInt16LE(voltage_item.value * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x07 + if ('power_factor' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x07); + var bitOptions = 0; + bitOptions |= payload.power_factor.mask1 << 0; + + bitOptions |= payload.power_factor.mask2 << 1; + + bitOptions |= payload.power_factor.mask3 << 2; + + bitOptions |= payload.power_factor.mask4 << 3; + buffer.writeUInt8(bitOptions); + + if (payload.power_factor.mask1 == 0x00) { + if (payload.power_factor.group1_value === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group1_value < 0 || payload.power_factor.group1_value > 100) { + throw new Error('power_factor.group1_value must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group1_value * 100); + } + } + if (payload.power_factor.mask1 == 0x01) { + if (payload.power_factor.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group1.chan1 < 0 || payload.power_factor.group1.chan1 > 100) { + throw new Error('power_factor.group1.chan1 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group1.chan1 * 100); + } + if (payload.power_factor.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group1.chan2 < 0 || payload.power_factor.group1.chan2 > 100) { + throw new Error('power_factor.group1.chan2 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group1.chan2 * 100); + } + if (payload.power_factor.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group1.chan3 < 0 || payload.power_factor.group1.chan3 > 100) { + throw new Error('power_factor.group1.chan3 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group1.chan3 * 100); + } + } + if (payload.power_factor.mask2 == 0x00) { + if (payload.power_factor.group2_value === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group2_value < 0 || payload.power_factor.group2_value > 100) { + throw new Error('power_factor.group2_value must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group2_value * 100); + } + } + if (payload.power_factor.mask2 == 0x01) { + if (payload.power_factor.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group2.chan1 < 0 || payload.power_factor.group2.chan1 > 100) { + throw new Error('power_factor.group2.chan1 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group2.chan1 * 100); + } + if (payload.power_factor.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group2.chan2 < 0 || payload.power_factor.group2.chan2 > 100) { + throw new Error('power_factor.group2.chan2 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group2.chan2 * 100); + } + if (payload.power_factor.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group2.chan3 < 0 || payload.power_factor.group2.chan3 > 100) { + throw new Error('power_factor.group2.chan3 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group2.chan3 * 100); + } + } + if (payload.power_factor.mask3 == 0x00) { + if (payload.power_factor.group3_value === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group3_value < 0 || payload.power_factor.group3_value > 100) { + throw new Error('power_factor.group3_value must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group3_value * 100); + } + } + if (payload.power_factor.mask3 == 0x01) { + if (payload.power_factor.group3.chan1 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group3.chan1 < 0 || payload.power_factor.group3.chan1 > 100) { + throw new Error('power_factor.group3.chan1 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group3.chan1 * 100); + } + if (payload.power_factor.group3.chan2 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group3.chan2 < 0 || payload.power_factor.group3.chan2 > 100) { + throw new Error('power_factor.group3.chan2 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group3.chan2 * 100); + } + if (payload.power_factor.group3.chan3 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group3.chan3 < 0 || payload.power_factor.group3.chan3 > 100) { + throw new Error('power_factor.group3.chan3 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group3.chan3 * 100); + } + } + if (payload.power_factor.mask4 == 0x00) { + if (payload.power_factor.group4_value === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group4_value < 0 || payload.power_factor.group4_value > 100) { + throw new Error('power_factor.group4_value must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group4_value * 100); + } + } + if (payload.power_factor.mask4 == 0x01) { + if (payload.power_factor.group4.chan1 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group4.chan1 < 0 || payload.power_factor.group4.chan1 > 100) { + throw new Error('power_factor.group4.chan1 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group4.chan1 * 100); + } + if (payload.power_factor.group4.chan2 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group4.chan2 < 0 || payload.power_factor.group4.chan2 > 100) { + throw new Error('power_factor.group4.chan2 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group4.chan2 * 100); + } + if (payload.power_factor.group4.chan3 === 'error') { + buffer.writeBytes(error_value_map.power_factor); + } else { + if (payload.power_factor.group4.chan3 < 0 || payload.power_factor.group4.chan3 > 100) { + throw new Error('power_factor.group4.chan3 must be between 0 and 100'); + } + buffer.writeUInt8(payload.power_factor.group4.chan3 * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x08 + if ('active_power1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x08); + var bitOptions = 0; + bitOptions |= payload.active_power1.mask1 << 0; + + bitOptions |= payload.active_power1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.active_power1.mask1 == 0x00) { + if (payload.active_power1.group1_value === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group1_value * 1000); + } + } + if (payload.active_power1.mask1 == 0x01) { + if (payload.active_power1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group1.chan1 * 1000); + } + if (payload.active_power1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group1.chan2 * 1000); + } + if (payload.active_power1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group1.chan3 * 1000); + } + } + if (payload.active_power1.mask2 == 0x00) { + if (payload.active_power1.group2_value === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group2_value * 1000); + } + } + if (payload.active_power1.mask2 == 0x01) { + if (payload.active_power1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group2.chan1 * 1000); + } + if (payload.active_power1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group2.chan2 * 1000); + } + if (payload.active_power1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x09 + if ('active_power2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x09); + var bitOptions = 0; + bitOptions |= payload.active_power2.mask1 << 0; + + bitOptions |= payload.active_power2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.active_power2.mask1 == 0x00) { + if (payload.active_power2.group1_value === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group1_value * 1000); + } + } + if (payload.active_power2.mask1 == 0x01) { + if (payload.active_power2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group1.chan1 * 1000); + } + if (payload.active_power2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group1.chan2 * 1000); + } + if (payload.active_power2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group1.chan3 * 1000); + } + } + if (payload.active_power2.mask2 == 0x00) { + if (payload.active_power2.group2_value === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group2_value * 1000); + } + } + if (payload.active_power2.mask2 == 0x01) { + if (payload.active_power2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group2.chan1 * 1000); + } + if (payload.active_power2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group2.chan2 * 1000); + } + if (payload.active_power2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.active_power); + } else { + buffer.writeInt32LE(payload.active_power2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x0a + if ('reactive_power1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x0a); + var bitOptions = 0; + bitOptions |= payload.reactive_power1.mask1 << 0; + + bitOptions |= payload.reactive_power1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.reactive_power1.mask1 == 0x00) { + if (payload.reactive_power1.group1_value === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group1_value * 1000); + } + } + if (payload.reactive_power1.mask1 == 0x01) { + if (payload.reactive_power1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group1.chan1 * 1000); + } + if (payload.reactive_power1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group1.chan2 * 1000); + } + if (payload.reactive_power1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group1.chan3 * 1000); + } + } + if (payload.reactive_power1.mask2 == 0x00) { + if (payload.reactive_power1.group2_value === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group2_value * 1000); + } + } + if (payload.reactive_power1.mask2 == 0x01) { + if (payload.reactive_power1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group2.chan1 * 1000); + } + if (payload.reactive_power1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group2.chan2 * 1000); + } + if (payload.reactive_power1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x0b + if ('reactive_power2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x0b); + var bitOptions = 0; + bitOptions |= payload.reactive_power2.mask1 << 0; + + bitOptions |= payload.reactive_power2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.reactive_power2.mask1 == 0x00) { + if (payload.reactive_power2.group1_value === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group1_value * 1000); + } + } + if (payload.reactive_power2.mask1 == 0x01) { + if (payload.reactive_power2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group1.chan1 * 1000); + } + if (payload.reactive_power2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group1.chan2 * 1000); + } + if (payload.reactive_power2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group1.chan3 * 1000); + } + } + if (payload.reactive_power2.mask2 == 0x00) { + if (payload.reactive_power2.group2_value === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group2_value * 1000); + } + } + if (payload.reactive_power2.mask2 == 0x01) { + if (payload.reactive_power2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group2.chan1 * 1000); + } + if (payload.reactive_power2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group2.chan2 * 1000); + } + if (payload.reactive_power2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.reactive_power); + } else { + buffer.writeInt32LE(payload.reactive_power2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x0c + if ('apparent_power1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x0c); + var bitOptions = 0; + bitOptions |= payload.apparent_power1.mask1 << 0; + + bitOptions |= payload.apparent_power1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.apparent_power1.mask1 == 0x00) { + if (payload.apparent_power1.group1_value === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group1_value * 1000); + } + } + if (payload.apparent_power1.mask1 == 0x01) { + if (payload.apparent_power1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group1.chan1 * 1000); + } + if (payload.apparent_power1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group1.chan2 * 1000); + } + if (payload.apparent_power1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group1.chan3 * 1000); + } + } + if (payload.apparent_power1.mask2 == 0x00) { + if (payload.apparent_power1.group2_value === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group2_value * 1000); + } + } + if (payload.apparent_power1.mask2 == 0x01) { + if (payload.apparent_power1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group2.chan1 * 1000); + } + if (payload.apparent_power1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group2.chan2 * 1000); + } + if (payload.apparent_power1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x0d + if ('apparent_power2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x0d); + var bitOptions = 0; + bitOptions |= payload.apparent_power2.mask1 << 0; + + bitOptions |= payload.apparent_power2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.apparent_power2.mask1 == 0x00) { + if (payload.apparent_power2.group1_value === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group1_value * 1000); + } + } + if (payload.apparent_power2.mask1 == 0x01) { + if (payload.apparent_power2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group1.chan1 * 1000); + } + if (payload.apparent_power2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group1.chan2 * 1000); + } + if (payload.apparent_power2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group1.chan3 * 1000); + } + } + if (payload.apparent_power2.mask2 == 0x00) { + if (payload.apparent_power2.group2_value === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group2_value * 1000); + } + } + if (payload.apparent_power2.mask2 == 0x01) { + if (payload.apparent_power2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group2.chan1 * 1000); + } + if (payload.apparent_power2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group2.chan2 * 1000); + } + if (payload.apparent_power2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_power); + } else { + buffer.writeInt32LE(payload.apparent_power2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x0e + if ('forward_active_energy1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x0e); + var bitOptions = 0; + bitOptions |= payload.forward_active_energy1.mask1 << 0; + + bitOptions |= payload.forward_active_energy1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.forward_active_energy1.mask1 == 0x00) { + if (payload.forward_active_energy1.group1_value === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group1_value * 1000); + } + } + if (payload.forward_active_energy1.mask1 == 0x01) { + if (payload.forward_active_energy1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group1.chan1 * 1000); + } + if (payload.forward_active_energy1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group1.chan2 * 1000); + } + if (payload.forward_active_energy1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group1.chan3 * 1000); + } + } + if (payload.forward_active_energy1.mask2 == 0x00) { + if (payload.forward_active_energy1.group2_value === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group2_value * 1000); + } + } + if (payload.forward_active_energy1.mask2 == 0x01) { + if (payload.forward_active_energy1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group2.chan1 * 1000); + } + if (payload.forward_active_energy1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group2.chan2 * 1000); + } + if (payload.forward_active_energy1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x0f + if ('forward_active_energy2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x0f); + var bitOptions = 0; + bitOptions |= payload.forward_active_energy2.mask1 << 0; + + bitOptions |= payload.forward_active_energy2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.forward_active_energy2.mask1 == 0x00) { + if (payload.forward_active_energy2.group1_value === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group1_value * 1000); + } + } + if (payload.forward_active_energy2.mask1 == 0x01) { + if (payload.forward_active_energy2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group1.chan1 * 1000); + } + if (payload.forward_active_energy2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group1.chan2 * 1000); + } + if (payload.forward_active_energy2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group1.chan3 * 1000); + } + } + if (payload.forward_active_energy2.mask2 == 0x00) { + if (payload.forward_active_energy2.group2_value === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group2_value * 1000); + } + } + if (payload.forward_active_energy2.mask2 == 0x01) { + if (payload.forward_active_energy2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group2.chan1 * 1000); + } + if (payload.forward_active_energy2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group2.chan2 * 1000); + } + if (payload.forward_active_energy2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_active_energy); + } else { + buffer.writeUInt32LE(payload.forward_active_energy2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x10 + if ('reverse_active_energy1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x10); + var bitOptions = 0; + bitOptions |= payload.reverse_active_energy1.mask1 << 0; + + bitOptions |= payload.reverse_active_energy1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.reverse_active_energy1.mask1 == 0x00) { + if (payload.reverse_active_energy1.group1_value === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group1_value * 1000); + } + } + if (payload.reverse_active_energy1.mask1 == 0x01) { + if (payload.reverse_active_energy1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group1.chan1 * 1000); + } + if (payload.reverse_active_energy1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group1.chan2 * 1000); + } + if (payload.reverse_active_energy1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group1.chan3 * 1000); + } + } + if (payload.reverse_active_energy1.mask2 == 0x00) { + if (payload.reverse_active_energy1.group2_value === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group2_value * 1000); + } + } + if (payload.reverse_active_energy1.mask2 == 0x01) { + if (payload.reverse_active_energy1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group2.chan1 * 1000); + } + if (payload.reverse_active_energy1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group2.chan2 * 1000); + } + if (payload.reverse_active_energy1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x11 + if ('reverse_active_energy2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x11); + var bitOptions = 0; + bitOptions |= payload.reverse_active_energy2.mask1 << 0; + + bitOptions |= payload.reverse_active_energy2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.reverse_active_energy2.mask1 == 0x00) { + if (payload.reverse_active_energy2.group1_value === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group1_value * 1000); + } + } + if (payload.reverse_active_energy2.mask1 == 0x01) { + if (payload.reverse_active_energy2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group1.chan1 * 1000); + } + if (payload.reverse_active_energy2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group1.chan2 * 1000); + } + if (payload.reverse_active_energy2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group1.chan3 * 1000); + } + } + if (payload.reverse_active_energy2.mask2 == 0x00) { + if (payload.reverse_active_energy2.group2_value === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group2_value * 1000); + } + } + if (payload.reverse_active_energy2.mask2 == 0x01) { + if (payload.reverse_active_energy2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group2.chan1 * 1000); + } + if (payload.reverse_active_energy2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group2.chan2 * 1000); + } + if (payload.reverse_active_energy2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_active_energy); + } else { + buffer.writeUInt32LE(payload.reverse_active_energy2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x12 + if ('forward_reactive_energy1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x12); + var bitOptions = 0; + bitOptions |= payload.forward_reactive_energy1.mask1 << 0; + + bitOptions |= payload.forward_reactive_energy1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.forward_reactive_energy1.mask1 == 0x00) { + if (payload.forward_reactive_energy1.group1_value === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group1_value * 1000); + } + } + if (payload.forward_reactive_energy1.mask1 == 0x01) { + if (payload.forward_reactive_energy1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group1.chan1 * 1000); + } + if (payload.forward_reactive_energy1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group1.chan2 * 1000); + } + if (payload.forward_reactive_energy1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group1.chan3 * 1000); + } + } + if (payload.forward_reactive_energy1.mask2 == 0x00) { + if (payload.forward_reactive_energy1.group2_value === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group2_value * 1000); + } + } + if (payload.forward_reactive_energy1.mask2 == 0x01) { + if (payload.forward_reactive_energy1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group2.chan1 * 1000); + } + if (payload.forward_reactive_energy1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group2.chan2 * 1000); + } + if (payload.forward_reactive_energy1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x13 + if ('forward_reactive_energy2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x13); + var bitOptions = 0; + bitOptions |= payload.forward_reactive_energy2.mask1 << 0; + + bitOptions |= payload.forward_reactive_energy2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.forward_reactive_energy2.mask1 == 0x00) { + if (payload.forward_reactive_energy2.group1_value === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group1_value * 1000); + } + } + if (payload.forward_reactive_energy2.mask1 == 0x01) { + if (payload.forward_reactive_energy2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group1.chan1 * 1000); + } + if (payload.forward_reactive_energy2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group1.chan2 * 1000); + } + if (payload.forward_reactive_energy2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group1.chan3 * 1000); + } + } + if (payload.forward_reactive_energy2.mask2 == 0x00) { + if (payload.forward_reactive_energy2.group2_value === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group2_value * 1000); + } + } + if (payload.forward_reactive_energy2.mask2 == 0x01) { + if (payload.forward_reactive_energy2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group2.chan1 * 1000); + } + if (payload.forward_reactive_energy2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group2.chan2 * 1000); + } + if (payload.forward_reactive_energy2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.forward_reactive_energy); + } else { + buffer.writeUInt32LE(payload.forward_reactive_energy2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x14 + if ('reverse_reactive_energy1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x14); + var bitOptions = 0; + bitOptions |= payload.reverse_reactive_energy1.mask1 << 0; + + bitOptions |= payload.reverse_reactive_energy1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.reverse_reactive_energy1.mask1 == 0x00) { + if (payload.reverse_reactive_energy1.group1_value === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group1_value * 1000); + } + } + if (payload.reverse_reactive_energy1.mask1 == 0x01) { + if (payload.reverse_reactive_energy1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group1.chan1 * 1000); + } + if (payload.reverse_reactive_energy1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group1.chan2 * 1000); + } + if (payload.reverse_reactive_energy1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group1.chan3 * 1000); + } + } + if (payload.reverse_reactive_energy1.mask2 == 0x00) { + if (payload.reverse_reactive_energy1.group2_value === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group2_value * 1000); + } + } + if (payload.reverse_reactive_energy1.mask2 == 0x01) { + if (payload.reverse_reactive_energy1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group2.chan1 * 1000); + } + if (payload.reverse_reactive_energy1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group2.chan2 * 1000); + } + if (payload.reverse_reactive_energy1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x15 + if ('reverse_reactive_energy2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x15); + var bitOptions = 0; + bitOptions |= payload.reverse_reactive_energy2.mask1 << 0; + + bitOptions |= payload.reverse_reactive_energy2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.reverse_reactive_energy2.mask1 == 0x00) { + if (payload.reverse_reactive_energy2.group1_value === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group1_value * 1000); + } + } + if (payload.reverse_reactive_energy2.mask1 == 0x01) { + if (payload.reverse_reactive_energy2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group1.chan1 * 1000); + } + if (payload.reverse_reactive_energy2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group1.chan2 * 1000); + } + if (payload.reverse_reactive_energy2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group1.chan3 * 1000); + } + } + if (payload.reverse_reactive_energy2.mask2 == 0x00) { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group2_value * 1000); + } + if (payload.reverse_reactive_energy2.mask2 == 0x01) { + if (payload.reverse_reactive_energy2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group2.chan1 * 1000); + } + if (payload.reverse_reactive_energy2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group2.chan2 * 1000); + } + if (payload.reverse_reactive_energy2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.reverse_reactive_energy); + } else { + buffer.writeUInt32LE(payload.reverse_reactive_energy2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x16 + if ('apparent_energy1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x16); + var bitOptions = 0; + bitOptions |= payload.apparent_energy1.mask1 << 0; + + bitOptions |= payload.apparent_energy1.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.apparent_energy1.mask1 == 0x00) { + if (payload.apparent_energy1.group1_value === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group1_value * 1000); + } + } + if (payload.apparent_energy1.mask1 == 0x01) { + if (payload.apparent_energy1.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group1.chan1 * 1000); + } + if (payload.apparent_energy1.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group1.chan2 * 1000); + } + if (payload.apparent_energy1.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group1.chan3 * 1000); + } + } + if (payload.apparent_energy1.mask2 == 0x00) { + if (payload.apparent_energy1.group2_value === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group2_value * 1000); + } + } + if (payload.apparent_energy1.mask2 == 0x01) { + if (payload.apparent_energy1.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group2.chan1 * 1000); + } + if (payload.apparent_energy1.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group2.chan2 * 1000); + } + if (payload.apparent_energy1.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy1.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x17 + if ('apparent_energy2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x17); + var bitOptions = 0; + bitOptions |= payload.apparent_energy2.mask1 << 0; + + bitOptions |= payload.apparent_energy2.mask2 << 1; + buffer.writeUInt8(bitOptions); + + if (payload.apparent_energy2.mask1 == 0x00) { + if (payload.apparent_energy2.group1_value === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group1_value * 1000); + } + } + if (payload.apparent_energy2.mask1 == 0x01) { + if (payload.apparent_energy2.group1.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group1.chan1 * 1000); + } + if (payload.apparent_energy2.group1.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group1.chan2 * 1000); + } + if (payload.apparent_energy2.group1.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group1.chan3 * 1000); + } + } + if (payload.apparent_energy2.mask2 == 0x00) { + if (payload.apparent_energy2.group2_value === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group2_value * 1000); + } + } + if (payload.apparent_energy2.mask2 == 0x01) { + if (payload.apparent_energy2.group2.chan1 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group2.chan1 * 1000); + } + if (payload.apparent_energy2.group2.chan2 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group2.chan2 * 1000); + } + if (payload.apparent_energy2.group2.chan3 === 'error') { + buffer.writeBytes(error_value_map.apparent_energy); + } else { + buffer.writeUInt32LE(payload.apparent_energy2.group2.chan3 * 1000); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x40 + if ('history_type' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x40); + // 1:month energy, 2:month min, 3:month max + buffer.writeUInt8(payload.history_type.type); + encoded = encoded.concat(buffer.toBytes()); + } + //0x30 + if ('temperature_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x30); + buffer.writeUInt8(payload.temperature_alarm.type); + if (payload.temperature_alarm.type == 0x00) { + } + if (payload.temperature_alarm.type == 0x01) { + } + if (payload.temperature_alarm.type == 0x02) { + } + if (payload.temperature_alarm.type == 0x03) { + } + if (payload.temperature_alarm.type == 0x10) { + if (payload.temperature_alarm.lower_range_alarm_deactivation.temperature < -20 || payload.temperature_alarm.lower_range_alarm_deactivation.temperature > 100) { + throw new Error('temperature_alarm.lower_range_alarm_deactivation.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.lower_range_alarm_deactivation.temperature * 100); + } + if (payload.temperature_alarm.type == 0x11) { + if (payload.temperature_alarm.lower_range_alarm_trigger.temperature < -20 || payload.temperature_alarm.lower_range_alarm_trigger.temperature > 100) { + throw new Error('temperature_alarm.lower_range_alarm_trigger.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.lower_range_alarm_trigger.temperature * 100); + } + if (payload.temperature_alarm.type == 0x12) { + if (payload.temperature_alarm.over_range_alarm_deactivation.temperature < -20 || payload.temperature_alarm.over_range_alarm_deactivation.temperature > 100) { + throw new Error('temperature_alarm.over_range_alarm_deactivation.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.over_range_alarm_deactivation.temperature * 100); + } + if (payload.temperature_alarm.type == 0x13) { + if (payload.temperature_alarm.over_range_alarm_trigger.temperature < -20 || payload.temperature_alarm.over_range_alarm_trigger.temperature > 100) { + throw new Error('temperature_alarm.over_range_alarm_trigger.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.over_range_alarm_trigger.temperature * 100); + } + if (payload.temperature_alarm.type == 0x14) { + if (payload.temperature_alarm.within_range_alarm_deactivation.temperature < -20 || payload.temperature_alarm.within_range_alarm_deactivation.temperature > 100) { + throw new Error('temperature_alarm.within_range_alarm_deactivation.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.within_range_alarm_deactivation.temperature * 100); + } + if (payload.temperature_alarm.type == 0x15) { + if (payload.temperature_alarm.within_range_alarm_trigger.temperature < -20 || payload.temperature_alarm.within_range_alarm_trigger.temperature > 100) { + throw new Error('temperature_alarm.within_range_alarm_trigger.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.within_range_alarm_trigger.temperature * 100); + } + if (payload.temperature_alarm.type == 0x16) { + if (payload.temperature_alarm.exceed_range_alarm_deactivation.temperature < -20 || payload.temperature_alarm.exceed_range_alarm_deactivation.temperature > 100) { + throw new Error('temperature_alarm.exceed_range_alarm_deactivation.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.exceed_range_alarm_deactivation.temperature * 100); + } + if (payload.temperature_alarm.type == 0x17) { + if (payload.temperature_alarm.exceed_range_alarm_trigger.temperature < -20 || payload.temperature_alarm.exceed_range_alarm_trigger.temperature > 100) { + throw new Error('temperature_alarm.exceed_range_alarm_trigger.temperature must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm.exceed_range_alarm_trigger.temperature * 100); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x31 + if ('current_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x31); + if (payload.current_alarm.channel < 0 || payload.current_alarm.channel > 11) { + throw new Error('current_alarm.channel must be between 0 and 11'); + } + buffer.writeUInt8(payload.current_alarm.channel); + buffer.writeUInt8(payload.current_alarm.info.type); + if (payload.current_alarm.info.type == 0x00) { + } + if (payload.current_alarm.info.type == 0x01) { + buffer.writeUInt24LE(payload.current_alarm.info.lower_range_error.current * 100); + } + if (payload.current_alarm.info.type == 0x02) { + buffer.writeUInt24LE(payload.current_alarm.info.over_range_error.current * 100); + } + if (payload.current_alarm.info.type == 0x03) { + } + if (payload.current_alarm.info.type == 0x04) { + buffer.writeUInt24LE(payload.current_alarm.info.over_range_release.current * 100); + } + if (payload.current_alarm.info.type == 0x10) { + buffer.writeUInt24LE(payload.current_alarm.info.lower_range_alarm_deactivation.current * 100); + } + if (payload.current_alarm.info.type == 0x11) { + buffer.writeUInt24LE(payload.current_alarm.info.lower_range_alarm_trigger.current * 100); + } + if (payload.current_alarm.info.type == 0x12) { + buffer.writeUInt24LE(payload.current_alarm.info.over_range_alarm_deactivation.current * 100); + } + if (payload.current_alarm.info.type == 0x13) { + buffer.writeUInt24LE(payload.current_alarm.info.over_range_alarm_trigger.current * 100); + } + if (payload.current_alarm.info.type == 0x14) { + buffer.writeUInt24LE(payload.current_alarm.info.within_range_alarm_deactivation.current * 100); + } + if (payload.current_alarm.info.type == 0x15) { + buffer.writeUInt24LE(payload.current_alarm.info.within_range_alarm_trigger.current * 100); + } + if (payload.current_alarm.info.type == 0x16) { + buffer.writeUInt24LE(payload.current_alarm.info.exceed_range_alarm_deactivation.current * 100); + } + if (payload.current_alarm.info.type == 0x17) { + buffer.writeUInt24LE(payload.current_alarm.info.exceed_range_alarm_trigger.current * 100); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x32 + if ('voltage_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x32); + if (payload.voltage_alarm.channel < 0 || payload.voltage_alarm.channel > 11) { + throw new Error('voltage_alarm.channel must be between 0 and 11'); + } + buffer.writeUInt8(payload.voltage_alarm.channel); + buffer.writeUInt8(payload.voltage_alarm.info.type); + if (payload.voltage_alarm.info.type == 0x00) { + } + if (payload.voltage_alarm.info.type == 0x01) { + buffer.writeUInt16LE(payload.voltage_alarm.info.lower_range_error.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x02) { + buffer.writeUInt16LE(payload.voltage_alarm.info.over_range_error.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x03) { + } + if (payload.voltage_alarm.info.type == 0x04) { + buffer.writeUInt16LE(payload.voltage_alarm.info.over_range_release.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x10) { + buffer.writeUInt16LE(payload.voltage_alarm.info.lower_range_alarm_deactivation.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x11) { + buffer.writeUInt16LE(payload.voltage_alarm.info.lower_range_alarm_trigger.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x12) { + buffer.writeUInt16LE(payload.voltage_alarm.info.over_range_alarm_deactivation.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x13) { + buffer.writeUInt16LE(payload.voltage_alarm.info.over_range_alarm_trigger.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x14) { + buffer.writeUInt16LE(payload.voltage_alarm.info.within_range_alarm_deactivation.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x15) { + buffer.writeUInt16LE(payload.voltage_alarm.info.within_range_alarm_trigger.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x16) { + buffer.writeUInt16LE(payload.voltage_alarm.info.exceed_range_alarm_deactivation.voltage * 100); + } + if (payload.voltage_alarm.info.type == 0x17) { + buffer.writeUInt16LE(payload.voltage_alarm.info.exceed_range_alarm_trigger.voltage * 100); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x33 + if ('thdi_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x33); + if (payload.thdi_alarm.channel < 0 || payload.thdi_alarm.channel > 11) { + throw new Error('thdi_alarm.channel must be between 0 and 11'); + } + buffer.writeUInt8(payload.thdi_alarm.channel); + buffer.writeUInt8(payload.thdi_alarm.info.type); + if (payload.thdi_alarm.info.type == 0x00) { + } + if (payload.thdi_alarm.info.type == 0x12) { + if (payload.thdi_alarm.info.over_range_alarm_deactivation.thdi === 'error') { + buffer.writeBytes(error_value_map.thdi); + } else { + buffer.writeUInt16LE(payload.thdi_alarm.info.over_range_alarm_deactivation.thdi * 100); + } + } + if (payload.thdi_alarm.info.type == 0x13) { + if (payload.thdi_alarm.info.over_range_alarm_trigger.thdi === 'error') { + buffer.writeBytes(error_value_map.thdi); + } else { + buffer.writeUInt16LE(payload.thdi_alarm.info.over_range_alarm_trigger.thdi * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x34 + if ('thdv_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x34); + if (payload.thdv_alarm.channel < 0 || payload.thdv_alarm.channel > 11) { + throw new Error('thdv_alarm.channel must be between 0 and 11'); + } + buffer.writeUInt8(payload.thdv_alarm.channel); + buffer.writeUInt8(payload.thdv_alarm.info.type); + if (payload.thdv_alarm.info.type == 0x00) { + } + if (payload.thdv_alarm.info.type == 0x12) { + if (payload.thdv_alarm.info.over_range_alarm_deactivation.thdv === 'error') { + buffer.writeBytes(error_value_map.thdv); + } else { + buffer.writeUInt16LE(payload.thdv_alarm.info.over_range_alarm_deactivation.thdv * 100); + } + } + if (payload.thdv_alarm.info.type == 0x13) { + if (payload.thdv_alarm.info.over_range_alarm_trigger.thdv === 'error') { + buffer.writeBytes(error_value_map.thdv); + } else { + buffer.writeUInt16LE(payload.thdv_alarm.info.over_range_alarm_trigger.thdv * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x35 + if ('voltage_unbalance_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x35); + buffer.writeUInt8(payload.voltage_unbalance_alarm.type); + if (payload.voltage_unbalance_alarm.type == 0x00) { + } + if (payload.voltage_unbalance_alarm.type == 0x12) { + if (payload.voltage_unbalance_alarm.over_range_alarm_deactivation.voltage_unbalance === 'error') { + buffer.writeBytes(error_value_map.voltage_three_phase_imbalcance); + } else { + buffer.writeUInt16LE(payload.voltage_unbalance_alarm.over_range_alarm_deactivation.voltage_unbalance * 100); + } + } + if (payload.voltage_unbalance_alarm.type == 0x13) { + if (payload.voltage_unbalance_alarm.over_range_alarm_trigger.voltage_unbalance === 'error') { + buffer.writeBytes(error_value_map.voltage_three_phase_imbalcance); + } else { + buffer.writeUInt16LE(payload.voltage_unbalance_alarm.over_range_alarm_trigger.voltage_unbalance * 100); + } + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x36 + if ('power_loss_alarm' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x36); + encoded = encoded.concat(buffer.toBytes()); + } + //0x60 + if ('collection_interval' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x60); + // 0:second, 1:min + buffer.writeUInt8(payload.collection_interval.unit); + if (payload.collection_interval.unit == 0x00) { + if (payload.collection_interval.seconds_of_time < 10 || payload.collection_interval.seconds_of_time > 64800) { + throw new Error('collection_interval.seconds_of_time must be between 10 and 64800'); + } + buffer.writeUInt16LE(payload.collection_interval.seconds_of_time); + } + if (payload.collection_interval.unit == 0x01) { + if (payload.collection_interval.minutes_of_time < 1 || payload.collection_interval.minutes_of_time > 1440) { + throw new Error('collection_interval.minutes_of_time must be between 1 and 1440'); + } + buffer.writeUInt16LE(payload.collection_interval.minutes_of_time); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x61 + if ('reporting_interval' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x61); + // 0:second, 1:min + buffer.writeUInt8(payload.reporting_interval.unit); + if (payload.reporting_interval.unit == 0x00) { + if (payload.reporting_interval.seconds_of_time < 10 || payload.reporting_interval.seconds_of_time > 64800) { + throw new Error('reporting_interval.seconds_of_time must be between 10 and 64800'); + } + buffer.writeUInt16LE(payload.reporting_interval.seconds_of_time); + } + if (payload.reporting_interval.unit == 0x01) { + if (payload.reporting_interval.minutes_of_time < 1 || payload.reporting_interval.minutes_of_time > 1440) { + throw new Error('reporting_interval.minutes_of_time must be between 1 and 1440'); + } + buffer.writeUInt16LE(payload.reporting_interval.minutes_of_time); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0xc8 + if ('device_status' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xc8); + // 0:Power Off, 1:Power On + buffer.writeUInt8(payload.device_status); + encoded = encoded.concat(buffer.toBytes()); + } + //0x63 + if ('temperature_unit' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x63); + // 0:℃, 1:℉ + buffer.writeUInt8(payload.temperature_unit); + encoded = encoded.concat(buffer.toBytes()); + } + //0x64 + if ('bluetooth_name' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x64); + if (payload.bluetooth_name.length < 1 || payload.bluetooth_name.length > 13) { + throw new Error('bluetooth_name.length must be between 1 and 13'); + } + buffer.writeUInt8(payload.bluetooth_name.length); + buffer.writeString(payload.bluetooth_name.content, payload.bluetooth_name.length, true); + encoded = encoded.concat(buffer.toBytes()); + } + //0xc5 + if ('data_storage_settings' in payload) { + var buffer = new Buffer(); + if (isValid(payload.data_storage_settings.enable)) { + buffer.writeUInt8(0xc5); + // 0:disable, 1:enable + buffer.writeUInt8(0x00); + // 0:disable, 1:enable + buffer.writeUInt8(payload.data_storage_settings.enable); + } + if (isValid(payload.data_storage_settings.retransmission_enable)) { + buffer.writeUInt8(0xc5); + // 0:disable, 1:enable + buffer.writeUInt8(0x01); + // 0:disable, 1:enable + buffer.writeUInt8(payload.data_storage_settings.retransmission_enable); + } + if (isValid(payload.data_storage_settings.retransmission_interval)) { + buffer.writeUInt8(0xc5); + buffer.writeUInt8(0x02); + if (payload.data_storage_settings.retransmission_interval < 30 || payload.data_storage_settings.retransmission_interval > 1200) { + throw new Error('data_storage_settings.retransmission_interval must be between 30 and 1200'); + } + buffer.writeUInt16LE(payload.data_storage_settings.retransmission_interval); + } + if (isValid(payload.data_storage_settings.retrieval_interval)) { + buffer.writeUInt8(0xc5); + buffer.writeUInt8(0x03); + if (payload.data_storage_settings.retrieval_interval < 30 || payload.data_storage_settings.retrieval_interval > 1200) { + throw new Error('data_storage_settings.retrieval_interval must be between 30 and 1200'); + } + buffer.writeUInt16LE(payload.data_storage_settings.retrieval_interval); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x66 + if ('voltage_interface' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x66); + // 0:four_wire, 1:three_wire + buffer.writeUInt8(payload.voltage_interface); + encoded = encoded.concat(buffer.toBytes()); + } + //0x67 + if ('current_interface1' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x67); + // 0:one_phase, 1:three_phase + buffer.writeUInt8(payload.current_interface1.type); + for (var i = 0; i < payload.current_interface1.config.length; i++) { + var config_item = payload.current_interface1.config[i]; + // 0:forward, 1:reserse + buffer.writeUInt8(config_item.direction); + buffer.writeUInt16LE(config_item.range); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x68 + if ('current_interface2' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x68); + // 0:one_phase, 1:three_phase + buffer.writeUInt8(payload.current_interface2.type); + for (var i = 0; i < payload.current_interface2.config.length; i++) { + var config_item = payload.current_interface2.config[i]; + // 0:forward, 1:reserse + buffer.writeUInt8(config_item.direction); + buffer.writeUInt16LE(config_item.range); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x69 + if ('current_interface3' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x69); + // 0:one_phase, 1:three_phase + buffer.writeUInt8(payload.current_interface3.type); + for (var i = 0; i < payload.current_interface3.config.length; i++) { + var config_item = payload.current_interface3.config[i]; + // 0:forward, 1:reserse + buffer.writeUInt8(config_item.direction); + buffer.writeUInt16LE(config_item.range); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x6a + if ('current_interface4' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x6a); + // 0:one_phase, 1:three_phase + buffer.writeUInt8(payload.current_interface4.type); + for (var i = 0; i < payload.current_interface4.config.length; i++) { + var config_item = payload.current_interface4.config[i]; + // 0:forward, 1:reserse + buffer.writeUInt8(config_item.direction); + buffer.writeUInt16LE(config_item.range); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x6b + if ('temperature_calibration_settings' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x6b); + // 0:disable, 1:enable + buffer.writeUInt8(payload.temperature_calibration_settings.enable); + if (payload.temperature_calibration_settings.calibration_value < -120 || payload.temperature_calibration_settings.calibration_value > 120) { + throw new Error('temperature_calibration_settings.calibration_value must be between -120 and 120'); + } + buffer.writeInt16LE(payload.temperature_calibration_settings.calibration_value * 100); + encoded = encoded.concat(buffer.toBytes()); + } + //0xc7 + if ('time_zone' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xc7); + buffer.writeInt16LE(payload.time_zone); + encoded = encoded.concat(buffer.toBytes()); + } + //0xc6 + if ('daylight_saving_time' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xc6); + // 0:disable, 1:enable + buffer.writeUInt8(payload.daylight_saving_time.enable); + if (payload.daylight_saving_time.daylight_saving_time_offset < 0 || payload.daylight_saving_time.daylight_saving_time_offset > 120) { + throw new Error('daylight_saving_time.daylight_saving_time_offset must be between 0 and 120'); + } + buffer.writeUInt8(payload.daylight_saving_time.daylight_saving_time_offset); + // 1:Jan., 2:Feb., 3:Mar., 4:Apr., 5:May, 6:Jun., 7:Jul., 8:Aug., 9:Sep., 10:Oct., 11:Nov., 12:Dec. + buffer.writeUInt8(payload.daylight_saving_time.start_month); + var bitOptions = 0; + // 1:1st, 2: 2nd, 3: 3rd, 4: 4th, 5: last + bitOptions |= payload.daylight_saving_time.start_week_num << 4; + + // 1:Mon., 2:Tues., 3:Wed., 4:Thurs., 5:Fri., 6:Sat., 7:Sun. + bitOptions |= payload.daylight_saving_time.start_week_day << 0; + buffer.writeUInt8(bitOptions); + + buffer.writeUInt16LE(payload.daylight_saving_time.start_hour_min); + // 1:Jan., 2:Feb., 3:Mar., 4:Apr., 5:May, 6:Jun., 7:Jul., 8:Aug., 9:Sep., 10:Oct., 11:Nov., 12:Dec. + buffer.writeUInt8(payload.daylight_saving_time.end_month); + var bitOptions = 0; + // 1:1st, 2: 2nd, 3: 3rd, 4: 4th, 5: last + bitOptions |= payload.daylight_saving_time.end_week_num << 4; + + // 1:Mon., 2:Tues., 3:Wed., 4:Thurs., 5:Fri., 6:Sat., 7:Sun. + bitOptions |= payload.daylight_saving_time.end_week_day << 0; + buffer.writeUInt8(bitOptions); + + buffer.writeUInt16LE(payload.daylight_saving_time.end_hour_min); + encoded = encoded.concat(buffer.toBytes()); + } + //0x76 + if ('temperature_alarm_settings' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x76); + // 0:disable, 1:enable + buffer.writeUInt8(payload.temperature_alarm_settings.enable); + // 0:disable, 1:condition: xB, 3:condition: A≤x≤B, 4:condition: xB + buffer.writeUInt8(payload.temperature_alarm_settings.threshold_condition); + if (payload.temperature_alarm_settings.threshold_min < -20 || payload.temperature_alarm_settings.threshold_min > 100) { + throw new Error('temperature_alarm_settings.threshold_min must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm_settings.threshold_min * 100); + if (payload.temperature_alarm_settings.threshold_max < -20 || payload.temperature_alarm_settings.threshold_max > 100) { + throw new Error('temperature_alarm_settings.threshold_max must be between -20 and 100'); + } + buffer.writeInt16LE(payload.temperature_alarm_settings.threshold_max * 100); + encoded = encoded.concat(buffer.toBytes()); + } + //0x77 + if ('current_alarm_settings' in payload) { + var buffer = new Buffer(); + for (var current_alarm_settings_id = 0; current_alarm_settings_id < (payload.current_alarm_settings && payload.current_alarm_settings.length); current_alarm_settings_id++) { + var current_alarm_settings_item = payload.current_alarm_settings[current_alarm_settings_id]; + var current_alarm_settings_item_id = current_alarm_settings_item.channel; + buffer.writeUInt8(0x77); + buffer.writeUInt8(current_alarm_settings_item_id); + // 0:disable, 1:enable + buffer.writeUInt8(current_alarm_settings_item.enable); + // 0:disable, 1:condition: xB, 3:condition: A≤x≤B, 4:condition: xB + buffer.writeUInt8(current_alarm_settings_item.threshold_condition); + if (current_alarm_settings_item.threshold_min < 0 || current_alarm_settings_item.threshold_min > 4000) { + throw new Error('threshold_min must be between 0 and 4000'); + } + buffer.writeInt16LE(current_alarm_settings_item.threshold_min); + if (current_alarm_settings_item.threshold_max < 0 || current_alarm_settings_item.threshold_max > 4000) { + throw new Error('threshold_max must be between 0 and 4000'); + } + buffer.writeInt16LE(current_alarm_settings_item.threshold_max); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x78 + if ('voltage_alarm_settings' in payload) { + var buffer = new Buffer(); + for (var voltage_alarm_settings_id = 0; voltage_alarm_settings_id < (payload.voltage_alarm_settings && payload.voltage_alarm_settings.length); voltage_alarm_settings_id++) { + var voltage_alarm_settings_item = payload.voltage_alarm_settings[voltage_alarm_settings_id]; + var voltage_alarm_settings_item_id = voltage_alarm_settings_item.channel; + buffer.writeUInt8(0x78); + buffer.writeUInt8(voltage_alarm_settings_item_id); + // 0:disable, 1:enable + buffer.writeUInt8(voltage_alarm_settings_item.enable); + // 0:disable, 1:condition: xB, 3:condition: A≤x≤B, 4:condition: xB + buffer.writeUInt8(voltage_alarm_settings_item.threshold_condition); + if (voltage_alarm_settings_item.threshold_min < 0 || voltage_alarm_settings_item.threshold_min > 500) { + throw new Error('threshold_min must be between 0 and 500'); + } + buffer.writeInt16LE(voltage_alarm_settings_item.threshold_min); + if (voltage_alarm_settings_item.threshold_max < 0 || voltage_alarm_settings_item.threshold_max > 500) { + throw new Error('threshold_max must be between 0 and 500'); + } + buffer.writeInt16LE(voltage_alarm_settings_item.threshold_max); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x79 + if ('thdi_alarm_settings' in payload) { + var buffer = new Buffer(); + for (var thdi_alarm_settings_id = 0; thdi_alarm_settings_id < (payload.thdi_alarm_settings && payload.thdi_alarm_settings.length); thdi_alarm_settings_id++) { + var thdi_alarm_settings_item = payload.thdi_alarm_settings[thdi_alarm_settings_id]; + var thdi_alarm_settings_item_id = thdi_alarm_settings_item.channel; + buffer.writeUInt8(0x79); + buffer.writeUInt8(thdi_alarm_settings_item_id); + // 0:disable, 1:enable + buffer.writeUInt8(thdi_alarm_settings_item.enable); + // 0:disable, 2:condition: x>B + buffer.writeUInt8(thdi_alarm_settings_item.threshold_condition); + if (thdi_alarm_settings_item.threshold_min < 0 || thdi_alarm_settings_item.threshold_min > 100) { + throw new Error('threshold_min must be between 0 and 100'); + } + buffer.writeInt16LE(thdi_alarm_settings_item.threshold_min); + if (thdi_alarm_settings_item.threshold_max < 1 || thdi_alarm_settings_item.threshold_max > 100) { + throw new Error('threshold_max must be between 1 and 100'); + } + buffer.writeInt16LE(thdi_alarm_settings_item.threshold_max); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x7a + if ('thdv_alarm_settings' in payload) { + var buffer = new Buffer(); + for (var thdv_alarm_settings_id = 0; thdv_alarm_settings_id < (payload.thdv_alarm_settings && payload.thdv_alarm_settings.length); thdv_alarm_settings_id++) { + var thdv_alarm_settings_item = payload.thdv_alarm_settings[thdv_alarm_settings_id]; + var thdv_alarm_settings_item_id = thdv_alarm_settings_item.channel; + buffer.writeUInt8(0x7a); + buffer.writeUInt8(thdv_alarm_settings_item_id); + // 0:disable, 1:enable + buffer.writeUInt8(thdv_alarm_settings_item.enable); + // 0:disable, 2:condition: x>B + buffer.writeUInt8(thdv_alarm_settings_item.threshold_condition); + if (thdv_alarm_settings_item.threshold_min < 0 || thdv_alarm_settings_item.threshold_min > 100) { + throw new Error('threshold_min must be between 0 and 100'); + } + buffer.writeInt16LE(thdv_alarm_settings_item.threshold_min); + if (thdv_alarm_settings_item.threshold_max < 1 || thdv_alarm_settings_item.threshold_max > 100) { + throw new Error('threshold_max must be between 1 and 100'); + } + buffer.writeInt16LE(thdv_alarm_settings_item.threshold_max); + } + encoded = encoded.concat(buffer.toBytes()); + } + //0x7b + if ('voltage_unbalance_alarm_settings' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x7b); + // 0:disable, 1:enable + buffer.writeUInt8(payload.voltage_unbalance_alarm_settings.enable); + // 0:disable, 2:condition: x>B + buffer.writeUInt8(payload.voltage_unbalance_alarm_settings.threshold_condition); + if (payload.voltage_unbalance_alarm_settings.threshold_min < 0 || payload.voltage_unbalance_alarm_settings.threshold_min > 100) { + throw new Error('voltage_unbalance_alarm_settings.threshold_min must be between 0 and 100'); + } + buffer.writeInt16LE(payload.voltage_unbalance_alarm_settings.threshold_min); + if (payload.voltage_unbalance_alarm_settings.threshold_max < 1 || payload.voltage_unbalance_alarm_settings.threshold_max > 100) { + throw new Error('voltage_unbalance_alarm_settings.threshold_max must be between 1 and 100'); + } + buffer.writeInt16LE(payload.voltage_unbalance_alarm_settings.threshold_max); + encoded = encoded.concat(buffer.toBytes()); + } + //0x7c + if ('alarm_global_settings' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x7c); + if (payload.alarm_global_settings.interval < 1 || payload.alarm_global_settings.interval > 1440) { + throw new Error('alarm_global_settings.interval must be between 1 and 1440'); + } + buffer.writeUInt16LE(payload.alarm_global_settings.interval); + if (payload.alarm_global_settings.times < 1 || payload.alarm_global_settings.times > 1000) { + throw new Error('alarm_global_settings.times must be between 1 and 1000'); + } + buffer.writeUInt16LE(payload.alarm_global_settings.times); + // 0:disable, 1:enable + buffer.writeUInt8(payload.alarm_global_settings.release_enable); + encoded = encoded.concat(buffer.toBytes()); + } + //0x6d + if ('month_statistics_settings' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x6d); + if (payload.month_statistics_settings.day < 1 || payload.month_statistics_settings.day > 28) { + throw new Error('month_statistics_settings.day must be between 1 and 28'); + } + buffer.writeUInt8(payload.month_statistics_settings.day); + if (payload.month_statistics_settings.hour < 0 || payload.month_statistics_settings.hour > 23) { + throw new Error('month_statistics_settings.hour must be between 0 and 23'); + } + buffer.writeUInt8(payload.month_statistics_settings.hour); + if (payload.month_statistics_settings.minute < 0 || payload.month_statistics_settings.minute > 59) { + throw new Error('month_statistics_settings.minute must be between 0 and 59'); + } + buffer.writeUInt8(payload.month_statistics_settings.minute); + encoded = encoded.concat(buffer.toBytes()); + } + //0x6c + if ('report_enable' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x6c); + var bitOptions = 0; + bitOptions |= payload.report_enable.temperature << 0; + + bitOptions |= payload.report_enable.current << 1; + + bitOptions |= payload.report_enable.voltage << 2; + + bitOptions |= payload.report_enable.power_factor << 3; + + bitOptions |= payload.report_enable.active_power << 4; + + bitOptions |= payload.report_enable.reactive_power << 5; + + bitOptions |= payload.report_enable.apparent_power << 6; + + bitOptions |= payload.report_enable.forward_active_energy << 7; + + bitOptions |= payload.report_enable.reverse_active_energy << 8; + + bitOptions |= payload.report_enable.forward_reactive_energy << 9; + + bitOptions |= payload.report_enable.reverse_reactive_energy << 10; + + bitOptions |= payload.report_enable.apparent_energy << 11; + + bitOptions |= payload.report_enable.thdi << 12; + + bitOptions |= payload.report_enable.thdv << 13; + + bitOptions |= payload.report_enable.voltage_unbalance << 14; + buffer.writeUInt16LE(bitOptions); + + encoded = encoded.concat(buffer.toBytes()); + } + //0xbf + if ('reset' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xbf); + encoded = encoded.concat(buffer.toBytes()); + } + //0xbe + if ('reboot' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xbe); + encoded = encoded.concat(buffer.toBytes()); + } + //0x5d + if ('stop_historical_data_retrieval' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x5d); + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + buffer.writeUInt8(payload.stop_historical_data_retrieval.type); + encoded = encoded.concat(buffer.toBytes()); + } + //0x5b + if ('retrieve_historical_data_by_time' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x5b); + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + buffer.writeUInt8(payload.retrieve_historical_data_by_time.type); + buffer.writeUInt32LE(payload.retrieve_historical_data_by_time.time); + encoded = encoded.concat(buffer.toBytes()); + } + //0x5c + if ('retrieve_historical_data_by_time_range' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x5c); + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + buffer.writeUInt8(payload.retrieve_historical_data_by_time_range.type); + buffer.writeUInt32LE(payload.retrieve_historical_data_by_time_range.start_time); + buffer.writeUInt32LE(payload.retrieve_historical_data_by_time_range.end_time); + encoded = encoded.concat(buffer.toBytes()); + } + //0xb9 + if ('query_device_status' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xb9); + encoded = encoded.concat(buffer.toBytes()); + } + //0xb8 + if ('synchronize_time' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xb8); + encoded = encoded.concat(buffer.toBytes()); + } + //0xb7 + if ('set_time' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xb7); + buffer.writeUInt32LE(payload.set_time.timestamp); + encoded = encoded.concat(buffer.toBytes()); + } + //0xb6 + if ('reconnect' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0xb6); + encoded = encoded.concat(buffer.toBytes()); + } + //0x5f + if ('reset_energy' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x5f); + if (payload.reset_energy.channel < 0 || payload.reset_energy.channel > 12) { + throw new Error('reset_energy.channel must be between 0 and 12'); + } + buffer.writeUInt8(payload.reset_energy.channel); + encoded = encoded.concat(buffer.toBytes()); + } + //0x5e + if ('clear_data' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x5e); + // 0:alarm data, 1:period data, 2:month energy data, 3:month min_max data + buffer.writeUInt8(payload.clear_data.type); + encoded = encoded.concat(buffer.toBytes()); + } + //0x57 + if ('query_history_set' in payload) { + var buffer = new Buffer(); + buffer.writeUInt8(0x57); + encoded = encoded.concat(buffer.toBytes()); + } + return encoded; +} + +function Buffer() { + this.buffer = new Array(); +} + +Buffer.prototype._write = function(value, byteLength, isLittleEndian) { + value = Math.round(value); + var offset = 0; + for (var index = 0; index < byteLength; index++) { + offset = isLittleEndian ? index << 3 : (byteLength - 1 - index) << 3; + this.buffer.push((value >> offset) & 0xff); + } +}; + +Buffer.prototype.writeUInt8 = function(value) { + this._write(value, 1, true); +}; + +Buffer.prototype.writeInt8 = function(value) { + this._write(value < 0 ? value + 0x100 : value, 1, true); +}; + +Buffer.prototype.writeUInt16LE = function(value) { + this._write(value, 2, true); +}; + +Buffer.prototype.writeInt16LE = function(value) { + this._write(value < 0 ? value + 0x10000 : value, 2, true); +}; + +Buffer.prototype.writeUInt24LE = function(value) { + this._write(value, 3, true); +}; + +Buffer.prototype.writeInt24LE = function(value) { + this._write(value < 0 ? value + 0x1000000 : value, 3, true); +}; + +Buffer.prototype.writeUInt32LE = function(value) { + this._write(value, 4, true); +}; + +Buffer.prototype.writeInt32LE = function(value) { + this._write(value < 0 ? value + 0x100000000 : value, 4, true); +}; + +Buffer.prototype.writeBytes = function(bytes, length, mustEqual) { + if (mustEqual === undefined) mustEqual = false; + if (length < bytes.length) { + throw new Error('bytes length is greater than length'); + } + if (mustEqual && bytes.length != length) { + throw new Error('bytes length is not equal to length'); + } + + for (var i = 0; i < bytes.length; i++) { + this.buffer.push(bytes[i]); + } + + if (length > bytes.length) { + for (var i = bytes.length; i < length; i++) { + this.buffer.push(0); + } + } +}; + +Buffer.prototype.writeHexString = function(hexString, length, mustEqual) { + if (mustEqual === undefined) mustEqual = false; + var bytes = []; + for (var i = 0; i < hexString.length; i += 2) { + bytes.push(parseInt(hexString.substr(i, 2), 16)); + } + if (mustEqual && bytes.length != length) { + throw new Error('hex string length is not equal to length'); + } + this.writeBytes(bytes, length); +}; + +Buffer.prototype.writeString = function(str, length, mustEqual) { + if (mustEqual === undefined) mustEqual = false; + var bytes = encodeUtf8(str); + if (mustEqual && bytes.length != length) { + throw new Error('string length is not equal to length'); + } + this.writeBytes(bytes, length); +}; + +Buffer.prototype.writeUnknownDataType = function(val) { + throw new Error('Unknown data type encountered. Please Contact Developer.'); +}; + +Buffer.prototype.writeHexStringReverse = function(hexString, length, mustEqual) { + if (mustEqual === undefined) mustEqual = false; + var bytes = []; + for (var i = hexString.length - 2; i >= 0; i -= 2) { + bytes.push(parseInt(hexString.substr(i, 2), 16)); + } + if (mustEqual && bytes.length != length) { + throw new Error('hex string length is not equal to length'); + } + this.writeBytes(bytes, length); +}; + +Buffer.prototype.toBytes = function() { + return this.buffer; +}; + +function encodeUtf8(str) { + var byteArray = []; + for (var i = 0; i < str.length; i++) { + var charCode = str.charCodeAt(i); + if (charCode < 0x80) { + byteArray.push(charCode); + } else if (charCode < 0x800) { + byteArray.push(0xc0 | (charCode >> 6)); + byteArray.push(0x80 | (charCode & 0x3f)); + } else if (charCode < 0x10000) { + byteArray.push(0xe0 | (charCode >> 12)); + byteArray.push(0x80 | ((charCode >> 6) & 0x3f)); + byteArray.push(0x80 | (charCode & 0x3f)); + } else if (charCode < 0x200000) { + byteArray.push(0xf0 | (charCode >> 18)); + byteArray.push(0x80 | ((charCode >> 12) & 0x3f)); + byteArray.push(0x80 | ((charCode >> 6) & 0x3f)); + byteArray.push(0x80 | (charCode & 0x3f)); + } + } + return byteArray; +} + +function isValid(value) { + return value !== undefined && value !== null && value !== ''; +} + + +function cmdMap() { + return { + "request_check_sequence_number": "ff", + "request_check_order": "fe", + "request_command_queries": "ef", + "request_query_all_configurations": "ee", + "historical_data_report": "ed", + "lorawan_configuration_settings": "cf", + "lorawan_configuration_settings.version": "cfd8", + "tsl_version": "df", + "product_name": "de", + "product_pn": "dd", + "product_sn": "db", + "version": "da", + "oem_id": "d9", + "product_frequency_band": "d8", + "device_info": "d7", + "temperature": "01", + "voltage_three_phase_imbalcance": "02", + "thdi": "03", + "thdi._item": "03xx", + "thdv": "04", + "thdv._item": "04xx", + "current": "05", + "current._item": "05xx", + "voltage": "06", + "voltage._item": "06xx", + "power_factor": "07", + "active_power1": "08", + "active_power2": "09", + "reactive_power1": "0a", + "reactive_power2": "0b", + "apparent_power1": "0c", + "apparent_power2": "0d", + "forward_active_energy1": "0e", + "forward_active_energy2": "0f", + "reverse_active_energy1": "10", + "reverse_active_energy2": "11", + "forward_reactive_energy1": "12", + "forward_reactive_energy2": "13", + "reverse_reactive_energy1": "14", + "reverse_reactive_energy2": "15", + "apparent_energy1": "16", + "apparent_energy2": "17", + "history_type": "40", + "temperature_alarm": "30", + "current_alarm": "31", + "voltage_alarm": "32", + "thdi_alarm": "33", + "thdv_alarm": "34", + "voltage_unbalance_alarm": "35", + "power_loss_alarm": "36", + "collection_interval": "60", + "reporting_interval": "61", + "device_status": "c8", + "temperature_unit": "63", + "bluetooth_name": "64", + "data_storage_settings": "c5", + "data_storage_settings.enable": "c500", + "data_storage_settings.retransmission_enable": "c501", + "data_storage_settings.retransmission_interval": "c502", + "data_storage_settings.retrieval_interval": "c503", + "voltage_interface": "66", + "current_interface1": "67", + "current_interface1.config._item": "undefinedxx", + "current_interface2": "68", + "current_interface2.config._item": "undefinedxx", + "current_interface3": "69", + "current_interface3.config._item": "undefinedxx", + "current_interface4": "6a", + "current_interface4.config._item": "undefinedxx", + "temperature_calibration_settings": "6b", + "time_zone": "c7", + "daylight_saving_time": "c6", + "temperature_alarm_settings": "76", + "current_alarm_settings": "77", + "current_alarm_settings._item": "77xx", + "voltage_alarm_settings": "78", + "voltage_alarm_settings._item": "78xx", + "thdi_alarm_settings": "79", + "thdi_alarm_settings._item": "79xx", + "thdv_alarm_settings": "7a", + "thdv_alarm_settings._item": "7axx", + "voltage_unbalance_alarm_settings": "7b", + "alarm_global_settings": "7c", + "month_statistics_settings": "6d", + "report_enable": "6c", + "reset": "bf", + "reboot": "be", + "stop_historical_data_retrieval": "5d", + "retrieve_historical_data_by_time": "5b", + "retrieve_historical_data_by_time_range": "5c", + "query_device_status": "b9", + "synchronize_time": "b8", + "set_time": "b7", + "reconnect": "b6", + "reset_energy": "5f", + "clear_data": "5e", + "query_history_set": "57" + }; +} \ No newline at end of file diff --git a/vendors/milesight-iot/devices.json b/vendors/milesight-iot/devices.json index f5a908e..7ac04bb 100644 --- a/vendors/milesight-iot/devices.json +++ b/vendors/milesight-iot/devices.json @@ -1793,6 +1793,34 @@ "decoder_script": "vendors/milesight-iot/wt-series/wt401/wt401-decoder.js", "encoder_script": "vendors/milesight-iot/wt-series/wt401/wt401-encoder.js", "ipso_version": "v2" + }, + { + "id": "cth01", + "name": "CTH01", + "description": "Intelligent power monitoring terminal", + "catalog": "cth", + "sn": "6637", + "pn": ["000"], + "deveui": "24e124637", + "device_profile": ["ClassC-OTAA"], + "codec": "vendors/milesight-iot/cth-series/cth01/cth01-codec.json", + "decoder_script": "vendors/milesight-iot/cth-series/cth01/cth01-decoder.js", + "encoder_script": "vendors/milesight-iot/cth-series/cth01/cth01-encoder.js", + "ipso_version": "v2" + }, + { + "id": "cth01_compress", + "name": "CTH01 Compress", + "description": "Intelligent power monitoring terminal", + "catalog": "cth", + "sn": "6637", + "pn": ["000"], + "deveui": "24e124637", + "device_profile": ["ClassC-OTAA"], + "codec": "vendors/milesight-iot/cth-series/cth01-compress/cth01-compress-codec.json", + "decoder_script": "vendors/milesight-iot/cth-series/cth01-compress/cth01-compress-decoder.js", + "encoder_script": "vendors/milesight-iot/cth-series/cth01-compress/cth01-compress-encoder.js", + "ipso_version": "v2" } ] } diff --git a/version.json b/version.json index a2288fd..ede36b1 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { - "date": "2026-03-13", - "version": "1.5.31", + "date": "2026-03-30", + "version": "1.5.32", "vendors": "vendors.json", "link": "https://github.com/Milesight-IoT/codec/archive/refs/heads/release.zip" }