WeatherStation/Program/datascraper.py
2024-04-30 13:50:33 +02:00

35 lines
1.2 KiB
Python

import schedule
import threading
import time
from env import *
from database import add_sensor_data
from bluepy.btle import Scanner
def BltDataScrap():
scanner = Scanner()
#print("Begin device scan")
devices = scanner.scan(timeout=3.0)
for device in devices:
if device.addr in SENSORS :
#print(
#f"Device found {device.addr} ({device.addrType}), "
#f"RSSI={device.rssi} dB"
#)
for adtype, description, value in device.getScanData():
if adtype == 22:
temp = int(value[24:28], 16) / 100
HR = int(value[28:32], 16) / 100
Bat = int(value[20:22], 16)
#print(f"Temp : {temp} °c \n HR : {HR} % , \n Batterie : {Bat} %")
add_sensor_data(DBFILE, SENSORS[device.addr], time.strftime("%Y-%m-%d %H:%M:%S"), temp, HR, Bat)
return 0
def RunInThread_DataScrap():
print("######################################################################\nOpen Thread datascrap")
threading.Thread(target=BltDataScrap, daemon=True).start()
def ScheduleDataScrap():
RunInThread_DataScrap()
schedule.every(10).seconds.do(RunInThread_DataScrap) #run every 10 seconds