import asyncio from bleak import BleakClient, BleakScanner from bleak.backends.characteristic import BleakGATTCharacteristic import struct import sqlite3 from dotenv import load_dotenv import os import signal import logging import smbus2 import bme280 # Initialise the BME280 port = 1 address = 0x76 bus = smbus2.SMBus(port) calibration_params = bme280.load_calibration_params(bus, address) load_dotenv() outdoorMac = os.getenv("BLE_PERIPHERAL_MAC") outdoorConnected = 0 TEMP_UUID = "2A6E" PRESSURE_UUID = "2A6D" HUMIDITY_UUID = "2A6F" indoorValues = { "Temperature": 0, "Pressure": 0, "Humidity": 0, } outdoorValues = { "Temperature": 0, "Pressure": 0, "Humidity": 0, } def notification_handler(characteristic: BleakGATTCharacteristic, data: bytearray): global outdoorValues outdoorValues[characteristic.description] = struct.unpack("