@enyo-energy/sunspec-sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cjs/sunspec-devices.cjs +334 -0
- package/dist/cjs/sunspec-devices.d.cts +87 -0
- package/dist/cjs/sunspec-interfaces.cjs +52 -0
- package/dist/cjs/sunspec-interfaces.d.cts +240 -0
- package/dist/cjs/sunspec-modbus-client.cjs +715 -0
- package/dist/cjs/sunspec-modbus-client.d.cts +111 -0
- package/dist/cjs/version.cjs +19 -0
- package/dist/cjs/version.d.cts +13 -0
- package/dist/sunspec-devices.d.ts +87 -0
- package/dist/sunspec-devices.js +327 -0
- package/dist/sunspec-interfaces.d.ts +240 -0
- package/dist/sunspec-interfaces.js +49 -0
- package/dist/sunspec-modbus-client.d.ts +111 -0
- package/dist/sunspec-modbus-client.js +711 -0
- package/dist/version.d.ts +13 -0
- package/dist/version.js +15 -0
- package/package.json +45 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SunSpec block interfaces with block numbers
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base interface for all SunSpec blocks
|
|
6
|
+
*/
|
|
7
|
+
export interface SunspecBlock {
|
|
8
|
+
blockNumber: number;
|
|
9
|
+
blockAddress?: number;
|
|
10
|
+
blockLength?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Common Sunspec Model IDs
|
|
14
|
+
*/
|
|
15
|
+
export declare enum SunspecModelId {
|
|
16
|
+
Common = 1,
|
|
17
|
+
Inverter3Phase = 103,
|
|
18
|
+
InverterSinglePhase = 101,
|
|
19
|
+
MPPT = 160,
|
|
20
|
+
Battery = 124,
|
|
21
|
+
BatteryBase = 802,
|
|
22
|
+
BatteryControl = 803,
|
|
23
|
+
MeterSinglePhase = 201,
|
|
24
|
+
Meter3Phase = 203,
|
|
25
|
+
MeterWye = 204,
|
|
26
|
+
Nameplate = 120,
|
|
27
|
+
Settings = 121,
|
|
28
|
+
Status = 122,
|
|
29
|
+
Controls = 123,
|
|
30
|
+
EndMarker = 65535
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Model information discovered during scanning
|
|
34
|
+
*/
|
|
35
|
+
export interface SunspecModel {
|
|
36
|
+
id: number;
|
|
37
|
+
address: number;
|
|
38
|
+
length: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Data types for Sunspec registers
|
|
42
|
+
*/
|
|
43
|
+
export type RegisterValue = number | string | bigint;
|
|
44
|
+
/**
|
|
45
|
+
* Scale factor cache
|
|
46
|
+
*/
|
|
47
|
+
export interface ScaleFactors {
|
|
48
|
+
[key: string]: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Common block (Model 1) data structure
|
|
52
|
+
*/
|
|
53
|
+
export interface SunspecCommonBlock extends SunspecBlock {
|
|
54
|
+
blockNumber: 1;
|
|
55
|
+
manufacturer?: string;
|
|
56
|
+
model?: string;
|
|
57
|
+
options?: string;
|
|
58
|
+
version?: string;
|
|
59
|
+
serialNumber?: string;
|
|
60
|
+
deviceAddress?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Inverter data structure based on Model 103
|
|
64
|
+
*/
|
|
65
|
+
export interface SunspecInverterData extends SunspecBlock {
|
|
66
|
+
blockNumber: 103 | 101;
|
|
67
|
+
acCurrent?: number;
|
|
68
|
+
phaseACurrent?: number;
|
|
69
|
+
phaseBCurrent?: number;
|
|
70
|
+
phaseCCurrent?: number;
|
|
71
|
+
voltageAB?: number;
|
|
72
|
+
voltageBC?: number;
|
|
73
|
+
voltageCA?: number;
|
|
74
|
+
voltageAN?: number;
|
|
75
|
+
voltageBN?: number;
|
|
76
|
+
voltageCN?: number;
|
|
77
|
+
acPower?: number;
|
|
78
|
+
frequency?: number;
|
|
79
|
+
apparentPower?: number;
|
|
80
|
+
reactivePower?: number;
|
|
81
|
+
powerFactor?: number;
|
|
82
|
+
acEnergy?: bigint;
|
|
83
|
+
dcCurrent?: number;
|
|
84
|
+
dcVoltage?: number;
|
|
85
|
+
dcPower?: number;
|
|
86
|
+
cabinetTemperature?: number;
|
|
87
|
+
heatSinkTemperature?: number;
|
|
88
|
+
transformerTemperature?: number;
|
|
89
|
+
otherTemperature?: number;
|
|
90
|
+
operatingState?: number;
|
|
91
|
+
vendorState?: number;
|
|
92
|
+
events?: number;
|
|
93
|
+
events2?: number;
|
|
94
|
+
vendorEvents1?: number;
|
|
95
|
+
vendorEvents2?: number;
|
|
96
|
+
vendorEvents3?: number;
|
|
97
|
+
vendorEvents4?: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* MPPT data structure based on Model 160
|
|
101
|
+
*/
|
|
102
|
+
export interface SunspecMPPTData extends SunspecBlock {
|
|
103
|
+
blockNumber: 160;
|
|
104
|
+
id: number;
|
|
105
|
+
stringId?: string;
|
|
106
|
+
dcCurrent?: number;
|
|
107
|
+
dcCurrentSF?: number;
|
|
108
|
+
dcVoltage?: number;
|
|
109
|
+
dcVoltageSF?: number;
|
|
110
|
+
dcPower?: number;
|
|
111
|
+
dcPowerSF?: number;
|
|
112
|
+
dcEnergy?: bigint;
|
|
113
|
+
dcEnergySF?: number;
|
|
114
|
+
timestamp?: number;
|
|
115
|
+
temperature?: number;
|
|
116
|
+
temperatureSF?: number;
|
|
117
|
+
operatingState?: number;
|
|
118
|
+
vendorState?: number;
|
|
119
|
+
events?: number;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Battery data structure
|
|
123
|
+
*/
|
|
124
|
+
export interface SunspecBatteryData extends SunspecBlock {
|
|
125
|
+
blockNumber: 124 | 802 | 803;
|
|
126
|
+
soc?: number;
|
|
127
|
+
soh?: number;
|
|
128
|
+
chargePower?: number;
|
|
129
|
+
dischargePower?: number;
|
|
130
|
+
voltage?: number;
|
|
131
|
+
current?: number;
|
|
132
|
+
temperature?: number;
|
|
133
|
+
status?: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Meter data structure
|
|
137
|
+
*/
|
|
138
|
+
export interface SunspecMeterData extends SunspecBlock {
|
|
139
|
+
blockNumber: 201 | 203 | 204;
|
|
140
|
+
totalPower?: number;
|
|
141
|
+
phaseAPower?: number;
|
|
142
|
+
phaseBPower?: number;
|
|
143
|
+
phaseCPower?: number;
|
|
144
|
+
totalEnergy?: bigint;
|
|
145
|
+
exportedEnergy?: bigint;
|
|
146
|
+
importedEnergy?: bigint;
|
|
147
|
+
voltage?: number;
|
|
148
|
+
current?: number;
|
|
149
|
+
frequency?: number;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Block 121 - Inverter Basic Settings
|
|
153
|
+
* Reference: SunSpec Model 121
|
|
154
|
+
*/
|
|
155
|
+
export interface SunspecInverterSettings extends SunspecBlock {
|
|
156
|
+
blockNumber: 121;
|
|
157
|
+
WMax?: number;
|
|
158
|
+
WMax_SF?: number;
|
|
159
|
+
VRef?: number;
|
|
160
|
+
VRef_SF?: number;
|
|
161
|
+
VRefOfs?: number;
|
|
162
|
+
VRefOfs_SF?: number;
|
|
163
|
+
VMax?: number;
|
|
164
|
+
VMin?: number;
|
|
165
|
+
VMinMax_SF?: number;
|
|
166
|
+
VAMax?: number;
|
|
167
|
+
VAMax_SF?: number;
|
|
168
|
+
VArMaxQ1?: number;
|
|
169
|
+
VArMaxQ2?: number;
|
|
170
|
+
VArMaxQ3?: number;
|
|
171
|
+
VArMaxQ4?: number;
|
|
172
|
+
VArMax_SF?: number;
|
|
173
|
+
WGra?: number;
|
|
174
|
+
WGra_SF?: number;
|
|
175
|
+
PFMinQ1?: number;
|
|
176
|
+
PFMinQ2?: number;
|
|
177
|
+
PFMinQ3?: number;
|
|
178
|
+
PFMinQ4?: number;
|
|
179
|
+
PFMin_SF?: number;
|
|
180
|
+
VArAct?: number;
|
|
181
|
+
ClcTotVA?: number;
|
|
182
|
+
MaxRmpRte?: number;
|
|
183
|
+
MaxRmpRte_SF?: number;
|
|
184
|
+
ECPNomHz?: number;
|
|
185
|
+
ECPNomHz_SF?: number;
|
|
186
|
+
ConnPh?: number;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Block 123 - Immediate Inverter Controls
|
|
190
|
+
* Reference: SunSpec Model 123
|
|
191
|
+
*/
|
|
192
|
+
export interface SunspecInverterControls extends SunspecBlock {
|
|
193
|
+
blockNumber: 123;
|
|
194
|
+
Conn_WinTms?: number;
|
|
195
|
+
Conn_RvrtTms?: number;
|
|
196
|
+
Conn?: number;
|
|
197
|
+
WMaxLimPct?: number;
|
|
198
|
+
WMaxLimPct_SF?: number;
|
|
199
|
+
WMaxLimPct_WinTms?: number;
|
|
200
|
+
WMaxLimPct_RvrtTms?: number;
|
|
201
|
+
WMaxLimPct_RmpTms?: number;
|
|
202
|
+
WMaxLim_Ena?: number;
|
|
203
|
+
OutPFSet?: number;
|
|
204
|
+
OutPFSet_SF?: number;
|
|
205
|
+
OutPFSet_WinTms?: number;
|
|
206
|
+
OutPFSet_RvrtTms?: number;
|
|
207
|
+
OutPFSet_RmpTms?: number;
|
|
208
|
+
OutPFSet_Ena?: number;
|
|
209
|
+
VArWMaxPct?: number;
|
|
210
|
+
VArMaxPct?: number;
|
|
211
|
+
VArAvalPct?: number;
|
|
212
|
+
VArPct_SF?: number;
|
|
213
|
+
VArPct_WinTms?: number;
|
|
214
|
+
VArPct_RvrtTms?: number;
|
|
215
|
+
VArPct_RmpTms?: number;
|
|
216
|
+
VArPct_Mod?: number;
|
|
217
|
+
VArPct_Ena?: number;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Enum values for connection control
|
|
221
|
+
*/
|
|
222
|
+
export declare enum SunspecConnectionControl {
|
|
223
|
+
DISCONNECT = 0,
|
|
224
|
+
CONNECT = 1
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Enum values for enable/disable controls
|
|
228
|
+
*/
|
|
229
|
+
export declare enum SunspecEnableControl {
|
|
230
|
+
DISABLED = 0,
|
|
231
|
+
ENABLED = 1
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Enum values for VAR percent mode
|
|
235
|
+
*/
|
|
236
|
+
export declare enum SunspecVArPctMode {
|
|
237
|
+
NONE = 0,
|
|
238
|
+
WMAX = 1,
|
|
239
|
+
VARMAX = 2
|
|
240
|
+
}
|