diff --git a/web/dynamic.py b/web/dynamic.py index ccfa1f3..e31f2fe 100755 --- a/web/dynamic.py +++ b/web/dynamic.py @@ -332,166 +332,3 @@ class DynamicData(object): except: disk_value = '' yield "{},{},{},{}\n".format(tm, cpu_value, mem_value, disk_value) - - - @cherrypy.expose - def historical_values(self, **kwargs): - ''' - Function to all historical readings from InfluxDB. - These parsed into a CSV? Dict? - - returns: csv in raw, text format - time, V_solar, I_solar - - select mean(I_solar) as I_solar from voltage where time > now() - 10m group by time(30s) order by time desc - ''' - - # GET variables now set, ready to reference them - - measure_range = kwargs['range'] - query1 = "SELECT mean(V_array) as Uarr, mean(I_consumption) as Icon, " - query2 = "mean(V_solar) as Usol, mean(I_solar) as Isol, " - query3 = "mean(V_unit1) as Us1, mean(V_unit2) as Us2, max(charging) as charge FROM voltage" - query4 = "WHERE time > NOW() - {} GROUP BY time(30s)".format(measure_range) - query5 = "ORDER BY time DESC" - query = "{} {} {} {} {}".format(query1, query2, query3, query4, query5) - measures = self.influx_client.query(query) - - # Let's get the data from DB - result = [] - for datapoint in measures["voltage"]: - tm = datapoint['time'] - try: - array_voltage = round(float(datapoint["Uarr"]), 2) - current_consumed = round(float(datapoint["Icon"]) / array_voltage, 2) - - solar_voltage = round(float(datapoint["Usol"]), 2) - solar_current = round(float(datapoint["Isol"]) / solar_voltage , 2) - - Us1 = round(float(datapoint["Us1"]), 2) - Us2 = round(float(datapoint["Us2"]), 2) - except: - continue - - charging = int(datapoint["charge"]) - row = {"time": tm, - "V_array": array_voltage, - "I_consumption": current_consumed, - "V_solar": solar_voltage, - "I_solar": solar_current, - "V_unit1": Us1, - "V_unit2": Us2, - "charging": charging} - result.append(row) - return result - - @cherrypy.expose - def stat_values(self, **kwargs): - ''' - Function to all historical readings from InfluxDB. - These parsed into a CSV? Dict? - - returns: csv in raw, text format - 24Wh_consumed, 24Wh_solar - - select mean(I_solar) as I_solar from voltage where time > now() - 10m group by time(30s) order by time desc - ''' - - # GET variables now set, ready to reference them - - _days = kwargs['days'] - d = datetime.datetime.now() - measures = [] - result = [] - - for t_range in range(1, _days*24, 24): - day = (d - datetime.timedelta(hours = t_range)).strftime("%Y-%m-%d") - query1 = "SELECT mean(V_array) as Uarr, mean(I_consumption) as Icon, " - query2 = "mean(V_solar) as Usol, mean(I_solar) as Isol, " - query3 = "mean(V_unit1) as Us1, mean(V_unit2) as Us2, max(charging) as charge FROM voltage" - query4 = "WHERE time > '{} 00:00:00' AND time < '{} 23:59:59' GROUP BY time(1h) fill(0)".format(day, day) - query5 = "ORDER BY time DESC" - query = "{} {} {} {} {}".format(query1, query2, query3, query4, query5) - measure = self.influx_client.query(query) - - # Let's get the data from DB - tm = [] - Ubat = [] - Icon = [] - Usol = [] - Isol = [] - Uss1 = [] - Uss2 = [] - P_cons = [] - P_sol = [] - charging = 0 - day_result = [] - - for datapoint in measure["voltage"]: - #print(datapoint) - - tstamp = datapoint['time'] - array_voltage = round(float(datapoint["Uarr"]), 2) - current_consumed = round(float(datapoint["Icon"]), 2) - solar_voltage = round(float(datapoint["Usol"]), 2) - solar_current = round(float(datapoint["Isol"]), 2) - Us1 = round(float(datapoint["Us1"]), 2) - Us2 = round(float(datapoint["Us2"]), 2) - charge = int(datapoint["charge"]) - p_consumed = round(float(array_voltage / 1000.00 \ - * current_consumed / 1000.00), 2) - p_solar = round(float(solar_voltage / 1000.00 \ - * solar_current / 1000.00), 2) - - tm.append(tstamp), - Ubat.append(array_voltage), - Icon.append(current_consumed), - Usol.append(solar_voltage), - Isol.append(solar_current), - Uss1.append(Us1), - Uss2.append(Us2), - charging = charging + charge - P_cons.append(p_consumed) - P_sol.append(p_solar) - - row = {"time": tm, - "V_array": Ubat, - "I_consumption": Icon, - "V_solar": Usol, - "I_solar": Isol, - "V_unit1": Uss1, - "V_unit2": Uss2, - "charging": charging, - "P_cons": P_cons, - "P_sol": P_sol} - - try: - day_result = [ - row['time'][0][0:10], - round(min(row['V_array']) / 1000, 2), - round(sum(row['I_consumption']) / 1000, 2), - round(max(row['V_solar']) / 1000, 2), - round(sum(row['I_solar']) / 1000, 2), - round(min(row['V_unit1']) / 1000, 2), - round(min(row['V_unit2']) / 1000, 2), - row['charging'], - round(sum(row['P_cons']),2), - round(sum(row['P_sol']), 2) - ] - except: - day_result = [ - d.strftime("%Y-%m-%d"), - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - # need to compute averages, mate... - print(day_result) - result.append(day_result) - return result diff --git a/web/weather.py b/web/weather.py index 3f73c12..c33223b 100755 --- a/web/weather.py +++ b/web/weather.py @@ -141,8 +141,8 @@ class WeatherInfo(object): wind_gust = influx_weather_client.query(wind_gust_q) hum_ext = influx_weather_client.query(hum_ext_q) hum_int = influx_weather_client.query(hum_int_q) - press = influx_weather_client.query(press_q) - presr = influx_weather_client.query(presr_q) + #press = influx_weather_client.query(press_q) + #presr = influx_weather_client.query(presr_q) t_ext = influx_weather_client.query(t_ext_q) t_int = influx_weather_client.query(t_int_q) @@ -150,10 +150,10 @@ class WeatherInfo(object): result_windspeed = [speed for speed in wind_speed][0][0] result_winddir = [direction for direction in wind_direction][0][0] result_windgust = [gust for gust in wind_gust][0][0] - result_hum_int = [y for y in hum_int][0][0] - result_t_int = [c for c in t_int][0][0] - result_press = [z for z in press][0][0] - result_presr = [a for a in presr][0][0] + #result_hum_int = [y for y in hum_int][0][0] + #result_t_int = [c for c in t_int][0][0] + #result_press = [z for z in press][0][0] + #result_presr = [a for a in presr][0][0] result_t_ext = [b for b in t_ext][0][0] result_hum_ext = [x for x in hum_ext][0][0] @@ -168,11 +168,11 @@ class WeatherInfo(object): result.update({"direction": round(result_winddir['value'], 1)}) result.update({"windgust": round(result_windgust['value'], 1)}) result.update({"humidity_ext": round(result_hum_ext['humidity'], 1)}) - result.update({"humidity_int": round(result_hum_int['humidity'], 1)}) - result.update({"pressure": round(result_press['pressure'], 1)}) - result.update({"pressure_raw": round(result_presr['pressure'], 1)}) + #result.update({"humidity_int": round(result_hum_int['humidity'], 1)}) + #result.update({"pressure": round(result_press['pressure'], 1)}) + #result.update({"pressure_raw": round(result_presr['pressure'], 1)}) result.update({"temp_ext": round(result_t_ext['temperature'], 1)}) - result.update({"temp_int": round(result_t_int['temperature'], 1)}) + #result.update({"temp_int": round(result_t_int['temperature'], 1)}) return result def body(self): @@ -197,9 +197,9 @@ class WeatherInfo(object): out_temp_icon=fs_out_temperature_icon, out_temp=current_weather['temp_ext'], in_temp_icon=fs_in_temperature_icon, - in_temp=current_weather['temp_int'], - pressure_icon=fs_pressure_icon, - pressure=current_weather['pressure'], - raw_pressure=current_weather['pressure_raw'] + #in_temp=current_weather['temp_int'], + pressure_icon=fs_pressure_icon + #pressure=current_weather['pressure'], + #raw_pressure=current_weather['pressure_raw'] ) return admin_html