pyFroniusReg 0.2.2__py3-none-any.whl
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.
- pyfroniusreg/froniusreg.py +159 -0
- pyfroniusreg/gen24_primo_symo_inverter_register_map_float.py +172 -0
- pyfroniusreg/gen24_primo_symo_inverter_register_map_float_storage.py +251 -0
- pyfroniusreg/gen24_primo_symo_inverter_register_map_int_sf.py +202 -0
- pyfroniusreg/gen24_primo_symo_inverter_register_map_int_sf_storage.py +281 -0
- pyfroniusreg/gen24_registers_orig.py +67 -0
- pyfroniusreg/smart_meter_register_map_float.py +61 -0
- pyfroniusreg/smart_meter_register_map_int_sf.py +115 -0
- pyfroniusreg/tauro_eco_inverter_register_map_float.py +161 -0
- pyfroniusreg/tauro_eco_inverter_register_map_int_sf.py +193 -0
- pyfroniusreg/tauro_inverter_register_map_float.py +183 -0
- pyfroniusreg/tauro_inverter_register_map_int_sf.py +213 -0
- pyfroniusreg/verto_inverter_register_map_3mppt_float.py +183 -0
- pyfroniusreg/verto_inverter_register_map_3mppt_int_sf.py +213 -0
- pyfroniusreg/verto_inverter_register_map_4mppt_float.py +194 -0
- pyfroniusreg/verto_inverter_register_map_4mppt_int_sf.py +224 -0
- pyfroniusreg-0.2.2.dist-info/METADATA +65 -0
- pyfroniusreg-0.2.2.dist-info/RECORD +20 -0
- pyfroniusreg-0.2.2.dist-info/WHEEL +4 -0
- pyfroniusreg-0.2.2.dist-info/licenses/LICENSE +660 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
from pyfroniusreg import froniusreg
|
|
2
|
+
|
|
3
|
+
SID = froniusreg.FroniusReg(40001, froniusreg.uint32, 1, """Well-known value. Uniquely identifies this as a SunSpec Modbus Map""")
|
|
4
|
+
ID = froniusreg.FroniusReg(40003, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model common (1)""")
|
|
5
|
+
L = froniusreg.FroniusReg(40004, froniusreg.uint16, 1, """Length of sunspec model common (1)""")
|
|
6
|
+
Mn = froniusreg.FroniusReg(40005, froniusreg.string16, 1, """Manufacturer""")
|
|
7
|
+
Md = froniusreg.FroniusReg(40021, froniusreg.string16, 1, """Device""")
|
|
8
|
+
Vr = froniusreg.FroniusReg(40045, froniusreg.string8, 1, """SW version of inverter""")
|
|
9
|
+
SN = froniusreg.FroniusReg(40053, froniusreg.string16, 1, """Serialnumber of the inverter""")
|
|
10
|
+
DA = froniusreg.FroniusReg(40069, froniusreg.uint16, 1, """Modbus Device Address""")
|
|
11
|
+
ID = froniusreg.FroniusReg(40070, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model inverter (103)""")
|
|
12
|
+
L = froniusreg.FroniusReg(40071, froniusreg.uint16, 1, """Length of sunspec model inverter (103)""")
|
|
13
|
+
A = froniusreg.FroniusReg(40072, froniusreg.uint16, 1, """AC Current""")
|
|
14
|
+
AphA = froniusreg.FroniusReg(40073, froniusreg.uint16, 1, """Phase A Current""")
|
|
15
|
+
AphB = froniusreg.FroniusReg(40074, froniusreg.uint16, 1, """Phase B Current""")
|
|
16
|
+
AphC = froniusreg.FroniusReg(40075, froniusreg.uint16, 1, """Phase C Current""")
|
|
17
|
+
A_SF = froniusreg.FroniusReg(40076, froniusreg.sunssf, 1, """nan""")
|
|
18
|
+
PPVphAB = froniusreg.FroniusReg(40077, froniusreg.uint16, 1, """Phase Voltage AB""")
|
|
19
|
+
PPVphBC = froniusreg.FroniusReg(40078, froniusreg.uint16, 1, """Phase Voltage BC""")
|
|
20
|
+
PPVphCA = froniusreg.FroniusReg(40079, froniusreg.uint16, 1, """Phase Voltage CA""")
|
|
21
|
+
PhVphA = froniusreg.FroniusReg(40080, froniusreg.uint16, 1, """Phase Voltage AN""")
|
|
22
|
+
PhVphB = froniusreg.FroniusReg(40081, froniusreg.uint16, 1, """Phase Voltage BN""")
|
|
23
|
+
PhVphC = froniusreg.FroniusReg(40082, froniusreg.uint16, 1, """Phase Voltage CN""")
|
|
24
|
+
V_SF = froniusreg.FroniusReg(40083, froniusreg.sunssf, 1, """nan""")
|
|
25
|
+
W = froniusreg.FroniusReg(40084, froniusreg.int16, 1, """AC Power""")
|
|
26
|
+
W_SF = froniusreg.FroniusReg(40085, froniusreg.sunssf, 1, """nan""")
|
|
27
|
+
Hz = froniusreg.FroniusReg(40086, froniusreg.uint16, 1, """Line Frequency""")
|
|
28
|
+
Hz_SF = froniusreg.FroniusReg(40087, froniusreg.sunssf, 1, """nan""")
|
|
29
|
+
VA = froniusreg.FroniusReg(40088, froniusreg.int16, 1, """AC Apparent Power""")
|
|
30
|
+
VA_SF = froniusreg.FroniusReg(40089, froniusreg.sunssf, 1, """nan""")
|
|
31
|
+
VAr = froniusreg.FroniusReg(40090, froniusreg.int16, 1, """AC Reactive Power""")
|
|
32
|
+
VAr_SF = froniusreg.FroniusReg(40091, froniusreg.sunssf, 1, """nan""")
|
|
33
|
+
PF = froniusreg.FroniusReg(40092, froniusreg.int16, 1, """AC Power Factor""")
|
|
34
|
+
PF_SF = froniusreg.FroniusReg(40093, froniusreg.sunssf, 1, """nan""")
|
|
35
|
+
WH = froniusreg.FroniusReg(40094, froniusreg.acc32, 1, """AC Energy""")
|
|
36
|
+
WH_SF = froniusreg.FroniusReg(40096, froniusreg.sunssf, 1, """nan""")
|
|
37
|
+
DCA = froniusreg.FroniusReg(40097, froniusreg.uint16, 1, """DC Current""")
|
|
38
|
+
DCV = froniusreg.FroniusReg(40099, froniusreg.uint16, 1, """DC Voltage""")
|
|
39
|
+
DCW = froniusreg.FroniusReg(40101, froniusreg.int16, 1, """DC Power""")
|
|
40
|
+
DCW_SF = froniusreg.FroniusReg(40102, froniusreg.sunssf, 1, """nan""")
|
|
41
|
+
TmpCab = froniusreg.FroniusReg(40103, froniusreg.int16, 1, """Cabinet Temperature""")
|
|
42
|
+
Tmp_SF = froniusreg.FroniusReg(40107, froniusreg.sunssf, 1, """nan""")
|
|
43
|
+
St = froniusreg.FroniusReg(40108, froniusreg.enum16, 1, """Enumerated value. Operating state""")
|
|
44
|
+
StVnd = froniusreg.FroniusReg(40109, froniusreg.enum16, 1, """Vendor specific operating state code""")
|
|
45
|
+
Evt1 = froniusreg.FroniusReg(40110, froniusreg.bitfield32, 1, """Bitmask value. Event fields""")
|
|
46
|
+
Evt2 = froniusreg.FroniusReg(40112, froniusreg.bitfield32, 1, """Reserved for future use""")
|
|
47
|
+
EvtVnd1 = froniusreg.FroniusReg(40114, froniusreg.bitfield32, 1, """Vendor defined events""")
|
|
48
|
+
EvtVnd2 = froniusreg.FroniusReg(40116, froniusreg.bitfield32, 1, """Vendor defined events""")
|
|
49
|
+
ID = froniusreg.FroniusReg(40122, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model nameplate (120)""")
|
|
50
|
+
L = froniusreg.FroniusReg(40123, froniusreg.uint16, 1, """Length of sunspec model nameplate (120)""")
|
|
51
|
+
DERTyp = froniusreg.FroniusReg(40124, froniusreg.enum16, 1, """Type of DER device. Default value is 4 to indicate PV device.""")
|
|
52
|
+
WRtg = froniusreg.FroniusReg(40125, froniusreg.uint16, 1, """Continuous power output capability of the inverter.""")
|
|
53
|
+
WRtg_SF = froniusreg.FroniusReg(40126, froniusreg.sunssf, 1, """Scale factor""")
|
|
54
|
+
VARtg = froniusreg.FroniusReg(40127, froniusreg.uint16, 1, """Continuous Volt-Ampere capability of the inverter.""")
|
|
55
|
+
VARtg_SF = froniusreg.FroniusReg(40128, froniusreg.sunssf, 1, """Scale factor""")
|
|
56
|
+
VArRtgQ1 = froniusreg.FroniusReg(40129, froniusreg.int16, 1, """Continuous VAR capability of the inverter in quadrant 1.""")
|
|
57
|
+
VArRtgQ2 = froniusreg.FroniusReg(40130, froniusreg.int16, 1, """Continuous VAR capability of the inverter in quadrant 2.""")
|
|
58
|
+
VArRtgQ3 = froniusreg.FroniusReg(40131, froniusreg.int16, 1, """Continuous VAR capability of the inverter in quadrant 3.""")
|
|
59
|
+
VArRtgQ4 = froniusreg.FroniusReg(40132, froniusreg.int16, 1, """Continuous VAR capability of the inverter in quadrant 4.""")
|
|
60
|
+
VArRtg_SF = froniusreg.FroniusReg(40133, froniusreg.sunssf, 1, """Scale factor""")
|
|
61
|
+
ARtg = froniusreg.FroniusReg(40134, froniusreg.uint16, 1, """Maximum RMS AC current level capability of the inverter.""")
|
|
62
|
+
ARtg_SF = froniusreg.FroniusReg(40135, froniusreg.sunssf, 1, """Scale factor""")
|
|
63
|
+
PFRtgQ1 = froniusreg.FroniusReg(40136, froniusreg.int16, 1, """Minimum power factor capability of the inverter in quadrant 1.""")
|
|
64
|
+
PFRtgQ2 = froniusreg.FroniusReg(40137, froniusreg.int16, 1, """Minimum power factor capability of the inverter in quadrant 2.""")
|
|
65
|
+
PFRtgQ3 = froniusreg.FroniusReg(40138, froniusreg.int16, 1, """Minimum power factor capability of the inverter in quadrant 3.""")
|
|
66
|
+
PFRtgQ4 = froniusreg.FroniusReg(40139, froniusreg.int16, 1, """Minimum power factor capability of the inverter in quadrant 4.""")
|
|
67
|
+
PFRtg_SF = froniusreg.FroniusReg(40140, froniusreg.sunssf, 1, """Scale factor""")
|
|
68
|
+
Pad = froniusreg.FroniusReg(40149, froniusreg.pad, 1, """Pad register.""")
|
|
69
|
+
ID = froniusreg.FroniusReg(40150, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model settings (121)""")
|
|
70
|
+
L = froniusreg.FroniusReg(40151, froniusreg.uint16, 1, """Length of sunspec model settings (121)""")
|
|
71
|
+
WMax = froniusreg.FroniusReg(40152, froniusreg.uint16, 1, """Setting for maximum power output. Default to WRtg.""")
|
|
72
|
+
VRef = froniusreg.FroniusReg(40153, froniusreg.uint16, 1, """Voltage at the PCC.""")
|
|
73
|
+
VRefOfs = froniusreg.FroniusReg(40154, froniusreg.int16, 1, """Offset from PCC to inverter.""")
|
|
74
|
+
VAMax = froniusreg.FroniusReg(40157, froniusreg.uint16, 1, """Setpoint for maximum apparent power. Default to VARtg.""")
|
|
75
|
+
VArMaxQ1 = froniusreg.FroniusReg(40158, froniusreg.int16, 1, """Setting for maximum reactive power in quadrant 1. Default to VArRtgQ1.""")
|
|
76
|
+
VArMaxQ2 = froniusreg.FroniusReg(40159, froniusreg.int16, 1, """Setting for maximum reactive power in quadrant 2. Default to VArRtgQ2.""")
|
|
77
|
+
VArMaxQ3 = froniusreg.FroniusReg(40160, froniusreg.int16, 1, """Setting for maximum reactive power in quadrant 3. Default to VArRtgQ3.""")
|
|
78
|
+
VArMaxQ4 = froniusreg.FroniusReg(40161, froniusreg.int16, 1, """Setting for maximum reactive power in quadrant 4. Default to VArRtgQ4.""")
|
|
79
|
+
PFMinQ1 = froniusreg.FroniusReg(40163, froniusreg.int16, 1, """Setpoint for minimum power factor value in quadrant 1. Default to PFRtgQ1.""")
|
|
80
|
+
PFMinQ2 = froniusreg.FroniusReg(40164, froniusreg.int16, 1, """Setpoint for minimum power factor value in quadrant 2. Default to PFRtgQ2.""")
|
|
81
|
+
PFMinQ3 = froniusreg.FroniusReg(40165, froniusreg.int16, 1, """Setpoint for minimum power factor value in quadrant 3. Default to PFRtgQ3.""")
|
|
82
|
+
PFMinQ4 = froniusreg.FroniusReg(40166, froniusreg.int16, 1, """Setpoint for minimum power factor value in quadrant 4. Default to PFRtgQ4.""")
|
|
83
|
+
WMax_SF = froniusreg.FroniusReg(40172, froniusreg.sunssf, 1, """Scale factor for real power.""")
|
|
84
|
+
VRef_SF = froniusreg.FroniusReg(40173, froniusreg.sunssf, 1, """Scale factor for voltage at the PCC.""")
|
|
85
|
+
VRefOfs_SF = froniusreg.FroniusReg(40174, froniusreg.sunssf, 1, """Scale factor for offset voltage.""")
|
|
86
|
+
VMinMax_SF = froniusreg.FroniusReg(40175, froniusreg.sunssf, 1, """Scale factor for min/max voltages.""")
|
|
87
|
+
VAMax_SF = froniusreg.FroniusReg(40176, froniusreg.sunssf, 1, """Scale factor for apparent power.""")
|
|
88
|
+
VArMax_SF = froniusreg.FroniusReg(40177, froniusreg.sunssf, 1, """Scale factor for reactive power.""")
|
|
89
|
+
PFMin_SF = froniusreg.FroniusReg(40179, froniusreg.sunssf, 1, """Scale factor for minimum power factor.""")
|
|
90
|
+
ID = froniusreg.FroniusReg(40182, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model status (122)""")
|
|
91
|
+
L = froniusreg.FroniusReg(40183, froniusreg.uint16, 1, """Length of sunspec model status (122)""")
|
|
92
|
+
PVConn = froniusreg.FroniusReg(40184, froniusreg.bitfield16, 1, """PV inverter present/available status. Enumerated value.""")
|
|
93
|
+
StorConn = froniusreg.FroniusReg(40185, froniusreg.bitfield16, 1, """Storage inverter present/available status. Enumerated value.""")
|
|
94
|
+
ECPConn = froniusreg.FroniusReg(40186, froniusreg.bitfield16, 1, """ECP connection status: disconnected=0 connected=1.""")
|
|
95
|
+
ActWh = froniusreg.FroniusReg(40187, froniusreg.acc64, 1, """AC lifetime active (real) energy output.""")
|
|
96
|
+
StActCtl = froniusreg.FroniusReg(40217, froniusreg.bitfield32, 1, """Bit Mask indicating which inverter controls are currently active.""")
|
|
97
|
+
TmSrc = froniusreg.FroniusReg(40219, froniusreg.string4, 1, """Source of time synchronization.""")
|
|
98
|
+
Tms = froniusreg.FroniusReg(40223, froniusreg.uint32, 1, """Seconds since 01-01-2000 00:00 UTC""")
|
|
99
|
+
Ris = froniusreg.FroniusReg(40226, froniusreg.uint16, 1, """Isolation resistance.""")
|
|
100
|
+
Ris_SF = froniusreg.FroniusReg(40227, froniusreg.sunssf, 1, """Scale factor for isolation resistance.""")
|
|
101
|
+
ID = froniusreg.FroniusReg(40228, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model controls (123)""")
|
|
102
|
+
L = froniusreg.FroniusReg(40229, froniusreg.uint16, 1, """Length of sunspec model controls (123)""")
|
|
103
|
+
Conn_WinTms = froniusreg.FroniusReg(40230, froniusreg.uint16, 1, """Time window for connect/disconnect.""")
|
|
104
|
+
Conn_RvrtTms = froniusreg.FroniusReg(40231, froniusreg.uint16, 1, """Timeout period for connect/disconnect.""")
|
|
105
|
+
Conn = froniusreg.FroniusReg(40232, froniusreg.enum16, 1, """Enumerated valued. Connection control.""")
|
|
106
|
+
WMaxLimPct = froniusreg.FroniusReg(40233, froniusreg.uint16, 1, """Set power output to specified level.""")
|
|
107
|
+
WMaxLimPct_WinTms = froniusreg.FroniusReg(40234, froniusreg.uint16, 1, """Time window for power limit change.""")
|
|
108
|
+
WMaxLimPct_RvrtTms = froniusreg.FroniusReg(40235, froniusreg.uint16, 1, """Timeout period for power limit.""")
|
|
109
|
+
WMaxLimPct_RmpTms = froniusreg.FroniusReg(40236, froniusreg.uint16, 1, """Ramp time for moving from current setpoint to new setpoint.""")
|
|
110
|
+
WMaxLim_Ena = froniusreg.FroniusReg(40237, froniusreg.enum16, 1, """Enumerated valued. Throttle enable/disable control.""")
|
|
111
|
+
OutPFSet = froniusreg.FroniusReg(40238, froniusreg.int16, 1, """Set power factor to specific value - cosine of angle.""")
|
|
112
|
+
OutPFSet_WinTms = froniusreg.FroniusReg(40239, froniusreg.uint16, 1, """Time window for power factor change.""")
|
|
113
|
+
OutPFSet_RvrtTms = froniusreg.FroniusReg(40240, froniusreg.uint16, 1, """Timeout period for power factor.""")
|
|
114
|
+
OutPFSet_RmpTms = froniusreg.FroniusReg(40241, froniusreg.uint16, 1, """Ramp time for moving from current setpoint to new setpoint.""")
|
|
115
|
+
OutPFSet_Ena = froniusreg.FroniusReg(40242, froniusreg.enum16, 1, """Enumerated valued. Fixed power factor enable/disable control.""")
|
|
116
|
+
VArMaxPct = froniusreg.FroniusReg(40244, froniusreg.int16, 1, """Reactive power in percent of VArMax.""")
|
|
117
|
+
VArPct_WinTms = froniusreg.FroniusReg(40246, froniusreg.uint16, 1, """Time window for VAR limit change.""")
|
|
118
|
+
VArPct_RvrtTms = froniusreg.FroniusReg(40247, froniusreg.uint16, 1, """Timeout period for VAR limit.""")
|
|
119
|
+
VArPct_RmpTms = froniusreg.FroniusReg(40248, froniusreg.uint16, 1, """Ramp time for moving from current setpoint to new setpoint.""")
|
|
120
|
+
VArPct_Mod = froniusreg.FroniusReg(40249, froniusreg.enum16, 1, """Enumerated value. VAR percent limit mode.""")
|
|
121
|
+
VArPct_Ena = froniusreg.FroniusReg(40250, froniusreg.enum16, 1, """Enumerated valued. Percent limit VAr enable/disable control.""")
|
|
122
|
+
WMaxLimPct_SF = froniusreg.FroniusReg(40251, froniusreg.sunssf, 1, """Scale factor for power output percent.""")
|
|
123
|
+
OutPFSet_SF = froniusreg.FroniusReg(40252, froniusreg.sunssf, 1, """Scale factor for power factor.""")
|
|
124
|
+
VArPct_SF = froniusreg.FroniusReg(40253, froniusreg.sunssf, 1, """Scale factor for reactive power percent.""")
|
|
125
|
+
ID = froniusreg.FroniusReg(40254, froniusreg.uint16, 1, """Well-known value. Uniquely identifies this as a sunspec model mppt (160)""")
|
|
126
|
+
L = froniusreg.FroniusReg(40255, froniusreg.uint16, 1, """Length of sunspec model mppt (160)""")
|
|
127
|
+
DCA_SF = froniusreg.FroniusReg(40256, froniusreg.sunssf, 1, """Current Scale Factor""")
|
|
128
|
+
DCV_SF = froniusreg.FroniusReg(40257, froniusreg.sunssf, 1, """Voltage Scale Factor""")
|
|
129
|
+
DCW_SF = froniusreg.FroniusReg(40258, froniusreg.sunssf, 1, """Power Scale Factor""")
|
|
130
|
+
DCWH_SF = froniusreg.FroniusReg(40259, froniusreg.sunssf, 1, """Energy Scale Factor""")
|
|
131
|
+
N = froniusreg.FroniusReg(40262, froniusreg.count, 1, """Number of Modules""")
|
|
132
|
+
module_1_ID = froniusreg.FroniusReg(40264, froniusreg.uint16, 1, """Input ID""")
|
|
133
|
+
module_1_IDStr = froniusreg.FroniusReg(40265, froniusreg.string8, 1, """Input ID Sting""")
|
|
134
|
+
module_1_DCA = froniusreg.FroniusReg(40273, froniusreg.uint16, 1, """DC Current""")
|
|
135
|
+
module_1_DCV = froniusreg.FroniusReg(40274, froniusreg.uint16, 1, """DC Voltage""")
|
|
136
|
+
module_1_DCW = froniusreg.FroniusReg(40275, froniusreg.uint16, 1, """DC Power""")
|
|
137
|
+
module_1_DCWH = froniusreg.FroniusReg(40276, froniusreg.acc32, 1, """Lifetime Energy""")
|
|
138
|
+
module_1_Tms = froniusreg.FroniusReg(40278, froniusreg.uint32, 1, """Timestamp""")
|
|
139
|
+
module_2_ID = froniusreg.FroniusReg(40284, froniusreg.uint16, 1, """Input ID""")
|
|
140
|
+
module_2_IDStr = froniusreg.FroniusReg(40285, froniusreg.string8, 1, """Input ID Sting""")
|
|
141
|
+
module_2_DCA = froniusreg.FroniusReg(40293, froniusreg.uint16, 1, """DC Current""")
|
|
142
|
+
module_2_DCV = froniusreg.FroniusReg(40294, froniusreg.uint16, 1, """DC Voltage""")
|
|
143
|
+
module_2_DCW = froniusreg.FroniusReg(40295, froniusreg.uint16, 1, """DC Power""")
|
|
144
|
+
module_2_DCWH = froniusreg.FroniusReg(40296, froniusreg.acc32, 1, """Lifetime Energy""")
|
|
145
|
+
module_2_Tms = froniusreg.FroniusReg(40298, froniusreg.uint32, 1, """Timestamp""")
|
|
146
|
+
module_3_ID = froniusreg.FroniusReg(40304, froniusreg.uint16, 1, """Input ID""")
|
|
147
|
+
module_3_IDStr = froniusreg.FroniusReg(40305, froniusreg.string8, 1, """Input ID Sting""")
|
|
148
|
+
module_3_DCA = froniusreg.FroniusReg(40313, froniusreg.uint16, 1, """DC Current""")
|
|
149
|
+
module_3_DCV = froniusreg.FroniusReg(40314, froniusreg.uint16, 1, """DC Voltage""")
|
|
150
|
+
module_3_DCW = froniusreg.FroniusReg(40315, froniusreg.uint16, 1, """DC Power""")
|
|
151
|
+
module_3_DCWH = froniusreg.FroniusReg(40316, froniusreg.acc32, 1, """Lifetime Energy""")
|
|
152
|
+
module_3_Tms = froniusreg.FroniusReg(40318, froniusreg.uint32, 1, """Timestamp""")
|
|
153
|
+
module_4_ID = froniusreg.FroniusReg(40324, froniusreg.uint16, 1, """Input ID""")
|
|
154
|
+
module_4_IDStr = froniusreg.FroniusReg(40325, froniusreg.string8, 1, """Input ID Sting""")
|
|
155
|
+
module_4_DCA = froniusreg.FroniusReg(40333, froniusreg.uint16, 1, """DC Current""")
|
|
156
|
+
module_4_DCV = froniusreg.FroniusReg(40334, froniusreg.uint16, 1, """DC Voltage""")
|
|
157
|
+
module_4_DCW = froniusreg.FroniusReg(40335, froniusreg.uint16, 1, """DC Power""")
|
|
158
|
+
module_4_DCWH = froniusreg.FroniusReg(40336, froniusreg.acc32, 1, """Lifetime Energy""")
|
|
159
|
+
module_4_Tms = froniusreg.FroniusReg(40338, froniusreg.uint32, 1, """Timestamp""")
|
|
160
|
+
ID = froniusreg.FroniusReg(40344, froniusreg.uint16, 1, """Identifies this as End block""")
|
|
161
|
+
L = froniusreg.FroniusReg(40345, froniusreg.uint16, 1, """Length of model block""")
|
|
162
|
+
scaledA = froniusreg.ScaledFroniusReg(A, A_SF)
|
|
163
|
+
scaledAphA = froniusreg.ScaledFroniusReg(AphA, A_SF)
|
|
164
|
+
scaledAphB = froniusreg.ScaledFroniusReg(AphB, A_SF)
|
|
165
|
+
scaledAphC = froniusreg.ScaledFroniusReg(AphC, A_SF)
|
|
166
|
+
scaledPPVphAB = froniusreg.ScaledFroniusReg(PPVphAB, V_SF)
|
|
167
|
+
scaledPPVphBC = froniusreg.ScaledFroniusReg(PPVphBC, V_SF)
|
|
168
|
+
scaledPPVphCA = froniusreg.ScaledFroniusReg(PPVphCA, V_SF)
|
|
169
|
+
scaledPhVphA = froniusreg.ScaledFroniusReg(PhVphA, V_SF)
|
|
170
|
+
scaledPhVphB = froniusreg.ScaledFroniusReg(PhVphB, V_SF)
|
|
171
|
+
scaledPhVphC = froniusreg.ScaledFroniusReg(PhVphC, V_SF)
|
|
172
|
+
scaledW = froniusreg.ScaledFroniusReg(W, W_SF)
|
|
173
|
+
scaledHz = froniusreg.ScaledFroniusReg(Hz, Hz_SF)
|
|
174
|
+
scaledVA = froniusreg.ScaledFroniusReg(VA, VA_SF)
|
|
175
|
+
scaledVAr = froniusreg.ScaledFroniusReg(VAr, VAr_SF)
|
|
176
|
+
scaledPF = froniusreg.ScaledFroniusReg(PF, PF_SF)
|
|
177
|
+
scaledWH = froniusreg.ScaledFroniusReg(WH, WH_SF)
|
|
178
|
+
scaledDCA = froniusreg.ScaledFroniusReg(DCA, DCA_SF)
|
|
179
|
+
scaledDCV = froniusreg.ScaledFroniusReg(DCV, DCV_SF)
|
|
180
|
+
scaledDCW = froniusreg.ScaledFroniusReg(DCW, DCW_SF)
|
|
181
|
+
scaledTmpCab = froniusreg.ScaledFroniusReg(TmpCab, Tmp_SF)
|
|
182
|
+
scaledWRtg = froniusreg.ScaledFroniusReg(WRtg, WRtg_SF)
|
|
183
|
+
scaledVARtg = froniusreg.ScaledFroniusReg(VARtg, VARtg_SF)
|
|
184
|
+
scaledVArRtgQ1 = froniusreg.ScaledFroniusReg(VArRtgQ1, VArRtg_SF)
|
|
185
|
+
scaledVArRtgQ2 = froniusreg.ScaledFroniusReg(VArRtgQ2, VArRtg_SF)
|
|
186
|
+
scaledVArRtgQ3 = froniusreg.ScaledFroniusReg(VArRtgQ3, VArRtg_SF)
|
|
187
|
+
scaledVArRtgQ4 = froniusreg.ScaledFroniusReg(VArRtgQ4, VArRtg_SF)
|
|
188
|
+
scaledARtg = froniusreg.ScaledFroniusReg(ARtg, ARtg_SF)
|
|
189
|
+
scaledPFRtgQ1 = froniusreg.ScaledFroniusReg(PFRtgQ1, PFRtg_SF)
|
|
190
|
+
scaledPFRtgQ2 = froniusreg.ScaledFroniusReg(PFRtgQ2, PFRtg_SF)
|
|
191
|
+
scaledPFRtgQ3 = froniusreg.ScaledFroniusReg(PFRtgQ3, PFRtg_SF)
|
|
192
|
+
scaledPFRtgQ4 = froniusreg.ScaledFroniusReg(PFRtgQ4, PFRtg_SF)
|
|
193
|
+
scaledWMax = froniusreg.ScaledFroniusReg(WMax, WMax_SF)
|
|
194
|
+
scaledVRef = froniusreg.ScaledFroniusReg(VRef, VRef_SF)
|
|
195
|
+
scaledVRefOfs = froniusreg.ScaledFroniusReg(VRefOfs, VRefOfs_SF)
|
|
196
|
+
scaledVAMax = froniusreg.ScaledFroniusReg(VAMax, VAMax_SF)
|
|
197
|
+
scaledVArMaxQ1 = froniusreg.ScaledFroniusReg(VArMaxQ1, VArMax_SF)
|
|
198
|
+
scaledVArMaxQ2 = froniusreg.ScaledFroniusReg(VArMaxQ2, VArMax_SF)
|
|
199
|
+
scaledVArMaxQ3 = froniusreg.ScaledFroniusReg(VArMaxQ3, VArMax_SF)
|
|
200
|
+
scaledVArMaxQ4 = froniusreg.ScaledFroniusReg(VArMaxQ4, VArMax_SF)
|
|
201
|
+
scaledPFMinQ1 = froniusreg.ScaledFroniusReg(PFMinQ1, PFMin_SF)
|
|
202
|
+
scaledPFMinQ2 = froniusreg.ScaledFroniusReg(PFMinQ2, PFMin_SF)
|
|
203
|
+
scaledPFMinQ3 = froniusreg.ScaledFroniusReg(PFMinQ3, PFMin_SF)
|
|
204
|
+
scaledPFMinQ4 = froniusreg.ScaledFroniusReg(PFMinQ4, PFMin_SF)
|
|
205
|
+
scaledRis = froniusreg.ScaledFroniusReg(Ris, Ris_SF)
|
|
206
|
+
scaledWMaxLimPct = froniusreg.ScaledFroniusReg(WMaxLimPct, WMaxLimPct_SF)
|
|
207
|
+
scaledOutPFSet = froniusreg.ScaledFroniusReg(OutPFSet, OutPFSet_SF)
|
|
208
|
+
scaledVArMaxPct = froniusreg.ScaledFroniusReg(VArMaxPct, VArPct_SF)
|
|
209
|
+
scaledmodule_1_DCA = froniusreg.ScaledFroniusReg(module_1_DCA, DCA_SF)
|
|
210
|
+
scaledmodule_1_DCV = froniusreg.ScaledFroniusReg(module_1_DCV, DCV_SF)
|
|
211
|
+
scaledmodule_1_DCW = froniusreg.ScaledFroniusReg(module_1_DCW, DCW_SF)
|
|
212
|
+
scaledmodule_1_DCWH = froniusreg.ScaledFroniusReg(module_1_DCWH, DCWH_SF)
|
|
213
|
+
scaledmodule_2_DCA = froniusreg.ScaledFroniusReg(module_2_DCA, DCA_SF)
|
|
214
|
+
scaledmodule_2_DCV = froniusreg.ScaledFroniusReg(module_2_DCV, DCV_SF)
|
|
215
|
+
scaledmodule_2_DCW = froniusreg.ScaledFroniusReg(module_2_DCW, DCW_SF)
|
|
216
|
+
scaledmodule_2_DCWH = froniusreg.ScaledFroniusReg(module_2_DCWH, DCWH_SF)
|
|
217
|
+
scaledmodule_3_DCA = froniusreg.ScaledFroniusReg(module_3_DCA, DCA_SF)
|
|
218
|
+
scaledmodule_3_DCV = froniusreg.ScaledFroniusReg(module_3_DCV, DCV_SF)
|
|
219
|
+
scaledmodule_3_DCW = froniusreg.ScaledFroniusReg(module_3_DCW, DCW_SF)
|
|
220
|
+
scaledmodule_3_DCWH = froniusreg.ScaledFroniusReg(module_3_DCWH, DCWH_SF)
|
|
221
|
+
scaledmodule_4_DCA = froniusreg.ScaledFroniusReg(module_4_DCA, DCA_SF)
|
|
222
|
+
scaledmodule_4_DCV = froniusreg.ScaledFroniusReg(module_4_DCV, DCV_SF)
|
|
223
|
+
scaledmodule_4_DCW = froniusreg.ScaledFroniusReg(module_4_DCW, DCW_SF)
|
|
224
|
+
scaledmodule_4_DCWH = froniusreg.ScaledFroniusReg(module_4_DCWH, DCWH_SF)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyFroniusReg
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: A library to make interacting with Fronius inverters and storage systems simpler
|
|
5
|
+
Project-URL: Homepage, https://git.pwarren.id.au/pwarren/PyFroniusReg/
|
|
6
|
+
Project-URL: Issues, https://git.pwarren.id.au/pwarren/PyFroniusReg/issues
|
|
7
|
+
Author-email: Paul Warren <pwarren@pwarren.id.au>
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Requires-Python: >=3.9
|
|
14
|
+
Requires-Dist: pymodbus==3.7.*
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# pyFroniusReg
|
|
18
|
+
|
|
19
|
+
The aim of this python library is to provide some nice to use abstractions to interact with Fronius(tm) solar inverters and storage systems over ModBus. It is tested on a Gen24 Primo 5kW system with an attached BYD battery storage system using 'float' mode of the sunspec ModBus over TCP protocol. Some testing has been done in int&sf mode.
|
|
20
|
+
|
|
21
|
+
# Installation
|
|
22
|
+
|
|
23
|
+
Currently you can grab the .whl from the releases page. I'll figure out PyPI addition eventually
|
|
24
|
+
|
|
25
|
+
# Examples
|
|
26
|
+
|
|
27
|
+
check_peak.py: Designed to be run from a cron job to check if we have enough storage to run the house for the peak pricing periods.
|
|
28
|
+
|
|
29
|
+
force_charge.py: Use the library to force my system to charge at 2.5kW
|
|
30
|
+
|
|
31
|
+
read_regs.py: Use the library to read some relevant registers from the non-storage inverter
|
|
32
|
+
|
|
33
|
+
read_regs_storage.py: use the library to read some relevant registers from the storage inverter
|
|
34
|
+
|
|
35
|
+
reset_charge.py: Use the library to set my storage system back to defaults
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Acknowledgements
|
|
39
|
+
|
|
40
|
+
A lot of ideas and some orignating code came from:
|
|
41
|
+
https://github.com/oscarknapp/Fronius-Gen-24-Modbus-Integration/tree/main
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
Special thanks to VK2TTY <@vk2tty@mastodon.radio> for their generous assistance in bringing me up to speed with a more pythonic way of doing things!
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Legal
|
|
48
|
+
|
|
49
|
+
pyFroniusReg, a python library for interacting with Fronius inverters
|
|
50
|
+
Copyright (C) 2024 Paul Warren
|
|
51
|
+
|
|
52
|
+
This program is free software: you can redistribute it and/or modify
|
|
53
|
+
it under the terms of the GNU Affero General Public License as
|
|
54
|
+
published by the Free Software Foundation, either version 3 of the
|
|
55
|
+
License, or (at your option) any later version.
|
|
56
|
+
|
|
57
|
+
This program is distributed in the hope that it will be useful,
|
|
58
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
59
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
60
|
+
GNU Affero General Public License for more details.
|
|
61
|
+
|
|
62
|
+
You should have received a copy of the GNU Affero General Public License
|
|
63
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
64
|
+
|
|
65
|
+
Froinus(tm), Symo(tm), Primo(tm), Tauro(tm) are tradmarks of Fronius International GmbH who have no involvement in this project.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
pyfroniusreg/froniusreg.py,sha256=cpnyYu8U6j0KlMBE7u13slicVvc5vr0GN4Mfxn_oiaw,5769
|
|
2
|
+
pyfroniusreg/gen24_primo_symo_inverter_register_map_float.py,sha256=NdGUcMHpFIbjjMEotJLbzyfspLUors2txflOn5ddIm8,16359
|
|
3
|
+
pyfroniusreg/gen24_primo_symo_inverter_register_map_float_storage.py,sha256=RnbNiPKEpUOKT7EEHC4WFV92wYTr2i1XIn0AUu82f_4,22482
|
|
4
|
+
pyfroniusreg/gen24_primo_symo_inverter_register_map_int_sf.py,sha256=Jl6guXpIZfcVqO3BYZ-aHF5XXqRyUGRiZpjI3SWnEV4,18104
|
|
5
|
+
pyfroniusreg/gen24_primo_symo_inverter_register_map_int_sf_storage.py,sha256=lmJeXKpzaNn5lhDvxvJ4JWl9wYWFRAjlSR0acXnweeE,24227
|
|
6
|
+
pyfroniusreg/gen24_registers_orig.py,sha256=LjGsVWrCaOZi1U_q4VfXtSwUiQJ6kdkS7PN0BlvRkD0,3131
|
|
7
|
+
pyfroniusreg/smart_meter_register_map_float.py,sha256=vQGDcOP4qVfTi5XqJvqhpWfPa7qMASX64-P5CXBU5Kk,5622
|
|
8
|
+
pyfroniusreg/smart_meter_register_map_int_sf.py,sha256=4bZsenZVcG333zuajiFKg6J0ZNFzCet8Bx5yIDpYZQc,9088
|
|
9
|
+
pyfroniusreg/tauro_eco_inverter_register_map_float.py,sha256=Wna0anXymh7r0p4hZm8NCuO5a8T7yTtZQJlJqI_StlE,15478
|
|
10
|
+
pyfroniusreg/tauro_eco_inverter_register_map_int_sf.py,sha256=tAHp6RNZobLUq4VnsbaAzZlgQ4E1u8TLvMH3UiTDPms,17365
|
|
11
|
+
pyfroniusreg/tauro_inverter_register_map_float.py,sha256=dq14Y2jxrrCvJVJCrzZJG1Q258Ge871gbAnDmE8zrG4,17240
|
|
12
|
+
pyfroniusreg/tauro_inverter_register_map_int_sf.py,sha256=UFR__XhNIn30o-l5FCTP1n3HcO9lzzMYbasDggC2nPI,18985
|
|
13
|
+
pyfroniusreg/verto_inverter_register_map_3mppt_float.py,sha256=dq14Y2jxrrCvJVJCrzZJG1Q258Ge871gbAnDmE8zrG4,17240
|
|
14
|
+
pyfroniusreg/verto_inverter_register_map_3mppt_int_sf.py,sha256=UFR__XhNIn30o-l5FCTP1n3HcO9lzzMYbasDggC2nPI,18985
|
|
15
|
+
pyfroniusreg/verto_inverter_register_map_4mppt_float.py,sha256=VIxPmoQ8-ywsHJi8yCYgGSmBeYRqtRAiEdByoQGtI24,18121
|
|
16
|
+
pyfroniusreg/verto_inverter_register_map_4mppt_int_sf.py,sha256=YIcqjjWMBcQGxRKlkSreFdu0UHTW1XDX1MPe0fwscDk,19866
|
|
17
|
+
pyfroniusreg-0.2.2.dist-info/METADATA,sha256=QroNfZNe6hGMQRzOLeWx3vxyaVGzJcK_YI8fa9HAqYQ,2823
|
|
18
|
+
pyfroniusreg-0.2.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
19
|
+
pyfroniusreg-0.2.2.dist-info/licenses/LICENSE,sha256=ADUqsZhl4juwq34PRTMiBqumpm11s_PMli_dZQjWPqQ,34260
|
|
20
|
+
pyfroniusreg-0.2.2.dist-info/RECORD,,
|