def thermostat(request, mac): print 'Thermostat pageload' context = RequestContext(request) mac = mac.encode('ascii', 'ignore') device_metadata = [ ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac) ] print device_metadata device_type = device_metadata[0]['device_type'] device_id = device_metadata[0]['device_id'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id print device_type_id print __.SUB_SOCKET device_status = [ ob.data_as_json() for ob in Thermostat.objects.filter(thermostat_id=device_id) ] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] override = device_status[0]['override'] info_required = "Update thermostat data" ieb_topic = '/ui/agent/bemoss/' + str( device_zone) + '/' + device_type + '/' + device_id + '/device_status' zmq_pub.requestAgent(ieb_topic, info_required, "text/plain", "UI") '''json_file = open(os.path.join(settings.PROJECT_DIR, 'resources/page_load/page_load.json'), "r+") _json_data = json.load(json_file) if device_id not in _json_data['thermostat']: _json_data['thermostat'][device_id] = {"page_load": "{empty_string}"} json_file.seek(0) json_file.write(json.dumps(_json_data, indent=4, sort_keys=True)) json_file.truncate() json_file.close() time.sleep(3)''' #Using page_load.json vals = _helper.get_page_load_data(device_id, device_type, device_type_id) print vals #Get current weather data from wunderground json_file = open( os.path.join(settings.PROJECT_DIR, 'resources/metadata/bemoss_metadata.json'), "r+") _json_data = json.load(json_file) zipcode = _json_data['building_location_zipcode'] json_file.close() rs = {} try: rs = urllib2.urlopen( "http://api.wunderground.com/api/4fef576e26759640/conditions/q/" + zipcode + ".json") except urllib2.HTTPError, e: logger.error('HTTPError = ' + str(e.code))
def lighting(request, mac): print 'inside lighting view method' context = RequestContext(request) username = request.session.get('user') print username if request.session.get('last_visit'): # The session has a value for the last visit last_visit_time = request.session.get('last_visit') visits = request.session.get('visits', 0) if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0: request.session['visits'] = visits + 1 else: # The get returns None, and the session does not have a value for the last visit. request.session['last_visit'] = str(datetime.now()) request.session['visits'] = 1 mac = mac.encode('ascii', 'ignore') device_metadata = [ ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac) ] print device_metadata device_id = device_metadata[0]['device_id'] controller_type = device_metadata[0]['device_model_id'] controller_type = controller_type.device_model_id device_status = [ ob.data_as_json() for ob in Lighting.objects.filter(lighting_id=device_id) ] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] _data = _helper.get_page_load_data(device_id, 'lighting', controller_type) device_list_side_nav = get_device_list_side_navigation() context.update(device_list_side_nav) active_al = get_notifications() context.update({'active_al': active_al}) bemoss_not = general_notifications() context.update({'b_al': bemoss_not}) return render_to_response( 'lighting/lighting.html', { 'type': controller_type, 'device_data': _data, 'device_id': device_id, 'device_zone': device_zone, 'device_type': controller_type, 'mac_address': mac, 'zone_nickname': zone_nickname, 'device_nickname': device_nickname }, context)
def rtu_view(request, mac): print 'RTU pageload' context = RequestContext(request) mac = mac.encode('ascii', 'ignore') if request.session.get('last_visit'): # The session has a value for the last visit last_visit_time = request.session.get('last_visit') visits = request.session.get('visits', 0) if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0: request.session['visits'] = visits + 1 else: # The get returns None, and the session does not have a value for the last visit. request.session['last_visit'] = str(datetime.now()) request.session['visits'] = 1 device_metadata = [ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac)] print device_metadata device_id = device_metadata[0]['device_id'] device_type = device_metadata[0]['device_type'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id device_status = [ob.as_json() for ob in RTU.objects.filter(rtu_id=device_id)] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] #Using page_load.json vals = _helper.get_page_load_data(device_id, device_type, device_type_id) if vals['cooling_mode'] == 'NONE': vals['cooling_mode'] = "None" elif vals['cooling_mode'] == 'STG1': vals['cooling_mode'] = "Stage 1 Cooling" elif vals['cooling_mode'] == 'STG2': vals['cooling_mode'] = "Stage 2 Cooling" elif vals['cooling_mode'] == 'STG3': vals['cooling_mode'] = "Stage 3 Cooling" elif vals['cooling_mode'] == 'STG4': vals['cooling_mode'] = "Stage 4 Cooling" device_list_side_nav = get_device_list_side_navigation() context.update(device_list_side_nav) active_al = get_notifications() context.update({'active_al':active_al}) bemoss_not = general_notifications() context.update({'b_al': bemoss_not}) return render_to_response( 'thermostat/rtu.html', {'device_id': device_id, 'device_zone': device_zone, 'zone_nickname': zone_nickname, 'mac_address': mac, 'device_nickname': device_nickname, 'device_status': vals, 'mac': mac}, context)
def vav_view(request, mac): print 'RTU pageload' context = RequestContext(request) mac = mac.encode('ascii', 'ignore') if request.session.get('last_visit'): # The session has a value for the last visit last_visit_time = request.session.get('last_visit') visits = request.session.get('visits', 0) if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0: request.session['visits'] = visits + 1 else: # The get returns None, and the session does not have a value for the last visit. request.session['last_visit'] = str(datetime.now()) request.session['visits'] = 1 device_metadata = [ ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac) ] print device_metadata device_id = device_metadata[0]['device_id'] device_type = device_metadata[0]['device_type'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id device_status = [ ob.as_json() for ob in VAV.objects.filter(vav_id=device_id) ] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] #Using page_load.json vals = _helper.get_page_load_data(device_id, device_type, device_type_id) device_list_side_nav = get_device_list_side_navigation() context.update(device_list_side_nav) active_al = get_notifications() context.update({'active_al': active_al}) bemoss_not = general_notifications() context.update({'b_al': bemoss_not}) return render_to_response( 'thermostat/vav.html', { 'device_id': device_id, 'device_zone': device_zone, 'zone_nickname': zone_nickname, 'mac_address': mac, 'device_nickname': device_nickname, 'device_status': vals, 'mac': mac }, context)
def thermostat(request, mac): print 'Thermostat pageload' context = RequestContext(request) mac = mac.encode('ascii', 'ignore') device_metadata = [ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac)] print device_metadata device_type = device_metadata[0]['device_type'] device_id = device_metadata[0]['device_id'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id print device_type_id device_status = [ob.data_as_json() for ob in Thermostat.objects.filter(thermostat_id=device_id)] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] override = device_status[0]['override'] info_required = "Update thermostat data" ieb_topic = '/ui/agent/bemoss/' + str(device_zone) + '/' + device_type + '/' + device_id + '/device_status' zmq_pub.requestAgent(ieb_topic, info_required, "text/plain", "UI") json_file = open(os.path.join(settings.PROJECT_DIR, 'resources/page_load/page_load.json'), "r+") _json_data = json.load(json_file) if device_id not in _json_data['thermostat']: _json_data['thermostat'][device_id] = {"page_load": "{empty_string}"} json_file.seek(0) json_file.write(json.dumps(_json_data, indent=4, sort_keys=True)) json_file.truncate() json_file.close() time.sleep(3) #Using page_load.json vals = _helper.get_page_load_data(device_id, device_type, device_type_id) print vals #Get current weather data from wunderground json_file = open(os.path.join(settings.PROJECT_DIR, 'resources/metadata/bemoss_metadata.json'), "r+") _json_data = json.load(json_file) zipcode = _json_data['building_location_zipcode'] json_file.close() rs = {} try: rs = urllib2.urlopen("http://api.wunderground.com/api/4fef576e26759640/conditions/q/" + zipcode + ".json") except urllib2.HTTPError, e: logger.error('HTTPError = ' + str(e.code))
def smartplug(request, mac): print 'inside plugload view method' context = RequestContext(request) username = request.session.get('user') print username if request.session.get('last_visit'): # The session has a value for the last visit last_visit_time = request.session.get('last_visit') visits = request.session.get('visits', 0) if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0: request.session['visits'] = visits + 1 else: # The get returns None, and the session does not have a value for the last visit. request.session['last_visit'] = str(datetime.now()) request.session['visits'] = 1 print type(mac) mac = mac.encode('ascii', 'ignore') print type(mac) device_metadata = [ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac)] print device_metadata device_id = device_metadata[0]['device_id'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id device_status = [ob.data_as_json() for ob in Plugload.objects.filter(plugload_id=device_id)] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] _data = _helper.get_page_load_data(device_id, 'plugload', device_type_id) device_list_side_nav = get_device_list_side_navigation() context.update(device_list_side_nav) active_al = get_notifications() context.update({'active_al':active_al}) bemoss_not = general_notifications() context.update({'b_al': bemoss_not}) return render_to_response( 'plugload/plugload.html', {'device_data': _data, 'device_id': device_id, 'device_zone': device_zone, 'zone_nickname': zone_nickname, 'mac_address': mac, 'device_nickname': device_nickname, 'device_type_id': device_type_id}, context)
def thermostat(request, mac): print 'Thermostat pageload' context = RequestContext(request) mac = mac.encode('ascii', 'ignore') device_metadata = [ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac)] print device_metadata device_type = device_metadata[0]['device_type'] device_id = device_metadata[0]['device_id'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id print device_type_id device_status = [ob.data_as_json() for ob in Thermostat.objects.filter(thermostat_id=device_id)] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] override = device_status[0]['override'] hold = device_status[0]['hold'] #Using page_load.json vals = _helper.get_page_load_data(device_id, device_type, device_type_id) print vals weather_info = get_weather_info() device_list_side_nav = get_device_list_side_navigation() context.update(device_list_side_nav) active_al = get_notifications() context.update({'active_al':active_al}) bemoss_not = general_notifications() context.update({'b_al': bemoss_not}) return render_to_response( 'thermostat/thermostat.html', {'device_id': device_id, 'device_zone': device_zone, 'device_type_id': device_type_id, 'zone_nickname': zone_nickname, 'mac_address': mac, 'device_nickname': device_nickname, 'device_data': vals, 'location': weather_info[0], 'temp_f': weather_info[1], 'humidity': weather_info[2], 'precip': weather_info[3], 'winds': weather_info[4], 'override': override, 'hold':hold, 'weather_icon': weather_info[6], 'weather': weather_info[5], 'mac': mac}, context)
def thermostat(request, mac): print 'Thermostat pageload' context = RequestContext(request) mac = mac.encode('ascii', 'ignore') device_metadata = [ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac)] print device_metadata device_type = device_metadata[0]['device_type'] device_id = device_metadata[0]['device_id'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id print device_type_id device_status = [ob.data_as_json() for ob in Thermostat.objects.filter(thermostat_id=device_id)] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] override = device_status[0]['override'] hold = device_status[0]['hold'] #Using page_load.json vals = _helper.get_page_load_data(device_id, device_type, device_type_id) print vals #Get current weather data from wunderground json_file = open(os.path.join(settings_tornado.PROJECT_DIR, 'resources/metadata/bemoss_metadata.json'), "r+") _json_data = json.load(json_file) zipcode = _json_data['building_location_zipcode'] json_file.close() #write code to get username from launchfile # rs = {} try: rs = urllib2.urlopen("http://api.wunderground.com/api/4fef576e26759640/conditions/q/" + zipcode + ".json") except urllib2.HTTPError, e: logger.error('HTTPError = ' + str(e.code))
def powermeter(request, mac): print 'inside powermeter view method' context = RequestContext(request) username = request.session.get('user') print username if request.session.get('last_visit'): # The session has a value for the last visit last_visit_time = request.session.get('last_visit') visits = request.session.get('visits', 0) if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0: request.session['visits'] = visits + 1 else: # The get returns None, and the session does not have a value for the last visit. request.session['last_visit'] = str(datetime.now()) request.session['visits'] = 1 print type(mac) mac = mac.encode('ascii', 'ignore') print type(mac) device_metadata = [ ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac) ] print device_metadata device_id = device_metadata[0]['device_id'] device_type_id = device_metadata[0]['device_model_id'] device_type_id = device_type_id.device_model_id device_type = device_metadata[0]['device_type'] device_status = [ ob.data_as_json() for ob in PowerMeter.objects.filter(power_meter_id=device_id) ] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] ''' device_info = [ob.as_json() for ob in Device_Info.objects.filter(mac_address=mac)] device_id = device_info[0]['id'] device_zone = device_info[0]['zone']['id'] device_nickname = device_info[0]['nickname'] zone_nickname = device_info[0]['zone']['zone_nickname'] device_type_id = device_info[0]['device_type_id'] print device_type_id print device_zone ''' info_required = "Update Hue data" powermeter_update_send_topic = '/ui/agent/bemoss/' + str( device_zone) + '/' + device_type + '/' + device_id + '/device_status' zmq_pub.requestAgent(powermeter_update_send_topic, info_required, "text/plain", "UI") ''' json_file = open(os.path.join(settings.PROJECT_DIR, 'resources/page_load/page_load.json'), "r+") _json_data = json.load(json_file) if device_id not in _json_data[device_type]: _json_data[device_type][device_id] = {"page_load": "{empty_string}"} json_file.seek(0) json_file.write(json.dumps(_json_data, indent=4, sort_keys=True)) json_file.truncate() json_file.close() time.sleep(3)''' _data = _helper.get_page_load_data(device_id, device_type, device_type_id) zones = [ob.as_json() for ob in Building_Zone.objects.all()] thermostats_sn = [ ob.data_side_nav() for ob in Thermostat.objects.filter(network_status='ONLINE', thermostat_id__bemoss=True) ] vav_sn = [ ob.data_side_nav() for ob in VAV.objects.filter(network_status='ONLINE', vav_id__bemoss=True) ] rtu_sn = [ ob.data_side_nav() for ob in RTU.objects.filter(network_status='ONLINE', rtu_id__bemoss=True) ] lighting_sn = [ ob.data_side_nav() for ob in Lighting.objects.filter(network_status='ONLINE', lighting_id__bemoss=True) ] plugload_sn = [ ob.data_side_nav() for ob in Plugload.objects.filter(network_status='ONLINE', plugload_id__bemoss=True) ] occ_sensors_sn = [ ob.data_side_nav() for ob in OccupancySensor.objects.filter( network_status='ONLINE', occupancy_sensor_id__bemoss=True) ] lt_sensors_sn = [ ob.data_side_nav() for ob in AmbientLightSensor.objects.filter( network_status='ONLINE', ambient_light_sensor_id__bemoss=True) ] mtn_sensors_sn = [ ob.data_side_nav() for ob in MotionSensor.objects.filter(network_status='ONLINE', motion_sensor_id__bemoss=True) ] powermeters_sn = [ ob.data_side_nav() for ob in PowerMeter.objects.filter(network_status='ONLINE', power_meter_id__bemoss=True) ] active_al = get_notifications() context.update({'active_al': active_al}) context.update({ 'zones': zones, 'thermostat_sn': thermostats_sn, 'lighting_sn': lighting_sn, 'plugload_sn': plugload_sn, 'occ_sensors_sn': occ_sensors_sn, 'lt_sensors_sn': lt_sensors_sn, 'mtn_sensors_sn': mtn_sensors_sn, 'powermeters_sn': powermeters_sn, 'vav_sn': vav_sn, 'rtu_sn': rtu_sn }) return render_to_response( 'powermeter/powermeter.html', { 'device_data': _data, 'device_id': device_id, 'device_zone': device_zone, 'zone_nickname': zone_nickname, 'mac_address': mac, 'device_nickname': device_nickname, 'zones': zones, 'thermostat_sn': thermostats_sn, 'lighting_sn': lighting_sn, 'plugload_sn': plugload_sn, 'occ_sensors_sn': occ_sensors_sn, 'lt_sensors_sn': lt_sensors_sn, 'mtn_sensors_sn': mtn_sensors_sn, 'powermeters_sn': powermeters_sn, 'vav_sn': vav_sn, 'rtu_sn': rtu_sn, 'device_type_id': device_type_id }, context)
def lighting(request, mac): print 'inside lighting view method' context = RequestContext(request) username = request.session.get('user') print username if request.session.get('last_visit'): # The session has a value for the last visit last_visit_time = request.session.get('last_visit') visits = request.session.get('visits', 0) if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0: request.session['visits'] = visits + 1 else: # The get returns None, and the session does not have a value for the last visit. request.session['last_visit'] = str(datetime.now()) request.session['visits'] = 1 mac = mac.encode('ascii', 'ignore') device_metadata = [ob.device_control_page_info() for ob in DeviceMetadata.objects.filter(mac_address=mac)] print device_metadata device_id = device_metadata[0]['device_id'] controller_type = device_metadata[0]['device_model_id'] controller_type = controller_type.device_model_id device_status = [ob.data_as_json() for ob in Lighting.objects.filter(lighting_id=device_id)] device_zone = device_status[0]['zone']['id'] device_nickname = device_status[0]['nickname'] zone_nickname = device_status[0]['zone']['zone_nickname'] kwargs = {'subscribe_address': 'ipc:///tmp/volttron-lite-agent-subscribe', 'publish_address': 'ipc:///tmp/volttron-lite-agent-publish'} _zmq_pub = zmqPub(**kwargs) print "created instance of the zmqpub class" info_required = "Update Hue data" wifi_3m50_update_send_topic = '/ui/agent/bemoss/' + str(device_zone) + '/lighting/' + device_id + '/device_status' _zmq_pub.requestAgent(wifi_3m50_update_send_topic, info_required, "text/plain", "UI") json_file = open(os.path.join(settings.PROJECT_DIR, 'resources/page_load/page_load.json'), "r+") _json_data = json.load(json_file) if device_id not in _json_data['lighting']: _json_data['lighting'][device_id] = {"page_load": "{empty_string}"} json_file.seek(0) json_file.write(json.dumps(_json_data, indent=4, sort_keys=True)) json_file.truncate() json_file.close() time.sleep(3) _data = _helper.get_page_load_data(device_id, 'lighting', controller_type) zones = [ob.as_json() for ob in Building_Zone.objects.all()] thermostats_sn = [ob.data_side_nav() for ob in Thermostat.objects.filter(network_status='ONLINE', thermostat_id__bemoss=True)] lighting_sn = [ob.data_side_nav() for ob in Lighting.objects.filter(network_status='ONLINE', lighting_id__bemoss=True)] plugload_sn = [ob.data_side_nav() for ob in Plugload.objects.filter(network_status='ONLINE', plugload_id__bemoss=True)] active_al = get_notifications() context.update({'active_al':active_al}) context.update({ 'zones': zones, 'thermostat_sn': thermostats_sn, 'lighting_sn': lighting_sn, 'plugload_sn': plugload_sn }) return render_to_response( 'lighting/lighting.html', {'type': controller_type, 'device_data': _data, 'device_id': device_id, 'device_zone': device_zone, 'device_type': controller_type, 'mac_address': mac, 'zone_nickname': zone_nickname, 'device_nickname': device_nickname, 'zones': zones, 'thermostat_sn': thermostats_sn, 'lighting_sn': lighting_sn, 'plugload_sn': plugload_sn}, context)