Esempio n. 1
0
 def run(self):
     loop_wait = 0.2
     min_diff = 0.01
     heartbeat = 60
     mfi_IPs = ['10.10.10.101']
     good_ip = mfi_IPs[0]
     time1 = datetime.now()
     recorded_output_dict = {}
     different = True
     while True:
         time.sleep(loop_wait)
         output_dict = mfi.get_mfi_data(good_ip, time1, 180000000)
         if output_dict is None:
             rot = mfi_IPs.pop(0)
             mfi_IPs.append(rot)
             good_ip = mfi_IPs[0]
         time_diff = (datetime.now() - time1).seconds
         if output_dict and recorded_output_dict:
             diff_1 = abs(recorded_output_dict['i_rms1'] -
                          output_dict['i_rms1'])
             diff_2 = abs(recorded_output_dict['i_rms2'] -
                          output_dict['i_rms2'])
             diff_3 = abs(recorded_output_dict['i_rms3'] -
                          output_dict['i_rms3'])
             different = (diff_1 > min_diff) or (diff_2 > min_diff) or (
                 diff_3 > min_diff)
         if output_dict and (different or time_diff > heartbeat):
             print output_dict
             psql.add_values_to_table(table_dict['mfi_table'], output_dict)
             recorded_output_dict = output_dict
             time1 = datetime.now()
Esempio n. 2
0
def update_mfi_state_sql(table_ref, new_mfi_state, control_source,
                         control_type, limit_counter):
    output_dict = {}
    output_dict['mfi_state'] = new_mfi_state
    output_dict['control_source'] = control_source
    output_dict['control_type'] = control_type
    output_dict['local_date'] = datetime.now().date()
    output_dict['limit_counter'] = limit_counter
    output_dict['uptime_minutes'] = get_system_uptime()
    psql.add_values_to_table(table_ref, output_dict)
 def run(self):
     loop_wait = 1
     min_diff = 0.01
     heartbeat = 60
     print 'Initializing Zwave Network'
     network = zwave.init_zwave(DEVICE, CONFIG_PATH)
     print 'Waiting...'
     time.sleep(5.0)
     recorded_output_dict = {}
     different = True
     time1 = datetime.now()
     while True:
         time.sleep(loop_wait)
         output_dict = zwave.read_zwave(network)
         time_diff = (datetime.now() - time1).seconds
         if recorded_output_dict and output_dict:
             if 'houseAll_Current' in output_dict:
                 diff_current = abs(
                     output_dict['houseAll_Current'] -
                     recorded_output_dict['houseAll_Current'])
                 different = diff_current > min_diff
             else:
                 print str(
                     datetime.now()
                 ) + ' ERROR: Zwave dictionary not correct. it seems to have only these keys:' + str(
                     output_dict.keys())
         if time_diff < 0:
             time1 = datetime.now()
             print datetime.now() + ' ERROR: Improper time at: ' + time1
         elif output_dict and (different or time_diff > heartbeat):
             psql.add_values_to_table(table_dict['zwave_table'],
                                      output_dict)
             recorded_output_dict = output_dict
             time1 = datetime.now()
         if output_dict and output_dict['house1_Energy'] == 0:
             print 'Zero Energy, Restarting: ' + str(datetime.now())
             return
Esempio n. 4
0
#!/usr/bin/env python2
# Copyright 2016 The Flexbox Authors. All rights reserved.
# Licensed under the open source MIT License, which is in the LICENSE file.
import time
from flexbox import sensors
from flexbox import psql
from datetime import datetime

LOOP_WAIT = 0.25
HEARTBEAT = 60

metadata = psql.get_metadata()
table_dict = psql.setup_tables(metadata)
print 'Starting Switch at ' + str(datetime.now())
recorded_output_dict = None
time1 = datetime.now()

while True:
    time.sleep(LOOP_WAIT)
    isOpen = sensors.get_magnetic_switch()
    time_diff = (datetime.now() - time1).seconds
    if isOpen is not None:
        if recorded_output_dict is None or isOpen != recorded_output_dict[
                'switch'] or time_diff > HEARTBEAT:
            output_dict = {'switch': isOpen}
            psql.add_values_to_table(table_dict['switch_table'], output_dict)
            recorded_output_dict = output_dict
            time1 = datetime.now()
Esempio n. 5
0
def write_db(data):
    psql.add_values_to_table(network_tests, data)
    time.sleep(LOOP_WAIT)
    if queue.empty():
        output_dict = {}
        diff_dict = {}
        different = False
        time_diff = (datetime.now() - time1).seconds
        if len(vals)>4:
            print vals
        for i,key in enumerate(vals):
            if vals[key] != None:
                print cf
                output_dict['inside_'+cf[key]] = vals[key]
        if output_dict and recorded_output_dict and \
                output_dict.keys() == recorded_output_dict.keys():
            diff_dict = {key : output_dict[key] - recorded_output_dict.get(key,0) for key in output_dict.keys()}
            different = True in [abs(x)>120 for x in diff_dict.values()]
        else:
            different = True
        if output_dict and (different or time_diff>HEARTBEAT):
            psql.add_values_to_table(table_dict['inside_table'],output_dict)
            recorded_output_dict = output_dict
            time1 = datetime.now()
	    print output_dict
        sens_ids = sensors.get_inside_fridge_ids()
        for sens_id in sens_ids:
            queue.put(sens_id)
# Now wait for the queue to be empty, indicating that we have
# processed all of the downloads.
queue.join()
print '*** Done'
LOOP_WAIT = 0.1
MIN_DIFF = 0.15
HEARTBEAT = 60

metadata = psql.get_metadata()
table_dict = psql.setup_tables(metadata)
time1 = datetime.now()
print 'Starting Ambient at ' + str(time1)
recorded_output_dict = {}
while True:
    time.sleep(LOOP_WAIT)
    output_dict = {}
    time_diff = (datetime.now() - time1).seconds
    [temperature, humidity] = sensors.get_ambient_temp_humidity()
    if temperature is not None and humidity is not None:
        output_dict['ambient_temp'] = temperature
        output_dict['humidity'] = humidity
        if recorded_output_dict:
            diff_temp = abs(output_dict['ambient_temp'] -
                            recorded_output_dict['ambient_temp'])
            diff_hum = abs(output_dict['humidity'] -
                           recorded_output_dict['humidity'])
            difference = diff_temp > MIN_DIFF or diff_hum > MIN_DIFF
        else:
            difference = True
        if difference or time_diff > HEARTBEAT:
            psql.add_values_to_table(table_dict['ambient_table'], output_dict)
            recorded_output_dict = output_dict
            time1 = datetime.now()