1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
from __future__ import annotations
from typing import List
from PyViCare.PyViCareHeatingDevice import (HeatingDevice, HeatingDeviceWithComponent, get_available_burners)
from PyViCare.PyViCareUtils import handleNotSupported
class PelletsBoiler(HeatingDevice):
@property
def burners(self) -> List[PelletsBurner]:
return list([self.getBurner(x) for x in self.getAvailableBurners()])
def getBurner(self, burner) -> PelletsBurner:
return PelletsBurner(self, burner)
@handleNotSupported
def getAvailableBurners(self):
return get_available_burners(self.service)
@handleNotSupported
def getBoilerTemperature(self):
return self.getProperty("heating.boiler.sensors.temperature.main")["properties"]["value"]["value"]
@handleNotSupported
def getAshLevel(self):
return self.getProperty('heating.boiler.ash.level.current')['properties']['value']['value']
@handleNotSupported
def getAirFlapsPrimaryPosition(self):
return self.getProperty('heating.boiler.airflaps.0.position.current')['properties']['value']['value']
@handleNotSupported
def getAirFlapsSecondaryPosition(self):
return self.getProperty('heating.boiler.airflaps.1.position.current')['properties']['value']['value']
@handleNotSupported
def getExhaustO2Level(self):
return self.getProperty('heating.flue.sensors.o2.lambda')['properties']['value']['value']
@handleNotSupported
def getBoilerCuircuitPumpCurrentLevel(self):
return self.getProperty('heating.boiler.pumps.circuit.power.current')['properties']['value']['value']
@handleNotSupported
def getBoilerReturnTemperature(self):
return self.getProperty('heating.sensors.temperature.return')['properties']['value']['value']
@handleNotSupported
def getFlueTemperature(self):
return self.getProperty('heating.flue.sensors.temperature.main')['properties']['value']['value']
@handleNotSupported
def getFuelNeed(self):
return self.getProperty('heating.configuration.fuel.need')['properties']['value']['value']
@handleNotSupported
def getFuelUnit(self) -> str:
return str(self.getProperty('heating.configuration.fuel.need')['properties']['value']['unit'])
@handleNotSupported
def getBoilerState(self):
return self.getProperty('heating.boiler.operating.phase')['properties']['value']['value']
@handleNotSupported
def getBoilerCuircuitPumpStatus(self):
return self.getProperty('heating.boiler.pumps.circuit')['properties']['status']['value']
@handleNotSupported
def getBufferMainTemperature(self):
return self.getProperty("heating.bufferCylinder.sensors.temperature.main")["properties"]['value']['value']
@handleNotSupported
def getBufferTopTemperature(self):
return self.getProperty("heating.bufferCylinder.sensors.temperature.top")["properties"]['value']['value']
@handleNotSupported
def getBufferMidTopTemperature(self):
return self.getProperty("heating.bufferCylinder.sensors.temperature.midTop")["properties"]['value']['value']
@handleNotSupported
def getBufferMiddleTemperature(self):
return self.getProperty("heating.bufferCylinder.sensors.temperature.middle")["properties"]['value']['value']
@handleNotSupported
def getBufferMidBottomTemperature(self):
return self.getProperty("heating.bufferCylinder.sensors.temperature.midBottom")["properties"]['value']['value']
@handleNotSupported
def getBufferBottomTemperature(self):
return self.getProperty("heating.bufferCylinder.sensors.temperature.bottom")["properties"]['value']['value']
class PelletsBurner(HeatingDeviceWithComponent):
@property
def burner(self) -> str:
return self.component
@handleNotSupported
def getActive(self) -> bool:
return bool(self.getProperty(f"heating.burners.{self.burner}")["properties"]["active"]["value"])
@handleNotSupported
def getHours(self) -> float:
return float(self.getProperty(f"heating.burners.{self.burner}.statistics")["properties"]["hours"]["value"])
@handleNotSupported
def getStarts(self) -> int:
return int(self.getProperty(f"heating.burners.{self.burner}.statistics")["properties"]["starts"]["value"])
|