lookups.ts
/*
* Application Information
*/
export const dataCustodianApplicationStatuses = Object.freeze({
1: 'Review',
2: 'Production (Live)',
3: 'On Hold',
4: 'Revoked'
})
export const thirdPartyApplicationStatuses = Object.freeze({
1: 'Development',
2: 'ReviewTest',
3: 'Production',
4: 'Retired'
})
export const thirdPartyApplicationTypes = Object.freeze({
1: 'Web',
2: 'Desktop',
3: 'Mobile',
4: 'Device'
})
export const thirdPartyApplicationUses = Object.freeze({
1: 'EnergyManagement',
2: 'Comparisons',
3: 'Government',
4: 'Academic',
5: 'LawEnforcement'
})
export const grantTypes = Object.freeze({
client_credentials: 'Client Credentials',
authorization_code: 'Authorization Code',
refresh_token: 'Refresh Token'
})
export const responseTypes = Object.freeze({
code: 'Code'
})
/*
* Authorization
*/
export const authorizationStatuses = Object.freeze({
0: 'Revoked',
1: 'Active',
2: 'Denied'
})
export const tokenTypes = Object.freeze({
Bearer: 'Bearer'
})
export const authorizationErrors = Object.freeze({
invalid_request: 'Invalid Request',
invalid_client: 'Invalid Client',
invalid_grant: 'Invalid Grant',
unauthorized_client: 'Unauthorized Client',
unsupported_grant_type: 'Unsupported Grant Type',
invalid_redirect_uri: 'Invalid Redirect URI',
invalid_client_metadata: 'Invalid Client Metadata',
invalid_client_id: 'Invalid Client ID',
access_denied: 'Access Denied',
unsupported_response_type: 'Unsupported Response Type',
server_error: 'Server Error',
temporarily_unavailable: 'Temporarily Unavailable'
})
/*
* Customer
*/
export const customerKinds = Object.freeze({
residential: 'Residential customer',
residentialAndCommercial: 'Residential and commercial customer',
residentialAndStreetlight: 'Residential and streetlight customer',
residentialStreetlightOthers:
'Residential streetlight or other related customer',
residentialFarmService: 'Residential farm service customer',
commercialIndustrial: 'Commercial industrial customer',
pumpingLoad: 'Pumping load customer',
windMachine: 'Wind machine customer',
energyServiceSupplier: 'Customer as energy service supplier',
energyServiceScheduler: 'Customer as energy service scheduler',
enterprise: 'Represents the owning enterprise',
regionalOperator: 'Represents a local operator of a larger enterprise',
subsidiary: 'A subsidiary of a larger enterprise',
internalUse: 'An internal use customer',
other: 'Other kind of customer'
})
/*
* Customer Account
*/
export const notificationMethodKinds = Object.freeze({
call: 'Telephone call',
email: 'Email message',
letter: 'Letter',
other: 'Other',
ivr: 'Interactive Voice Response system'
})
/*
* Customer Agreement
*/
export const enrollmentStatuses = Object.freeze({
unenrolled: 'Currently not enrolled',
enrolled: 'Currently enrolled',
enrolledPending: 'Currently pending enrollment'
})
/*
* Interval Block
*/
export const readingQualities = Object.freeze({
0: 'Valid',
7: 'Manually edited',
8: 'Estimated using reference day',
9: 'Estimated using linear interpolation',
10: 'Questionable',
11: 'Derived',
12: 'Projected (forecast)',
13: 'Mixed',
14: 'Raw',
15: 'Normalized for weather',
16: 'Other',
17: 'Validated',
18: 'Verified',
19: 'Revenue Quality'
})
/*
* Meter
*/
export const meterMultiplierKinds = Object.freeze({
kH: 'Meter watt-hour constant',
transformerRatio:
"The ratio of a transformer's primary and secondary windings",
kR: 'Register multiplier',
kE: 'Test constant',
ctRatio: 'Current transformer ratio',
ptRatio: 'Potential transformer ratio'
})
/*
* Reading Type
*/
export const accumulationBehaviours = Object.freeze({
0: 'None',
1: 'Bulk Quantity',
2: 'Continuous Cumulative',
3: 'Cumulative',
4: 'Delta Data',
6: 'Indicating',
9: 'Summation',
10: 'Time Delay',
12: 'Instantaneous',
13: 'Latching Quantity',
14: 'Bounded Quantity'
})
export const commodities = Object.freeze({
0: 'None',
1: 'Electricity Secondary Metered',
2: 'Electricity Primary Metered',
3: 'Communication',
4: 'Air',
5: 'Insulative Gas',
6: 'Insulative Oil',
7: 'Natural Gas',
8: 'Propane',
9: 'Potable Water',
10: 'Steam',
11: 'Waste Water',
12: 'Heating Fluid',
13: 'Cooling Fluid',
14: 'Nonpotable Water',
15: 'NOx',
16: 'SO2',
17: 'CH4',
18: 'CO2',
19: 'Carbon',
20: 'HCH',
21: 'PFC',
22: 'SF6',
23: 'TV Licence',
24: 'Internet',
25: 'Refuse',
26: 'Electricity Transmission Metered'
})
export const dataQualifiers = Object.freeze({
0: 'None',
2: 'Average',
4: 'Excess',
5: 'High Threshold',
7: 'Low Threshold',
8: 'Maximum',
9: 'Minimum',
11: 'Nominal',
12: 'Normal',
16: 'Second Maximum',
17: 'Second Minimum',
23: 'Third Maximum',
24: 'Fourth Maximum',
25: 'Fifth Maximum',
26: 'Sum'
})
export const flowDirections = Object.freeze({
0: 'None',
1: 'Forward',
2: 'Lagging',
3: 'Leading',
4: 'Net',
5: 'Q1 plus Q2',
7: 'Q1 plus Q3',
8: 'Q1 plus Q4',
9: 'Q1 minus Q4',
10: 'Q2 plus Q3',
11: 'Q2 plus Q4',
12: 'Q2 minus Q3',
13: 'Q3 plus Q4',
14: 'Q3 minus Q2',
15: 'Quadrant 1',
16: 'Quadrant 2',
17: 'Quadrant 3',
18: 'Quadrant 4',
19: 'Reverse',
20: 'Total',
21: 'Total By Phase'
})
export const readingTypeKinds = Object.freeze({
0: 'None',
2: 'Apparent Power Factor',
3: 'Currency',
4: 'Current',
5: 'Current Angle',
6: 'Current Imbalance',
7: 'Date',
8: 'Demand',
9: 'Distance',
10: 'Distortion Volt Amperes',
11: 'Energization',
12: 'Energy',
13: 'Energization Load Side',
14: 'Fan',
15: 'Frequency',
16: 'Funds',
17: 'IEEE 1366 ASAI',
18: 'IEEE 1366 ASIDI',
19: 'IEEE 1366 ASIFI',
20: 'IEEE 1366 CAIDI',
21: 'IEEE 1366 CAIFI',
22: 'IEEE 1366 CEMIn',
23: 'IEEE 1366 CEMSMIn',
24: 'IEEE 1366 CTAIDI',
25: 'IEEE 1366 MAIFI',
26: 'IEEE 1366 MAIFIe',
27: 'IEEE 1366 SAIDI',
28: 'IEEE 1366 SAIFI',
31: 'Line Losses',
32: 'Losses',
33: 'Negative Sequence',
34: 'Phasor Power Factor',
35: 'Phasor Reactive Power',
36: 'Positive Sequence',
37: 'Power',
38: 'Power Factor',
40: 'Quantity Power',
41: 'Sag',
42: 'Swell',
43: 'Switch Position',
44: 'Tap Position',
45: 'Tariff Rate',
46: 'Temperature',
47: 'Total Harmonic Distortion',
48: 'Transformer Losses',
49: 'Unipede Voltage Dip 10 to 15',
50: 'Unipede Voltage Dip 15 to 30',
51: 'Unipede Voltage Dip 30 to 60',
52: 'Unipede Voltage Dip 60 to 90',
53: 'Unipede Voltage Dip 90 to 100',
54: 'Voltage',
55: 'Voltage Angle',
56: 'Voltage Excursion',
57: 'Voltage Imbalance',
58: 'Volume',
59: 'Zero Flow Duration',
60: 'Zero Sequence',
64: 'Distortion Power Factor',
81: 'Frequency Excursion',
90: 'Application Context',
91: 'Ap Title',
92: 'Asset Number',
93: 'Bandwidth',
94: 'Battery Voltage',
95: 'Broadcast Address',
96: 'Device Address Type 1',
97: 'Device Address Type 2',
98: 'Device Address Type 3',
99: 'Device Address Type 4',
100: 'Device Class',
101: 'Electronic Serial Number',
102: 'End Device ID',
103: 'Group Address Type 1',
104: 'Group Address Type 2',
105: 'Group Address Type 3',
106: 'Group Address Type 4',
107: 'IP Address',
108: 'MAC Address',
109: 'Manufacturing Assigned Configuration ID',
110: 'Manufacturing Assigned Physical Serial Number',
111: 'Manufacturing Assigned Product Number',
112: 'Manufacturing Assigned Unique Communication Address',
113: 'Multi Cast Address',
114: 'One Way Address',
115: 'Signal Strength',
116: 'Two Way Address',
117: 'Signal to Noise Ratio',
118: 'Alarm',
119: 'Battery Carryover',
120: 'Data Overflow Alarm',
121: 'Demand Limit',
122: 'Demand Reset',
123: 'Diagnostic',
124: 'Emergency Limit',
125: 'Encoder Tamper',
126: 'IEEE 1366 Momentary Interruption',
127: 'IEEE 1366 Momentary Interruption Event',
128: 'IEEE 1366 Sustained Interruption',
129: 'Interruption Behaviour',
130: 'Inversion Tamper',
131: 'Load Interrupt',
132: 'Load Shed',
133: 'Maintenance',
134: 'Physical Tamper',
135: 'Power Loss Tamper',
136: 'Power Outage',
137: 'Power Quality',
138: 'Power Restoration',
139: 'Programmed',
140: 'Pushbutton',
141: 'Relay Activation',
142: 'Relay Cycle',
143: 'Removal Tamper',
144: 'Reprogramming Tamper',
145: 'Reverse Rotation Tamper',
146: 'Switch Armed',
147: 'Switch Disabled',
148: 'Tamper',
149: 'Watchdog Timeout',
150: 'Bill Last Period',
151: 'Bill To Date',
152: 'Bill Carryover',
153: 'Connection Fee',
154: 'Audible Volume',
155: 'Volumetric Flow'
})
export const phaseCodes = Object.freeze({
225: 'ABCN',
224: 'ABC',
193: 'ABN',
41: 'ACN',
97: 'BCN',
132: 'AB',
96: 'AC',
66: 'BC',
129: 'AN',
65: 'BN',
33: 'CN',
128: 'A',
64: 'B',
32: 'C',
16: 'N',
272: 'S2N',
784: 'S12N',
528: 'S1N',
256: 'S2',
768: 'S12',
769: 'S12N',
0: 'None',
136: 'AtoAv',
72: 'BAv',
40: 'CAv',
17: 'NG',
512: 'S1'
})
export const timeAttributes = Object.freeze({
0: 'None',
8: 'Billing Period',
11: 'Daily',
13: 'Monthly',
22: 'Seasonal',
24: 'Weekly',
32: 'Specified Period'
})
export const measuringPeriods = Object.freeze({
0: 'None',
1: 'Ten Minute',
2: 'Fifteen Minute',
3: 'One Minute',
4: 'Twenty Four Hour',
5: 'Thirty Minute',
6: 'Five Minute',
7: 'Sixty Minute',
10: 'Two Minute',
14: 'Three Minute',
15: 'Present',
16: 'Previous',
31: 'Twenty Minute',
50: 'Fixed Block 60 Min',
51: 'Fixed Block 30 Min',
52: 'Fixed Block 20 Min',
53: 'Fixed Block 15 Min',
54: 'Fixed Block 10 Min',
55: 'Fixed Block 5 Min',
56: 'Fixed Block 1 Min',
57: 'Rolling Block 60 Min Interval 30 Min Sub Interval',
58: 'Rolling Block 60 Min Interval 20 Min Sub Interval',
59: 'Rolling Block 60 Min Interval 15 Min Sub Interval',
60: 'Rolling Block 60 Min Interval 12 Min Sub Interval',
61: 'Rolling Block 60 Min Interval 10 Min Sub Interval',
62: 'Rolling Block 60 Min Interval 6 Min Sub Interval',
63: 'Rolling Block 60 Min Interval 5 Min Sub Interval',
64: 'Rolling Block 60 Min Interval 4 Min Sub Interval',
65: 'Rolling Block 30 Min Interval 15 Min Sub Interval',
66: 'Rolling Block 30 Min Interval 10 Min Sub Interval',
67: 'Rolling Block 30 Min Interval 6 Min Sub Interval',
68: 'Rolling Block 30 Min Interval 5 Min Sub Interval',
69: 'Rolling Block 30 Min Interval 3 Min Sub Interval',
70: 'Rolling Block 30 Min Interval 2 Min Sub Interval',
71: 'Rolling Block 15 Min Interval 5 Min Sub Interval',
72: 'Rolling Block 15 Min Interval 3 Min Sub Interval',
73: 'Rolling Block 15 Min Interval 1 Min Sub Interval',
74: 'Rolling Block 10 Min Interval 5 Min Sub Interval',
75: 'Rolling Block 10 Min Interval 2 Min Sub Interval',
76: 'Rolling Block 10 Min Interval 1 Min Sub Interval',
77: 'Rolling Block 5 Min Interval 1 Min Sub Interval'
})
/*
* Service Status
*/
export const currentStatuses = Object.freeze({
0: 'Unavailable',
1: 'Normal'
})
/*
* Service Supplier
*/
export const serviceSupplierKinds = Object.freeze({
utility: 'Delivers service to the customer',
retailer: 'Sells service but does not delivery to the customer',
other: 'Other kind of supplier',
lse: 'Load Service Entity',
mdma: 'Meter Data Management Agent',
msp: 'Meter Service Provider'
})
/*
* Usage Point
*/
export const serviceCategoryKinds = Object.freeze({
0: 'Electricity',
1: 'Gas',
2: 'Water',
3: 'Time',
4: 'Heat',
5: 'Refuse',
6: 'Sewerage',
7: 'Rates',
8: 'TV Licence',
9: 'Internet'
})
export const amiBillingReadyStatuses = Object.freeze({
amiCapable:
'Usage point is equipped with an AMI capable meter that is not yet currently equipped with a communications module.',
amiDisabled:
'Usage point is equipped with an AMI capable meter; however, the AMI functionality has been disabled or is not being used.',
billingApproved:
'Usage point is equipped with an operating AMI capable meter and accuracy has been certified for billing purposes.',
enabled:
'Usage point is equipped with an AMI capable meter having communications capability.',
nonAmi: 'Usage point is equipped with a non AMI capable meter.',
nonMetered: 'Usage point is not currently equipped with a meter.',
operable:
'Usage point is equipped with an AMI capable meter that is functioning and communicating with the AMI network.'
})
export const connectionStates = Object.freeze({
connected:
'The usage point is connected to the network and able to receive or send the applicable commodity (electricity, gas, water, etc.).',
logicallyDisconnected:
'The usage point has been disconnected through operation of a disconnect function within the meter present at the usage point. The usage point is unable to receive or send the applicable commodity (electricity, gas, water, etc.) A logical disconnect can often be achieved without utilising a field crew.',
physicallyDisconnected:
'The usage point has been disconnected from the network at a point upstream of the meter. The usage point is unable to receive or send the applicable commodity (electricity, gas, water, etc.). A physical disconnect is often achieved by utilising a field crew.'
})
export const pnodeTypes = Object.freeze({
AG: 'Aggregated Generation',
CPZ: 'Custom Price Zone',
DPZ: 'Default Price Zone',
LAP: 'Load Aggregation Point',
TH: 'Trading Hub',
SYS: 'System Zone',
CA: 'Control Area',
DCA: 'Designated Congestion Area',
GA: 'Generic Aggregation',
GH: 'Generic Hub',
EHV: '500 kV - Extra High Voltage aggregate price nodes',
ZN: 'Zone',
INT: 'Interface',
BUS: 'Bus'
})
export const anodeTypes = Object.freeze({
SYS: 'System Zone/Region',
RUC: 'RUC Zone',
LFZ: 'Load Forecast Zone',
REG: 'Market Energy/Ancillary Service Region',
AGR: 'Aggregate Generation Resource',
POD: 'Point of Delivery',
ALR: 'Aggregate Load Resource',
LTAC: 'Load TransmissionAccessCharge (TAC) Group',
ACA: 'Adjacent Control Area',
ASR: 'Aggregated System Resource',
ECA: 'Embedded Control Area'
})
/*
* Usage Summary
*/
export const costDetailItemKinds = Object.freeze({
1: 'Energy Generation Fee',
2: 'Energy Delivery Fee',
3: 'Energy Usage Fee',
4: 'Administrative Fee',
5: 'Tax',
6: 'Energy Generation Credit',
7: 'Energy Delivery Credit',
8: 'Administrative Credit',
9: 'Payment',
10: 'Information'
})
/*
* Measurement
*/
export const powerOfTenMultipliers = Object.freeze({
'-12': 'Pico',
'-9': 'Nano',
'-6': 'Micro',
'-3': 'Milli',
'-2': 'Centi',
'-1': 'Deci',
0: 'None',
1: 'Deca',
2: 'Hecto',
3: 'Kilo',
6: 'Mega',
9: 'Giga',
12: 'Tera'
})
export const unitsOfMeasurement = Object.freeze({
61: 'VA',
38: 'W',
63: 'VAr',
71: 'VAh',
72: 'Wh',
73: 'VArh',
29: 'V',
30: 'ohm',
5: 'A',
25: 'F',
28: 'H',
23: 'degC',
27: 'sec',
159: 'min',
160: 'h',
9: 'deg',
10: 'rad',
31: 'J',
32: 'n',
53: 'siemens',
0: 'none',
33: 'Hz',
3: 'g',
39: 'pa',
2: 'm',
41: 'm2',
42: 'm3',
69: 'A2',
105: 'A2h',
70: 'A2s',
106: 'Ah',
152: 'APerA',
103: 'APerM',
68: 'As',
79: 'b',
113: 'bm',
22: 'bq',
132: 'btu',
133: 'btuPerH',
8: 'cd',
76: 'char',
75: 'HzPerSec',
114: 'code',
65: 'cosTheta',
111: 'count',
119: 'ft3',
120: 'ft3compensated',
123: 'ft3compensatedPerH',
78: 'gM2',
144: 'gPerG',
21: 'gy',
150: 'HzPerHz',
77: 'charPerSec',
130: 'imperialGal',
131: 'imperialGalPerH',
51: 'jPerK',
165: 'jPerKg',
6: 'K',
158: 'kat',
47: 'kgM',
48: 'kgPerM3',
134: 'litre',
157: 'litreCompensated',
138: 'litreCompensatedPerH',
137: 'litrePerH',
143: 'litrePerLitre',
82: 'litrePerSec',
156: 'litreUncompensated',
139: 'litreUncompensatedPerH',
35: 'lm',
34: 'lx',
49: 'm2PerSec',
167: 'm3compensated',
126: 'm3compensatedPerH',
125: 'm3PerH',
45: 'm3PerSec',
166: 'm3uncompensated',
127: 'm3uncompensatedPerH',
118: 'meCode',
7: 'mol',
147: 'molPerKg',
145: 'molPerM3',
146: 'molPerMol',
80: 'money',
148: 'mPerM',
46: 'mPerM3',
43: 'mPerSec',
44: 'mPerSec2',
102: 'ohmM',
155: 'paA',
140: 'paG',
141: 'psiA',
142: 'psiG',
100: 'q',
161: 'q45',
163: 'q45h',
162: 'q60',
164: 'q60h',
101: 'qh',
54: 'radPerSec',
154: 'rev',
4: 'revPerSec',
149: 'secPerSec',
11: 'sr',
109: 'status',
24: 'sv',
37: 't',
169: 'therm',
108: 'timeStamp',
128: 'usGal',
129: 'usGalPerH',
67: 'V2',
104: 'V2h',
117: 'VAhPerRev',
116: 'VArhPerRev',
74: 'VPerHz',
151: 'VPerV',
66: 'Vs',
36: 'wb',
107: 'WhPerM3',
115: 'WhPerRev',
50: 'wPerMK',
81: 'WPerSec',
153: 'WPerVA',
168: 'WPerW'
})
export const currencies = Object.freeze({
840: 'USD',
978: 'EUR',
36: 'AUD',
124: 'CAD',
756: 'CHF',
156: 'CNY',
208: 'DKK',
826: 'GBP',
392: 'JPY',
578: 'NOK',
643: 'RUB',
752: 'SEK',
356: 'INR',
0: 'Other'
})
export default {
dataCustodianApplicationStatuses,
thirdPartyApplicationStatuses,
thirdPartyApplicationTypes,
thirdPartyApplicationUses,
grantTypes,
responseTypes,
authorizationStatuses,
tokenTypes,
authorizationErrors,
customerKinds,
notificationMethodKinds,
enrollmentStatuses,
readingQualities,
meterMultiplierKinds,
accumulationBehaviours,
commodities,
dataQualifiers,
flowDirections,
readingTypeKinds,
phaseCodes,
timeAttributes,
measuringPeriods,
currentStatuses,
serviceSupplierKinds,
serviceCategoryKinds,
amiBillingReadyStatuses,
connectionStates,
pnodeTypes,
anodeTypes,
costDetailItemKinds,
powerOfTenMultipliers,
unitsOfMeasurement,
currencies
}