Raritan / Server Technology Xerus™ PDU JSON-RPC API
sensorpush.idl
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3  * Copyright 2012 Raritan Inc. All rights reserved.
4  */
5 
6 #include "NumericSensor.idl"
7 #include "SensorLogger.idl"
8 
9 /** The datapush module contains the definition of the JSON-encoded datapush messages. The standard rules for enconding apply.
10 
11  \ref datapush_example
12 */
13 module datapush {
14  enumeration PowerLine {
15  L1, ///< Line 1
16  L2, ///< Line 2
17  L3, ///< Line 3
18  NEUTRAL, ///< Neutral
19  EARTH, ///< Earth
20  PLUS, ///< Positive (DC)
21  MINUS ///< Negative (DC)
22  };
23 
24  /** Device type */
25  enumeration DeviceType {
26  INLET, ///< Inlet
27  INLET_POLE, ///< Inlet Pole
28  OCP, ///< Overcurrent Protector
29  OCP_POLE, ///< Overcurrent Protector Pole
30  OUTLET, ///< Outlet
31  OUTLET_POLE, ///< Outlet Pole
32  WIRE, ///< Wire
33  WIRE_POLE, ///< Wire Pole
34  TRANSFER_SWITCH, ///< Transfer Switch
35  TRANSFER_SWITCH_POLE, ///< Transfer Switch Pole
36  EXTERNAL_SENSOR, ///< External Sensor
37  POWER_METER, ///< Power Meter
38  POWER_METER_POLE, ///< Power Meter Pole
39  PANEL_CIRCUIT, ///< Circuit in a PMC Panel
40  PANEL_CIRCUIT_POLE, ///< Circuit Pole in a PMC Panel
41  PDU, ///< PDU global
42  OUTLET_GROUP, ///< Outlet group,
43  INLET_LINE_PAIR ///< Inlet Line Pair (line-line sensor)
44  };
45 
46  /** Device information */
47  structure Device {
48  DeviceType type; ///< Device type
49  string label; ///< Device label
50  string name; ///< Device name (i.e. user-configurable names for Outlets, Inlets, ...)
51  PowerLine line; ///< Power line (pole sensors only)
52  };
53 
54  /** Sensor information */
55  structure Sensor {
56  Device device; ///< Device information
57  string id; ///< Sensor identification
59  ///< Reading type (numeric or discrete)
61  ///< Metadata (if readingType is NUMERIC)
62  };
63 
64  /** One full log row (one timestamp, mulitple sensors) */
65  structure LogRow {
66  time timestamp; ///< UNIX timestamp (UTC)
68  ///< Log records (one per sensor, same order
69  ///< as in the sensor list)
70  };
71 
72  /** Message for pushing one full log record for all sensors */
74  string serialNumber; ///< Device serial number
75  string name; ///< Device name (user-configurable)
76 
77  vector<Sensor> sensors; ///< List of logged sensors
78  vector<LogRow> rows; ///< List of log rows
79  };
80 
81 }
Sensor logger interface.
Definition: SensorLogger.idl:31
A sensor with numeric readings.
Definition: NumericSensor.idl:17
The datapush module contains the definition of the JSON-encoded datapush messages.
Definition: assetmgrpush.idl:10
PowerLine
Definition: sensorpush.idl:14
DeviceType
Device type.
Definition: sensorpush.idl:25
@ PANEL_CIRCUIT
Circuit in a PMC Panel.
Definition: sensorpush.idl:39
@ EXTERNAL_SENSOR
External Sensor.
Definition: sensorpush.idl:36
@ WIRE_POLE
Wire Pole.
Definition: sensorpush.idl:33
@ INLET_LINE_PAIR
Inlet Line Pair (line-line sensor)
Definition: sensorpush.idl:43
@ OCP_POLE
Overcurrent Protector Pole.
Definition: sensorpush.idl:29
@ INLET_POLE
Inlet Pole.
Definition: sensorpush.idl:27
@ POWER_METER_POLE
Power Meter Pole.
Definition: sensorpush.idl:38
@ OUTLET_POLE
Outlet Pole.
Definition: sensorpush.idl:31
@ INLET
Inlet.
Definition: sensorpush.idl:26
@ OCP
Overcurrent Protector.
Definition: sensorpush.idl:28
@ POWER_METER
Power Meter.
Definition: sensorpush.idl:37
@ OUTLET_GROUP
Outlet group,.
Definition: sensorpush.idl:42
@ PANEL_CIRCUIT_POLE
Circuit Pole in a PMC Panel.
Definition: sensorpush.idl:40
@ OUTLET
Outlet.
Definition: sensorpush.idl:30
@ PDU
PDU global.
Definition: sensorpush.idl:41
@ TRANSFER_SWITCH_POLE
Transfer Switch Pole.
Definition: sensorpush.idl:35
@ TRANSFER_SWITCH
Transfer Switch.
Definition: sensorpush.idl:34
@ WIRE
Wire.
Definition: sensorpush.idl:32
Sensors Model.
Definition: AccumulatingNumericSensor.idl:13
Device information.
Definition: sensorpush.idl:47
string label
Device label.
Definition: sensorpush.idl:49
DeviceType type
Device type.
Definition: sensorpush.idl:48
string name
Device name (i.e. user-configurable names for Outlets, Inlets, ...)
Definition: sensorpush.idl:50
PowerLine line
Power line (pole sensors only)
Definition: sensorpush.idl:51
One full log row (one timestamp, mulitple sensors)
Definition: sensorpush.idl:65
time timestamp
UNIX timestamp (UTC)
Definition: sensorpush.idl:66
vector< sensors::Logger.Record > records
Log records (one per sensor, same order as in the sensor list)
Definition: sensorpush.idl:67
Message for pushing one full log record for all sensors.
Definition: sensorpush.idl:73
vector< LogRow > rows
List of log rows.
Definition: sensorpush.idl:78
vector< Sensor > sensors
List of logged sensors.
Definition: sensorpush.idl:77
string serialNumber
Device serial number.
Definition: sensorpush.idl:74
string name
Device name (user-configurable)
Definition: sensorpush.idl:75
Sensor information.
Definition: sensorpush.idl:55
Device device
Device information.
Definition: sensorpush.idl:56
sensors::NumericSensor MetaData metadata
Metadata (if readingType is NUMERIC)
Definition: sensorpush.idl:60
string id
Sensor identification.
Definition: sensorpush.idl:57
int readingtype
Reading type (numeric or discrete)
Definition: sensorpush.idl:58
Sensor log record.
Definition: SensorLogger.idl:148
Numeric sensor metadata.
Definition: NumericSensor.idl:40