# environment/local_sensors.py import logging logger = logging.getLogger(__name__) try: import board from adafruit_bme280 import basic as adafruit_bme280 except ImportError as e: logger.warning( f"BME280 dependencies not installed (Normal for test environments) | {e}" ) except Exception as e: logger.error(f"Error importing Raspberry Pi specific dependencies | {e}") class Sensors: def __init__(self): self._bme280 = None self._data = {} try: if "adafruit_bme280" in globals(): self._bme280 = adafruit_bme280.Adafruit_BME280_I2C( board.I2C(), address=0x76 ) except Exception as e: logger.error(f"BME280 hardware not found on I2C bus! | {e}") def _get_data(self): if self._bme280 is None: return try: self._data = { "indoor_temp": round(self._bme280.temperature, 1), "indoor_humidity": round(self._bme280.relative_humidity, 1), "pressure": round(self._bme280.pressure, 1), } except Exception as e: logger.error(f"Failed getting indoor sensor data: {e}") def get(self) -> dict: logger.debug("Measuring environment indoors...") self._get_data() return self._data