aboutsummaryrefslogblamecommitdiffstats
path: root/neohub2pgsql.py
blob: 452f5a9fb9215795fc03b1fac0269f77b8522fec (plain) (tree)
1
2
3
4
5
6
7
8
9


                  
             
              

                              

                                 
 
                     


                                          
 
                                          









                                                             


                                                                                                                                                                                                   


                  
#!/usr/bin/python3

import os
import pickle
import asyncio
from datetime import datetime
from litequeue import SQLQueue
import neohubapi.neohub as neohub


from todb import todb

neohub_ip = os.environ['el_neohub_ip']
neohub_port = os.environ['el_neohub_port']

q = SQLQueue("litequeue.db", maxsize=None)

async def run():
    # Legacy connection
    hub = neohub.NeoHub(neohub_ip, int(neohub_port))
    # Or, for a websocket connection:
    # hub = neohub.Neohub(port=4243, token='xxx-xxxxxxx')
    system = await hub.get_system()
    hub_data, devices = await hub.get_live_data()
    for device in devices['thermostats']:
        print(f"Temperature in zone {device.name}: {device}")
        sql = "INSERT INTO neohub (timestamp, time, device_id, away, heat_mode, heat_on, current_floor_temperature, target_temperature, temperature) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)"
        values = (datetime.utcnow(), device.time, device.device_id, device.away, device.heat_mode, device.heat_on, device.current_floor_temperature, device.target_temperature, device.temperature)
        q.put(pickle.dumps([sql, values]))

asyncio.run(run())