Initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user