hthiery/python-fritzhome

View on GitHub
pyfritzhome/devicetypes/fritzhomedevicetemperature.py

Summary

Maintainability
A
1 hr
Test Coverage
"""The temperature device class."""
# -*- coding: utf-8 -*-

import logging

from .fritzhomedevicebase import FritzhomeDeviceBase
from .fritzhomedevicefeatures import FritzhomeDeviceFeatures

_LOGGER = logging.getLogger(__name__)


class FritzhomeDeviceTemperature(FritzhomeDeviceBase):
    """The Fritzhome Device class."""

    offset = None
    temperature = None

    def _update_from_node(self, node):
        super()._update_from_node(node)
        if self.present is False:
            return

        if self.has_temperature_sensor:
            self._update_temperature_from_node(node)

    # Temperature
    @property
    def has_temperature_sensor(self):
        """Check if the device has temperature function."""
        return self._has_feature(FritzhomeDeviceFeatures.TEMPERATURE)

    def _update_temperature_from_node(self, node):
        _LOGGER.debug("update temperature device")
        temperature_element = node.find("temperature")
        try:
            self.offset = (
                self.get_node_value_as_int(temperature_element, "offset") / 10.0
            )
        except ValueError:
            pass

        try:
            self.temperature = (
                self.get_node_value_as_int(temperature_element, "celsius") / 10.0
            )
        except ValueError:
            pass