import asyncio from bleak import BleakClient, BleakScanner from bleak.backends.characteristic import BleakGATTCharacteristic import struct import sqlite3 from dotenv import load_dotenv import os from smbus2 import SMBus from bme280 import BME280 # Initialise the BME280 bus = SMBus(1) bme280 = BME280(i2c_dev=bus) load_dotenv() outdoorName = os.getenv("BLE_PERIPHERAL_NAME") outdoorConnected = 0 TEMP_UUID = "2A6E" PRESSURE_UUID = "2A6D" HUMIDITY_UUID = "2A6F" ALTITUDE_UUID = "2AB3" indoorValues = { "Temperature": 0, "Pressure": 0, "Humidity": 0, "Altitude": 0, } outdoorValues = { "Temperature": 0, "Pressure": 0, "Humidity": 0, "Altitude": 0, } def notification_handler(characteristic: BleakGATTCharacteristic, data: bytearray): global outdoorValues outdoorValues[characteristic.description] = struct.unpack("