SolarManager unter Versionsverwaltung

Erster Stand der Hintergrundprozesse, die auf der Synology unter
/volume1/homes/wagner/SolarManager laufen: der Manager selbst, die Sammler
je Geraet, die MQTT-Bruecke, der Wecker und - neu hinzugezogen - der
AutoAction-Runner, der als Hintergrundprozess hierher gehoert und nicht ins
Web-Verzeichnis.

Zugangsdaten stehen nicht mehr im Quelltext, sondern in config.ini, die
nicht mit eingecheckt wird. Vorlage ist config.ini.example, gelesen wird sie
von konfig.py. Betroffen waren solarManager.py (Datenbank und Wattpilot),
zeit.py, gatherWaterData.py, wecker.py und skoda_testdaten.py, das sich das
Passwort bisher aus dem Quelltext eines anderen Moduls herausgesucht hat.

Die Kia-Anbindung ist mit dem Fahrzeug entfallen: kiaTest.py,
gatherCarData.py und hyundai_kia_connect_api sind nicht mehr dabei, ebenso
gatherInverterData.py, auf das nur noch eine auskommentierte Zeile zeigte.

Die mitgelieferten Bibliotheken bleiben im Repository - die NAS hat kein
pip, sie muessen neben den Skripten liegen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-02 20:46:59 +02:00
co-authored by Claude Opus 5
commit 79843aa2ae
968 changed files with 261182 additions and 0 deletions
+328
View File
@@ -0,0 +1,328 @@
<sunSpecModels v="1">
<!-- 502: panel module integer -->
<model id="502" len="28" name="solar_module">
<block len="28">
<point id="A_SF" offset="0" type="sunssf" />
<point id="V_SF" offset="1" type="sunssf" />
<point id="W_SF" offset="2" type="sunssf" />
<point id="Wh_SF" offset="3" type="sunssf" />
<point id="Stat" offset="4" type="enum16" mandatory="true">
<symbol id="OFF">1</symbol>
<symbol id="SLEEPING">2</symbol>
<symbol id="STARTING">3</symbol>
<symbol id="MPPT">4</symbol>
<symbol id="THROTTLED">5</symbol>
<symbol id="SHUTTING_DOWN">6</symbol>
<symbol id="FAULT">7</symbol>
<symbol id="STANDBY">8</symbol>
<symbol id="TEST">9</symbol>
<symbol id="OTHER">10</symbol>
</point>
<point id="StatVend" offset="5" type="enum16" />
<point id="Evt" offset="6" type="bitfield32" mandatory="true">
<symbol id="GROUND_FAULT">0</symbol>
<symbol id="INPUT_OVER_VOLTAGE">1</symbol>
<symbol id="RESERVED_2">2</symbol>
<symbol id="DC_DISCONNECT">3</symbol>
<symbol id="RESERVED_4">4</symbol>
<symbol id="RESERVED_5">5</symbol>
<symbol id="MANUAL_SHUTDOWN">6</symbol>
<symbol id="OVER_TEMPERATURE">7</symbol>
<symbol id="RESERVED_8">8</symbol>
<symbol id="RESERVED_9">9</symbol>
<symbol id="RESERVED_10">10</symbol>
<symbol id="RESERVED_11">11</symbol>
<symbol id="BLOWN_FUSE">12</symbol>
<symbol id="UNDER_TEMPERATURE">13</symbol>
<symbol id="MEMORY_LOSS">14</symbol>
<symbol id="ARC_DETECTION">15</symbol>
<symbol id="THEFT_DETECTION">16</symbol>
<symbol id="OUTPUT_OVER_CURRENT">17</symbol>
<symbol id="OUTPUT_OVER_VOLTAGE">18</symbol>
<symbol id="OUTPUT_UNDER_VOLTAGE">19</symbol>
<symbol id="TEST_FAILED">20</symbol>
</point>
<point id="EvtVend" offset="8" type="bitfield32" />
<point id="Ctl" offset="10" type="enum16" access="rw" />
<point id="CtlVend" offset="11" type="enum32" access="rw" />
<point id="CtlVal" offset="13" type="int32" access="rw" />
<point id="Tms" offset="15" type="uint32" units="Secs" />
<point id="OutA" offset="17" type="int16" sf="A_SF" units="A" />
<point id="OutV" offset="18" type="int16" sf="V_SF" units="V" />
<point id="OutWh" offset="19" type="acc32" sf="Wh_SF" units="Wh" />
<point id="OutPw" offset="21" type="int16" sf="W_SF" units="W" />
<point id="Tmp" offset="22" type="int16" units="C" />
<point id="InA" offset="23" type="int16" sf="A_SF" units="A" />
<point id="InV" offset="24" type="int16" sf="V_SF" units="V" />
<point id="InWh" offset="25" type="acc32" sf="Wh_SF" units="Wh" />
<point id="InW" offset="27" type="int16" sf="W_SF" units="W" />
</block>
</model>
<strings id="502" locale="en">
<model>
<label>Solar Module</label>
<description>A solar module model supporting DC-DC converter</description>
<notes>Integer</notes>
</model>
<point id="Stat">
<label>Status</label>
<description>Enumerated value. Module Status Code</description>
<notes></notes>
<symbol id="OFF">
<label>Off</label>
<description>Module is in the OFF state</description>
<notes></notes>
</symbol>
<symbol id="SLEEPING">
<label>SLEEPING</label>
<description>Sleeping (auto-shutdown) or panel is at low/safe output power/voltage</description>
<notes></notes>
</symbol>
<symbol id="STARTING">
<label>STARTING</label>
<description>Starting up or ON but not producing power; panel might have high voltage but is not producing power</description>
<notes></notes>
</symbol>
<symbol id="MPPT">
<label>MPPT</label>
<description>Tracking MPPT power point</description>
<notes></notes>
</symbol>
<symbol id="THROTTLED">
<label>THROTTLED</label>
<description>Forced power reduction / power de-rating</description>
<notes></notes>
</symbol>
<symbol id="SHUTTING_DOWN">
<label>SHUTTING_DOWN</label>
<description>Shutting down</description>
<notes></notes>
</symbol>
<symbol id="FAULT">
<label>FAULT</label>
<description>One or more faults exist</description>
<notes></notes>
</symbol>
<symbol id="STANDBY">
<label>STANDBY</label>
<description>Standby (service or unit) - unlike SLEEPING in this mode the module might be at a high (unsafe) output voltage or power</description>
<notes></notes>
</symbol>
<symbol id="TEST">
<label>TEST</label>
<description>Test mode</description>
<notes></notes>
</symbol>
<symbol id="OTHER">
<label>OTHER</label>
<description>As defined in vendor specific status</description>
<notes></notes>
</symbol>
</point>
<point id="StatVend">
<label>Vendor Status</label>
<description>Module Vendor Status Code</description>
<notes></notes>
</point>
<point id="Evt">
<label>Events</label>
<description>Bitmask value. Module Event Flags</description>
<notes></notes>
<symbol id="GROUND_FAULT">
<label>Ground Fault</label>
<description>Ground Fault</description>
<notes></notes>
</symbol>
<symbol id="INPUT_OVER_VOLTAGE">
<label>Over Voltage</label>
<description>DC input over-voltage</description>
<notes></notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="DC_DISCONNECT">
<label>Disconnect</label>
<description>DC disconnect open</description>
<notes></notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="MANUAL_SHUTDOWN">
<label>Manual shutdown</label>
<description>Manual shutdown</description>
<notes></notes>
</symbol>
<symbol id="OVER_TEMPERATURE">
<label>Over Temperature</label>
<description>Over Temperature</description>
<notes></notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="RESERVED">
<label>Reserved</label>
<description>Reserved</description>
<notes>Reserved for u-inverter compatibility</notes>
</symbol>
<symbol id="BLOWN_FUSE">
<label>Blown Fuse</label>
<description>Input fuse is blown</description>
<notes></notes>
</symbol>
<symbol id="UNDER_TEMPERATURE">
<label>Under Temperature</label>
<description>Under Temperature</description>
<notes></notes>
</symbol>
<symbol id="MEMORY_LOSS">
<label>Memory Loss</label>
<description>Generic Memory or Communication Error</description>
<notes></notes>
</symbol>
<symbol id="ARC_DETECTION">
<label>Arc Detection</label>
<description>Arc Detection</description>
<notes></notes>
</symbol>
<symbol id="THEFT_DETECTION">
<label>Theft Detection</label>
<description>Theft Detection</description>
<notes></notes>
</symbol>
<symbol id="OUTPUT_OVER_CURRENT">
<label>Over Current</label>
<description>Output Over Current</description>
<notes></notes>
</symbol>
<symbol id="OUTPUT_OVER_VOLTAGE">
<label>Output Over Voltage</label>
<description>DC Output Over Voltage</description>
<notes></notes>
</symbol>
<symbol id="OUTPUT_UNDER_VOLTAGE">
<label>Output Under Voltage</label>
<description>DC Output Under Voltage</description>
<notes></notes>
</symbol>
<symbol id="TEST_FAILED">
<label>Test Failed</label>
<description>Last Self Test failed; see vendor event for details</description>
<notes></notes>
</symbol>
</point>
<point id="EvtVend">
<label>Vendor Module Event Flags</label>
<description>Vendor specific flags</description>
<notes></notes>
</point>
<point id="A_SF">
<label></label>
<description>Current scale factor</description>
<notes></notes>
</point>
<point id="V_SF">
<label></label>
<description>Voltage scale factor</description>
<notes></notes>
</point>
<point id="W_SF">
<label></label>
<description>Power scale factor</description>
<notes></notes>
</point>
<point id="Wh_SF">
<label></label>
<description>Energy scale factor</description>
<notes></notes>
</point>
<point id="Ctl">
<label>Control</label>
<description>Module Control</description>
<notes></notes>
</point>
<point id="CtlVend">
<label>Vendor Control</label>
<description>Vendor Module Control</description>
<notes></notes>
</point>
<point id="CtlVal">
<label>Control Value</label>
<description>Module Control Value</description>
<notes></notes>
</point>
<point id="Tms">
<label>Timestamp</label>
<description>Time in seconds since 2000 epoch</description>
<notes></notes>
</point>
<point id="OutA">
<label>Output Current</label>
<description>Output Current</description>
<notes></notes>
</point>
<point id="OutV">
<label>Output Voltage</label>
<description>Output Voltage</description>
<notes></notes>
</point>
<point id="OutWh">
<label>Output Energy</label>
<description>Output Energy</description>
<notes></notes>
</point>
<point id="OutPw">
<label>Output Power</label>
<description>Output Power</description>
<notes></notes>
</point>
<point id="Tmp">
<label>Temp</label>
<description>Module Temperature</description>
<notes></notes>
</point>
<point id="InA">
<label>Input Current</label>
<description>Input Current</description>
<notes></notes>
</point>
<point id="InV">
<label>Input Voltage</label>
<description>Input Voltage</description>
<notes></notes>
</point>
<point id="InWh">
<label>Input Energy</label>
<description>Input Energy</description>
<notes></notes>
</point>
<point id="InW">
<label>Input Power</label>
<description>Input Power</description>
<notes></notes>
</point>
</strings>
</sunSpecModels>