Source code for pi_portal.modules.integrations.gpio.components.bases.sensor

"""GPIOSensorBase class."""

import abc
from typing import Any

from . import input as gpio_input


[docs]class GPIOSensorBase(gpio_input.GPIOInputBase, abc.ABC): """GPIO sensor base representation. :param pin_number: The GPIO input number. :param pin_name: The name of this input in alerts and logs. :param initial_state: The value to initially set the state to. """ pin_number: int pin_name: str current_state: Any last_state: Any hardware: Any def __init__( self, pin_number: int, pin_name: str, initial_state: Any ) -> None: super().__init__(pin_number, pin_name, initial_state) self.hardware = self.hook_setup_hardware()
[docs] @abc.abstractmethod def hook_setup_hardware(self) -> Any: """Override to return the hardware sensor that can be used during polling. :returns: A pollable hardware interface. """ return None # pragma: no cover