有什么好的图形化传感器值的工具?


9

我正在使用Home Assistant进行家庭自动化,它具有一些基本的绘图功能,但仅在最近24小时内有效。我想创建细粒度且长时间的图形。

我在地下室有一个家庭办公室,我抽雪茄。我有一个很大的抽气扇,气流非常严重,可以将烟雾抽出并使房间保持负压,从而使烟雾和烟气无法到达房屋的任何其他部分。

我感兴趣的是看看不同的风扇速度如何影响地下室其他房间的温度,以及室外温度如何再次影响它,例如夏季与冬季。

为此,我需要绘制长时间内的各种温度和其他传感器数据,并且需要能够看到不同传感器读数之间的相关性(或不相关)。

有哪些易于与家庭自动化和IoT传感器或家庭助理连接的良好图形工具?



3
我想知道将这个问题重新构造为寻求针对您的特定问题的解决方案,而不是仅仅寻找“好的工具”是否更好—这些工具通常被认为有点宽泛,但是关注特定的用例有助于给出更具体的信息答案。
Aurora0001

Answers:



8

特别是对于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并使用电子表格程序-无疑,这将使自动化更具挑战性,但如果您不是程序员,则可能更加人性化。


1
我对Python很熟悉:)感谢您的建议,我不希望查看Home Assistant数据库。
托马斯·延森'09
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.