diff --git a/all_request_doc.txt b/all_request_doc.txt deleted file mode 100644 index c1da079..0000000 --- a/all_request_doc.txt +++ /dev/null @@ -1,812 +0,0 @@ -/system/heatSources/hs1/fuel/caloricValue -{"id":"/system/heatSources/hs1/fuel/caloricValue","type":"floatValue","writeable":1,"recordable":0,"value":11.5,"unitOfMeasure":"kWh"} - - -DOMESTIC HOT WATER -****************** - -/dhwCircuits -{"id":"/dhwCircuits","type":"refEnum","references":[{"id":"/dhwCircuits/dhw1","uri":"http:///dhwCircuits/dhw1"}]} - -/dhwCircuits/dhw1 -{"id":"/dhwCircuits/dhw1","type":"refEnum","references":[{"id":"/dhwCircuits/dhw1/operationMode","uri":"http:///dhwCircuits/dhw1/operationMode"},{"id":"/dhwCircuits/dhw1/switchPrograms","uri":"http:///dhwCircuits/dhw1/switchPrograms"},{"id":"/dhwCircuits/dhw1/temperatureLevels","uri":"http:///dhwCircuits/dhw1/temperatureLevels"},{"id":"/dhwCircuits/dhw1/temperatureLevels","uri":"http:///dhwCircuits/dhw1/temperatureLevels"},{"id":"/dhwCircuits/dhw1/currentSetpoint","uri":"http:///dhwCircuits/dhw1/currentSetpoint"},{"id":"/dhwCircuits/dhw1/actualTemp","uri":"http:///dhwCircuits/dhw1/actualTemp"},{"id":"/dhwCircuits/dhw1/waterFlow","uri":"http:///dhwCircuits/dhw1/waterFlow"},{"id":"/dhwCircuits/dhw1/workingTime","uri":"http:///dhwCircuits/dhw1/workingTime"},{"id":"/dhwCircuits/dhw1/charge","uri":"http:///dhwCircuits/dhw1/charge"},{"id":"/dhwCircuits/dhw1/chargeDuration","uri":"http:///dhwCircuits/dhw1/chargeDuration"},{"id":"/dhwCircuits/dhw1/tdMode","uri":"http:///dhwCircuits/dhw1/tdMode"},{"id":"/dhwCircuits/dhw1/tdsetPoint","uri":"http:///dhwCircuits/dhw1/tdsetPoint"},{"id":"/dhwCircuits/dhw1/cpStartph","uri":"http:///dhwCircuits/dhw1/cpStartph"},{"id":"/dhwCircuits/dhw1/singleChargeSetpoint","uri":"http:///dhwCircuits/dhw1/singleChargeSetpoint"},{"id":"/dhwCircuits/dhw1/holidayMode","uri":"http:///dhwCircuits/dhw1/holidayMode"},{"id":"/dhwCircuits/dhw1/status","uri":"http:///dhwCircuits/dhw1/status"}]} - -/dhwCircuits/dhw1/actualTemp -{"id":"/dhwCircuits/dhw1/actualTemp","type":"floatValue","writeable":0,"recordable":0,"value":39.7,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/dhwCircuits/dhw1/charge -{"id":"/dhwCircuits/dhw1/charge","type":"stringValue","writeable":1,"recordable":0,"value":"stop","allowedValues":["stop","start"]} - -/dhwCircuits/dhw1/chargeDuration -{"id":"/dhwCircuits/dhw1/chargeDuration","type":"floatValue","writeable":1,"recordable":0,"value":60.0,"unitOfMeasure":"mins","minValue":15.0,"maxValue":2880.0} - -/dhwCircuits/dhw1/cpStartph - -/dhwCircuits/dhw1/currentSetpoint -{"id":"/dhwCircuits/dhw1/currentSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":15.0,"unitOfMeasure":"C"} - -/dhwCircuits/dhw1/holidayMode -{"id":"/dhwCircuits/dhw1/holidayMode","type":"refEnum","references":[{"id":"/dhwCircuits/dhw1/holidayMode/activated","uri":"http:///dhwCircuits/dhw1/holidayMode/activated"}]} - -/dhwCircuits/dhw1/holidayMode/activated -{"id":"/dhwCircuits/dhw1/holidayMode/activated","type":"stringValue","writeable":0,"recordable":0,"value":"","allowedValues":["","hm1","hm2","hm3","hm4","hm5"]} - -/dhwCircuits/dhw1/operationMode -{"id":"/dhwCircuits/dhw1/operationMode","type":"stringValue","writeable":1,"recordable":0,"value":"ownprogram","allowedValues":["Off","low","high","HCprogram","ownprogram"]} - -/dhwCircuits/dhw1/singleChargeSetpoint -{"id":"/dhwCircuits/dhw1/singleChargeSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":50.0,"unitOfMeasure":"C","minValue":30.0,"maxValue":80.0} - -/dhwCircuits/dhw1/status -{"id":"/dhwCircuits/dhw1/status","type":"stringValue","writeable":0,"recordable":0,"value":"ACTIVE","allowedValues":["INACTIVE","ACTIVE"]} - -/dhwCircuits/dhw1/switchPrograms -{"id":"/dhwCircuits/dhw1/switchPrograms","type":"refEnum","references":[{"id":"/dhwCircuits/dhw1/switchPrograms/A","uri":"http:///dhwCircuits/dhw1/switchPrograms/A"}]} - -/dhwCircuits/dhw1/switchPrograms/A -{"id":"/dhwCircuits/dhw1/switchPrograms/A","type":"switchProgram","setpointProperty":{"id":"/dhwCircuits/dhw1/temperatureLevels","uri":"http:///dhwCircuits/dhw1/temperatureLevels"},"maxNbOfSwitchPoints":42,"maxNbOfSwitchPointsPerDay":6,"switchPointTimeRaster":15,"writeable":1,"switchPoints":[{"dayOfWeek":"Mo","setpoint":"high","time":345},{"dayOfWeek":"Mo","setpoint":"off","time":1365},{"dayOfWeek":"Tu","setpoint":"high","time":345},{"dayOfWeek":"Tu","setpoint":"off","time":1365},{"dayOfWeek":"We","setpoint":"high","time":345},{"dayOfWeek":"We","setpoint":"off","time":1365},{"dayOfWeek":"Th","setpoint":"high","time":345},{"dayOfWeek":"Th","setpoint":"off","time":1365},{"dayOfWeek":"Fr","setpoint":"high","time":345},{"dayOfWeek":"Fr","setpoint":"off","time":1365},{"dayOfWeek":"Sa","setpoint":"high","time":420},{"dayOfWeek":"Sa","setpoint":"off","time":1380},{"dayOfWeek":"Su","setpoint":"high","time":420},{"dayOfWeek":"Su","setpoint":"off","time":1380}]} - -/dhwCircuits/dhw1/tdMode - -/dhwCircuits/dhw1/tdsetPoint - -/dhwCircuits/dhw1/temperatureLevels -{"id":"/dhwCircuits/dhw1/temperatureLevels","type":"refEnum","references":[]} - -/dhwCircuits/dhw1/waterFlow -{"id":"/dhwCircuits/dhw1/waterFlow","type":"floatValue","writeable":0,"recordable":0,"value":0.0,"unitOfMeasure":"l/min"} - -/dhwCircuits/dhw1/workingTime -{"id":"/dhwCircuits/dhw1/workingTime","type":"floatValue","writeable":0,"recordable":0,"value":14354,"unitOfMeasure":"mins"} - - -GATEWAY -******* -- SENSORS -- SERVICE set date time - - -/gateway -{"id":"/gateway","type":"refEnum","references":[{"id":"/gateway/uuid","uri":"http:///gateway/uuid"},{"id":"/gateway/firmware","uri":"http:///gateway/firmware"},{"id":"/gateway/userpassword","uri":"http:///gateway/userpassword"},{"id":"/gateway/versionFirmware","uri":"http:///gateway/versionFirmware"},{"id":"/gateway/versionHardware","uri":"http:///gateway/versionHardware"},{"id":"/gateway/boschSHPassword","uri":"http:///gateway/boschSHPassword"},{"id":"/gateway/portalPassword","uri":"http:///gateway/portalPassword"},{"id":"/gateway/knxPassword","uri":"http:///gateway/knxPassword"},{"id":"/gateway/haiPassword","uri":"http:///gateway/haiPassword"},{"id":"/gateway/openIPPassword","uri":"http:///gateway/openIPPassword"},{"id":"/gateway/openIPAccess","uri":"http:///gateway/openIPAccess"},{"id":"/gateway/DateTime","uri":"http:///gateway/DateTime"},{"id":"/gateway/instPassword","uri":"http:///gateway/instPassword"},{"id":"/gateway/instAccess","uri":"http:///gateway/instAccess"},{"id":"/gateway/instWriteAccess","uri":"http:///gateway/instWriteAccess"},{"id":"/gateway/version","uri":"http:///gateway/version"},{"id":"/gateway/update","uri":"http:///gateway/update"},{"id":"/gateway/logging","uri":"http:///gateway/logging"}]} - -/gateway/boschSHPassword - -/gateway/DateTime -{"id":"/gateway/DateTime","type":"stringValue","writeable":1,"recordable":0,"value":"2018-11-14T00:05:42"} - -/gateway/firmware - -/gateway/haiPassword - -/gateway/instAccess -{"id":"/gateway/instAccess","type":"stringValue","writeable":1,"recordable":0,"value":"off","allowedValues":["off","on"]} - -/gateway/instPassword - -/gateway/instWriteAccess -{"id":"/gateway/instWriteAccess","type":"stringValue","writeable":1,"recordable":0,"value":"off","allowedValues":["off","on"]} - -/gateway/knxPassword - -/gateway/logging -{"id":"/gateway/logging","type":"refEnum","references":[{"id":"/gateway/logging/switch","uri":"http:///gateway/logging/switch"},{"id":"/gateway/logging/reqBusVar","uri":"http:///gateway/logging/reqBusVar"},{"id":"/gateway/logging/userAcceptance","uri":"http:///gateway/logging/userAcceptance"}]} - -/gateway/logging/reqBusVar - -/gateway/logging/switch - -/gateway/logging/userAcceptance -{"id":"/gateway/logging/userAcceptance","type":"stringValue","writeable":1,"recordable":0,"value":"false","allowedValues":["false","true"]} - -/gateway/openIPAccess -{"id":"/gateway/openIPAccess","type":"stringValue","writeable":1,"recordable":0,"value":"off","allowedValues":["off","on"]} - -/gateway/openIPPassword - -/gateway/portalPassword - -/gateway/update -{"id":"/gateway/update","type":"refEnum","references":[{"id":"/gateway/update/version","uri":"http:///gateway/update/version"},{"id":"/gateway/update/request","uri":"http:///gateway/update/request"},{"id":"/gateway/update/strategy","uri":"http:///gateway/update/strategy"},{"id":"/gateway/update/status","uri":"http:///gateway/update/status"}]} - -/gateway/update/request - -/gateway/update/status -{"id":"/gateway/update/status","type":"stringValue","writeable":0,"recordable":0,"value":"completed","allowedValues":["inprogress","completed","interrupted"]} - -/gateway/update/strategy - -/gateway/update/version - -/gateway/userpassword - -/gateway/uuid -{"id":"/gateway/uuid","type":"stringValue","writeable":0,"recordable":0,"value":"123456789","allowedValues":["<123456789>"]} - -/gateway/version - -/gateway/versionFirmware -{"id":"/gateway/versionFirmware","type":"stringValue","writeable":0,"recordable":0,"value":"04.04.05"} - -/gateway/versionHardware -{"id":"/gateway/versionHardware","type":"stringValue","writeable":0,"recordable":0,"value":"iCom_Low_NSC_v1"} - -HEATING CIRCUITS - -- SENSORS -- CLIMATE - -/heatingCircuits -{"id":"/heatingCircuits","type":"refEnum","references":[{"id":"/heatingCircuits/hc1","uri":"http:///heatingCircuits/hc1"},{"id":"/heatingCircuits/hc2","uri":"http:///heatingCircuits/hc2"}]} - -/heatingCircuits/hc1 -{"id":"/heatingCircuits/hc1","type":"refEnum","references":[{"id":"/heatingCircuits/hc1/currentRoomSetpoint","uri":"http:///heatingCircuits/hc1/currentRoomSetpoint"},{"id":"/heatingCircuits/hc1/actualSupplyTemperature","uri":"http:///heatingCircuits/hc1/actualSupplyTemperature"},{"id":"/heatingCircuits/hc1/actualSupplyTempSetpoint","uri":"http:///heatingCircuits/hc1/actualSupplyTempSetpoint"},{"id":"/heatingCircuits/hc1/operationMode","uri":"http:///heatingCircuits/hc1/operationMode"},{"id":"/heatingCircuits/hc1/temperatureRoomSetpoint","uri":"http:///heatingCircuits/hc1/temperatureRoomSetpoint"},{"id":"/heatingCircuits/hc1/supplyTemperatureSetpoint","uri":"http:///heatingCircuits/hc1/supplyTemperatureSetpoint"},{"id":"/heatingCircuits/hc1/manualRoomSetpoint","uri":"http:///heatingCircuits/hc1/manualRoomSetpoint"},{"id":"/heatingCircuits/hc1/temporaryRoomSetpoint","uri":"http:///heatingCircuits/hc1/temporaryRoomSetpoint"},{"id":"/heatingCircuits/hc1/roomtemperature","uri":"http:///heatingCircuits/hc1/roomtemperature"},{"id":"/heatingCircuits/hc1/activeSwitchProgram","uri":"http:///heatingCircuits/hc1/activeSwitchProgram"},{"id":"/heatingCircuits/hc1/timeToNextSetpoint","uri":"http:///heatingCircuits/hc1/timeToNextSetpoint"},{"id":"/heatingCircuits/hc1/nextSetpoint","uri":"http:///heatingCircuits/hc1/nextSetpoint"},{"id":"/heatingCircuits/hc1/switchProgramMode","uri":"http:///heatingCircuits/hc1/switchProgramMode"},{"id":"/heatingCircuits/hc1/switchPrograms","uri":"http:///heatingCircuits/hc1/switchPrograms"},{"id":"/heatingCircuits/hc1/temperatureLevels","uri":"http:///heatingCircuits/hc1/temperatureLevels"},{"id":"/heatingCircuits/hc1/pumpModulation","uri":"http:///heatingCircuits/hc1/pumpModulation"},{"id":"/heatingCircuits/hc1/suWiThreshold","uri":"http:///heatingCircuits/hc1/suWiThreshold"},{"id":"/heatingCircuits/hc1/designTemp","uri":"http:///heatingCircuits/hc1/designTemp"},{"id":"/heatingCircuits/hc1/roomTempOffset","uri":"http:///heatingCircuits/hc1/roomTempOffset"},{"id":"/heatingCircuits/hc1/heatCurveMax","uri":"http:///heatingCircuits/hc1/heatCurveMax"},{"id":"/heatingCircuits/hc1/controlType","uri":"http:///heatingCircuits/hc1/controlType"},{"id":"/heatingCircuits/hc1/roomInfluence","uri":"http:///heatingCircuits/hc1/roomInfluence"},{"id":"/heatingCircuits/hc1/fastHeatupFactor","uri":"http:///heatingCircuits/hc1/fastHeatupFactor"},{"id":"/heatingCircuits/hc1/setpointOptimization","uri":"http:///heatingCircuits/hc1/setpointOptimization"},{"id":"/heatingCircuits/hc1/suWiSwitchMode","uri":"http:///heatingCircuits/hc1/suWiSwitchMode"},{"id":"/heatingCircuits/hc1/currentOpModeInfo","uri":"http:///heatingCircuits/hc1/currentOpModeInfo"},{"id":"/heatingCircuits/hc1/cooling","uri":"http:///heatingCircuits/hc1/cooling"},{"id":"/heatingCircuits/hc1/currentSuWiMode","uri":"http:///heatingCircuits/hc1/currentSuWiMode"},{"id":"/heatingCircuits/hc1/holidayMode","uri":"http:///heatingCircuits/hc1/holidayMode"},{"id":"/heatingCircuits/hc1/status","uri":"http:///heatingCircuits/hc1/status"}]} - -/heatingCircuits/hc1/activeSwitchProgram -{"id":"/heatingCircuits/hc1/activeSwitchProgram","type":"stringValue","writeable":1,"recordable":0,"value":"B","allowedValues":["A","B"]} - -/heatingCircuits/hc1/actualSupplyTemperature -{"id":"/heatingCircuits/hc1/actualSupplyTemperature","type":"floatValue","writeable":0,"recordable":0,"value":37.3,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatingCircuits/hc1/actualSupplyTempSetpoint - -/heatingCircuits/hc1/controlType - -/heatingCircuits/hc1/cooling -{"id":"/heatingCircuits/hc1/cooling","type":"refEnum","references":[]} - -/heatingCircuits/hc1/currentOpModeInfo - -/heatingCircuits/hc1/currentRoomSetpoint -{"id":"/heatingCircuits/hc1/currentRoomSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":22.0,"unitOfMeasure":"C","state":[{"off":0.0}]} - -/heatingCircuits/hc1/currentSuWiMode - -/heatingCircuits/hc1/designTemp - -/heatingCircuits/hc1/fastHeatupFactor -{"id":"/heatingCircuits/hc1/fastHeatupFactor","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"%","minValue":1.0,"maxValue":100.0} - -/heatingCircuits/hc1/heatCurveMax - -/heatingCircuits/hc1/holidayMode -{"id":"/heatingCircuits/hc1/holidayMode","type":"refEnum","references":[{"id":"/heatingCircuits/hc1/holidayMode/activated","uri":"http:///heatingCircuits/hc1/holidayMode/activated"}]} - -/heatingCircuits/hc1/holidayMode/activated -{"id":"/heatingCircuits/hc1/holidayMode/activated","type":"stringValue","writeable":0,"recordable":0,"value":"","allowedValues":["","hm1","hm2","hm3","hm4","hm5"]} - -/heatingCircuits/hc1/manualRoomSetpoint -{"id":"/heatingCircuits/hc1/manualRoomSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":22.0,"unitOfMeasure":"C","minValue":5.0,"maxValue":30.0,"state":[{"off":0.0}]} - -/heatingCircuits/hc1/nextSetpoint - -/heatingCircuits/hc1/operationMode -{"id":"/heatingCircuits/hc1/operationMode","type":"stringValue","writeable":1,"recordable":0,"value":"manual","allowedValues":["auto","manual"]} - -/heatingCircuits/hc1/pumpModulation -{"id":"/heatingCircuits/hc1/pumpModulation","type":"floatValue","writeable":0,"recordable":0,"value":100.0,"unitOfMeasure":"%"} - -/heatingCircuits/hc1/roomInfluence - -/heatingCircuits/hc1/roomtemperature -{"id":"/heatingCircuits/hc1/roomtemperature","type":"floatValue","writeable":0,"recordable":1,"value":23.7,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatingCircuits/hc1/roomTempOffset - -/heatingCircuits/hc1/setpointOptimization - -/heatingCircuits/hc1/status -{"id":"/heatingCircuits/hc1/status","type":"stringValue","writeable":0,"recordable":0,"value":"ACTIVE","allowedValues":["INACTIVE","ACTIVE"]} - -/heatingCircuits/hc1/supplyTemperatureSetpoint -{"id":"/heatingCircuits/hc1/supplyTemperatureSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":43.0,"unitOfMeasure":"C","state":[{"off_heat":0.0},{"off_cool":90.0}]} - -/heatingCircuits/hc1/suWiSwitchMode - -/heatingCircuits/hc1/suWiThreshold - -/heatingCircuits/hc1/switchProgramMode -{"id":"/heatingCircuits/hc1/switchProgramMode","type":"stringValue","writeable":1,"recordable":0,"value":"levels","allowedValues":["levels","absolute"]} - -/heatingCircuits/hc1/switchPrograms -{"id":"/heatingCircuits/hc1/switchPrograms","type":"refEnum","references":[{"id":"/heatingCircuits/hc1/switchPrograms/A","uri":"http:///heatingCircuits/hc1/switchPrograms/A"},{"id":"/heatingCircuits/hc1/switchPrograms/B","uri":"http:///heatingCircuits/hc1/switchPrograms/B"}]} - -/heatingCircuits/hc1/switchPrograms/A -{"id":"/heatingCircuits/hc1/switchPrograms/A","type":"switchProgram","setpointProperty":{"id":"/heatingCircuits/hc1/temperatureLevels","uri":"http:///heatingCircuits/hc1/temperatureLevels"},"maxNbOfSwitchPoints":42,"maxNbOfSwitchPointsPerDay":6,"switchPointTimeRaster":15,"writeable":1,"switchPoints":[{"dayOfWeek":"Mo","setpoint":"comfort2","time":360},{"dayOfWeek":"Mo","setpoint":"eco","time":1380},{"dayOfWeek":"Tu","setpoint":"comfort2","time":360},{"dayOfWeek":"Tu","setpoint":"eco","time":1380},{"dayOfWeek":"We","setpoint":"comfort2","time":360},{"dayOfWeek":"We","setpoint":"eco","time":1380},{"dayOfWeek":"Th","setpoint":"comfort2","time":360},{"dayOfWeek":"Th","setpoint":"eco","time":1380},{"dayOfWeek":"Fr","setpoint":"comfort2","time":360},{"dayOfWeek":"Fr","setpoint":"eco","time":1380},{"dayOfWeek":"Sa","setpoint":"comfort2","time":480},{"dayOfWeek":"Sa","setpoint":"eco","time":1380},{"dayOfWeek":"Su","setpoint":"comfort2","time":480},{"dayOfWeek":"Su","setpoint":"eco","time":1380}]} - -/heatingCircuits/hc1/switchPrograms/B -{"id":"/heatingCircuits/hc1/switchPrograms/B","type":"switchProgram","setpointProperty":{"id":"/heatingCircuits/hc1/temperatureLevels","uri":"http:///heatingCircuits/hc1/temperatureLevels"},"maxNbOfSwitchPoints":42,"maxNbOfSwitchPointsPerDay":6,"switchPointTimeRaster":15,"writeable":1,"switchPoints":[{"dayOfWeek":"Mo","setpoint":"comfort2","time":360},{"dayOfWeek":"Mo","setpoint":"eco","time":480},{"dayOfWeek":"Mo","setpoint":"comfort2","time":960},{"dayOfWeek":"Mo","setpoint":"eco","time":1380},{"dayOfWeek":"Tu","setpoint":"comfort2","time":360},{"dayOfWeek":"Tu","setpoint":"eco","time":480},{"dayOfWeek":"Tu","setpoint":"comfort2","time":960},{"dayOfWeek":"Tu","setpoint":"eco","time":1380},{"dayOfWeek":"We","setpoint":"comfort2","time":360},{"dayOfWeek":"We","setpoint":"eco","time":480},{"dayOfWeek":"We","setpoint":"comfort2","time":960},{"dayOfWeek":"We","setpoint":"eco","time":1380},{"dayOfWeek":"Th","setpoint":"comfort2","time":360},{"dayOfWeek":"Th","setpoint":"eco","time":480},{"dayOfWeek":"Th","setpoint":"comfort2","time":960},{"dayOfWeek":"Th","setpoint":"eco","time":1380},{"dayOfWeek":"Fr","setpoint":"comfort2","time":360},{"dayOfWeek":"Fr","setpoint":"eco","time":480},{"dayOfWeek":"Fr","setpoint":"comfort2","time":960},{"dayOfWeek":"Fr","setpoint":"eco","time":1380},{"dayOfWeek":"Sa","setpoint":"comfort2","time":480},{"dayOfWeek":"Sa","setpoint":"eco","time":1320},{"dayOfWeek":"Su","setpoint":"comfort2","time":480},{"dayOfWeek":"Su","setpoint":"eco","time":1320}]} - -/heatingCircuits/hc1/temperatureLevels -{"id":"/heatingCircuits/hc1/temperatureLevels","type":"refEnum","references":[{"id":"/heatingCircuits/hc1/temperatureLevels/eco","uri":"http:///heatingCircuits/hc1/temperatureLevels/eco"},{"id":"/heatingCircuits/hc1/temperatureLevels/comfort2","uri":"http:///heatingCircuits/hc1/temperatureLevels/comfort2"}]} - -/heatingCircuits/hc1/temperatureLevels/comfort2 -{"id":"/heatingCircuits/hc1/temperatureLevels/comfort2","type":"floatValue","writeable":1,"recordable":0,"value":22.0,"unitOfMeasure":"C","minValue":5.5,"maxValue":30.0} - -/heatingCircuits/hc1/temperatureLevels/eco -{"id":"/heatingCircuits/hc1/temperatureLevels/eco","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"C","minValue":5.0,"maxValue":21.5,"state":[{"off":0.0}]} - -/heatingCircuits/hc1/temperatureRoomSetpoint -{"id":"/heatingCircuits/hc1/temperatureRoomSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":22.0,"unitOfMeasure":"C","minValue":5.0,"maxValue":30.0,"state":[{"off":0.0}]} - -/heatingCircuits/hc1/temporaryRoomSetpoint -{"id":"/heatingCircuits/hc1/temporaryRoomSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":-1.0,"unitOfMeasure":"C","minValue":5.0,"maxValue":30.0,"state":[{"off":0.0},{"na":-1.0}]} - -/heatingCircuits/hc1/timeToNextSetpoint - - - -/heatingCircuits/hc2 -{"id":"/heatingCircuits/hc2","type":"refEnum","references":[{"id":"/heatingCircuits/hc2/currentRoomSetpoint","uri":"http:///heatingCircuits/hc2/currentRoomSetpoint"},{"id":"/heatingCircuits/hc2/actualSupplyTemperature","uri":"http:///heatingCircuits/hc2/actualSupplyTemperature"},{"id":"/heatingCircuits/hc2/actualSupplyTempSetpoint","uri":"http:///heatingCircuits/hc2/actualSupplyTempSetpoint"},{"id":"/heatingCircuits/hc2/operationMode","uri":"http:///heatingCircuits/hc2/operationMode"},{"id":"/heatingCircuits/hc2/temperatureRoomSetpoint","uri":"http:///heatingCircuits/hc2/temperatureRoomSetpoint"},{"id":"/heatingCircuits/hc2/supplyTemperatureSetpoint","uri":"http:///heatingCircuits/hc2/supplyTemperatureSetpoint"},{"id":"/heatingCircuits/hc2/manualRoomSetpoint","uri":"http:///heatingCircuits/hc2/manualRoomSetpoint"},{"id":"/heatingCircuits/hc2/temporaryRoomSetpoint","uri":"http:///heatingCircuits/hc2/temporaryRoomSetpoint"},{"id":"/heatingCircuits/hc2/roomtemperature","uri":"http:///heatingCircuits/hc2/roomtemperature"},{"id":"/heatingCircuits/hc2/activeSwitchProgram","uri":"http:///heatingCircuits/hc2/activeSwitchProgram"},{"id":"/heatingCircuits/hc2/timeToNextSetpoint","uri":"http:///heatingCircuits/hc2/timeToNextSetpoint"},{"id":"/heatingCircuits/hc2/nextSetpoint","uri":"http:///heatingCircuits/hc2/nextSetpoint"},{"id":"/heatingCircuits/hc2/switchProgramMode","uri":"http:///heatingCircuits/hc2/switchProgramMode"},{"id":"/heatingCircuits/hc2/switchPrograms","uri":"http:///heatingCircuits/hc2/switchPrograms"},{"id":"/heatingCircuits/hc2/temperatureLevels","uri":"http:///heatingCircuits/hc2/temperatureLevels"},{"id":"/heatingCircuits/hc2/pumpModulation","uri":"http:///heatingCircuits/hc2/pumpModulation"},{"id":"/heatingCircuits/hc2/designTemp","uri":"http:///heatingCircuits/hc2/designTemp"},{"id":"/heatingCircuits/hc2/heatCurveMax","uri":"http:///heatingCircuits/hc2/heatCurveMax"},{"id":"/heatingCircuits/hc2/controlType","uri":"http:///heatingCircuits/hc2/controlType"},{"id":"/heatingCircuits/hc2/setpointOptimization","uri":"http:///heatingCircuits/hc2/setpointOptimization"},{"id":"/heatingCircuits/hc2/currentOpModeInfo","uri":"http:///heatingCircuits/hc2/currentOpModeInfo"},{"id":"/heatingCircuits/hc2/cooling","uri":"http:///heatingCircuits/hc2/cooling"},{"id":"/heatingCircuits/hc2/currentSuWiMode","uri":"http:///heatingCircuits/hc2/currentSuWiMode"},{"id":"/heatingCircuits/hc2/holidayMode","uri":"http:///heatingCircuits/hc2/holidayMode"},{"id":"/heatingCircuits/hc2/status","uri":"http:///heatingCircuits/hc2/status"}]} - -/heatingCircuits/hc2/activeSwitchProgram -{"id":"/heatingCircuits/hc2/activeSwitchProgram","type":"stringValue","writeable":1,"recordable":0,"value":"B","allowedValues":["A","B"]} - -/heatingCircuits/hc2/actualSupplyTemperature -{"id":"/heatingCircuits/hc2/actualSupplyTemperature","type":"floatValue","writeable":0,"recordable":0,"value":25.1,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatingCircuits/hc2/actualSupplyTempSetpoint - -/heatingCircuits/hc2/controlType - -/heatingCircuits/hc2/cooling -{"id":"/heatingCircuits/hc2/cooling","type":"refEnum","references":[]} - -/heatingCircuits/hc2/currentOpModeInfo - -/heatingCircuits/hc2/currentRoomSetpoint -{"id":"/heatingCircuits/hc2/currentRoomSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":0.0,"unitOfMeasure":"C","state":[{"off":0.0}]} - -/heatingCircuits/hc2/currentSuWiMode - -/heatingCircuits/hc2/designTemp - -/heatingCircuits/hc2/heatCurveMax - -/heatingCircuits/hc2/holidayMode -{"id":"/heatingCircuits/hc2/holidayMode","type":"refEnum","references":[{"id":"/heatingCircuits/hc2/holidayMode/activated","uri":"http:///heatingCircuits/hc2/holidayMode/activated"}]} - -/heatingCircuits/hc2/holidayMode/activated -{"id":"/heatingCircuits/hc2/holidayMode/activated","type":"stringValue","writeable":0,"recordable":0,"value":"","allowedValues":["","hm1","hm2","hm3","hm4","hm5"]} - -/heatingCircuits/hc2/manualRoomSetpoint -{"id":"/heatingCircuits/hc2/manualRoomSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":22.5,"unitOfMeasure":"C","minValue":5.0,"maxValue":30.0,"state":[{"off":0.0}]} - -/heatingCircuits/hc2/nextSetpoint - -/heatingCircuits/hc2/operationMode -{"id":"/heatingCircuits/hc2/operationMode","type":"stringValue","writeable":1,"recordable":0,"value":"auto","allowedValues":["auto","manual"]} - -/heatingCircuits/hc2/pumpModulation -{"id":"/heatingCircuits/hc2/pumpModulation","type":"floatValue","writeable":0,"recordable":0,"value":0.0,"unitOfMeasure":"%"} - -/heatingCircuits/hc2/roomtemperature -{"id":"/heatingCircuits/hc2/roomtemperature","type":"floatValue","writeable":0,"recordable":1,"value":23.7,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatingCircuits/hc2/setpointOptimization - -/heatingCircuits/hc2/status -{"id":"/heatingCircuits/hc2/status","type":"stringValue","writeable":0,"recordable":0,"value":"ACTIVE","allowedValues":["INACTIVE","ACTIVE"]} - -/heatingCircuits/hc2/supplyTemperatureSetpoint -{"id":"/heatingCircuits/hc2/supplyTemperatureSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":0.0,"unitOfMeasure":"C","state":[{"off_heat":0.0},{"off_cool":90.0}]} - -/heatingCircuits/hc2/switchProgramMode -{"id":"/heatingCircuits/hc2/switchProgramMode","type":"stringValue","writeable":1,"recordable":0,"value":"levels","allowedValues":["levels","absolute"]} - -/heatingCircuits/hc2/switchPrograms -{"id":"/heatingCircuits/hc2/switchPrograms","type":"refEnum","references":[{"id":"/heatingCircuits/hc2/switchPrograms/A","uri":"http:///heatingCircuits/hc2/switchPrograms/A"},{"id":"/heatingCircuits/hc2/switchPrograms/B","uri":"http:///heatingCircuits/hc2/switchPrograms/B"}]} - -/heatingCircuits/hc2/switchPrograms/A -{"id":"/heatingCircuits/hc2/switchPrograms/A","type":"switchProgram","setpointProperty":{"id":"/heatingCircuits/hc2/temperatureLevels","uri":"http:///heatingCircuits/hc2/temperatureLevels"},"maxNbOfSwitchPoints":42,"maxNbOfSwitchPointsPerDay":6,"switchPointTimeRaster":15,"writeable":1,"switchPoints":[{"dayOfWeek":"Mo","setpoint":"comfort2","time":360},{"dayOfWeek":"Mo","setpoint":"eco","time":1380},{"dayOfWeek":"Tu","setpoint":"comfort2","time":360},{"dayOfWeek":"Tu","setpoint":"eco","time":1380},{"dayOfWeek":"We","setpoint":"comfort2","time":360},{"dayOfWeek":"We","setpoint":"eco","time":1380},{"dayOfWeek":"Th","setpoint":"comfort2","time":360},{"dayOfWeek":"Th","setpoint":"eco","time":1380},{"dayOfWeek":"Fr","setpoint":"comfort2","time":360},{"dayOfWeek":"Fr","setpoint":"eco","time":1380},{"dayOfWeek":"Sa","setpoint":"comfort2","time":480},{"dayOfWeek":"Sa","setpoint":"eco","time":1380},{"dayOfWeek":"Su","setpoint":"comfort2","time":480},{"dayOfWeek":"Su","setpoint":"eco","time":1380}]} - -/heatingCircuits/hc2/switchPrograms/B -{"id":"/heatingCircuits/hc2/switchPrograms/B","type":"switchProgram","setpointProperty":{"id":"/heatingCircuits/hc2/temperatureLevels","uri":"http:///heatingCircuits/hc2/temperatureLevels"},"maxNbOfSwitchPoints":42,"maxNbOfSwitchPointsPerDay":6,"switchPointTimeRaster":15,"writeable":1,"switchPoints":[{"dayOfWeek":"Mo","setpoint":"comfort2","time":360},{"dayOfWeek":"Mo","setpoint":"eco","time":480},{"dayOfWeek":"Mo","setpoint":"comfort2","time":960},{"dayOfWeek":"Mo","setpoint":"eco","time":1380},{"dayOfWeek":"Tu","setpoint":"comfort2","time":360},{"dayOfWeek":"Tu","setpoint":"eco","time":480},{"dayOfWeek":"Tu","setpoint":"comfort2","time":960},{"dayOfWeek":"Tu","setpoint":"eco","time":1380},{"dayOfWeek":"We","setpoint":"comfort2","time":360},{"dayOfWeek":"We","setpoint":"eco","time":480},{"dayOfWeek":"We","setpoint":"comfort2","time":960},{"dayOfWeek":"We","setpoint":"eco","time":1380},{"dayOfWeek":"Th","setpoint":"comfort2","time":360},{"dayOfWeek":"Th","setpoint":"eco","time":480},{"dayOfWeek":"Th","setpoint":"comfort2","time":960},{"dayOfWeek":"Th","setpoint":"eco","time":1380},{"dayOfWeek":"Fr","setpoint":"comfort2","time":360},{"dayOfWeek":"Fr","setpoint":"eco","time":480},{"dayOfWeek":"Fr","setpoint":"comfort2","time":960},{"dayOfWeek":"Fr","setpoint":"eco","time":1380},{"dayOfWeek":"Sa","setpoint":"comfort2","time":480},{"dayOfWeek":"Sa","setpoint":"eco","time":1380},{"dayOfWeek":"Su","setpoint":"comfort2","time":480},{"dayOfWeek":"Su","setpoint":"eco","time":1380}]} - -/heatingCircuits/hc2/temperatureLevels -{"id":"/heatingCircuits/hc2/temperatureLevels","type":"refEnum","references":[{"id":"/heatingCircuits/hc2/temperatureLevels/eco","uri":"http:///heatingCircuits/hc2/temperatureLevels/eco"},{"id":"/heatingCircuits/hc2/temperatureLevels/comfort2","uri":"http:///heatingCircuits/hc2/temperatureLevels/comfort2"}]} - -/heatingCircuits/hc2/temperatureLevels/comfort2 -{"id":"/heatingCircuits/hc2/temperatureLevels/comfort2","type":"floatValue","writeable":1,"recordable":0,"value":23.0,"unitOfMeasure":"C","minValue":5.5,"maxValue":30.0} - -/heatingCircuits/hc2/temperatureLevels/eco -{"id":"/heatingCircuits/hc2/temperatureLevels/eco","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"C","minValue":5.0,"maxValue":22.5,"state":[{"off":0.0}]} - -/heatingCircuits/hc2/temperatureRoomSetpoint -{"id":"/heatingCircuits/hc2/temperatureRoomSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":22.5,"unitOfMeasure":"C","minValue":5.0,"maxValue":30.0,"state":[{"off":0.0}]} - -/heatingCircuits/hc2/temporaryRoomSetpoint -{"id":"/heatingCircuits/hc2/temporaryRoomSetpoint","type":"floatValue","writeable":1,"recordable":0,"value":-1.0,"unitOfMeasure":"C","minValue":5.0,"maxValue":30.0,"state":[{"off":0.0},{"na":-1.0}]} - -/heatingCircuits/hc2/timeToNextSetpoint - -HEATSOURCES -- SENSOR - - -/heatSources -{"id":"/heatSources","type":"refEnum","references":[{"id":"/heatSources/info","uri":"http:///heatSources/info"},{"id":"/heatSources/actualPower","uri":"http:///heatSources/actualPower"},{"id":"/heatSources/actualCHPower","uri":"http:///heatSources/actualCHPower"},{"id":"/heatSources/actualDHWPower","uri":"http:///heatSources/actualDHWPower"},{"id":"/heatSources/actualModulation","uri":"http:///heatSources/actualModulation"},{"id":"/heatSources/burnerModulationSetpoint","uri":"http:///heatSources/burnerModulationSetpoint"},{"id":"/heatSources/burnerPowerSetpoint","uri":"http:///heatSources/burnerPowerSetpoint"},{"id":"/heatSources/flameStatus","uri":"http:///heatSources/flameStatus"},{"id":"/heatSources/CHpumpModulation","uri":"http:///heatSources/CHpumpModulation"},{"id":"/heatSources/actualSupplyTemperature","uri":"http:///heatSources/actualSupplyTemperature"},{"id":"/heatSources/powerSetpoint","uri":"http:///heatSources/powerSetpoint"},{"id":"/heatSources/gasAirPressure","uri":"http:///heatSources/gasAirPressure"},{"id":"/heatSources/systemPressure","uri":"http:///heatSources/systemPressure"},{"id":"/heatSources/flameCurrent","uri":"http:///heatSources/flameCurrent"},{"id":"/heatSources/ChimneySweeper","uri":"http:///heatSources/ChimneySweeper"},{"id":"/heatSources/returnTemperature","uri":"http:///heatSources/returnTemperature"},{"id":"/heatSources/numberOfStarts","uri":"http:///heatSources/numberOfStarts"},{"id":"/heatSources/supplyTemperatureSetpoint","uri":"http:///heatSources/supplyTemperatureSetpoint"},{"id":"/heatSources/applianceSupplyTemperature","uri":"http:///heatSources/applianceSupplyTemperature"},{"id":"/heatSources/nominalCHPower","uri":"http:///heatSources/nominalCHPower"},{"id":"/heatSources/chimneyTemperature","uri":"http:///heatSources/chimneyTemperature"},{"id":"/heatSources/heating","uri":"http:///heatSources/heating"},{"id":"/heatSources/Source","uri":"http:///heatSources/Source"},{"id":"/heatSources/sensors","uri":"http:///heatSources/sensors"},{"id":"/heatSources/workingTime","uri":"http:///heatSources/workingTime"},{"id":"/heatSources/fuelCell","uri":"http:///heatSources/fuelCell"},{"id":"/heatSources/energyMonitoring","uri":"http:///heatSources/energyMonitoring"},{"id":"/heatSources/hs1","uri":"http:///heatSources/hs1"},{"id":"/heatSources/ch","uri":"http:///heatSources/ch"},{"id":"/heatSources/dhw","uri":"http:///heatSources/dhw"},{"id":"/heatSources/pool","uri":"http:///heatSources/pool"},{"id":"/heatSources/cooling","uri":"http:///heatSources/cooling"},{"id":"/heatSources/total","uri":"http:///heatSources/total"},{"id":"/heatSources/electricGrid","uri":"http:///heatSources/electricGrid"}]} - -/heatSources/actualCHPower -{"id":"/heatSources/actualCHPower","type":"floatValue","writeable":0,"recordable":1,"value":0.0,"unitOfMeasure":"kW"} - -/heatSources/actualDHWPower -{"id":"/heatSources/actualDHWPower","type":"floatValue","writeable":0,"recordable":1,"value":0.0,"unitOfMeasure":"kW"} - -/heatSources/actualModulation -{"id":"/heatSources/actualModulation","type":"floatValue","writeable":0,"recordable":0,"value":0.0,"unitOfMeasure":"%"} - -/heatSources/actualPower -{"id":"/heatSources/actualPower","type":"floatValue","writeable":0,"recordable":1,"value":0.0,"unitOfMeasure":"kW"} - -/heatSources/actualSupplyTemperature -{"id":"/heatSources/actualSupplyTemperature","type":"floatValue","writeable":0,"recordable":0,"value":40.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatSources/applianceSupplyTemperature -{"id":"/heatSources/applianceSupplyTemperature","type":"floatValue","writeable":0,"recordable":0,"value":40.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatSources/burnerModulationSetpoint -{"id":"/heatSources/burnerModulationSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":100.0,"unitOfMeasure":"%"} - -/heatSources/burnerPowerSetpoint -{"id":"/heatSources/burnerPowerSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":22.0,"unitOfMeasure":"kW"} - -/heatSources/ch -{"id":"/heatSources/ch","type":"refEnum","references":[{"id":"/heatSources/ch/energyMonitoring","uri":"http:///heatSources/ch/energyMonitoring"} -/heatSources/ch/energyMonitoring -{"id":"/heatSources/ch/energyMonitoring","type":"refEnum","references":[]} - -/heatSources/ChimneySweeper -{"id":"/heatSources/ChimneySweeper","type":"stringValue","writeable":0,"recordable":0,"value":"off"} - -/heatSources/chimneyTemperature -{"id":"/heatSources/chimneyTemperature","type":"floatValue","writeable":0,"recordable":0,"value":-3276.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatSources/CHpumpModulation -{"id":"/heatSources/CHpumpModulation","type":"floatValue","writeable":0,"recordable":0,"value":89.0,"unitOfMeasure":"%"} - -/heatSources/cooling -{"id":"/heatSources/cooling","type":"refEnum","references":[{"id":"/heatSources/cooling/energyMonitoring","uri":"http:///heatSources/cooling/energyMonitoring"}]} - -/heatSources/cooling/energyMonitoring -{"id":"/heatSources/cooling/energyMonitoring","type":"refEnum","references":[]} - -/heatSources/dhw -{"id":"/heatSources/dhw","type":"refEnum","references":[{"id":"/heatSources/dhw/energyMonitoring","uri":"http:///heatSources/dhw/energyMonitoring"}]} - -/heatSources/dhw/energyMonitoring -{"id":"/heatSources/dhw/energyMonitoring","type":"refEnum","references":[]} - -/heatSources/electricGrid -{"id":"/heatSources/electricGrid","type":"refEnum","references":[]} - -/heatSources/energyMonitoring -{"id":"/heatSources/energyMonitoring","type":"refEnum","references":[{"id":"/heatSources/energyMonitoring/consumption","uri":"http:///heatSources/energyMonitoring/consumption"},{"id":"/heatSources/energyMonitoring/correctionFactor","uri":"http:///heatSources/energyMonitoring/correctionFactor"},{"id":"/heatSources/energyMonitoring/maxTankLevel","uri":"http:///heatSources/energyMonitoring/maxTankLevel"},{"id":"/heatSources/energyMonitoring/minTankLevel","uri":"http:///heatSources/energyMonitoring/minTankLevel"},{"id":"/heatSources/energyMonitoring/tankLevel","uri":"http:///heatSources/energyMonitoring/tankLevel"},{"id":"/heatSources/energyMonitoring/startDateTime","uri":"http:///heatSources/energyMonitoring/startDateTime"}]} - -/heatSources/energyMonitoring/consumption -{"id":"/heatSources/energyMonitoring/consumption","type":"floatValue","writeable":1,"recordable":0,"value":1914.2,"unitOfMeasure":"kWh","minValue":0.0,"maxValue":135780000.0} - -/heatSources/energyMonitoring/correctionFactor -{"id":"/heatSources/energyMonitoring/correctionFactor","type":"floatValue","writeable":1,"recordable":0,"value":1.0,"unitOfMeasure":" ","minValue":0.7,"maxValue":1.3} - -/heatSources/energyMonitoring/maxTankLevel -{"id":"/heatSources/energyMonitoring/maxTankLevel","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh","minValue":0.0,"maxValue":135780000.0} - -/heatSources/energyMonitoring/minTankLevel -{"id":"/heatSources/energyMonitoring/minTankLevel","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh","minValue":0.0,"maxValue":135780000.0} - -/heatSources/energyMonitoring/startDateTime -{"id":"/heatSources/energyMonitoring/startDateTime","type":"stringValue","writeable":0,"recordable":0,"value":"2018-11-13T20:57:52"} - -/heatSources/energyMonitoring/tankLevel -{"id":"/heatSources/energyMonitoring/tankLevel","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh","minValue":0.0,"maxValue":135780000.0} - -/heatSources/flameCurrent -{"id":"/heatSources/flameCurrent","type":"floatValue","writeable":0,"recordable":0,"value":-0.1,"unitOfMeasure":"┬ÁA","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatSources/flameStatus -{"id":"/heatSources/flameStatus","type":"stringValue","writeable":0,"recordable":0,"value":"off","allowedValues":["off","on"]} - -/heatSources/fuelCell -{"id":"/heatSources/fuelCell","type":"refEnum","references":[]} - -/heatSources/gasAirPressure -{"id":"/heatSources/gasAirPressure","type":"floatValue","writeable":0,"recordable":0,"value":-0.1,"unitOfMeasure":"Pascal"} - -/heatSources/heating -{"id":"/heatSources/heating","type":"refEnum","references":[]} - -/heatSources/hs1 -{"id":"/heatSources/hs1","type":"refEnum","references":[{"id":"/heatSources/hs1/info","uri":"http:///heatSources/hs1/info"},{"id":"/heatSources/hs1/type","uri":"http:///heatSources/hs1/type"},{"id":"/heatSources/hs1/energyReservoir","uri":"http:///heatSources/hs1/energyReservoir"},{"id":"/heatSources/hs1/reservoirAlert","uri":"http:///heatSources/hs1/reservoirAlert"},{"id":"/heatSources/hs1/nominalFuelConsumption","uri":"http:///heatSources/hs1/nominalFuelConsumption"},{"id":"/heatSources/hs1/fuelConsmptCorrFactor","uri":"http:///heatSources/hs1/fuelConsmptCorrFactor"},{"id":"/heatSources/hs1/actualModulation","uri":"http:///heatSources/hs1/actualModulation"},{"id":"/heatSources/hs1/actualPower","uri":"http:///heatSources/hs1/actualPower"},{"id":"/heatSources/hs1/fuel","uri":"http:///heatSources/hs1/fuel"},{"id":"/heatSources/hs1/flameStatus","uri":"http:///heatSources/hs1/flameStatus"}]} - -/heatSources/hs1/actualModulation -{"id":"/heatSources/hs1/actualModulation","type":"floatValue","writeable":0,"recordable":0,"value":62.0,"unitOfMeasure":"%"} - -/heatSources/hs1/actualPower -{"id":"/heatSources/hs1/actualPower","type":"floatValue","writeable":0,"recordable":1,"value":13.64,"unitOfMeasure":"kW"} - -/heatSources/hs1/energyReservoir -{"id":"/heatSources/hs1/energyReservoir","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh"} - -/heatSources/hs1/flameStatus -{"id":"/heatSources/hs1/flameStatus","type":"stringValue","writeable":0,"recordable":0,"value":"on","allowedValues":["off","on"]} - -/heatSources/hs1/fuel -{"id":"/heatSources/hs1/fuel","type":"refEnum","references":[{"id":"/heatSources/hs1/fuel/density","uri":"http:///heatSources/hs1/fuel/density"},{"id":"/heatSources/hs1/fuel/caloricValue","uri":"http:///heatSources/hs1/fuel/caloricValue"}]} - -/heatSources/hs1/fuel/caloricValue -{"id":"/heatSources/hs1/fuel/caloricValue","type":"floatValue","writeable":1,"recordable":0,"value":11.5,"unitOfMeasure":"kWh"} - -/heatSources/hs1/fuel/density -{"id":"/heatSources/hs1/fuel/density","type":"floatValue","writeable":1,"recordable":0,"value":0.820,"unitOfMeasure":"kg/l"} - -/heatSources/hs1/fuelConsmptCorrFactor -{"id":"/heatSources/hs1/fuelConsmptCorrFactor","type":"floatValue","writeable":1,"recordable":0,"value":1.00,"unitOfMeasure":" "} - -/heatSources/hs1/info -{"id":"/heatSources/hs1/info","type":"systeminfo","recordable":0,"writeable":0,"values":[{"Tok":"8","Id":"11152","Ver":"00","No":"7736900599000000000001111775D0D0"}]} - -/heatSources/hs1/nominalFuelConsumption -{"id":"/heatSources/hs1/nominalFuelConsumption","type":"floatValue","writeable":1,"recordable":0,"value":1.8,"unitOfMeasure":"l/h"} - -/heatSources/hs1/reservoirAlert -{"id":"/heatSources/hs1/reservoirAlert","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh"} - -/heatSources/hs1/type -{"id":"/heatSources/hs1/type","type":"stringValue","writeable":0,"recordable":0,"value":"GasBoiler","allowedValues":["No_Appliance","OilBoiler","GasBoiler","Heatpump","unknownBoiler"]} - -/heatSources/info -{"id":"/heatSources/info","type":"systeminfo","recordable":0,"writeable":0,"values":[{"Tok":"8","Id":"11152","Ver":"00","No":"7736900599000000000001111775D0D0"}]} - -/heatSources/nominalCHPower -{"id":"/heatSources/nominalCHPower","type":"floatValue","writeable":0,"recordable":0,"value":22.0,"unitOfMeasure":"kW","minValue":0.0,"maxValue":100.0} - -/heatSources/numberOfStarts -{"id":"/heatSources/numberOfStarts","type":"floatValue","writeable":0,"recordable":0,"value":14543,"unitOfMeasure":" "} - -/heatSources/pool -{"id":"/heatSources/pool","type":"refEnum","references":[{"id":"/heatSources/pool/energyMonitoring","uri":"http:///heatSources/pool/energyMonitoring"}]} - -/heatSources/pool/energyMonitoring -{"id":"/heatSources/pool/energyMonitoring","type":"refEnum","references":[]} - -/heatSources/powerSetpoint -{"id":"/heatSources/powerSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":100.0,"unitOfMeasure":"%"} - -/heatSources/returnTemperature -{"id":"/heatSources/returnTemperature","type":"floatValue","writeable":0,"recordable":0,"value":-3276.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/heatSources/sensors -{"id":"/heatSources/sensors","type":"refEnum","references":[]} - -/heatSources/Source -{"id":"/heatSources/Source","type":"refEnum","references":[{"id":"/heatSources/Source/Compressor","uri":"http:///heatSources/Source/Compressor"},{"id":"/heatSources/Source/eHeater","uri":"http:///heatSources/Source/eHeater"}]} - -/heatSources/Source/Compressor -{"id":"/heatSources/Source/Compressor","type":"refEnum","references":[]} - -/heatSources/Source/eHeater -{"id":"/heatSources/Source/eHeater","type":"refEnum","references":[]} - -/heatSources/supplyTemperatureSetpoint -{"id":"/heatSources/supplyTemperatureSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":48.0,"unitOfMeasure":"C"} - -/heatSources/systemPressure -{"id":"/heatSources/systemPressure","type":"floatValue","writeable":0,"recordable":0,"value":25.5,"unitOfMeasure":"bar","state":[{"invalid":25.5}]} - -/heatSources/total -{"id":"/heatSources/total","type":"refEnum","references":[{"id":"/heatSources/total/energyMonitoring","uri":"http:///heatSources/total/energyMonitoring"}]} - -/heatSources/total/energyMonitoring -{"id":"/heatSources/total/energyMonitoring","type":"refEnum","references":[]} - -/heatSources/workingTime -{"id":"/heatSources/workingTime","type":"refEnum","references":[{"id":"/heatSources/workingTime/totalSystem","uri":"http:///heatSources/workingTime/totalSystem"},{"id":"/heatSources/workingTime/secondBurner","uri":"http:///heatSources/workingTime/secondBurner"},{"id":"/heatSources/workingTime/centralHeating","uri":"http:///heatSources/workingTime/centralHeating"}]} - -/heatSources/workingTime/centralHeating -{"id":"/heatSources/workingTime/centralHeating","type":"floatValue","writeable":0,"recordable":0,"value":86132,"unitOfMeasure":"mins"} - -/heatSources/workingTime/secondBurner -{"id":"/heatSources/workingTime/secondBurner","type":"floatValue","writeable":0,"recordable":0,"value":0,"unitOfMeasure":"mins"} - -/heatSources/workingTime/totalSystem -{"id":"/heatSources/workingTime/totalSystem","type":"floatValue","writeable":0,"recordable":0,"value":100486,"unitOfMeasure":"mins"} - -RECORDINGS - -/notifications -{"id":"/notifications","type":"errorList","recordable":0,"writeable":0,"values":[]} - -/recordings -{"id":"/recordings","type":"refEnum","references":[{"id":"/recordings/system","uri":"http:///recordings/system"},{"id":"/recordings/heatSources","uri":"http:///recordings/heatSources"},{"id":"/recordings/heatingCircuits","uri":"http:///recordings/heatingCircuits"},{"id":"/recordings/dhwCircuits","uri":"http:///recordings/dhwCircuits"}]} - -/recordings/dhwCircuits -{"id":"/recordings/dhwCircuits","type":"refEnum","references":[{"id":"/recordings/dhwCircuits/dhw1","uri":"http:///recordings/dhwCircuits/dhw1"}]} - -/recordings/dhwCircuits/dhw1 -{"id":"/recordings/dhwCircuits/dhw1","type":"refEnum","references":[{"id":"/recordings/dhwCircuits/dhw1/actualTemp","uri":"http:///recordings/dhwCircuits/dhw1/actualTemp"}]} - -/recordings/dhwCircuits/dhw1/actualTemp - -/recordings/heatingCircuits -{"id":"/recordings/heatingCircuits","type":"refEnum","references":[{"id":"/recordings/heatingCircuits/hc1","uri":"http:///recordings/heatingCircuits/hc1"},{"id":"/recordings/heatingCircuits/hc2","uri":"http:///recordings/heatingCircuits/hc2"}]} - -/recordings/heatingCircuits/hc1 -{"id":"/recordings/heatingCircuits/hc1","type":"refEnum","references":[{"id":"/recordings/heatingCircuits/hc1/roomtemperature","uri":"http:///recordings/heatingCircuits/hc1/roomtemperature"}]} - -/recordings/heatingCircuits/hc1/roomtemperature - -/recordings/heatingCircuits/hc2 -{"id":"/recordings/heatingCircuits/hc2","type":"refEnum","references":[{"id":"/recordings/heatingCircuits/hc2/roomtemperature","uri":"http:///recordings/heatingCircuits/hc2/roomtemperature"}]} - -/recordings/heatingCircuits/hc2/roomtemperature - -/recordings/heatSources -{"id":"/recordings/heatSources","type":"refEnum","references":[{"id":"/recordings/heatSources/actualPower","uri":"http:///recordings/heatSources/actualPower"},{"id":"/recordings/heatSources/actualCHPower","uri":"http:///recordings/heatSources/actualCHPower"},{"id":"/recordings/heatSources/actualDHWPower","uri":"http:///recordings/heatSources/actualDHWPower"},{"id":"/recordings/heatSources/hs1","uri":"http:///recordings/heatSources/hs1"},{"id":"/recordings/heatSources/total","uri":"http:///recordings/heatSources/total"}]} - -/recordings/heatSources/actualCHPower - -/recordings/heatSources/actualDHWPower - -/recordings/heatSources/actualPower - -/recordings/heatSources/hs1 -{"id":"/recordings/heatSources/hs1","type":"refEnum","references":[{"id":"/recordings/heatSources/hs1/actualPower","uri":"http:///recordings/heatSources/hs1/actualPower"}]} - -/recordings/heatSources/hs1/actualPower - -/recordings/heatSources/total -{"id":"/recordings/heatSources/total","type":"refEnum","references":[{"id":"/recordings/heatSources/total/energyMonitoring","uri":"http:///recordings/heatSources/total/energyMonitoring"}]} - -/recordings/heatSources/total/energyMonitoring -{"id":"/recordings/heatSources/total/energyMonitoring","type":"refEnum","references":[]} - -/recordings/system -{"id":"/recordings/system","type":"refEnum","references":[{"id":"/recordings/system/sensors","uri":"http:///recordings/system/sensors"},{"id":"/recordings/system/heatSources","uri":"http:///recordings/system/heatSources"}]} - -/recordings/system/heatSources -{"id":"/recordings/system/heatSources","type":"refEnum","references":[{"id":"/recordings/system/heatSources/hs1","uri":"http:///recordings/system/heatSources/hs1"}]} - -/recordings/system/heatSources/hs1 -{"id":"/recordings/system/heatSources/hs1","type":"refEnum","references":[{"id":"/recordings/system/heatSources/hs1/actualPower","uri":"http:///recordings/system/heatSources/hs1/actualPower"}]} - -/recordings/system/heatSources/hs1/actualPower - -/recordings/system/sensors -{"id":"/recordings/system/sensors","type":"refEnum","references":[{"id":"/recordings/system/sensors/temperatures","uri":"http:///recordings/system/sensors/temperatures"}]} - -/recordings/system/sensors/temperatures -{"id":"/recordings/system/sensors/temperatures","type":"refEnum","references":[{"id":"/recordings/system/sensors/temperatures/outdoor_t1","uri":"http:///recordings/system/sensors/temperatures/outdoor_t1"}]} - -/recordings/system/sensors/temperatures/outdoor_t1 - -SOLAR CIRCUITS - -/solarCircuits -{"id":"/solarCircuits","type":"refEnum","references":[]} - -SYSTEM - -/system -{"id":"/system","type":"refEnum","references":[{"id":"/system/brand","uri":"http:///system/brand"},{"id":"/system/systemType","uri":"http:///system/systemType"},{"id":"/system/bus","uri":"http:///system/bus"},{"id":"/system/info","uri":"http:///system/info"},{"id":"/system/minOutdoorTemp","uri":"http:///system/minOutdoorTemp"},{"id":"/system/healthStatus","uri":"http:///system/healthStatus"},{"id":"/system/sensors","uri":"http:///system/sensors"},{"id":"/system/appliance","uri":"http:///system/appliance"},{"id":"/system/heatSources","uri":"http:///system/heatSources"},{"id":"/system/holidayModes","uri":"http:///system/holidayModes"}]} - - -/system/appliance -{"id":"/system/appliance","type":"refEnum","references":[{"id":"/system/appliance/actualSupplyTemperature","uri":"http:///system/appliance/actualSupplyTemperature"},{"id":"/system/appliance/powerSetpoint","uri":"http:///system/appliance/powerSetpoint"},{"id":"/system/appliance/actualPower","uri":"http:///system/appliance/actualPower"},{"id":"/system/appliance/CHpumpModulation","uri":"http:///system/appliance/CHpumpModulation"},{"id":"/system/appliance/numberOfStarts","uri":"http:///system/appliance/numberOfStarts"},{"id":"/system/appliance/gasAirPressure","uri":"http:///system/appliance/gasAirPressure"},{"id":"/system/appliance/systemPressure","uri":"http:///system/appliance/systemPressure"},{"id":"/system/appliance/flameCurrent","uri":"http:///system/appliance/flameCurrent"},{"id":"/system/appliance/ChimneySweeper","uri":"http:///system/appliance/ChimneySweeper"},{"id":"/system/appliance/workingTime","uri":"http:///system/appliance/workingTime"},{"id":"/system/appliance/nominalBurnerLoad","uri":"http:///system/appliance/nominalBurnerLoad"}]} - -/system/appliance/actualPower -{"id":"/system/appliance/actualPower","type":"floatValue","writeable":0,"recordable":1,"value":43.0,"unitOfMeasure":"%"} - -/system/appliance/actualSupplyTemperature -{"id":"/system/appliance/actualSupplyTemperature","type":"floatValue","writeable":0,"recordable":0,"value":45.9,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/appliance/ChimneySweeper -{"id":"/system/appliance/ChimneySweeper","type":"floatValue","writeable":0,"recordable":0,"value":0.0,"unitOfMeasure":" "} - -/system/appliance/CHpumpModulation -{"id":"/system/appliance/CHpumpModulation","type":"floatValue","writeable":0,"recordable":0,"value":89.0,"unitOfMeasure":"%"} - -/system/appliance/flameCurrent -{"id":"/system/appliance/flameCurrent","type":"floatValue","writeable":0,"recordable":0,"value":-0.1,"unitOfMeasure":"┬ÁA","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/appliance/gasAirPressure -{"id":"/system/appliance/gasAirPressure","type":"floatValue","writeable":0,"recordable":0,"value":-0.1,"unitOfMeasure":"Pascal"} - -/system/appliance/nominalBurnerLoad -{"id":"/system/appliance/nominalBurnerLoad","type":"floatValue","writeable":0,"recordable":0,"value":22.0,"unitOfMeasure":"kW","minValue":0.0,"maxValue":100.0} - -/system/appliance/numberOfStarts -{"id":"/system/appliance/numberOfStarts","type":"floatValue","writeable":0,"recordable":0,"value":14544,"unitOfMeasure":" "} - -/system/appliance/powerSetpoint -{"id":"/system/appliance/powerSetpoint","type":"floatValue","writeable":0,"recordable":0,"value":100.0,"unitOfMeasure":"%"} - -/system/appliance/systemPressure -{"id":"/system/appliance/systemPressure","type":"floatValue","writeable":0,"recordable":0,"value":25.5,"unitOfMeasure":"bar","state":[{"invalid":25.5}]} - -/system/appliance/workingTime -{"id":"/system/appliance/workingTime","type":"refEnum","references":[{"id":"/system/appliance/workingTime/totalSystem","uri":"http:///system/appliance/workingTime/totalSystem"},{"id":"/system/appliance/workingTime/secondBurner","uri":"http:///system/appliance/workingTime/secondBurner"},{"id":"/system/appliance/workingTime/centralHeating","uri":"http:///system/appliance/workingTime/centralHeating"}]} - -/system/appliance/workingTime/centralHeating -{"id":"/system/appliance/workingTime/centralHeating","type":"floatValue","writeable":0,"recordable":0,"value":86132,"unitOfMeasure":"mins"} - -/system/appliance/workingTime/secondBurner -{"id":"/system/appliance/workingTime/secondBurner","type":"floatValue","writeable":0,"recordable":0,"value":0,"unitOfMeasure":"mins"} - -/system/appliance/workingTime/totalSystem -{"id":"/system/appliance/workingTime/totalSystem","type":"floatValue","writeable":0,"recordable":0,"value":100487,"unitOfMeasure":"mins"} - - - - - -/system/brand -{"id":"/system/brand","type":"stringValue","writeable":0,"recordable":0,"value":"unknown","allowedValues":["unknown","Bosch","Junkers","Buderus","Nefit","Sieger","Tata","Dakon","Elm","Boulter","Vulcano","Worcester","British Gas","IVT","Geminox","Neckar","Zeus","Milton"]} - -/system/bus -{"id":"/system/bus","type":"stringValue","writeable":0,"recordable":0,"value":"EMS2_0","allowedValues":["No_Bus","EMS1_0","EMS2_0","CAN"]} - -/system/systemType -{"id":"/system/systemType","type":"stringValue","writeable":0,"recordable":0,"value":"NSC_ICOM_GATEWAY","allowedValues":["NSC_ICOM_GATEWAY"]} - - - -/system/healthStatus -{"id":"/system/healthStatus","type":"stringValue","writeable":0,"recordable":0,"value":"ok","allowedValues":["error","maintenance","ok"]} - - - -/system/info -{"id":"/system/info","type":"systeminfo","recordable":0,"writeable":0,"values":[{"Tok":"8","Id":"95","Ver":"23.12","No":"0103020456600017101202000202FFFF"},{"Tok":"16","Id":"158","Ver":"NF33.04","No":"323533303735393530303333363737333831313130373700FFFFFF"},{"Tok":"32","Id":"160","Ver":"NF24.05","No":"383135303735393030303030363737333831313031333900FFFFFF"},{"Tok":"33","Id":"160","Ver":"NF24.03","No":"383135303635383030303033373737333831313031333900FFFFFF"},{"Tok":"9","Id":"95","Ver":"NF23.12","No":"0103020456600017101202000202FFFF"}]} - -/system/minOutdoorTemp -{"id":"/system/minOutdoorTemp","type":"floatValue","writeable":1,"recordable":0,"value":-15.0,"unitOfMeasure":"C","minValue":-35.0,"maxValue":10.0} - -/system/sensors -{"id":"/system/sensors","type":"refEnum","references":[{"id":"/system/sensors/temperatures","uri":"http:///system/sensors/temperatures"}]} - -/system/sensors/temperatures -{"id":"/system/sensors/temperatures","type":"refEnum","references":[{"id":"/system/sensors/temperatures/outdoor_t1","uri":"http:///system/sensors/temperatures/outdoor_t1"},{"id":"/system/sensors/temperatures/supply_t1_setpoint","uri":"http:///system/sensors/temperatures/supply_t1_setpoint"},{"id":"/system/sensors/temperatures/supply_t1","uri":"http:///system/sensors/temperatures/supply_t1"},{"id":"/system/sensors/temperatures/hotWater_t2","uri":"http:///system/sensors/temperatures/hotWater_t2"},{"id":"/system/sensors/temperatures/return","uri":"http:///system/sensors/temperatures/return"},{"id":"/system/sensors/temperatures/switch","uri":"http:///system/sensors/temperatures/switch"},{"id":"/system/sensors/temperatures/chimney","uri":"http:///system/sensors/temperatures/chimney"}]} - -/system/sensors/temperatures/chimney -{"id":"/system/sensors/temperatures/chimney","type":"floatValue","writeable":0,"recordable":0,"value":-3276.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/sensors/temperatures/hotWater_t2 -{"id":"/system/sensors/temperatures/hotWater_t2","type":"floatValue","writeable":0,"recordable":0,"value":-3276.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/sensors/temperatures/outdoor_t1 -{"id":"/system/sensors/temperatures/outdoor_t1","type":"floatValue","writeable":0,"recordable":1,"value":9.3,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/sensors/temperatures/return -{"id":"/system/sensors/temperatures/return","type":"floatValue","writeable":0,"recordable":0,"value":-3276.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/sensors/temperatures/supply_t1 -{"id":"/system/sensors/temperatures/supply_t1","type":"floatValue","writeable":0,"recordable":0,"value":43.4,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - -/system/sensors/temperatures/supply_t1_setpoint -{"id":"/system/sensors/temperatures/supply_t1_setpoint","type":"floatValue","writeable":0,"recordable":0,"value":48.0,"unitOfMeasure":"C"} - -/system/sensors/temperatures/switch -{"id":"/system/sensors/temperatures/switch","type":"floatValue","writeable":0,"recordable":0,"value":-3276.8,"unitOfMeasure":"C","state":[{"open":-3276.8},{"short":3276.7}]} - - - - -/system/heatSources -{"id":"/system/heatSources","type":"refEnum","references":[{"id":"/system/heatSources/hs1","uri":"http:///system/heatSources/hs1"}]} - -/system/heatSources/hs1 -{"id":"/system/heatSources/hs1","type":"refEnum","references":[{"id":"/system/heatSources/hs1/energyReservoir","uri":"http:///system/heatSources/hs1/energyReservoir"},{"id":"/system/heatSources/hs1/reservoirAlert","uri":"http:///system/heatSources/hs1/reservoirAlert"},{"id":"/system/heatSources/hs1/nominalFuelConsumption","uri":"http:///system/heatSources/hs1/nominalFuelConsumption"},{"id":"/system/heatSources/hs1/fuelConsmptCorrFactor","uri":"http:///system/heatSources/hs1/fuelConsmptCorrFactor"},{"id":"/system/heatSources/hs1/actualModulation","uri":"http:///system/heatSources/hs1/actualModulation"},{"id":"/system/heatSources/hs1/actualPower","uri":"http:///system/heatSources/hs1/actualPower"},{"id":"/system/heatSources/hs1/fuel","uri":"http:///system/heatSources/hs1/fuel"}]} - -/system/heatSources/hs1/actualModulation -{"id":"/system/heatSources/hs1/actualModulation","type":"floatValue","writeable":0,"recordable":0,"value":43.0,"unitOfMeasure":"%"} - -/system/heatSources/hs1/actualPower -{"id":"/system/heatSources/hs1/actualPower","type":"floatValue","writeable":0,"recordable":1,"value":9.46,"unitOfMeasure":"kW"} - -/system/heatSources/hs1/energyReservoir -{"id":"/system/heatSources/hs1/energyReservoir","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh"} - -/system/heatSources/hs1/fuel -{"id":"/system/heatSources/hs1/fuel","type":"refEnum","references":[{"id":"/system/heatSources/hs1/fuel/density","uri":"http:///system/heatSources/hs1/fuel/density"},{"id":"/system/heatSources/hs1/fuel/caloricValue","uri":"http:///system/heatSources/hs1/fuel/caloricValue"}]} - -/system/heatSources/hs1/fuel/density -{"id":"/system/heatSources/hs1/fuel/density","type":"floatValue","writeable":1,"recordable":0,"value":0.820,"unitOfMeasure":"kg/l"} - -/system/heatSources/hs1/fuelConsmptCorrFactor -{"id":"/system/heatSources/hs1/fuelConsmptCorrFactor","type":"floatValue","writeable":1,"recordable":0,"value":1.00,"unitOfMeasure":" "} - -/system/heatSources/hs1/nominalFuelConsumption -{"id":"/system/heatSources/hs1/nominalFuelConsumption","type":"floatValue","writeable":1,"recordable":0,"value":1.8,"unitOfMeasure":"l/h"} - -/system/heatSources/hs1/reservoirAlert -{"id":"/system/heatSources/hs1/reservoirAlert","type":"floatValue","writeable":1,"recordable":0,"value":0.0,"unitOfMeasure":"kWh"} - - - - -HOLIDAY MODES - -/system/holidayModes -{"id":"/system/holidayModes","type":"refEnum","references":[{"id":"/system/holidayModes/hm1","uri":"http:///system/holidayModes/hm1"},{"id":"/system/holidayModes/hm2","uri":"http:///system/holidayModes/hm2"},{"id":"/system/holidayModes/hm3","uri":"http:///system/holidayModes/hm3"},{"id":"/system/holidayModes/hm4","uri":"http:///system/holidayModes/hm4"},{"id":"/system/holidayModes/hm5","uri":"http:///system/holidayModes/hm5"}]} - -/system/holidayModes/hm1 -{"id":"/system/holidayModes/hm1","type":"refEnum","references":[{"id":"/system/holidayModes/hm1/startStop","uri":"http:///system/holidayModes/hm1/startStop"},{"id":"/system/holidayModes/hm1/assignedTo","uri":"http:///system/holidayModes/hm1/assignedTo"},{"id":"/system/holidayModes/hm1/hcMode","uri":"http:///system/holidayModes/hm1/hcMode"},{"id":"/system/holidayModes/hm1/dhwMode","uri":"http:///system/holidayModes/hm1/dhwMode"},{"id":"/system/holidayModes/hm1/delete","uri":"http:///system/holidayModes/hm1/delete"}]} - -/system/holidayModes/hm1/assignedTo - -/system/holidayModes/hm1/delete - -/system/holidayModes/hm1/dhwMode -{"id":"/system/holidayModes/hm1/dhwMode","type":"stringValue","writeable":1,"recordable":0,"value":"OFF","allowedValues":["OFF","TD_OFF"]} - -/system/holidayModes/hm1/hcMode -{"id":"/system/holidayModes/hm1/hcMode","type":"stringValue","writeable":1,"recordable":0,"value":"ECO","allowedValues":["AUTO_SAT","FIX_TEMP","OFF","ECO"]} - -/system/holidayModes/hm1/startStop -{"id":"/system/holidayModes/hm1/startStop","type":"stringValue","writeable":1,"recordable":0,"value":"2009-01-01/2009-01-01"} - -/system/holidayModes/hm2 -{"id":"/system/holidayModes/hm2","type":"refEnum","references":[{"id":"/system/holidayModes/hm2/startStop","uri":"http:///system/holidayModes/hm2/startStop"},{"id":"/system/holidayModes/hm2/assignedTo","uri":"http:///system/holidayModes/hm2/assignedTo"},{"id":"/system/holidayModes/hm2/hcMode","uri":"http:///system/holidayModes/hm2/hcMode"},{"id":"/system/holidayModes/hm2/dhwMode","uri":"http:///system/holidayModes/hm2/dhwMode"},{"id":"/system/holidayModes/hm2/delete","uri":"http:///system/holidayModes/hm2/delete"}]} - -/system/holidayModes/hm2/assignedTo - -/system/holidayModes/hm2/delete - -/system/holidayModes/hm2/dhwMode -{"id":"/system/holidayModes/hm2/dhwMode","type":"stringValue","writeable":1,"recordable":0,"value":"OFF","allowedValues":["OFF","TD_OFF"]} - -/system/holidayModes/hm2/hcMode -{"id":"/system/holidayModes/hm2/hcMode","type":"stringValue","writeable":1,"recordable":0,"value":"ECO","allowedValues":["AUTO_SAT","FIX_TEMP","OFF","ECO"]} - -/system/holidayModes/hm2/startStop -{"id":"/system/holidayModes/hm2/startStop","type":"stringValue","writeable":1,"recordable":0,"value":"2009-01-01/2009-01-01"} - -/system/holidayModes/hm3 -{"id":"/system/holidayModes/hm3","type":"refEnum","references":[{"id":"/system/holidayModes/hm3/startStop","uri":"http:///system/holidayModes/hm3/startStop"},{"id":"/system/holidayModes/hm3/assignedTo","uri":"http:///system/holidayModes/hm3/assignedTo"},{"id":"/system/holidayModes/hm3/hcMode","uri":"http:///system/holidayModes/hm3/hcMode"},{"id":"/system/holidayModes/hm3/dhwMode","uri":"http:///system/holidayModes/hm3/dhwMode"},{"id":"/system/holidayModes/hm3/delete","uri":"http:///system/holidayModes/hm3/delete"}]} - -/system/holidayModes/hm3/assignedTo - -/system/holidayModes/hm3/delete - -/system/holidayModes/hm3/dhwMode -{"id":"/system/holidayModes/hm3/dhwMode","type":"stringValue","writeable":1,"recordable":0,"value":"OFF","allowedValues":["OFF","TD_OFF"]} - -/system/holidayModes/hm3/hcMode -{"id":"/system/holidayModes/hm3/hcMode","type":"stringValue","writeable":1,"recordable":0,"value":"ECO","allowedValues":["AUTO_SAT","FIX_TEMP","OFF","ECO"]} - -/system/holidayModes/hm3/startStop -{"id":"/system/holidayModes/hm3/startStop","type":"stringValue","writeable":1,"recordable":0,"value":"2009-01-01/2009-01-01"} - -/system/holidayModes/hm4 -{"id":"/system/holidayModes/hm4","type":"refEnum","references":[{"id":"/system/holidayModes/hm4/startStop","uri":"http:///system/holidayModes/hm4/startStop"},{"id":"/system/holidayModes/hm4/assignedTo","uri":"http:///system/holidayModes/hm4/assignedTo"},{"id":"/system/holidayModes/hm4/hcMode","uri":"http:///system/holidayModes/hm4/hcMode"},{"id":"/system/holidayModes/hm4/dhwMode","uri":"http:///system/holidayModes/hm4/dhwMode"},{"id":"/system/holidayModes/hm4/delete","uri":"http:///system/holidayModes/hm4/delete"}]} - -/system/holidayModes/hm4/assignedTo - -/system/holidayModes/hm4/delete - -/system/holidayModes/hm4/dhwMode -{"id":"/system/holidayModes/hm4/dhwMode","type":"stringValue","writeable":1,"recordable":0,"value":"OFF","allowedValues":["OFF","TD_OFF"]} - -/system/holidayModes/hm4/hcMode -{"id":"/system/holidayModes/hm4/hcMode","type":"stringValue","writeable":1,"recordable":0,"value":"ECO","allowedValues":["AUTO_SAT","FIX_TEMP","OFF","ECO"]} - -/system/holidayModes/hm4/startStop -{"id":"/system/holidayModes/hm4/startStop","type":"stringValue","writeable":1,"recordable":0,"value":"2009-01-01/2009-01-01"} - -/system/holidayModes/hm5 -{"id":"/system/holidayModes/hm5","type":"refEnum","references":[{"id":"/system/holidayModes/hm5/startStop","uri":"http:///system/holidayModes/hm5/startStop"},{"id":"/system/holidayModes/hm5/assignedTo","uri":"http:///system/holidayModes/hm5/assignedTo"},{"id":"/system/holidayModes/hm5/hcMode","uri":"http:///system/holidayModes/hm5/hcMode"},{"id":"/system/holidayModes/hm5/dhwMode","uri":"http:///system/holidayModes/hm5/dhwMode"},{"id":"/system/holidayModes/hm5/delete","uri":"http:///system/holidayModes/hm5/delete"}]} - -/system/holidayModes/hm5/assignedTo - -/system/holidayModes/hm5/delete - -/system/holidayModes/hm5/dhwMode -{"id":"/system/holidayModes/hm5/dhwMode","type":"stringValue","writeable":1,"recordable":0,"value":"OFF","allowedValues":["OFF","TD_OFF"]} - -/system/holidayModes/hm5/hcMode -{"id":"/system/holidayModes/hm5/hcMode","type":"stringValue","writeable":1,"recordable":0,"value":"ECO","allowedValues":["AUTO_SAT","FIX_TEMP","OFF","ECO"]} - -/system/holidayModes/hm5/startStop -{"id":"/system/holidayModes/hm5/startStop","type":"stringValue","writeable":1,"recordable":0,"value":"2009-01-01/2009-01-01"} - - diff --git a/bosch_thermostat_http/circuit.py b/bosch_thermostat_http/circuit.py index 85a06ef..30ea765 100644 --- a/bosch_thermostat_http/circuit.py +++ b/bosch_thermostat_http/circuit.py @@ -11,11 +11,9 @@ SUBMIT, REFS, HA_STATES, - MANUAL_SETPOINT, - AUTO_SETPOINT, - ACTIVE_PROGRAM, + STATUS ) -from .helper import BoschSingleEntity, crawl +from .helper import BoschSingleEntity from .errors import ResponseError from .schedule import Schedule @@ -32,6 +30,7 @@ def __init__(self, requests, attr_id, db, str_obj, _type, current_date): self._requests = requests name = attr_id.split("/").pop() self._type = _type + self._state = False if self._type == HC: self._db = db[HEATING_CIRCUITS] else: @@ -59,28 +58,31 @@ def current_mode(self): @property def available_operation_modes(self): + """Get Bosch operations modes.""" return self.get_property(OPERATION_MODE).get(self.strings.allowed_values, {}) async def initialize(self): """Check each uri if return json with values.""" - refs = self._db[REFS] - for key, value in refs.items(): + for key, value in self._db[REFS].items(): uri = value[ID].format(self.name) - result = await crawl(uri, [], 1, self._requests[GET]) - _LOGGER.debug("INITIALIZING uri %s with result %s", uri, result) self._circuits_path[key] = uri self._data[key] = {} self._json_scheme_ready = True + await self.update_requested_key(STATUS) async def update(self): """Update info about Circuit asynchronously.""" _LOGGER.debug("Updating circuit %s", self.name) is_updated = False - for key in self._data: - result = await self._requests[GET](self._circuits_path[key]) - if self.process_results(result, key): - is_updated = True - self._updated_initialized = True + try: + for key in self._data: + result = await self._requests[GET](self._circuits_path[key]) + if self.process_results(result, key): + is_updated = True + self._updated_initialized = True + self._state = True + except ResponseError: + self._state = False return is_updated async def update_requested_key(self, key): @@ -89,8 +91,9 @@ async def update_requested_key(self, key): try: result = await self._requests[GET](self._circuits_path[key]) self.process_results(result, key) + self._state = True except ResponseError: - pass + self._state = False async def set_operation_mode(self, new_mode): """Set operation_mode of Heating Circuit.""" @@ -107,6 +110,12 @@ async def set_operation_mode(self, new_mode): self.available_operation_modes, ) + @property + def state(self): + """Retrieve state of the circuit.""" + if self._state: + return self.get_value(STATUS) + @property def current_temp(self): """Give current temperature of circuit.""" diff --git a/bosch_thermostat_http/circuits.py b/bosch_thermostat_http/circuits.py index c7bf694..fa817db 100644 --- a/bosch_thermostat_http/circuits.py +++ b/bosch_thermostat_http/circuits.py @@ -1,5 +1,5 @@ """Circuits module of Bosch thermostat.""" -from .const import HC, HEATING_CIRCUITS, DHW_CIRCUITS, MAIN_URI +from .const import HC, HEATING_CIRCUITS, DHW_CIRCUITS, MAIN_URI, ID from .helper import BoschEntities @@ -13,8 +13,7 @@ def __init__(self, requests, circuit_type): :param dict requests: { GET: get function, SUBMIT: submit function} :param str circuit_type: is it HC or DHW """ - self._circuit_type = (HEATING_CIRCUITS if circuit_type == HC else - DHW_CIRCUITS) + self._circuit_type = HEATING_CIRCUITS if circuit_type == HC else DHW_CIRCUITS super().__init__(requests) @property @@ -29,19 +28,25 @@ async def initialize(self, database, str_obj, current_date): for circuit in circuits: if "references" in circuit: circuit_object = self.create_circuit( - circuit, database, str_obj, current_date) + circuit, database, str_obj, current_date + ) if circuit_object: await circuit_object.initialize() - self._items.append(circuit_object) + if circuit_object.state: + self._items.append(circuit_object) def create_circuit(self, circuit, database, str_obj, current_date): """Create single circuit of given type.""" if self._circuit_type == DHW_CIRCUITS: from .dhw_circuit import DHWCircuit - return DHWCircuit(self._requests, circuit['id'], - database, str_obj, current_date) + + return DHWCircuit( + self._requests, circuit[ID], database, str_obj, current_date + ) if self._circuit_type == HEATING_CIRCUITS: from .heating_circuit import HeatingCircuit - return HeatingCircuit(self._requests, circuit['id'], database, - str_obj, current_date) + + return HeatingCircuit( + self._requests, circuit[ID], database, str_obj, current_date + ) return None diff --git a/bosch_thermostat_http/const.py b/bosch_thermostat_http/const.py index 076503b..8a807b9 100644 --- a/bosch_thermostat_http/const.py +++ b/bosch_thermostat_http/const.py @@ -43,8 +43,6 @@ HCPROGRAM = "hcprogram" CURRENT_TEMP = "current_temp" AUTO_SETPOINT = "auto_setpoint" -MANUAL_SETPOINT = "manual_setpoint" -AUTO_SETTEMP = "auto_set_temp" WATER_SETPOINT = "water_setpoint" WATER_OFF = "water_off" WATER_HIGH = "water_high" @@ -60,6 +58,8 @@ INVALID = "invalid" +DEFAULT_SENSORS = "defaultSensors" + ROOT_PATHS = ["/dhwCircuits", "/gateway", "/heatingCircuits", "/heatSources", "/notifications", "/system"] @@ -81,6 +81,10 @@ HEATING_CIRCUITS = "heatingCircuits" DHW_CIRCUITS = "dhwCircuits" +MODE_TO_SETPOINT = "mode_to_setpoint" +READ = "read" +WRITE = "write" + RC300 = "RC300" ###SCHEDULE @@ -97,4 +101,8 @@ "Fr": "friday", "Sa": "saturday", "Su": "sunday", -} \ No newline at end of file +} + +SENSORS_LIST = ["outdoor_t1", "hotWater_t2", "supply_t1_setpoint", "supply_t1", + "return", "healthStatus", "actualPower", "actualModulation", + "CHpumpModulation"] diff --git a/bosch_thermostat_http/db.py b/bosch_thermostat_http/db.py index 1431271..c1f1c4a 100644 --- a/bosch_thermostat_http/db.py +++ b/bosch_thermostat_http/db.py @@ -2,14 +2,10 @@ import json import os -from .const import (PATHS, GATEWAY, DICT, GATEWAY, HEATING_CIRCUITS, - DHW_CIRCUITS, MANUAL, AUTO, MAX, MIN, UNITS, STATE, - INVALID, VALUE, ALLOWED_VALUES, OWNPROGRAM, HCPROGRAM, - OPEN, SHORT, UUID, FIRMWARE_VERSION, HARDWARE_VERSION, - SYSTEM_BRAND, SYSTEM_TYPE, MAIN_URI, REFS, RC300) +from .const import RC300 -MAINPATH = os.path.join(os.path.dirname(__file__), 'db') -FILENAME = os.path.join(MAINPATH, 'db.json') +MAINPATH = os.path.join(os.path.dirname(__file__), "db") +FILENAME = os.path.join(MAINPATH, "db.json") DATA = "data" FIRMWARE_URI = "versionFirmwarePath" @@ -19,45 +15,23 @@ def open_json(file): """Open json file.""" - with open(file, 'r') as f: + with open(file, "r") as f: datastore = json.load(f) return datastore return None -def get_firmware_uri(): - datastore = open_json(FILENAME) - if FIRMWARE_URI in datastore: - return datastore[FIRMWARE_URI] - return None - def get_initial_db(): + """Get initial db. Same for all devices.""" return open_json(FILENAME) + def get_db_of_firmware(device_type, firmware_version): + """Get db of specific device.""" filename = "rc300.json" if device_type == RC300 else "default.json" filepath = os.path.join(MAINPATH, filename) - db = open_json(filepath) - if db: - if firmware_version in db: - return db[firmware_version] + _db = open_json(filepath) + if _db: + if firmware_version in _db: + return _db[firmware_version] return None - -def check_db(fw_version, db): - return True - if fw_version in db: - subrow = db[fw_version] - if DICT in subrow and GATEWAY in subrow: - if not all(k in subrow[DICT] for k in (MANUAL, AUTO, MAX, MIN, - UNITS, STATE, INVALID, - VALUE, ALLOWED_VALUES, - OWNPROGRAM, HCPROGRAM, - OPEN, SHORT)): - return False - if not all(k in subrow[DICT] for k in (UUID, FIRMWARE_VERSION, - HARDWARE_VERSION, - SYSTEM_BRAND, SYSTEM_TYPE)): - return False - else: - return False - return True diff --git a/bosch_thermostat_http/db/db.json b/bosch_thermostat_http/db/db.json index 4705558..e843d0c 100644 --- a/bosch_thermostat_http/db/db.json +++ b/bosch_thermostat_http/db/db.json @@ -22,9 +22,10 @@ "systemType": "/system/systemType", "dateTime": "/gateway/DateTime" }, + "defaultSensors": ["outdoor_t1", "hotWater_t2"], + "value": "ES73", "models": { "76": { - "value": "ES73", "name": "Sieger ES73", "type": "default" }, diff --git a/bosch_thermostat_http/db/default.json b/bosch_thermostat_http/db/default.json index 5aa0425..295ae94 100644 --- a/bosch_thermostat_http/db/default.json +++ b/bosch_thermostat_http/db/default.json @@ -104,44 +104,52 @@ } } }, - "sensors": [ - { + "sensors": { + "outdoor_t1": { "id": "/system/sensors/temperatures/outdoor_t1", "name": "Outdoor temperature" }, - { + "hotWater_t2": { "id": "/system/sensors/temperatures/hotWater_t2", "name": "Hotwater temp" }, - { + "supply_t1_setpoint": { "id": "/system/sensors/temperatures/supply_t1_setpoint", "name": "Supply temp setpoint" }, - { + "supply_t1": { "id": "/system/sensors/temperatures/supply_t1", "name": "Actual supply temp" }, - { + "return": { "id": "/system/sensors/temperatures/return", "name": "Return temp" }, - { + "healthStatus": { "id": "/system/healthStatus", "name": "Health status" }, - { + "actualPower": { "id": "/heatSources/actualPower", "name": "Actual Power" }, - { + "actualModulation": { "id": "/heatSources/actualModulation", "name": "Actual modulation" }, - { + "CHpumpModulation": { "id": "/heatSources/CHpumpModulation", "name": "Actual heating pump modulation" + }, + "totalSystem": { + "id": "/heatSources/workingTime/totalSystem", + "name": "Total system uptime mins" + }, + "systemPressure": { + "id": "/heatSources/systemPressure", + "name": "System pressure" } - ], + }, "versionFirmware": "01.10.03" } } \ No newline at end of file diff --git a/bosch_thermostat_http/db/rc300.json b/bosch_thermostat_http/db/rc300.json index 738e9ed..72e7a48 100644 --- a/bosch_thermostat_http/db/rc300.json +++ b/bosch_thermostat_http/db/rc300.json @@ -20,12 +20,12 @@ }, "mode_to_setpoint": { "manual": { - "read": "setpoint2", - "write": "setpoint2" + "read": "setpoint1", + "write": "setpoint1" }, "auto":{ - "read": "setpoint1", - "write": "setpoint3" + "read": "setpoint2", + "write": "setpoint2" } }, "mainUri": "/heatingCircuits", @@ -39,16 +39,12 @@ "name": "Operation mode" }, "setpoint1": { - "id": "/heatingCircuits/{}/currentRoomSetpoint", - "name": "Current room setpoint" - }, - "setpoint2": { "id": "/heatingCircuits/{}/manualRoomSetpoint", "name": "Manual room setpoint" }, - "setpoint3": { + "setpoint2": { "id": "/heatingCircuits/{}/temporaryRoomSetpoint", - "name": "Manual room setpoint" + "name": "Temporary room setpoint" }, "status": { "id": "/heatingCircuits/{}/status", @@ -99,44 +95,60 @@ } } }, - "sensors": [ - { + "sensors": { + "outdoor_t1": { "id": "/system/sensors/temperatures/outdoor_t1", "name": "Outdoor temperature" }, - { + "hotWater_t2": { "id": "/system/sensors/temperatures/hotWater_t2", "name": "Hotwater temp" }, - { + "supply_t1_setpoint": { "id": "/system/sensors/temperatures/supply_t1_setpoint", "name": "Supply temp setpoint" }, - { + "supply_t1": { "id": "/system/sensors/temperatures/supply_t1", "name": "Actual supply temp" }, - { + "return": { "id": "/system/sensors/temperatures/return", "name": "Return temp" }, - { + "healthStatus": { "id": "/system/healthStatus", "name": "Health status" }, - { + "actualPower": { "id": "/heatSources/actualPower", "name": "Actual Power" }, - { + "actualModulation": { "id": "/heatSources/actualModulation", "name": "Actual modulation" }, - { + "CHpumpModulation": { "id": "/heatSources/CHpumpModulation", "name": "Actual heating pump modulation" + }, + "totalSystem": { + "id": "/heatSources/workingTime/totalSystem", + "name": "Total system uptime mins" + }, + "energyConsumption": { + "id": "/heatSources/energyMonitoring/consumption", + "name": "Energy consumption" + }, + "startDateTime": { + "id": "/heatSources/energyMonitoring/startDateTime", + "name": "Start time" + }, + "systemPressure": { + "id": "/heatSources/systemPressure", + "name": "System pressure" } - ], + }, "versionFirmware": "04.06.07" } } \ No newline at end of file diff --git a/bosch_thermostat_http/dhw_circuit.py b/bosch_thermostat_http/dhw_circuit.py index 23974bd..dc41db8 100644 --- a/bosch_thermostat_http/dhw_circuit.py +++ b/bosch_thermostat_http/dhw_circuit.py @@ -1,6 +1,5 @@ """Heating Circuits module of Bosch thermostat.""" -from .const import (SUBMIT, VALUE, WATER_HIGH, AUTO_SETPOINT, DHW, - OPERATION_MODE) +from .const import SUBMIT, VALUE, WATER_HIGH, AUTO_SETPOINT, DHW, OPERATION_MODE from .circuit import Circuit @@ -22,7 +21,7 @@ async def set_temperature(self, temp): """Set temperature of Circuit.""" (t_temp, min_temp, max_temp) = self.target_temperature op_mode = self.get_value(OPERATION_MODE) - if (min_temp < temp < max_temp and op_mode and t_temp != temp): + if min_temp < temp < max_temp and op_mode and t_temp != temp: await self._requests[SUBMIT](self._circuits_path[WATER_HIGH], temp) self._data[WATER_HIGH][self._str.val] = temp return True @@ -34,10 +33,16 @@ def target_temperature(self): temp_levels_high = self.get_property(WATER_HIGH) temp = self.parse_float_value(temp_levels_high, False, True) if temp: - return (float(temp[VALUE]), float(temp[self._str.min]), - float(temp[self._str.max])) + return ( + float(temp[VALUE]), + float(temp[self._str.min]), + float(temp[self._str.max]), + ) setpoint_temp = self.get_value(AUTO_SETPOINT, -1) if all(k in temp_levels_high for k in (self._str.min, self._str.max)): - return (float(setpoint_temp), float(temp[self._str.min]), - float(temp[self._str.max])) + return ( + float(setpoint_temp), + float(temp[self._str.min]), + float(temp[self._str.max]), + ) return (setpoint_temp, 0, 99) diff --git a/bosch_thermostat_http/gateway.py b/bosch_thermostat_http/gateway.py index 23eb85d..438ac9d 100644 --- a/bosch_thermostat_http/gateway.py +++ b/bosch_thermostat_http/gateway.py @@ -4,8 +4,25 @@ import logging from .circuits import Circuits -from .const import (DHW, DICT, GATEWAY, GET, HC, ROOT_PATHS, SENSORS, SUBMIT, - UUID, VALUE, MODELS, VALUES, SYSTEM_INFO, NAME, DATE) +from .const import ( + DHW, + DICT, + GATEWAY, + GET, + HC, + ROOT_PATHS, + SENSORS, + SUBMIT, + UUID, + VALUE, + MODELS, + VALUES, + SYSTEM_INFO, + NAME, + DATE, + FIRMWARE_VERSION, + DEFAULT_SENSORS, +) from .encryption import Encryption from .errors import RequestError, Response404Error, ResponseError from .helper import deep_into @@ -26,67 +43,65 @@ def __init__(self, session, host, access_key, password=None): :param password: :param host: """ - if type(session).__name__ == 'ClientSession': + if type(session).__name__ == "ClientSession": from .http_connector import HttpConnector + self._connector = HttpConnector(host, session) else: return + self._host = host self._encryption = None self._lock = asyncio.Lock() if password: - access_token = access_key.replace('-', '') + access_token = access_key.replace("-", "") self._encryption = Encryption(access_token, password) else: self._encryption = Encryption(access_key) - self._data = { - GATEWAY: {}, - HC: None, - DHW: None, - SENSORS: None - } - self._requests = { - GET: self.get, - SUBMIT: self.set_value - } + self._data = {GATEWAY: {}, HC: None, DHW: None, SENSORS: None} + self._requests = {GET: self.get, SUBMIT: self.set_value} self._firmware_version = None self._device = None self._db = None self._str = None + self._initialized = None - async def initialize(self, database=None): + async def initialize(self): """Initialize gateway asynchronously.""" - from .db import get_firmware_uri, get_db_of_firmware, get_initial_db - self._firmware_version = await self.get(get_firmware_uri()) + from .db import get_db_of_firmware, get_initial_db + initial_db = get_initial_db() - if not database: - self._device = await self.get_device_type(initial_db) - self._db = get_db_of_firmware(self._device[VALUE], - self._firmware_version[VALUE]) - else: - from .db import check_db - if check_db(self._firmware_version, database): - self._db = database - else: - return False - if not self._device: - self._device = await self.get_device_type(initial_db) + self._str = Strings(initial_db[DICT]) + await self._update_info(initial_db.get(GATEWAY)) + self._firmware_version = self._data[GATEWAY].get(FIRMWARE_VERSION) + self._device = await self.get_device_type(initial_db) + self._db = get_db_of_firmware(self._device[VALUE], self.firmware) if self._db and self._device: - if initial_db: - initial_db.pop(MODELS, None) - self._db.update(initial_db) - self._str = Strings(self._db[DICT]) - if not self._data[GATEWAY]: - await self._update_info() + initial_db.pop(MODELS, None) + self._db.update(initial_db) + self._initialized = True async def get_device_type(self, _db): """Find device model.""" - system_info = await self.get(_db[GATEWAY][SYSTEM_INFO]) + system_info = self._data[GATEWAY].get(SYSTEM_INFO) model_scheme = _db[MODELS] - for info in system_info.get(VALUES, []): - model = model_scheme.get(info.get('Id', -1)) + for info in system_info: + model = model_scheme.get(info.get("Id", -1)) if model: return model + async def _update_info(self, initial_db): + """Update gateway info from Bosch device.""" + for name, uri in initial_db.items(): + response = await self.get(uri) + if self._str.val in response: + self._data[GATEWAY][name] = response[self._str.val] + elif name == SYSTEM_INFO: + self._data[GATEWAY][SYSTEM_INFO] = response.get(VALUES, []) + + @property + def host(self): + return self._host + @property def device_name(self): """Device friendly name based on model.""" @@ -99,9 +114,9 @@ def get_items(self, data_type): async def current_date(self): """Find current datetime of gateway.""" response = await self.get(self._db[GATEWAY].get(DATE)) - if VALUE in response: - self._data[GATEWAY][DATE] = response[VALUE] - return response[VALUE] + val = response.get(self._str.val) + self._data[GATEWAY][DATE] = val + return val @property def database(self): @@ -139,7 +154,7 @@ def sensors(self): @property def firmware(self): """Get firmware.""" - return self._firmware_version.get(self._str.val) + return self._firmware_version def get_info(self, key): """Get gateway info given key.""" @@ -147,23 +162,19 @@ def get_info(self, key): return self._data[GATEWAY][key] return None - async def _update_info(self): - """Update gateway info from Bosch device.""" - for name, uri in self._db[GATEWAY].items(): - response = await self.get(uri) - if VALUE in response: - self._data[GATEWAY][name] = response[VALUE] - async def initialize_circuits(self, circ_type): """Initialize circuits objects of given type (dhw/hcs).""" self._data[circ_type] = Circuits(self._requests, circ_type) await self._data[circ_type].initialize(self._db, self._str, self.current_date) return self.get_circuits(circ_type) - async def initialize_sensors(self): + def initialize_sensors(self, choosed_sensors=None): """Initialize sensors objects.""" - self._data[SENSORS] = Sensors(self._requests) - await self._data[SENSORS].initialize(self._db[SENSORS], self._str) + if not choosed_sensors: + choosed_sensors = self._db.get(DEFAULT_SENSORS, []) + self._data[SENSORS] = Sensors( + self._requests, choosed_sensors, self._db[SENSORS], self._str + ) return self.sensors async def rawscan(self): @@ -177,25 +188,30 @@ async def smallscan(self): """Print out all info from gateway from HC2 only for now.""" rawlist = [] paths = [ - "/heatingCircuits/hc2/roomtemperature", - "/heatingCircuits/hc2/operationMode", - "/heatingCircuits/hc2/currentRoomSetpoint", - "/heatingCircuits/hc2/manualRoomSetpoint", - "/heatingCircuits/hc2/temperatureRoomSetpoint", - "/heatingCircuits/hc2/status", - "/heatingCircuits/hc2/activeSwitchProgram", - "/heatingCircuits/hc2/temperatureLevels/day", - "/heatingCircuits/hc2/temperatureLevels/night" + "/heatingCircuits/hc1/roomtemperature", + "/heatingCircuits/hc1/operationMode", + "/heatingCircuits/hc1/currentRoomSetpoint", + "/heatingCircuits/hc1/manualRoomSetpoint", + "/heatingCircuits/hc1/temperatureRoomSetpoint", + "/heatingCircuits/hc1/status", + "/heatingCircuits/hc1/activeSwitchProgram", + "/heatingCircuits/hc1/temporaryRoomSetpoint", ] for root in paths: rawlist.append(await deep_into(root, [], self.get)) return rawlist - async def check_connection(self, database=None): + async def check_connection(self): """Check if we are able to connect to Bosch device and return UUID.""" try: - await self.initialize(database) - return self.get_info(UUID) + if not self._initialized: + await self.initialize() + else: + response = await self.get(self._db[GATEWAY][UUID]) + if self._str.val in response: + self._data[GATEWAY][UUID] = response[self._str.val] + uuid = self.get_info(UUID) + return uuid except RequestError: return False @@ -206,7 +222,6 @@ async def get(self, path): encrypted = await self._connector.request(path) result = self._encryption.decrypt(encrypted) jsondata = json.loads(result) - _LOGGER.debug("Retrieved data for path %s from gateway: %s", path, result) return jsondata except json.JSONDecodeError as err: raise ResponseError(f"Unable to decode Json response : {err}") diff --git a/bosch_thermostat_http/heating_circuit.py b/bosch_thermostat_http/heating_circuit.py index ed2cf65..d3bee79 100644 --- a/bosch_thermostat_http/heating_circuit.py +++ b/bosch_thermostat_http/heating_circuit.py @@ -4,38 +4,22 @@ SUBMIT, HC, GET, - AUTO_SETPOINT, AUTO, MANUAL, - MANUAL_SETPOINT, OPERATION_MODE, - AUTO_SETTEMP, - STATUS, - CURRENT_TEMP, PRESETS, OFF, ACTIVE_PROGRAM, TEMP, + MODE_TO_SETPOINT, + READ, + WRITE, ) from .circuit import Circuit from .errors import ResponseError _LOGGER = logging.getLogger(__name__) -UPDATE_KEYS = [ - OPERATION_MODE, - STATUS, - CURRENT_TEMP, - AUTO_SETTEMP, - MANUAL_SETPOINT, - AUTO_SETPOINT, - ACTIVE_PROGRAM, -] - -MODE_TO_SETPOINT = "mode_to_setpoint" -READ = "read" -WRITE = "write" - class HeatingCircuit(Circuit): """Single Heating Circuits object.""" @@ -96,6 +80,7 @@ async def set_temperature(self, temperature): result = await self._requests[SUBMIT]( self._circuits_path[self.temp_write], temperature ) + _LOGGER.debug("Set temperature for HC %s with result %s", self.name, result) if result: if self.temp_read: self._data[self.temp_read][self._str.val] = temperature @@ -117,6 +102,7 @@ def target_temperature(self): if target_temp > 0: return target_temp if self.operation_mode_type == MANUAL: + ###RC300 should never reach this in MANUAL... return self.schedule.get_temp_for_mode(self.get_value(OPERATION_MODE)) elif self._schedule.time: cache = self.schedule.get_temp_in_schedule() diff --git a/bosch_thermostat_http/helper.py b/bosch_thermostat_http/helper.py index 609ffa6..df14b22 100644 --- a/bosch_thermostat_http/helper.py +++ b/bosch_thermostat_http/helper.py @@ -4,7 +4,7 @@ from .const import GET, ID, NAME, PATH -from .errors import EncryptionError, ResponseError +from .errors import EncryptionError, ResponseError, RequestError HTTP_REGEX = re.compile("http://\\d+\\.\\d+\\.\\d+\\.\\d+/", re.IGNORECASE) @@ -48,7 +48,7 @@ async def deep_into(url, _list, get): val2["uri"] = remove_all_ip_occurs(val2["uri"]) new_resp["references"][idx] = val2 await deep_into(val["id"], _list, get) - except (EncryptionError, ResponseError): + except (EncryptionError, ResponseError, RequestError): pass return _list diff --git a/bosch_thermostat_http/http_connector.py b/bosch_thermostat_http/http_connector.py index 363aa17..4b11abd 100644 --- a/bosch_thermostat_http/http_connector.py +++ b/bosch_thermostat_http/http_connector.py @@ -1,6 +1,7 @@ """HTTP connector class to Bosch thermostat.""" import logging from aiohttp import client_exceptions +from asyncio import TimeoutError from .const import HTTP_HEADER from .errors import RequestError, Response404Error, ResponseError @@ -22,12 +23,13 @@ async def request(self, path): _LOGGER.debug("Sending request to %s", path) try: async with self._websession.get( - self._format_url(path), - headers=HTTP_HEADER, - timeout=self._request_timeout, - skip_auto_headers=['Accept-Encoding', 'Accept']) as res: + self._format_url(path), + headers=HTTP_HEADER, + timeout=self._request_timeout, + skip_auto_headers=["Accept-Encoding", "Accept"], + ) as res: if res.status == 200: - if res.content_type != 'application/json': + if res.content_type != "application/json": raise ResponseError(f"Invalid content type: {res.content_type}") else: data = await res.text() @@ -37,22 +39,23 @@ async def request(self, path): raise Response404Error(f"URI not exists: {path}") else: raise ResponseError(f"Invalid response code: {res.status}") - except (client_exceptions.ClientError, - client_exceptions.ClientConnectorError, - TimeoutError) as err: - raise RequestError( - f"Error requesting data from {path}: {err}" - ) from err + except ( + client_exceptions.ClientError, + client_exceptions.ClientConnectorError, + TimeoutError, + ) as err: + raise RequestError(f"Error requesting data from {path}: {err}") from err async def submit(self, path, data): """Make a put request to the API.""" try: _LOGGER.debug("Sending request to %s with %s", path, data) async with self._websession.put( - self._format_url(path), - data=data, - headers=HTTP_HEADER, - timeout=self._request_timeout) as req: + self._format_url(path), + data=data, + headers=HTTP_HEADER, + timeout=self._request_timeout, + ) as req: data = await req.text() if not data and req.status == 204: return True diff --git a/bosch_thermostat_http/schedule.py b/bosch_thermostat_http/schedule.py index f47b298..8409af7 100644 --- a/bosch_thermostat_http/schedule.py +++ b/bosch_thermostat_http/schedule.py @@ -122,3 +122,4 @@ def _get_minutes_since_midnight(self, date): return ( date - date.replace(hour=0, minute=0, second=0, microsecond=0) ).total_seconds() / 60 + diff --git a/bosch_thermostat_http/sensors.py b/bosch_thermostat_http/sensors.py index 3394b9d..eed1149 100644 --- a/bosch_thermostat_http/sensors.py +++ b/bosch_thermostat_http/sensors.py @@ -7,7 +7,7 @@ class Sensors(BoschEntities): """Sensors object containing multiple Sensor objects.""" - def __init__(self, requests): + def __init__(self, requests, sensors=None, sensors_db=None, str_obj=None): """ Initialize sensors. @@ -15,28 +15,18 @@ def __init__(self, requests): """ super().__init__(requests) self._items = {} + for sensor_id in sensors: + sensor = sensors_db.get(sensor_id) + if sensor and sensor_id not in self._items: + self._items[sensor_id] = Sensor( + self._requests, sensor_id, sensor[NAME], sensor[ID], str_obj + ) @property def sensors(self): """Get sensor list.""" return self.get_items().values() - async def initialize(self, sensors=None, str_obj=None): - """ - Asynchronously initialize all sensors. - - :param sensors dict if declared then restore sensors from it. - If not download data from device. - """ - for sensor in sensors: - self.register_sensor(sensor[NAME], sensor[ID], str_obj) - - def register_sensor(self, name, path, str_obj): - """Register sensor for the module.""" - attr_id = path.split("/").pop() - if attr_id not in self._items: - self._items[attr_id] = Sensor(self._requests, attr_id, name, path, str_obj) - class Sensor(BoschSingleEntity): """Single sensor object.""" diff --git a/example.py b/examples/example.py similarity index 65% rename from example.py rename to examples/example.py index 2428358..1ea5835 100644 --- a/example.py +++ b/examples/example.py @@ -25,21 +25,38 @@ async def main(): host=data[0], access_key=data[1], password=data[2]) - await gateway.check_connection() + print(await gateway.check_connection()) + my_sensors = [ "outdoor_t1" ] + options_sensors = {sensor: (True if sensor in my_sensors else False) for sensor in gateway.database["sensors"].keys() } + print(options_sensors) + return + db = gateway.database + # print(db["sensors"]) + all_sensors = gateway.database["sensors"] + scheme = {sensor: bool for sensor in all_sensors.keys()} + print(scheme) + return + for sensor, item in db["sensors"].items(): + name = item["name"] + print(f'"{sensor}": "{name}",') + + for sensor, item in db["sensors"].items(): + print(f'vol.Required("{sensor}"): bool,') + return print(gateway.firmware) print(gateway.device_name) await gateway.initialize_circuits(HC) hcs = gateway.heating_circuits - hc = hcs[1] + hc = hcs[0] time.sleep(1) await hc.update() - print(hc.hvac_modes) print(hc.hvac_mode) print(hc.target_temperature) - print(hc.schedule) + # print(hc.schedule) print(gateway.get_info(DATE)) - print(hc.schedule.get_temp_for_date(gateway.get_info(DATE))) + # print(await gateway.rawscan()) + #print(hc.schedule.get_temp_for_date(gateway.get_info(DATE))) # await hc.set_operation_mode("auto") return aa=0 diff --git a/example2.py b/examples/example2.py similarity index 100% rename from example2.py rename to examples/example2.py diff --git a/example3.py b/examples/example3.py similarity index 100% rename from example3.py rename to examples/example3.py diff --git a/example4.py b/examples/example4.py similarity index 100% rename from example4.py rename to examples/example4.py diff --git a/exampleSuWi.py b/examples/exampleSuWi.py similarity index 100% rename from exampleSuWi.py rename to examples/exampleSuWi.py diff --git a/example_ka.py b/examples/example_ka.py similarity index 99% rename from example_ka.py rename to examples/example_ka.py index a66d19d..584ff39 100644 --- a/example_ka.py +++ b/examples/example_ka.py @@ -27,6 +27,7 @@ async def main(): await gateway.check_connection() print(gateway.firmware) print(gateway.device_name) + return await gateway.initialize_circuits(HC) hcs = gateway.heating_circuits diff --git a/examples/rawscan.py b/examples/rawscan.py index 3c527f0..b563179 100644 --- a/examples/rawscan.py +++ b/examples/rawscan.py @@ -13,12 +13,12 @@ async def main(): if you can retrieve data from your thermostat. """ async with aiohttp.ClientSession() as session: - data_file = open("data_file_ka.txt", "r") + data_file = open("data_file.txt", "r") data = data_file.read().splitlines() gateway = bosch.Gateway(session=session, host=data[0], - access_key=data[1]) - # password=data[2]) + access_key=data[1], + password=data[2]) await gateway.check_connection() #sensors = bosch_sensors(gateway.get_info(FIRMWARE_VERSION)) #print(sensors) diff --git a/rawscan.py b/rawscan.py index 184bcff..5a875f5 100644 --- a/rawscan.py +++ b/rawscan.py @@ -16,14 +16,16 @@ async def main(): data_file = open("data_file.txt", "r") data = data_file.read().splitlines() gateway = Gateway(session=session, - host=data[0], - access_key=data[1], - password=data[2]) + host=data[0], + access_key=data[1], + password=data[2]) print(await gateway.check_connection()) result = await gateway.rawscan() + with open("myjson.json", 'w') as logfile: + json.dump(result, logfile, indent=4) + # print(json.dumps(result, indent=4, sort_keys=True)) - print(json.dumps(result, indent=4, sort_keys=True)) await session.close() diff --git a/rawscan2.json b/rawscan2.json deleted file mode 100644 index e69de29..0000000