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
+953
View File
@@ -0,0 +1,953 @@
{
"group": {
"groups": [
{
"count": 0,
"name": "module",
"points": [
{
"desc": "Index of the module within the string.",
"label": "Module Index",
"mandatory": "M",
"name": "ModIdx",
"size": 1,
"type": "uint16"
},
{
"desc": "Number of stacks in this module.",
"label": "Stack Count",
"mandatory": "M",
"name": "ModNStk",
"size": 1,
"type": "uint16"
},
{
"desc": "Current status of the module.",
"label": "Module Status",
"mandatory": "M",
"name": "ModSt",
"size": 2,
"symbols": [
{
"name": "MODULE_ENABLED",
"value": 0
},
{
"name": "CONTACTOR_STATUS",
"value": 1
}
],
"type": "bitfield32"
},
{
"desc": "State of charge for this module.",
"label": "Module State of Charge",
"mandatory": "M",
"name": "ModSoC",
"sf": "SoC_SF",
"size": 1,
"type": "uint16",
"units": "%"
},
{
"desc": "Open circuit voltage for this module.",
"label": "Open Circuit Voltage",
"mandatory": "M",
"name": "ModOCV",
"sf": "OCV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "External voltage fo this module.",
"label": "External Voltage",
"mandatory": "M",
"name": "ModV",
"sf": "ModV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Maximum voltage for all cells in this module.",
"label": "Maximum Cell Voltage",
"name": "ModCellVMax",
"sf": "CellV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Cell with the maximum cell voltage.",
"label": "Max Cell Voltage Cell",
"name": "ModCellVMaxCell",
"size": 1,
"type": "uint16"
},
{
"desc": "Minimum voltage for all cells in this module.",
"label": "Minimum Cell Voltage",
"name": "ModCellVMin",
"sf": "CellV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Cell with the minimum cell voltage.",
"label": "Min Cell Voltage Cell",
"name": "ModCellVMinCell",
"size": 1,
"type": "uint16"
},
{
"desc": "Average voltage for all cells in this module.",
"label": "Average Cell Voltage",
"name": "ModCellVAvg",
"sf": "CellV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"label": "Anolyte Temperature",
"name": "ModAnoTmp",
"sf": "Tmp_SF",
"size": 1,
"type": "uint16",
"units": "C"
},
{
"label": "Catholyte Temperature",
"name": "ModCatTmp",
"sf": "Tmp_SF",
"size": 1,
"type": "uint16",
"units": "C"
},
{
"label": "Contactor Status",
"name": "ModConSt",
"size": 2,
"symbols": [
{
"name": "CONTACTOR_0",
"value": 0
},
{
"name": "CONTACTOR_1",
"value": 1
},
{
"name": "CONTACTOR_2",
"value": 2
},
{
"name": "CONTACTOR_3",
"value": 3
},
{
"name": "CONTACTOR_4",
"value": 4
},
{
"name": "CONTACTOR_5",
"value": 5
},
{
"name": "CONTACTOR_6",
"value": 6
},
{
"name": "CONTACTOR_7",
"value": 7
},
{
"name": "CONTACTOR_8",
"value": 8
},
{
"name": "CONTACTOR_9",
"value": 9
},
{
"name": "CONTACTOR_10",
"value": 10
},
{
"name": "CONTACTOR_11",
"value": 11
},
{
"name": "CONTACTOR_12",
"value": 12
},
{
"name": "CONTACTOR_13",
"value": 13
},
{
"name": "CONTACTOR_14",
"value": 14
},
{
"name": "CONTACTOR_15",
"value": 15
},
{
"name": "CONTACTOR_16",
"value": 16
},
{
"name": "CONTACTOR_17",
"value": 17
},
{
"name": "CONTACTOR_18",
"value": 18
},
{
"name": "CONTACTOR_19",
"value": 19
},
{
"name": "CONTACTOR_20",
"value": 20
},
{
"name": "CONTACTOR_21",
"value": 21
},
{
"name": "CONTACTOR_22",
"value": 22
},
{
"name": "CONTACTOR_23",
"value": 23
},
{
"name": "CONTACTOR_24",
"value": 24
},
{
"name": "CONTACTOR_25",
"value": 25
},
{
"name": "CONTACTOR_26",
"value": 26
},
{
"name": "CONTACTOR_27",
"value": 27
},
{
"name": "CONTACTOR_28",
"value": 28
},
{
"name": "CONTACTOR_29",
"value": 29
},
{
"name": "CONTACTOR_30",
"value": 30
}
],
"type": "bitfield32"
},
{
"desc": "Alarms, warnings and status values. Bit flags.",
"label": "Module Event 1",
"mandatory": "M",
"name": "ModEvt1",
"size": 2,
"symbols": [
{
"name": "COMMUNICATION_ERROR",
"value": 0
},
{
"name": "OVER_TEMP_ALARM",
"value": 1
},
{
"name": "OVER_TEMP_WARNING",
"value": 2
},
{
"name": "UNDER_TEMP_ALARM",
"value": 3
},
{
"name": "UNDER_TEMP_WARNING",
"value": 4
},
{
"name": "OVER_CHARGE_CURRENT_ALARM",
"value": 5
},
{
"name": "OVER_CHARGE_CURRENT_WARNING",
"value": 6
},
{
"name": "OVER_DISCHARGE_CURRENT_ALARM",
"value": 7
},
{
"name": "OVER_DISCHARGE_CURRENT_WARNING",
"value": 8
},
{
"name": "OVER_VOLT_ALARM",
"value": 9
},
{
"name": "OVER_VOLT_WARNING",
"value": 10
},
{
"name": "UNDER_VOLT_ALARM",
"value": 11
},
{
"name": "UNDER_VOLT_WARNING",
"value": 12
},
{
"name": "UNDER_SOC_MIN_ALARM",
"value": 13
},
{
"name": "UNDER_SOC_MIN_WARNING",
"value": 14
},
{
"name": "OVER_SOC_MAX_ALARM",
"value": 15
},
{
"name": "OVER_SOC_MAX_WARNING",
"value": 16
},
{
"name": "VOLTAGE_IMBALANCE_WARNING",
"value": 17
},
{
"name": "RESERVED_1",
"value": 18
},
{
"name": "RESERVED_2",
"value": 19
},
{
"name": "CONTACTOR_ERROR",
"value": 20
},
{
"name": "FAN_ERROR",
"value": 21
},
{
"name": "GROUND_FAULT",
"value": 22
},
{
"name": "OPEN_DOOR_ERROR",
"value": 23
},
{
"name": "RESERVED_3",
"value": 24
},
{
"name": "RESERVED_4",
"value": 25
},
{
"name": "RESERVED_5",
"value": 26
},
{
"name": "FIRE_ALARM",
"value": 27
},
{
"name": "MODULE_CONFIGURATION_ALARM",
"value": 28
},
{
"name": "MODULE_CONFIGURATION_WARNING",
"value": 29
}
],
"type": "bitfield32"
},
{
"desc": "Alarms, warnings and status values. Bit flags.",
"label": "Module Event 2",
"mandatory": "M",
"name": "ModEvt2",
"size": 2,
"symbols": [
{
"name": "LEAK_ALARM",
"value": 0
},
{
"name": "PUMP_ALARM",
"value": 1
},
{
"name": "HIGH_PRESSURE_ALARM",
"value": 2
},
{
"name": "HIGH_PRESSURE_WARNING",
"value": 3
},
{
"name": "LOW_FLOW_ALARM",
"value": 4
},
{
"name": "LOW_FLOW_WARNING",
"value": 5
}
],
"type": "bitfield32"
},
{
"label": "Connection Failure Reason",
"name": "ModConFail",
"size": 1,
"symbols": [
{
"name": "NO_FAILURE",
"value": 0
},
{
"name": "BUTTON_PUSHED",
"value": 1
},
{
"name": "MODULE_GROUND_FAULT",
"value": 2
},
{
"name": "OUTSIDE_VOLTAGE_RANGE",
"value": 3
},
{
"name": "MODULE_NOT_ENABLED",
"value": 4
},
{
"name": "FUSE_OPEN",
"value": 5
},
{
"name": "CONTACTOR_FAILURE",
"value": 6
},
{
"name": "PRECHARGE_FAILURE",
"value": 7
},
{
"name": "MODULE_FAULT",
"value": 8
}
],
"type": "enum16"
},
{
"access": "RW",
"desc": "Enables and disables the module.",
"label": "Enable/Disable Module",
"name": "ModSetEna",
"size": 1,
"symbols": [
{
"name": "ENABLE_MODULE",
"value": 1
},
{
"name": "DISABLE_MODULE",
"value": 2
}
],
"type": "enum16"
},
{
"access": "RW",
"desc": "Connects and disconnects the module.",
"label": "Connect/Disconnect Module ",
"name": "ModSetCon",
"size": 1,
"symbols": [
{
"name": "CONNECT_MODULE",
"value": 1
},
{
"name": "DISCONNECT_MODULE",
"value": 2
}
],
"type": "enum16"
},
{
"desc": "Reason why the module is currently disabled.",
"label": "Disabled Reason",
"name": "ModDisRsn",
"size": 1,
"symbols": [
{
"name": "NONE",
"value": 0
},
{
"name": "FAULT",
"value": 1
},
{
"name": "MAINTENANCE",
"value": 2
},
{
"name": "EXTERNAL",
"value": 3
},
{
"name": "OTHER",
"value": 4
}
],
"type": "enum16"
}
],
"type": "group"
}
],
"label": "Flow Battery String Model",
"name": "flow_battery_string",
"points": [
{
"desc": "Model identifier",
"label": "Model ID",
"mandatory": "M",
"name": "ID",
"size": 1,
"static": "S",
"type": "uint16",
"value": 807
},
{
"desc": "Model length",
"label": "Model Length",
"mandatory": "M",
"name": "L",
"size": 1,
"static": "S",
"type": "uint16"
},
{
"desc": "Index of the string within the bank.",
"label": "String Index",
"mandatory": "M",
"name": "Idx",
"size": 1,
"type": "uint16"
},
{
"desc": "Number of modules in this string.",
"label": "Module Count",
"mandatory": "M",
"name": "NMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Number of electrically connected modules in this string.",
"label": "Connected Module Count",
"mandatory": "M",
"name": "NModCon",
"size": 1,
"type": "uint16"
},
{
"desc": "Maximum voltage for all modules in the string.",
"label": "Max Module Voltage",
"mandatory": "M",
"name": "ModVMax",
"sf": "ModV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Module with the maximum voltage.",
"label": "Max Module Voltage Module",
"name": "ModVMaxMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Minimum voltage for all modules in the string.",
"label": "Min Module Voltage",
"mandatory": "M",
"name": "ModVMin",
"sf": "ModV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Module with the minimum voltage.",
"label": "Min Module Voltage Module",
"name": "ModVMinMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Average voltage for all modules in the string.",
"label": "Average Module Voltage",
"mandatory": "M",
"name": "ModVAvg",
"sf": "ModV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Maximum voltage for all cells in the string.",
"label": "Max Cell Voltage",
"name": "CellVMax",
"sf": "CellV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Module containing the cell with the maximum voltage.",
"label": "Max Cell Voltage Module",
"name": "CellVMaxMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Stack containing the cell with the maximum voltage.",
"label": "Max Cell Voltage Stack",
"name": "CellVMaxStk",
"size": 1,
"type": "uint16"
},
{
"desc": "Minimum voltage for all cells in the string.",
"label": "Min Cell Voltage",
"name": "CellVMin",
"sf": "CellV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Module containing the cell with the minimum voltage.",
"label": "Min Cell Voltage Module",
"name": "CellVMinMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Stack containing the cell with the minimum voltage.",
"label": "Min Cell Voltage Stack",
"name": "CellVMinStk",
"size": 1,
"type": "uint16"
},
{
"desc": "Average voltage for all cells in the string.",
"label": "Average Cell Voltage",
"name": "CellVAvg",
"sf": "CellV_SF",
"size": 1,
"type": "uint16",
"units": "V"
},
{
"desc": "Maximum electrolyte temperature for all modules in the string.",
"label": "Max Temperature",
"mandatory": "M",
"name": "TmpMax",
"sf": "Tmp_SF",
"size": 1,
"type": "int16",
"units": "C"
},
{
"desc": "Module with the maximum temperature.",
"label": "Max Temperature Module",
"name": "TmpMaxMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Minimum electrolyte temperature for all modules in the string.",
"label": "Min Temperature",
"mandatory": "M",
"name": "TmpMin",
"sf": "Tmp_SF",
"size": 1,
"type": "int16",
"units": "C"
},
{
"desc": "Module with the minimum temperature.",
"label": "Min Temperature Module",
"name": "TmpMinMod",
"size": 1,
"type": "uint16"
},
{
"desc": "Average electrolyte temperature for all modules in the string.",
"label": "Average Temperature",
"mandatory": "M",
"name": "TmpAvg",
"sf": "Tmp_SF",
"size": 1,
"type": "int16",
"units": "C"
},
{
"desc": "Alarms, warnings and status values. Bit flags.",
"label": "String Event 1",
"mandatory": "M",
"name": "Evt1",
"size": 2,
"symbols": [
{
"name": "COMMUNICATION_ERROR",
"value": 0
},
{
"name": "OVER_TEMP_ALARM",
"value": 1
},
{
"name": "OVER_TEMP_WARNING",
"value": 2
},
{
"name": "UNDER_TEMP_ALARM",
"value": 3
},
{
"name": "UNDER_TEMP_WARNING",
"value": 4
},
{
"name": "OVER_CHARGE_CURRENT_ALARM",
"value": 5
},
{
"name": "OVER_CHARGE_CURRENT_WARNING",
"value": 6
},
{
"name": "OVER_DISCHARGE_CURRENT_ALARM",
"value": 7
},
{
"name": "OVER_DISCHARGE_CURRENT_WARNING",
"value": 8
},
{
"name": "OVER_VOLT_ALARM",
"value": 9
},
{
"name": "OVER_VOLT_WARNING",
"value": 10
},
{
"name": "UNDER_VOLT_ALARM",
"value": 11
},
{
"name": "UNDER_VOLT_WARNING",
"value": 12
},
{
"name": "UNDER_SOC_MIN_ALARM",
"value": 13
},
{
"name": "UNDER_SOC_MIN_WARNING",
"value": 14
},
{
"name": "OVER_SOC_MAX_ALARM",
"value": 15
},
{
"name": "OVER_SOC_MAX_WARNING",
"value": 16
},
{
"name": "VOLTAGE_IMBALANCE_WARNING",
"value": 17
},
{
"name": "RESERVED_1",
"value": 18
},
{
"name": "RESERVED_2",
"value": 19
},
{
"name": "CONTACTOR_ERROR",
"value": 20
},
{
"name": "FAN_ERROR",
"value": 21
},
{
"name": "GROUND_FAULT",
"value": 22
},
{
"name": "OPEN_DOOR_ERROR",
"value": 23
},
{
"name": "RESERVED_3",
"value": 24
},
{
"name": "OTHER_ALARM",
"value": 25
},
{
"name": "OTHER_WARNING",
"value": 26
},
{
"name": "FIRE_ALARM",
"value": 27
},
{
"name": "CONFIGURATION_ALARM",
"value": 28
},
{
"name": "CONFIGURATION_WARNING",
"value": 29
}
],
"type": "bitfield32"
},
{
"desc": "Alarms, warnings and status values. Bit flags.",
"label": "String Event 2",
"mandatory": "M",
"name": "Evt2",
"size": 2,
"symbols": [
{
"name": "LEAK_ALARM",
"value": 0
},
{
"name": "PUMP_ALARM",
"value": 1
},
{
"name": "HIGH_PRESSURE_ALARM",
"value": 2
},
{
"name": "HIGH_PRESSURE_WARNING",
"value": 3
},
{
"name": "LOW_FLOW_ALARM",
"value": 4
},
{
"name": "LOW_FLOW_WARNING",
"value": 5
}
],
"type": "bitfield32"
},
{
"desc": "Vendor defined events.",
"label": "Vendor Event Bitfield 1",
"mandatory": "M",
"name": "EvtVnd1",
"size": 2,
"type": "bitfield32"
},
{
"desc": "Vendor defined events.",
"label": "Vendor Event Bitfield 2",
"mandatory": "M",
"name": "EvtVnd2",
"size": 2,
"type": "bitfield32"
},
{
"mandatory": "M",
"name": "ModV_SF",
"size": 1,
"type": "sunssf"
},
{
"desc": "Scale factor for voltage.",
"mandatory": "M",
"name": "CellV_SF",
"size": 1,
"type": "sunssf"
},
{
"desc": "Scale factor for temperature.",
"mandatory": "M",
"name": "Tmp_SF",
"size": 1,
"type": "sunssf"
},
{
"desc": "Scale factor for state of charge.",
"mandatory": "M",
"name": "SoC_SF",
"size": 1,
"type": "sunssf"
},
{
"desc": "Scale factor for open circuit voltage.",
"mandatory": "M",
"name": "OCV_SF",
"size": 1,
"type": "sunssf"
},
{
"desc": "Pad register.",
"label": "Pad",
"mandatory": "M",
"name": "Pad1",
"size": 1,
"type": "pad"
}
],
"type": "group"
},
"id": 807
}