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
|
from typing import Any, List
from PyViCare.PyViCareHeatingDevice import (HeatingDevice,
HeatingDeviceWithComponent,
get_available_burners)
from PyViCare.PyViCareUtils import handleNotSupported
class OilBoiler(HeatingDevice):
@property
def burners(self) -> List[Any]:
return list([self.getBurner(x) for x in self.getAvailableBurners()])
def getBurner(self, burner):
return OilBurner(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"]
class OilBurner(HeatingDeviceWithComponent):
@property
def burner(self) -> str:
return self.component
@handleNotSupported
def getActive(self):
return self.getProperty(f"heating.burners.{self.burner}")["properties"]["active"]["value"]
@handleNotSupported
def getHours(self):
return self.getProperty(f"heating.burners.{self.burner}.statistics")["properties"]["hours"]["value"]
@handleNotSupported
def getStarts(self):
return self.getProperty(f"heating.burners.{self.burner}.statistics")["properties"]["starts"]["value"]
@handleNotSupported
def getModulation(self):
return self.getProperty(f"heating.burners.{self.burner}.modulation")["properties"]["value"]["value"]
|