Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.1 kB
2
Indexable
Never
import paho.mqtt.client as mqtt
import json
import xml.etree.ElementTree as ET
from datetime import datetime
import time

# ... (previous code remains the same)

# Dictionary to store data by timestamp
JSON_DICT_BY_TIME = {}

def on_message(client, userdata, msg):
    payload = msg.payload.decode()
    topic = msg.topic
    param_name = SUB_TOPICS[topic]
    current_time = str(datetime.now())

    # Update the data in JSON_DICT and JSON_DICT_BY_TIME
    JSON_DICT[param_name] = payload
    JSON_DICT['time'] = current_time
    JSON_DICT_BY_TIME[current_time] = JSON_DICT

    # Write data to JSON file with only the most recent data per timestamp
    JSON_LIST = list(JSON_DICT_BY_TIME.values())
    with open('data.json', 'w') as json_file:
        json_string = json.dumps(JSON_LIST)
        json_file.write(json_string)

    # Update data in XML
    for key, value in XML_DICT.items():
        value.text = JSON_DICT[key]
    tree = ET.ElementTree(root)
    tree.write('data.xml')

    print(topic + " " + payload)

# ... (rest of the code remains the same)

if __name__ == "__main__":
    main()