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>
763 lines
21 KiB
JSON
763 lines
21 KiB
JSON
{
|
|
"group": {
|
|
"desc": "Security model for PKI",
|
|
"groups": [
|
|
{
|
|
"count": 0,
|
|
"name": "repeating",
|
|
"points": [
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Cert",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
}
|
|
],
|
|
"type": "group"
|
|
}
|
|
],
|
|
"label": "Set Operator Security Certificate",
|
|
"name": "model_9",
|
|
"points": [
|
|
{
|
|
"desc": "Model identifier",
|
|
"label": "Model ID",
|
|
"mandatory": "M",
|
|
"name": "ID",
|
|
"size": 1,
|
|
"static": "S",
|
|
"type": "uint16",
|
|
"value": 9
|
|
},
|
|
{
|
|
"desc": "Model length",
|
|
"label": "Model Length",
|
|
"mandatory": "M",
|
|
"name": "L",
|
|
"size": 1,
|
|
"static": "S",
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "User ID for this certificate",
|
|
"label": "Cert_UID",
|
|
"mandatory": "M",
|
|
"name": "CertUID",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Role for this certificate",
|
|
"label": "Cert_Role",
|
|
"mandatory": "M",
|
|
"name": "CertRole",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Format of this certificate",
|
|
"label": "Format",
|
|
"mandatory": "M",
|
|
"name": "Fmt",
|
|
"size": 1,
|
|
"symbols": [
|
|
{
|
|
"name": "NONE",
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "X509_PEM",
|
|
"value": 1
|
|
},
|
|
{
|
|
"name": "X509_DER",
|
|
"value": 2
|
|
}
|
|
],
|
|
"type": "enum16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Type of this certificate",
|
|
"label": "Type",
|
|
"mandatory": "M",
|
|
"name": "Typ",
|
|
"size": 1,
|
|
"symbols": [
|
|
{
|
|
"name": "DEV_KEY_PAIR",
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "DEV_SHARED_KEY",
|
|
"value": 1
|
|
},
|
|
{
|
|
"name": "OPERATOR_PUB",
|
|
"value": 2
|
|
},
|
|
{
|
|
"name": "OPERATOR_SHARED",
|
|
"value": 3
|
|
},
|
|
{
|
|
"name": "CA_PUB",
|
|
"value": 4
|
|
}
|
|
],
|
|
"type": "enum16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Total Length of the Certificate",
|
|
"label": "Total Length",
|
|
"mandatory": "M",
|
|
"name": "TotLn",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Length of this fragment",
|
|
"label": "Fragment length",
|
|
"mandatory": "M",
|
|
"name": "FrgLn",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "First word of this fragment",
|
|
"label": "Frag1",
|
|
"mandatory": "M",
|
|
"name": "Frg1",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg2",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg3",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg4",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg5",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg6",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg7",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg8",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg9",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg10",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg11",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg12",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg13",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg14",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg15",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg16",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg17",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg18",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg19",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg20",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg21",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg22",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg23",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg24",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg25",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg26",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg27",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg28",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg29",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg30",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg31",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg32",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg33",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg34",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg35",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg36",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg37",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg38",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg39",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg40",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg41",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg42",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg43",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg44",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg45",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg46",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg47",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg48",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg49",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg50",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg51",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg52",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg53",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg54",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg55",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg56",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg57",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg58",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg59",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg60",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg61",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg62",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg63",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg64",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg65",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg66",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg67",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg68",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg69",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg70",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg71",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg72",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg73",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg74",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg75",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg78",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"mandatory": "M",
|
|
"name": "Frg79",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Last word of this fragment",
|
|
"label": "Frag80",
|
|
"mandatory": "M",
|
|
"name": "Frg80",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Timestamp value is the number of seconds since January 1, 2000",
|
|
"label": "Timestamp",
|
|
"mandatory": "M",
|
|
"name": "Ts",
|
|
"size": 2,
|
|
"type": "uint32"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Millisecond counter 0-999",
|
|
"label": "Milliseconds",
|
|
"mandatory": "M",
|
|
"name": "Ms",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Sequence number of request",
|
|
"label": "Sequence",
|
|
"mandatory": "M",
|
|
"name": "Seq",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "User ID for the request signature",
|
|
"label": "UID",
|
|
"mandatory": "M",
|
|
"name": "UID",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Signing key used 0-5",
|
|
"label": "Role",
|
|
"mandatory": "M",
|
|
"name": "Role",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Algorithm used to compute the digital signature",
|
|
"label": "Algorithm",
|
|
"mandatory": "M",
|
|
"name": "Alg",
|
|
"size": 1,
|
|
"symbols": [
|
|
{
|
|
"name": "NONE",
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "AES-GMAC-64",
|
|
"value": 1
|
|
},
|
|
{
|
|
"name": "ECC-256",
|
|
"value": 2
|
|
}
|
|
],
|
|
"type": "enum16"
|
|
},
|
|
{
|
|
"access": "RW",
|
|
"desc": "Number of registers to follow for the certificate",
|
|
"label": "N",
|
|
"mandatory": "M",
|
|
"name": "N",
|
|
"size": 1,
|
|
"type": "uint16"
|
|
}
|
|
],
|
|
"type": "group"
|
|
},
|
|
"id": 9
|
|
} |