Source code for pi_portal.modules.integrations.gpio.components.temperature_monitor

"""Temperature sensor monitor class."""

from typing import Sequence

from pi_portal import config
from pi_portal.modules.integrations.gpio.components.bases import (
    monitor,
    temperature_sensor,
)


[docs]class TemperatureSensorMonitor( monitor.GPIOMonitorBase[temperature_sensor.TemperatureSensor] ): """Temperature sensor monitor and logger. :param gpio_pins: A list of DHT11 sensors to monitor. """ gpio_poll_interval = 60.0 gpio_log_changes_only = False logger_name = "pi_portal_temperature" log_file_path = config.LOG_FILE_TEMPERATURE_MONITOR def __init__( self, gpio_pins: Sequence[temperature_sensor.TemperatureSensor] ) -> None: super().__init__(gpio_pins) def _setup_gpio(self) -> None: """Disabled for DHT sensors."""
[docs] def hook_log_state( self, gpio_pin: temperature_sensor.TemperatureSensor ) -> None: """Log customized messages when a state change is detected. :param gpio_pin: A GPIO pin to log an event for. """ self.log.info( "TemperatureSensor:%s", gpio_pin.pin_name, extra={ 'sensor_type': gpio_pin.sensor_type, 'sensor_name': gpio_pin.pin_name, 'temperature': gpio_pin.current_state["temperature"], 'humidity': gpio_pin.current_state["humidity"], } )