特别是对于 Home Assistant,您可以连接到 SQLite 数据库并使用您自己的图形软件(或脚本)来生成自定义图形。该家庭助理博客演示与使用Python的matplotlib做到这一点:
# Adapted from the linked code from Home Assistant.
import sqlite3
from matplotlib import dates
import matplotlib.pyplot as plt
import homeassistant.util.dt as dt
ENTITY_ID = 'entity id here'
START_DATE = 'date here'
END_DATE = 'date here'
values = []
timestamps = []
conn = sqlite3.connect('/home/ha/.homeassistant/home-assistant_v2.db')
data = conn.execute("SELECT state, last_changed FROM states WHERE entity_id = {} AND last_changed BETWEEN {} AND {}".format(ENTITY_ID, START_DATE, END_DATE))
for x in data:
timestamps.append(dates.date2num(dt.parse_datetime(x[1])))
values.append(float(x[0]))
plt.plot_date(x=timestamps, y=values, fmt="r-")
plt.ylabel('Value')
plt.xlabel('Time line')
plt.savefig('sensor.png')
数据库架构在此处可用。我们感兴趣的是状态对象;你应该知道entity_id
你感兴趣的设备。
如果您熟悉 Python,那么适应它应该相对容易,您甚至可以添加 GUI 或更漂亮的命令行界面。不过,任何可以查询 SQLite 数据库的语言都可以正常工作。
或者,您可能会考虑导出到 CSV 并使用电子表格程序 - 毫无疑问,这对自动化会更具挑战性,但如果您不是程序员,可能会更加用户友好。