センサー値をグラフ化するための優れたツールは何ですか?


9

私はホームオートメーションにHome Assistantを使用しています。いくつかの基本的なグラフ機能がありますが、過去24時間のみです。細かい粒度と長期間にわたるグラフを作成したいと考えています。

私は地下にホームオフィスを構え、葉巻を吸っています。私は煙を引き出し、部屋を負圧に保つかなり深刻な気流を備えた大きな抽出ファンを持っているので、煙や煙が家の他の部分に届きません。

異なるファン速度が地下室の他の部屋の温度にどのように影響するか、また、たとえば夏と冬のように外気温度によってどのように影響を受けるかを知りたいです。

このために、さまざまな温度やその他のセンサーデータを長期間にわたってプロットする必要があり、さまざまなセンサーの測定値がどのように相関する(または相関しない)かを確認できる必要があります。

ホームオートメーションやIoTセンサー、またはホームアシスタントと簡単に連動できる優れたグラフ作成ツールは何ですか?



3
「良いツール」を探すだけでなく、特定の問題の解決策を求めるようにこの質問を再構成した方がいいのではないかと思います。これらはしばしば少し広いと見なされますが、特定のユースケースに焦点を当てることで、より具体的にすることができます答えます。
Aurora0001

回答:



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に精通しています:)提案のおかげで、ホームアシスタントデータベースを調べようとは思いませんでした。
トーマスジェンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.