Quais são algumas boas ferramentas para representar graficamente os valores dos sensores?


9

Estou usando o Assistente Doméstico para minha automação residencial, ele possui alguns recursos gráficos básicos, mas apenas nas últimas 24 horas. Eu gostaria de criar gráficos com granularidade fina e por longos períodos de tempo.

Eu tenho um escritório em casa no porão, onde fumo charutos. Eu tenho um grande ventilador de extração com um fluxo de ar bastante sério que puxa a fumaça e mantém a sala sob pressão negativa para que a fumaça e a fumaça não cheguem a nenhuma outra parte da casa.

Estou interessado em ver como as diferentes velocidades dos ventiladores afetam a temperatura em outras salas do porão e como elas são novamente afetadas pela temperatura externa, por exemplo, verão x inverno.

Para isso, preciso plotar vários dados de temperatura e outros sensores por longos períodos de tempo e ser capaz de ver como as diferentes leituras do sensor se correlacionam (ou não).

Quais são algumas boas ferramentas gráficas que são fáceis de interagir com os sensores de automação residencial e IoT ou o Home Assistant?



3
Eu me pergunto se seria melhor reformular essa pergunta pedindo soluções para o seu problema específico, em vez de apenas procurar 'boas ferramentas' - essas são geralmente consideradas um pouco amplas, mas o foco em um caso de uso específico ajuda a fornecer informações mais específicas. respostas.
Aurora0001

Respostas:



8

Para o Home Assistant especificamente, você pode se conectar ao banco de dados SQLite e usar seu próprio software de gráficos (ou um script) para gerar gráficos personalizados. O blog do Home Assistant demonstra o uso do Python com o matplotlib para fazer isso:

# 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')

O esquema do banco de dados está disponível aqui . O que nos interessa são objetos de estado ; você deve saber o entity_iddispositivo em que está interessado.

Se você está familiarizado com o Python, a adaptação deve ser relativamente fácil e você pode até adicionar uma GUI ou uma interface de linha de comando melhor. Qualquer linguagem que possa consultar o banco de dados SQLite funcionará bem, no entanto.

Como alternativa, você pode considerar exportar para CSV e usar um programa de planilha - sem dúvida, isso será mais difícil de automatizar, mas pode ser mais amigável se você não for um programador.


11
Eu estou familiarizado com o Python :) Obrigado pela sugestão, não pensei em procurar no banco de dados do assistente Home.
Thomas Jensen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.