센서 값을 그래프로 표시하는 데 유용한 도구는 무엇입니까?


9

홈 오토메이션에 홈 어시스턴트를 사용하고 있으며, 기본 그래프 기능이 있지만 지난 24 시간 동안 만 사용됩니다. 세분화되고 오랜 시간에 걸쳐 그래프를 만들고 싶습니다.

지하에 시가를 피우는 본사가 있습니다. 나는 연기를 빼내고 실내를 부압으로 유지하는 꽤 심각한 기류가있는 큰 추출 팬을 가지고있어 연기와 연기가 집의 다른 부분에 도달하지 않습니다.

나는 다른 팬 속도가 지하실의 다른 방의 온도에 어떻게 영향을 미치는지, 그리고 여름과 겨울과 같이 외부 온도에 의해 다시 어떻게 영향을 받는지 보는 데 관심이 있습니다.

이를 위해 다양한 온도 및 기타 센서 데이터를 오랜 시간에 걸쳐 플롯해야하며, 다른 센서 판독 값이 어떻게 상관되는지 (또는 그렇지 않은지) 볼 수 있어야합니다.

홈 오토메이션 및 IoT 센서 또는 홈 어시스턴트와 쉽게 인터페이스 할 수있는 좋은 그래프 도구는 무엇입니까?



3
'좋은 도구'를 찾는 것보다는 특정 문제에 대한 해결책을 요구하는 것으로이 질문을 재구성하는 것이 더 나을지 궁금합니다. 이러한 도구는 종종 다소 광범위하게 여겨지지만 특정 사용 사례에 초점을두면 더 구체적으로 설명하는 데 도움이됩니다. 대답.
Aurora0001

답변:



8

특히 홈 어시스턴트의 경우 SQLite 데이터베이스에 연결하고 자체 그래프 소프트웨어 (또는 스크립트)를 사용하여 사용자 정의 그래프를 생성 할 수 있습니다. 홈 도우미 블로그는 파이썬의 사용을 보여줍니다 하기 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관심있는 장치를 알아야합니다 .

파이썬에 익숙하다면 비교적 쉽게 적응할 수 있으며 GUI 또는 더 멋진 명령 줄 인터페이스를 추가 할 수도 있습니다. 그러나 SQLite 데이터베이스를 쿼리 할 수있는 모든 언어가 제대로 작동합니다.

또는 CSV로 내보내고 스프레드 시트 프로그램을 사용하는 것이 좋습니다. 의심 할 여지없이 자동화하기는 쉽지 않지만 프로그래머가 아닌 경우 사용자에게 친숙 할 수 있습니다.


1
나는 파이썬에 익숙하다.
토마스 젠슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.