convert hcp xml into json for easier processing
This commit is contained in:
711
xml/dishwasher.json
Normal file
711
xml/dishwasher.json
Normal file
@@ -0,0 +1,711 @@
|
|||||||
|
{
|
||||||
|
"description": {
|
||||||
|
"type": "Dishwasher",
|
||||||
|
"brand": "SIEMENS",
|
||||||
|
"model": "SX65EX56CN",
|
||||||
|
"version": "1",
|
||||||
|
"revision": "1"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"5": {
|
||||||
|
"name": "BSH.Common.Status.BackendConnected",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"517": {
|
||||||
|
"name": "BSH.Common.Status.RemoteControlStartAllowed",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"523": {
|
||||||
|
"name": "BSH.Common.Status.RemoteControlActive",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"527": {
|
||||||
|
"name": "BSH.Common.Status.DoorState",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Open",
|
||||||
|
"1": "Closed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"552": {
|
||||||
|
"name": "BSH.Common.Status.OperationState",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Inactive",
|
||||||
|
"1": "Ready",
|
||||||
|
"2": "DelayedStart",
|
||||||
|
"3": "Run",
|
||||||
|
"4": "Pause",
|
||||||
|
"5": "ActionRequired",
|
||||||
|
"6": "Finished",
|
||||||
|
"7": "Error",
|
||||||
|
"8": "Aborting"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"592": {
|
||||||
|
"name": "BSH.Common.Status.SoftwareUpdateTransactionID",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "26",
|
||||||
|
"refDID": "83"
|
||||||
|
},
|
||||||
|
"4096": {
|
||||||
|
"name": "Dishcare.Dishwasher.Status.ProgramPhase",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "None",
|
||||||
|
"1": "PreRinse",
|
||||||
|
"2": "MainWash",
|
||||||
|
"3": "FinalRinse",
|
||||||
|
"4": "Drying"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4101": {
|
||||||
|
"name": "Dishcare.Dishwasher.Status.SilenceOnDemandRemainingTime",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "10",
|
||||||
|
"refDID": "82"
|
||||||
|
},
|
||||||
|
"4103": {
|
||||||
|
"name": "Dishcare.Dishwasher.Status.EcoDryActive",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"3": {
|
||||||
|
"name": "BSH.Common.Setting.AllowBackendConnection",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"539": {
|
||||||
|
"name": "BSH.Common.Setting.PowerState",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"1": "Off",
|
||||||
|
"2": "On"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"name": "BSH.Common.Setting.RemoteControlLevel",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Monitoring",
|
||||||
|
"1": "ManualRemoteStart",
|
||||||
|
"2": "PermanentRemoteStart"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4354": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.RinseAid",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "R01",
|
||||||
|
"2": "R02",
|
||||||
|
"3": "R03",
|
||||||
|
"4": "R04",
|
||||||
|
"5": "R05",
|
||||||
|
"6": "R06"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4356": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.ExtraDry",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"4382": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.SilenceOnDemandDefaultTime",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"max": "1800",
|
||||||
|
"min": "60",
|
||||||
|
"refCID": "10",
|
||||||
|
"refDID": "82",
|
||||||
|
"stepSize": "60"
|
||||||
|
},
|
||||||
|
"4355": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.SensitivityTurbidity",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Standard",
|
||||||
|
"1": "Sensitive",
|
||||||
|
"2": "VerySensitive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4357": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.HotWater",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "ColdWater",
|
||||||
|
"1": "HotWater"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4362": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.TimeLight",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "On"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4363": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.EcoAsDefault",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "LastProgram",
|
||||||
|
"1": "EcoAsDefault"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4364": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.SoundLevelSignal",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Low",
|
||||||
|
"2": "Medium",
|
||||||
|
"3": "High"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4365": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.SoundLevelKey",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Low",
|
||||||
|
"2": "Medium",
|
||||||
|
"3": "High"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4367": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.WaterHardness",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "H00",
|
||||||
|
"1": "H01",
|
||||||
|
"2": "H02",
|
||||||
|
"3": "H03",
|
||||||
|
"4": "H04",
|
||||||
|
"5": "H05",
|
||||||
|
"6": "H06",
|
||||||
|
"7": "H07"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4381": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.DryingAssistantAllPrograms",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "AllPrograms",
|
||||||
|
"2": "EcoAsDefault"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4384": {
|
||||||
|
"name": "Dishcare.Dishwasher.Setting.SpeedOnDemand",
|
||||||
|
"access": "read",
|
||||||
|
"available": "false",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"events": {
|
||||||
|
"21": {
|
||||||
|
"name": "BSH.Common.Event.SoftwareUpdateAvailable",
|
||||||
|
"handling": "acknowledge",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"46": {
|
||||||
|
"name": "BSH.Common.Event.ConfirmPermanentRemoteStart",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"525": {
|
||||||
|
"name": "BSH.Common.Event.AquaStopOccured",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "critical",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"540": {
|
||||||
|
"name": "BSH.Common.Event.ProgramFinished",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"543": {
|
||||||
|
"name": "BSH.Common.Event.LowWaterPressure",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"545": {
|
||||||
|
"name": "BSH.Common.Event.ProgramAborted",
|
||||||
|
"handling": "acknowledge",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"577": {
|
||||||
|
"name": "BSH.Common.Event.ConnectLocalWiFi",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "warning",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"593": {
|
||||||
|
"name": "BSH.Common.Event.SoftwareDownloadAvailable",
|
||||||
|
"handling": "acknowledge",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"595": {
|
||||||
|
"name": "BSH.Common.Event.SoftwareUpdateSuccessful",
|
||||||
|
"handling": "acknowledge",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4608": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.InternalError",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4609": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.CheckFilterSystem",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4610": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.DrainingNotPossible",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4611": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.DrainPumpBlocked",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4612": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.WaterheaterCalcified",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4613": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.LowVoltage",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "alert",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4625": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.RinseAidLack",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4627": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.RinseAidNearlyEmpty",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4624": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.SaltLack",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4626": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.SaltNearlyEmpty",
|
||||||
|
"handling": "none",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4628": {
|
||||||
|
"name": "Dishcare.Dishwasher.Event.MachineCareReminder",
|
||||||
|
"handling": "acknowledge",
|
||||||
|
"level": "hint",
|
||||||
|
"refCID": "03",
|
||||||
|
"refDID": "80",
|
||||||
|
"values": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Present",
|
||||||
|
"2": "Confirmed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"commands": {
|
||||||
|
"1": {
|
||||||
|
"name": "BSH.Common.Command.DeactivateWiFi",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"name": "BSH.Common.Command.AcknowledgeEvent",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "15",
|
||||||
|
"refDID": "81"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"name": "BSH.Common.Command.RejectEvent",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "15",
|
||||||
|
"refDID": "81"
|
||||||
|
},
|
||||||
|
"512": {
|
||||||
|
"name": "BSH.Common.Command.AbortProgram",
|
||||||
|
"access": "none",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"553": {
|
||||||
|
"name": "BSH.Common.Command.ApplyFactoryReset",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"555": {
|
||||||
|
"name": "BSH.Common.Command.DeactivateRemoteControlStart",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"575": {
|
||||||
|
"name": "BSH.Common.Command.AllowSoftwareUpdateLocalWiFi",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"594": {
|
||||||
|
"name": "BSH.Common.Command.AllowSoftwareDownload",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"556": {
|
||||||
|
"name": "BSH.Common.Command.SetWaterHardness",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "18",
|
||||||
|
"refDID": "81"
|
||||||
|
},
|
||||||
|
"4864": {
|
||||||
|
"name": "Dishcare.Dishwasher.Command.StoreAsFavorite",
|
||||||
|
"access": "writeOnly",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"542": {
|
||||||
|
"name": "BSH.Common.Option.ProgramProgress",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "11",
|
||||||
|
"refDID": "A0"
|
||||||
|
},
|
||||||
|
"544": {
|
||||||
|
"name": "BSH.Common.Option.RemainingProgramTime",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "10",
|
||||||
|
"refDID": "82"
|
||||||
|
},
|
||||||
|
"549": {
|
||||||
|
"name": "BSH.Common.Option.RemainingProgramTimeIsEstimated",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"initValue": "1",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"558": {
|
||||||
|
"name": "BSH.Common.Option.StartInRelative",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"max": "86400",
|
||||||
|
"min": "0",
|
||||||
|
"refCID": "10",
|
||||||
|
"refDID": "82"
|
||||||
|
},
|
||||||
|
"561": {
|
||||||
|
"name": "BSH.Common.Option.EnergyForecast",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "11",
|
||||||
|
"refDID": "A0"
|
||||||
|
},
|
||||||
|
"562": {
|
||||||
|
"name": "BSH.Common.Option.WaterForecast",
|
||||||
|
"access": "read",
|
||||||
|
"available": "true",
|
||||||
|
"refCID": "11",
|
||||||
|
"refDID": "A0"
|
||||||
|
},
|
||||||
|
"5136": {
|
||||||
|
"name": "Dishcare.Dishwasher.Option.SilenceOnDemand",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"default": "false",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"5124": {
|
||||||
|
"name": "Dishcare.Dishwasher.Option.HalfLoad",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"default": "false",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"5126": {
|
||||||
|
"name": "Dishcare.Dishwasher.Option.IntensivZone",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"default": "false",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
},
|
||||||
|
"5127": {
|
||||||
|
"name": "Dishcare.Dishwasher.Option.VarioSpeedPlus",
|
||||||
|
"access": "readWrite",
|
||||||
|
"available": "true",
|
||||||
|
"default": "false",
|
||||||
|
"refCID": "01",
|
||||||
|
"refDID": "00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"200": "BSH.Common.Error.200.OK",
|
||||||
|
"202": "BSH.Common.Error.202.Accepted",
|
||||||
|
"400": "BSH.Common.Error.400.BadRequest",
|
||||||
|
"403": "BSH.Common.Error.403.Forbidden",
|
||||||
|
"404": "BSH.Common.Error.404.NotFound",
|
||||||
|
"405": "BSH.Common.Error.405.MethodNotAllowed",
|
||||||
|
"413": "BSH.Common.Error.413.RequestEntityTooLong",
|
||||||
|
"412": "BSH.Common.Error.414.RequestUriTooLong",
|
||||||
|
"429": "BSH.Common.Error.429.TooManyRequests",
|
||||||
|
"500": "BSH.Common.Error.500.InternalServerError",
|
||||||
|
"501": "BSH.Common.Error.501.NotImplemented",
|
||||||
|
"502": "BSH.Common.Error.502.BadGateway",
|
||||||
|
"503": "BSH.Common.Error.503.ServiceUnavailable",
|
||||||
|
"504": "BSH.Common.Error.504.GatewayTimeout",
|
||||||
|
"507": "BSH.Common.Error.507.InsufficientMemory",
|
||||||
|
"542": "BSH.Common.Error.BackendNotConnected",
|
||||||
|
"515": "BSH.Common.Error.Busy",
|
||||||
|
"535": "BSH.Common.Error.CmdViolation",
|
||||||
|
"540": "BSH.Common.Error.DeviceStateNotCompliant",
|
||||||
|
"543": "BSH.Common.Error.EnergyManagementNotConnected",
|
||||||
|
"533": "BSH.Common.Error.Incomplete",
|
||||||
|
"534": "BSH.Common.Error.Inconsistent",
|
||||||
|
"536": "BSH.Common.Error.InvalidFormat",
|
||||||
|
"532": "BSH.Common.Error.InvalidUIDValue",
|
||||||
|
"539": "BSH.Common.Error.LockedByLocalControl",
|
||||||
|
"518": "BSH.Common.Error.NoAccess",
|
||||||
|
"521": "BSH.Common.Error.NoAccessByList",
|
||||||
|
"530": "BSH.Common.Error.NoExecution",
|
||||||
|
"524": "BSH.Common.Error.NotAvailable",
|
||||||
|
"527": "BSH.Common.Error.NotAvailableByList",
|
||||||
|
"544": "BSH.Common.Error.NotInLocalWiFi",
|
||||||
|
"541": "BSH.Common.Error.ProcessStateNotCompliant",
|
||||||
|
"517": "BSH.Common.Error.ReadRequest.Busy",
|
||||||
|
"520": "BSH.Common.Error.ReadRequest.NoAccess",
|
||||||
|
"523": "BSH.Common.Error.ReadRequest.NoAccessByList",
|
||||||
|
"526": "BSH.Common.Error.ReadRequest.NotAvailable",
|
||||||
|
"529": "BSH.Common.Error.ReadRequest.NotAvailableByList",
|
||||||
|
"514": "BSH.Common.Error.ReadRequest.UnknownUID",
|
||||||
|
"537": "BSH.Common.Error.RemoteControlNotActive",
|
||||||
|
"538": "BSH.Common.Error.RemoteStartNotActive",
|
||||||
|
"512": "BSH.Common.Error.UnknownUID",
|
||||||
|
"531": "BSH.Common.Error.ValueOutOfRange",
|
||||||
|
"516": "BSH.Common.Error.WriteRequest.Busy",
|
||||||
|
"519": "BSH.Common.Error.WriteRequest.NoAccess",
|
||||||
|
"522": "BSH.Common.Error.WriteRequest.NoAccessByList",
|
||||||
|
"525": "BSH.Common.Error.WriteRequest.NotAvailable",
|
||||||
|
"528": "BSH.Common.Error.WriteRequest.NotAvailableByList",
|
||||||
|
"513": "BSH.Common.Error.WriteRequest.UnknownUID"
|
||||||
|
}
|
||||||
|
}
|
||||||
103
xml/hcpxml2json
Executable file
103
xml/hcpxml2json
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# Convert the featuremap and devicedescription XML files into a single JSON
|
||||||
|
# this collapses the XML entities and duplicates some things, but makes for
|
||||||
|
# easier parsing later
|
||||||
|
#
|
||||||
|
# Program groups are ignored for now
|
||||||
|
#
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
import json
|
||||||
|
|
||||||
|
# the feature file has features, errors, and enums
|
||||||
|
# for now the ordering is hardcoded
|
||||||
|
featuremapping = ET.parse(sys.argv[1]).getroot()
|
||||||
|
description = ET.parse(sys.argv[2]).getroot()
|
||||||
|
|
||||||
|
#####################
|
||||||
|
#
|
||||||
|
# Parse the feature file
|
||||||
|
#
|
||||||
|
|
||||||
|
features = {}
|
||||||
|
errors = {}
|
||||||
|
enums = {}
|
||||||
|
|
||||||
|
# Features
|
||||||
|
for child in featuremapping[1]: #.iter('feature'):
|
||||||
|
uid = int(child.attrib["refUID"], 16)
|
||||||
|
name = child.text
|
||||||
|
features[uid] = name
|
||||||
|
|
||||||
|
# Errors
|
||||||
|
for child in featuremapping[2]:
|
||||||
|
uid = int(child.attrib["refEID"], 16)
|
||||||
|
name = child.text
|
||||||
|
errors[uid] = name
|
||||||
|
|
||||||
|
# Enums
|
||||||
|
for child in featuremapping[3]:
|
||||||
|
uid = int(child.attrib["refENID"], 16)
|
||||||
|
enum_name = child.attrib["enumKey"]
|
||||||
|
values = {}
|
||||||
|
for v in child:
|
||||||
|
value = int(v.attrib["refValue"])
|
||||||
|
name = v.text
|
||||||
|
values[value] = name
|
||||||
|
enums[uid] = {
|
||||||
|
"name": enum_name,
|
||||||
|
"values": values,
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################
|
||||||
|
#
|
||||||
|
# Parse the description file
|
||||||
|
#
|
||||||
|
|
||||||
|
def parse_xml_list(entries):
|
||||||
|
parsed = {}
|
||||||
|
|
||||||
|
for el in entries:
|
||||||
|
# not sure how to parse refCID and refDID
|
||||||
|
uid = int(el.attrib["uid"], 16)
|
||||||
|
data = {
|
||||||
|
"name": features[uid],
|
||||||
|
}
|
||||||
|
|
||||||
|
for key in el.attrib:
|
||||||
|
data[key] = el.attrib[key]
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
del data["uid"]
|
||||||
|
|
||||||
|
if "enumerationType" in el.attrib:
|
||||||
|
del data["enumerationType"]
|
||||||
|
enum_id = int(el.attrib["enumerationType"], 16)
|
||||||
|
data["values"] = enums[enum_id]["values"]
|
||||||
|
|
||||||
|
parsed[uid] = data
|
||||||
|
|
||||||
|
return parsed
|
||||||
|
|
||||||
|
def parse_machine_description(entries):
|
||||||
|
description = {}
|
||||||
|
|
||||||
|
for el in entries:
|
||||||
|
prefix, has_namespace, tag = el.tag.partition('}')
|
||||||
|
if tag != "pairableDeviceTypes":
|
||||||
|
description[tag] = el.text
|
||||||
|
|
||||||
|
return description
|
||||||
|
|
||||||
|
machine = {
|
||||||
|
"description": parse_machine_description(description[3]),
|
||||||
|
"status": parse_xml_list(description[4]),
|
||||||
|
"settings": parse_xml_list(description[5]),
|
||||||
|
"events": parse_xml_list(description[6]),
|
||||||
|
"commands": parse_xml_list(description[7]),
|
||||||
|
"options": parse_xml_list(description[8]),
|
||||||
|
"errors": errors,
|
||||||
|
}
|
||||||
|
|
||||||
|
print(json.dumps(machine))
|
||||||
Reference in New Issue
Block a user