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