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?

Thomas Jensen
fonte
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:

9

InfluxDB em Domoticz

Este é um banco de dados fornecido com a instalação do Domoticz no Raspberry Pi. Permite usar dados com séries temporais .

Domoticz usa isso para modelar os dados dos sensores

insira a descrição da imagem aqui

Goufalite
fonte
11
Uau, isso parece legal!
Thomas Jensen
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.

Aurora0001
fonte
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