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
+
+
+
+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: xB |
+| 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: xB |
+| 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: xB"
+ }
+ ],
+ "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
+
+
+
+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: xB |
+| 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: xB |
+| 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: xB"
+ }
+ ],
+ "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"
}