Apa sajakah alat yang bagus untuk menggambarkan nilai sensor?


9

Saya menggunakan Home Assistant untuk otomatisasi rumah saya, ia memiliki beberapa kemampuan grafik dasar tetapi hanya selama 24 jam terakhir. Saya ingin membuat grafik dengan granularitas halus dan jangka waktu yang lama.

Saya memiliki kantor di ruang bawah tanah, tempat saya merokok cerutu. Saya memiliki kipas ekstraksi besar dengan aliran udara yang cukup serius yang mengeluarkan asap dan membuat ruangan dalam tekanan negatif sehingga asap dan asap tidak mencapai bagian lain dari rumah.

Saya tertarik melihat bagaimana kecepatan kipas yang berbeda mempengaruhi suhu di ruangan lain di ruang bawah tanah, dan bagaimana lagi dipengaruhi oleh suhu luar jadi misalnya musim panas vs musim dingin.

Untuk ini saya perlu memplot berbagai suhu dan data sensor lainnya dalam periode waktu yang lama, dan saya harus dapat melihat bagaimana pembacaan sensor yang berbeda berkorelasi (atau tidak).

Apa saja alat grafik yang bagus yang mudah untuk dihubungkan dengan otomatisasi rumah dan sensor IoT atau Home Assistant?



3
Saya bertanya-tanya apakah mungkin lebih baik untuk membingkai ulang pertanyaan ini sebagai meminta solusi untuk masalah spesifik Anda daripada hanya mencari 'alat yang baik' - ini sering dianggap sedikit luas, tetapi berfokus pada kasus penggunaan tertentu membantu memberikan lebih spesifik jawaban.
Aurora0001

Jawaban:



8

Untuk Home Assistant secara khusus, Anda dapat terhubung ke database SQLite dan menggunakan perangkat lunak grafik Anda sendiri (atau skrip) untuk menghasilkan grafik khusus. The Home Assistant blog menunjukkan penggunaan Python dengan matplotlib untuk melakukan hal ini:

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

Skema basis data tersedia di sini . Yang kami minati adalah benda - benda negara ; Anda harus mengetahui entity_idperangkat yang Anda minati.

Jika Anda terbiasa dengan Python, mengadaptasi yang seharusnya relatif mudah, dan Anda bahkan bisa menambahkan antarmuka baris perintah GUI atau yang lebih bagus. Namun, bahasa apa pun yang dapat meminta basis data SQLite akan berfungsi dengan baik.

Atau, Anda dapat mempertimbangkan mengekspor ke CSV dan menggunakan program spreadsheet — tidak diragukan lagi ini akan lebih sulit untuk diotomatisasi, tetapi mungkin lebih ramah pengguna jika Anda bukan seorang programmer.


1
Saya kenal dengan Python :) Terima kasih atas sarannya, saya tidak berpikir untuk mencari di database asisten rumah.
Thomas Jensen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.