import sdtcloudpubsub
import uuid
import time
import json

sdtcloud = sdtcloudpubsub.sdtcloudpubsub()
mqttClient = sdtcloud.setClient(f"device-app-{uuid.uuid1()}") # parameter is client ID(string)

def read_json_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        return json.load(f)

def extract_data(json_item):
    data_str = json_item.get('data', None)
    if data_str:
        return json.loads(data_str)
    return None

def main():
    file_path = './cnt_data.json'
    items = read_json_file(file_path)
    total_count = len(items)
    index = 0

    while True:
        data = extract_data(items[index])
        if data:
            msg = json.dumps(data, ensure_ascii=False, default=str)
            sdtcloud.pubMessage(mqttClient, msg)
            print(f"{time.strftime('%Y-%m-%d %H:%M:%S')} Extracted data:{msg}")
        else:
            print("No 'data' key found in the JSON item.")

        index = (index + 1) % total_count
        time.sleep(5)

if __name__ == "__main__":
    main()