46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import time
|
||
from services.statistics import get_ammeter_left_ele, get_water_left
|
||
from services.plot import plot_line
|
||
|
||
|
||
async def render_ammeter_chart():
|
||
times, left_ele, left_free_ele = await get_ammeter_left_ele(limit=24)
|
||
|
||
if not times:
|
||
return None
|
||
|
||
out = "data/ammeter.png"
|
||
|
||
time_range = f"{time.strftime("%Y-%m-%d %H:%M", time.localtime(times[0] / 1000))} ~ {time.strftime("%Y-%m-%d %H:%M", time.localtime(times[-1] / 1000))}"
|
||
|
||
plot_line(
|
||
times=[time.strftime("%H:%M", time.localtime(t / 1000)) for t in times],
|
||
normal_values=left_ele,
|
||
title=f"宿舍电量剩余趋势({time_range})",
|
||
ylabel="剩余电量(度)",
|
||
out_path=out,
|
||
)
|
||
|
||
return out
|
||
|
||
|
||
async def render_water_chart():
|
||
times, left_water, left_free_water = await get_water_left(limit=24)
|
||
|
||
if not times:
|
||
return None
|
||
|
||
out = "data/water.png"
|
||
|
||
time_range = f"{time.strftime("%Y-%m-%d %H:%M", time.localtime(times[0] / 1000))} ~ {time.strftime("%Y-%m-%d %H:%M", time.localtime(times[-1] / 1000))}"
|
||
|
||
plot_line(
|
||
times=[time.strftime("%H:%M", time.localtime(t / 1000)) for t in times],
|
||
normal_values=left_water,
|
||
title=f"宿舍水量剩余趋势({time_range})",
|
||
ylabel="剩余水量(吨)",
|
||
out_path=out,
|
||
)
|
||
|
||
return out
|