import requests import ast from datetime import datetime from time import sleep import pandas as pd import pickle import json import math import numpy as np def convert_float(value): try: return float(value) except: return None def convert_int(value): try: return int(value) except: return None root_dir = "/home/tonydero/projects/weather-pydash/" sensors_url = "http://192.168.1.221/get_livedata_info" try: sensors_out = pd.read_csv(root_dir+"output/sensors_out.csv", index_col=0) except Exception as e: print(datetime.now()) print(e) def get_sensors(url): sensors_response = requests.get(sensors_url) sensors_dict = ast.literal_eval(sensors_response.content.decode('utf-8')) den_dict = sensors_dict['wh25'][0] outdoor_dict = sensors_dict['ch_aisle'][0] lroom_dict = sensors_dict['ch_aisle'][1] roffice_dict = sensors_dict['ch_aisle'][2] toffice_dict = sensors_dict['ch_aisle'][3] broom_dict = sensors_dict['ch_aisle'][4] lightning_dict = sensors_dict['lightning'][0] datum_dict = {} datum_dict['den_temp'] = convert_float(den_dict['intemp']) datum_dict['den_humi'] = convert_float(den_dict['inhumi'].strip("%"))/100 datum_dict['den_pabs'] = convert_float(den_dict['abs'].strip(" inHg")) datum_dict['den_prel'] = convert_float(den_dict['rel'].strip(" inHg")) datum_dict['lroom_temp'] = convert_float(lroom_dict['temp']) datum_dict['lroom_humi'] = convert_float(lroom_dict['humidity'].strip("%"))/100 datum_dict['lroom_batt'] = convert_int(lroom_dict['battery']) datum_dict['roffice_temp'] = convert_float(roffice_dict['temp']) datum_dict['roffice_humi'] = convert_float(roffice_dict['humidity'].strip("%"))/100 datum_dict['roffice_batt'] = convert_int(roffice_dict['battery']) datum_dict['toffice_temp'] = convert_float(toffice_dict['temp']) datum_dict['toffice_humi'] = convert_float(toffice_dict['humidity'].strip("%"))/100 datum_dict['toffice_batt'] = convert_int(toffice_dict['battery']) datum_dict['broom_temp'] = convert_float(broom_dict['temp']) datum_dict['broom_humi'] = convert_float(broom_dict['humidity'].strip("%"))/100 datum_dict['broom_batt'] = convert_int(broom_dict['battery']) datum_dict['outdoor_temp'] = convert_float(outdoor_dict['temp']) datum_dict['outdoor_humi'] = convert_float(outdoor_dict['humidity'].strip("%"))/100 datum_dict['outdoor_batt'] = convert_int(outdoor_dict['battery']) datum_dict['lghtng_dist'] = convert_float(lightning_dict['distance']) datum_dict['lghtng_date'] = lightning_dict['date'] datum_dict['lghtng_time'] = lightning_dict['timestamp'] datum_dict['lghtng_scnt'] = convert_float(lightning_dict['count']) datum_dict['lghtng_batt'] = convert_int(lightning_dict['battery']) datum_df = pd.DataFrame(datum_dict, index=[datetime.now()]) return datum_df try: reading = get_sensors(sensors_url) sensors_out_new = pd.concat([sensors_out, reading]) sensors_out_new.to_csv(root_dir+"output/sensors_out.csv") except Exception as e: print(datetime.now()) print(e)