Adds a fronius vendor and a froniusConnection thing class alongside the
generic sunspec and solarEdge ones, following the SolarEdge mechanism but
none of its workarounds - no proprietary battery block and no PV
production computed by difference, since the GEN24 exposes model 160.
FroniusRules holds the vendor decisions as pure functions:
- discovery only keeps devices announcing Fronius as manufacturer;
- the byte order is the SunSpec default, not the forced big endian that
is specific to SolarEdge, and no endianness parameter is exposed;
- meterSlaveId defaults to 200, 0 meaning no meter on this connection;
- a hard 7 s floor on the poll interval. Polling faster can push the
inverter offline towards the vendor portal, and recovery needs an
AC+DC power cycle on site, so this is a guard in the code rather than
a configurable default;
- the registers the inverter accepts and then silently ignores are
refused before anything reaches the wire;
- the six HEMS battery modes map onto ChaGriSet, StorCtl_Mod, InWRte and
OutWRte, negative meaning charge;
- model 160 blocks are classified by IDStr, never by index: on a three
or four MPPT inverter the battery blocks are not in position 3 and 4.
Storages under a Fronius connection default revertTime to 300 s.
Setpoints now reread the scale factor before writing and read the written
registers back afterwards, reporting a mismatch through a new
controlHealthy state - the only defence against writes that are accepted
and then ignored without a Modbus exception.
Byte order and the revert timer semantics on model 124 are inferences, not
measurements; see specs/fronius-sunspec.md, H-2 and H-3.
19 lines
390 B
Prolog
19 lines
390 B
Prolog
include(../plugins.pri)
|
|
include(../sunspec.pri)
|
|
|
|
SOURCES += \
|
|
froniusrules.cpp \
|
|
integrationpluginsunspec.cpp \
|
|
solaredgebattery.cpp \
|
|
sunspecdiscovery.cpp \
|
|
sunspecstoragelogic.cpp \
|
|
sunspecthing.cpp
|
|
|
|
HEADERS += \
|
|
froniusrules.h \
|
|
integrationpluginsunspec.h \
|
|
solaredgebattery.h \
|
|
sunspecdiscovery.h \
|
|
sunspecstoragelogic.h \
|
|
sunspecthing.h
|