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