57 lines
1.4 KiB
Python

import os
import sys
import json
from data_class import Data
from devices import Device
from logger import get_logger
logger = get_logger(__name__)
def generate_json(device:Device):
dev, data_obj, from_config = device
return {
"timestamp": data_obj.timestamp,
"temperature": data_obj.temperature,
"humidity": data_obj.humidity,
"battery_percent": data_obj.battery_percent,
"battery_volt": data_obj.battery_volt,
"rssi": dev.rssi
}
def log_to_json(devices):
workdir, filename = os.path.split(os.path.abspath(__file__))
for device in devices:
dev, data_obj, from_config = device
data_obj: Data
from_config: Device
file_name = f'{workdir}/data/{str(data_obj.mac).replace(":", "-")}.json'
logger.debug(f"Save to {file_name}")
try:
with open(file_name, 'r') as file: data = json.load(file)
except:
with open(file_name, 'w') as file:
new_file = {
"name": from_config.name if from_config is not None else "Unknown",
"room": from_config.room if from_config is not None else "Unknown",
"measurements": []
}
file.write(json.dumps(new_file))
data = new_file
data['measurements'].append(generate_json(device))
# logger.debug(measurements)
with open(file_name, 'w') as file: file.write(json.dumps(data, indent=2))
def log_to_mongodb(data):
pass