diff --git a/carrier_logger.py b/carrier_logger.py index 08d6aae..50a1a1d 100644 --- a/carrier_logger.py +++ b/carrier_logger.py @@ -8,7 +8,7 @@ username = 'bkiedinger@gmail.com' password = 'Little1!' -def parse_status(status, last_status_time, cursorObject, dataBase, table): +def parse_status(status, last_status_time, table): print(status['idu']) print(status['odu']) print(status['zones']['zone'][0]) @@ -24,6 +24,17 @@ def parse_status(status, last_status_time, cursorObject, dataBase, table): last_status_time = status_time print('Add database entry') + dataBase = mysql.connector.connect( + host="192.168.1.25", + port="3306", + user="grafana_user", + passwd="Little1!", + database="grafana" + ) + + # preparing a cursor object + cursorObject = dataBase.cursor() + # insert into table sql = (f"INSERT INTO {table} (timestamp, status_timestamp, outdoor_temp, idu_cfm, \ idu_opstat, odu_opmode, odu_opstat, room_temp, room_humidity, cool_setpoint, heat_setpoint, \ @@ -34,23 +45,13 @@ def parse_status(status, last_status_time, cursorObject, dataBase, table): zone['currentActivity'], zone['zoneconditioning'], status['mode']] cursorObject.execute(sql, val) dataBase.commit() + dataBase.close() return last_status_time def main(): print('Carrier Logger') - dataBase = mysql.connector.connect( - host="192.168.1.25", - port="3306", - user="grafana_user", - passwd="Little1!", - database="grafana" - ) - - # preparing a cursor object - cursorObject = dataBase.cursor() - # cursorObject.execute('SELECT NOW()') # for time in cursorObject: # print(time) @@ -70,47 +71,24 @@ def main(): while True: - print('Get Log') - api_connection.activate() - status = api_connection.get_status(systems[1].serial) - last_status_time_downstairs = parse_status(status, last_status_time_downstairs, cursorObject, dataBase, "CARRIER_DOWNSTAIRS_STATUS") - - status = api_connection.get_status(systems[0].serial) - last_status_time_upstairs = parse_status(status, last_status_time_upstairs, cursorObject, dataBase, "CARRIER_UPSTAIRS_STATUS") - - # print(status['idu']) - # print(status['odu']) - # print(status['zones']['zone'][0]) - # - # zone = status['zones']['zone'][0] - # - # status_time = datetime.strptime(status['timestamp'], '%Y-%m-%dT%H:%M:%S.%fZ') - # status_time = status_time.strftime('%Y-%m-%d %H:%M:%S') - # - # print(status_time) - # - # if last_status_time != status_time: - # last_status_time = status_time - # print('Add database entry') - # - # # insert into table - # sql = ("INSERT INTO CARRIER_DOWNSTAIRS_STATUS (timestamp, status_timestamp, outdoor_temp, idu_cfm, \ - # idu_opstat, odu_opmode, odu_opstat, room_temp, room_humidity, cool_setpoint, heat_setpoint, \ - # current_activity, zone_conditioning, mode) \ - # VALUES (CURRENT_TIMESTAMP, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)") - # val = [status_time, status['oat'], status['idu']['cfm'], status['idu']['opstat'], - # status['odu']['opmode'], status['odu']['opstat'], zone['rt'], zone['rh'], zone['clsp'], zone['htsp'], - # zone['currentActivity'], zone['zoneconditioning'], status['mode']] - # cursorObject.execute(sql, val) - # dataBase.commit() + try: + print('Get Log') + api_connection.activate() + status = api_connection.get_status(systems[1].serial) + last_status_time_downstairs = parse_status(status, last_status_time_downstairs, "CARRIER_DOWNSTAIRS_STATUS") + status = api_connection.get_status(systems[0].serial) + last_status_time_upstairs = parse_status(status, last_status_time_upstairs, "CARRIER_UPSTAIRS_STATUS") + except: + # print("Reconnect to server") + try: + print("Reconnect to server") + api_connection = ApiConnection(username=username, password=password) + systems = api_connection.get_systems() + except: + print("Server didn't respond") time.sleep(1 * 60) - - # fid = open('status.json', 'w') - # json.dump(status, fid, indent=4) - # fid.close() - test = 0 # {'serial': '4221W206632', @@ -141,4 +119,4 @@ def main(): if __name__ == "__main__": # execute only if run as a script - main() \ No newline at end of file + main()