added charts

This commit is contained in:
2024-06-23 00:42:26 +02:00
parent 961fba65be
commit 72762340ce
10 changed files with 518 additions and 12 deletions

View File

@@ -29,11 +29,11 @@ class Data:
def to_json(self):
return {
'timestamp': self.timestamp,
'mac': self.mac,
'temperature': self.temperature,
'humidity': self.humidity,
'battery_percent': self.battery_percent,
'battery_volt': self.battery_volt,
'count': self.count,
"timestamp": self.timestamp,
"mac": self.mac,
"temperature": self.temperature,
"humidity": self.humidity,
"battery_percent": self.battery_percent,
"battery_volt": self.battery_volt,
"count": self.count,
}

View File

@@ -11,6 +11,13 @@ class Device:
self.name = data['name']
self.room = data['room']
def to_json(self):
return {
"mac": self.mac,
"name": self.name,
"room": self.room
}
def get_devices():
devices_list = []

View File

@@ -29,7 +29,8 @@ class ScanDelegate(DefaultDelegate):
if len(val) != 30: return False
return True
def is_atc_device(self, dev, data_obj):
@staticmethod
def is_atc_device(dev, data_obj):
global devices
if 'A4:C1:38' not in dev.addr.upper(): return False
for device in devices:
@@ -37,8 +38,8 @@ class ScanDelegate(DefaultDelegate):
device_from_config = get_device(dev)
try:print(f"Device: {dev.addr.upper()} ({dev.addrType}), RSSI: {dev.rssi} dB, Room: {device_from_config.room}")
except:print(f"Device: {dev.addr.upper()} ({dev.addrType}), RSSI: {dev.rssi} dB, Room: ?")
try:print(f"Device: {dev.addr.upper()} ({dev.addrType}), RSSI: {dev.rssi}dB, Room: {device_from_config.room}")
except:print(f"Device: {dev.addr.upper()} ({dev.addrType}), RSSI: {dev.rssi}dB, Room: ?")
print(f'\tTemp: {data_obj.temperature}°C, Humid: {data_obj.humidity}%, Batt: {data_obj.battery_percent}%\n')
return True

View File

@@ -1 +1,32 @@
# TODO
import os
import json
from data_class import Data
from devices import Device
workdir, filename = os.path.split(os.path.abspath(__file__))
def log_to_txt(devices):
with open(f'{workdir}{os.sep}history.json', 'r') as file:
data = json.load(file)
with open(f'{workdir}{os.sep}history.json', 'w') as file:
for device in devices:
dev, data_obj, from_config = device
data_obj:Data
from_config:Device
data.append({
"data": data_obj.to_json(),
"device": from_config.to_json()
})
final_data = {"measurements": data}
file.write(json.dumps(data, indent=2))
def log_to_mongodb(data):
pass
def log_to_mqtt(data):
pass

View File

@@ -1,5 +1,7 @@
from discovery import start_discovery
from loop import start_loop
from log_data import log_to_txt
devices = start_discovery()
log_to_txt(devices)