added charts
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user