Was sind einige gute Werkzeuge zur grafischen Darstellung von Sensorwerten?


9

Ich verwende Home Assistant für meine Heimautomation. Es verfügt über einige grundlegende Grafikfunktionen, jedoch nur für die letzten 24 Stunden. Ich möchte Diagramme sowohl mit feiner Granularität als auch über lange Zeiträume erstellen.

Ich habe ein Heimbüro im Keller, in dem ich Zigarren rauche. Ich habe einen großen Absaugventilator mit einem ziemlich starken Luftstrom, der den Rauch herauszieht und den Raum unter Unterdruck hält, damit Rauch und Dämpfe keine anderen Teile des Hauses erreichen.

Ich bin daran interessiert zu sehen, wie sich die unterschiedlichen Lüftergeschwindigkeiten auf die Temperatur in anderen Räumen im Keller auswirken und wie sie wiederum von der Außentemperatur beeinflusst werden, z. B. Sommer gegen Winter.

Dazu muss ich verschiedene Temperatur- und andere Sensordaten über lange Zeiträume zeichnen und in der Lage sein zu sehen, wie die verschiedenen Sensorwerte korrelieren (oder nicht).

Was sind einige gute Grafiktools, die sich leicht mit Hausautomations- und IoT-Sensoren oder dem Heimassistenten verbinden lassen?



3
Ich frage mich, ob es vielleicht besser ist, diese Frage so zu formulieren, dass nach Lösungen für Ihr spezifisches Problem gefragt wird, als nur nach „guten Werkzeugen“ zu suchen - diese werden oft als etwas weit gefasst angesehen, aber die Konzentration auf einen bestimmten Anwendungsfall hilft, spezifischer zu werden Antworten.
Aurora0001

Antworten:


9

InfluxDB in Domoticz

Dies ist eine Datenbank, die mit der Domoticz-Installation auf Raspberry Pi bereitgestellt wird. Es ermöglicht die Verwendung von Daten mit Zeitreihen .

Domoticz verwendet dies, um die Daten der Sensoren zu modellieren

Geben Sie hier die Bildbeschreibung ein


1
Wow, das sieht cool aus!
Thomas Jensen

8

Speziell für Home Assistant können Sie eine Verbindung zur SQLite-Datenbank herstellen und Ihre eigene Grafiksoftware (oder ein Skript) verwenden, um benutzerdefinierte Diagramme zu erstellen. Der Home Assistant-Blog demonstriert die Verwendung von Python mit matplotlib , um dies zu tun:

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

Das Datenbankschema finden Sie hier . Was uns interessiert, sind Staatsobjekte ; Sie sollten entity_iddas Gerät kennen, an dem Sie interessiert sind.

Wenn Sie mit Python vertraut sind, sollte die Anpassung relativ einfach sein, und Sie können sogar eine GUI oder eine schönere Befehlszeilenschnittstelle hinzufügen. Jede Sprache, die die SQLite-Datenbank abfragen kann, funktioniert jedoch einwandfrei.

Alternativ können Sie in CSV exportieren und ein Tabellenkalkulationsprogramm verwenden. Zweifellos ist die Automatisierung schwieriger, aber möglicherweise benutzerfreundlicher, wenn Sie kein Programmierer sind.


1
Ich bin mit Python vertraut :) Vielen Dank für den Vorschlag, ich habe nicht daran gedacht, in die Home Assistant-Datenbank zu schauen.
Thomas Jensen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.