NEWS
Datenbank, Historie, Trockner-Tracker
-
Ich bin zwar noch etwas am Skripten für Heizung und Harmony
hab aber trotzdem schon mal die nächste Frage auf Vorrat dabei.
Ich habe ja noch immer auf dem Plan, den Trockner zu 'tracken' und zu informieren, wenn der durch ist. Das wäre dann die Einarbeitung in die größere Aufgabe Waschmaschine, das macht im Moment noch eine Laundrify-Dose.
Dazu brauche ich ja eine Datenpunkt-Historie.
Soweit ich das gelesen habe, wäre eine Influx-DB wohl (bei Massen an Daten) das sinnigste. SQL-DBs sind mir in den letzten Jahrzehnten schon einmal unter gekommen, so dass ich die eigentlich vorziehen würde (zumal ich dann wohl auch nicht so auf die Konsole angewiesen wäre).
Nun bin ich aber auch über den History-Adapter gestoßen und vermute, dass der das zum Einarbeiten und zum Tracken von Trockner / Waschmaschine auch tut.Fragen:
- Ist das richtig, kann ich mit dem starten und mir das Konfigurieren einer DB für meine Anwendung sparen?
- Verbaue ich mir damit etwas, bzw. muss ich bei einem Umstieg auf eine 'richtige' DB alles neu machen/lernen?
- Verstehe ich das richtig, dass die Datenbank-Adapter alle nur die Anbindung an eine Datenbank herstellen und die Datenbank aber nicht 'im ioBroker läuft'?
- Spräche etwas dagegen, eine Influx/MySQL-DB direkt auf dem selben Rapsi-4 (8 GB) laufen zu lassen, auf dem auch ioBroker läuft?
-
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Ist das richtig, kann ich mit dem starten und mir das Konfigurieren einer DB für meine Anwendung sparen?
ja
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Verbaue ich mir damit etwas, bzw. muss ich bei einem Umstieg auf eine 'richtige' DB alles neu machen/lernen?
was meinst du mit alles?
Datenbank neu, Wasauchimmer darauf zugreift muss natürlich dann auf die anderen IDs zugreifen.@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Verstehe ich das richtig, dass die Datenbank-Adapter alle nur die Anbindung an eine Datenbank herstellen und die Datenbank aber nicht 'im ioBroker läuft'?
ja, ausser history. Die ist bei mir inzwischen knapp 60GB groß
-
Moin,
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Soweit ich das gelesen habe, wäre eine Influx-DB wohl (bei Massen an Daten) das sinnigste. SQL-DBs sind mir in den letzten Jahrzehnten schon einmal unter gekommen, so dass ich die eigentlich vorziehen würde (zumal ich dann wohl auch nicht so auf die Konsole angewiesen wäre).
Es kommt darauf an, was Du gern machen möchtest und wozu Du eine GUI brauchst um nicht mit der Konsole arbeiten zu müssen?
Ich gehe erst einmal aufinfluxDB
ein, ab der Version 2 gibt es eine WEB - UI mittels der Du dieinfluxDB
bedienen und Abfragen erstellen kannst,
Kommen wir zu den SQL Datenbanken, auch dafür gibt es Tools, entweder WEB basiert z. B.phpmyadmin
oder native APPs z. Bdbeaver
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Fragen:
Zu 1. Antwort kam ja schon von @Homoran
Zu 2. Nein, in der Dokumentation zum Adapter ist auch beschrieben, wie man die Daten aus demHistory
Adapter in eine SQL Datenbank oder zuinfluxDB
migrieren kann History-Adapter. Eins muss Dir aber klar sein, möchtest Du die historisierten Werte später inGrafana
Visualisieren, dann geht das nicht, da es keine Anbindung gibt, das geht nur mit SQL oderinfluxDB
. Solltest Du später einmal umsteigen, musst Du natürlich die DP an die neue Datenbank anpassen/umstellen.
Zu 3.History
läuft als Teil vonioBroker
alle anderen laufen außerhalb und müssen gesondert installiert und konfiguriert werden. Dabei kann die DatenbankMariaDB, MySQL, PostgreSQL
oderinfluxDB
auf dem gleichen Server wie derioBroker
laufen oder auf einem eigenen Server, VM, LX Container, Docker.
Du musst auch wissen, dass alle Datenbanken, History zählt für mich nicht dazu, sogenannteClient
-Server
Konstrukte sind, wo immer ein Server (Datenbankmanager) läuft und Applikationen (Clients) auf die im Datenbankmanager erstellten Datenbanken z. B.ioBroker_DB
zugreifen, daher sind alle Datenbank Adapter imioBroker
auch nur Clients, da sie nur die Verbindung zur Datenbank herstellen, so das die Daten geschrieben und gelesen werden können.
Zu 4. es spricht im Allgemeinen nichts dagegen, man sollte aber ständig ein Auge auf das System haben, um eventuelle Flaschenhälse zu erkennen um rechtzeitig eingreifen zu können. Dann hängt es natürlich auch davon ab, was an Speichermedium an dem RasPI hängt, eine SD-Karte ist eher nicht optimal und auch welche Größe die hat, Datenbanken können mit der Zeit recht groß werden.VG
Bernd -
@sammy-r
Für Datenbanken und Raspberry ist so ne Sache.
Wenn du viele Daten schreibst, dann bekommst du leicht Probleme mit der SD-Card.
Bei großen Auswertungen (z.B. Jahresverlauf) ist die SD-Card auch ein Flaschenhals.
Also wenn sowas auf dem dem Raspi, dann mit einer SSD.Ich hab mich mittlerweile vom Raspi verabschieded und bin auf einem Fujitsu Futro S740 ThinClient umgestiegen.
Gibt es meist für < 100€. Dazu ne größere SSD (25€) rein und du hast ein System, dass leistungsfähiger als ein Raspi ist und mit 8W nur unwesentlich mehr Energie braucht.
Andere Thinclients gehen natürlich auch.Darauf kannst du dann z.B. ohne Probleme iBroker, Postgresql od. MariaDB, InfluxDB und Grafana betreiben.
Für sowas ist Docker eine sinnvolle Geschichte.All das hängt natürlich von deinen Kenntnissen und deinem "Spieltrieb" ab. Ein Raspi ist natürlich schneller eingerichtet.
-
Super. Ich danke Euch allen schon einmal.
Im Moment gewinnt bei mir der Spieltrieb und dabei vor allem das 'Spielen' mit ioBroker und da schien mir der Adapter die Einstiegshürde herabzusetzen.
Auch Waschmaschine/Trockner ist ja eher eine Übung mit einer überschaubaren Menge an Daten. Ansonsten fällt mir nur das Wetter als Datenquelle ein, die ich vielleicht einigermassen sinnvoll verspielen kann.
InfluxDB in Version2 war mir bewusst bei der Recherche nicht untergekommen, wobei eine Konsole prinzipiell auch kein Hindernis ist, aber auch wieder eine etwas größere Hürde (oder nerviger, weiß nicht genau).
Aktuell läuft der Pi mit einer simplen SD-Card, für bisl. fritzdect/harmony/Spielsteckdosen reicht das.
Ich hab noch eine recht ordentliche Synoloogy, auf der auch Docker/VMs laufen könnten, die läuft aber nur auf Bedarf und Docker wäre für mich eh eine andere (und neue) Baustelle.Also starte ich erstmal damit und mache das 'richtig', wenn eine ernsthafte Anwendung um die Ecke kommt (so etwas wie ein Haus
).
Frage 5:
Ich habe wahrgenommen, dass InfluxDB ist für Historien und Zeitreihen die bessere Lösung ist und frage mich, welchen Einsatzgrund es dann für eine SQL-DB gibt.
Vermute ich richtig, dass das der Fall wird, wenn man zu viele Datenpunkte hat und die JSON-Speicherung nicht mehr ausreicht? Da hilft das spezielle Datenmodell von InfluxDB ja vermutlich nicht. -
@sammy-r said in Datenbank, Historie, Trockner-Tracker:
Vermute ich richtig, dass das der Fall wird, wenn man zu viele Datenpunkte hat und die JSON-Speicherung nicht mehr ausreicht?
Für solche Fälle unterstützt ioBroker Redis als Datenbank.
Ausser für die Aufzeichnung gibt es kaum Notwendigkeiten für andere DBs.
Interessant für sowas ist die Integration von NodeRED in ioBroker.
NodeRED kann hervorragend als Gateway zu anderen System wirken. -
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Vermute ich richtig, dass das der Fall wird, wenn man zu viele Datenpunkte hat und die JSON-Speicherung nicht mehr ausreicht?
kann ich nicht bestätigen.
Mein Konstrukt war erst nur als Test gedacht, inzwischen sind es >200DPs, einiges davon im 6-Sekundentakt.Ich arbeite im Moment sogar noch mit file und nicht jsonl
-
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Frage 5:
Ich habe wahrgenommen, dass InfluxDB ist für Historien und Zeitreihen die bessere Lösung ist und frage mich, welchen Einsatzgrund es dann für eine SQL-DB gibt.
Vermute ich richtig, dass das der Fall wird, wenn man zu viele Datenpunkte hat und die JSON-Speicherung nicht mehr ausreicht? Da hilft das spezielle Datenmodell von InfluxDB ja vermutlich nicht.Moin,
Zum ersten Teil Deiner Frage, ja,
influxDB
ist entwickelt worden, genau für solche Anwendungsfälle, wo eine große Menge an zeitlichen Daten anfallen, aber jetzt kommt der Unterschied,influxDB
≠SQL Datenbanken
, ich möchte hier nicht tiefer darauf eingehen, dazu gibt es genug Informationen im Internet, der entscheidende Punkt ist, dass sich die Abfragesprachen unterscheiden, bei den klassischen SQL Datenbanken ist das, oh Wunder,SQL
, beiinfluxDB
ist das aktuell, nochFLUX
oderinfluxQL
. Daher nutzen mache User lieber eineSQL
Datenbank, da sie die Abfragen lieber/besser inSQL
formulieren können.
BeiinfluxDB
tut sich was, bezüglich der Abfragesprache, aber wie das dann am Ende aussieht, steht noch nicht ganz fest, habe mich damit noch nicht befasst.Beim zweiten Teil, kann ich nicht ganz folgen,
influxDB
kann zwar mitJSON
Umgehen, aber es wird da nichts inJSON
gespeichert, das Speichern ininfluxDB
oder auch in der klassischenSQL
Datenbank ist ein datenbanktypisches Format, derHistory
Adapter nutz glaube ich dasJSON
Format.Oder meinst Du die zwei
ioBroker
internenObjekt-
,Status
Datenbanken, die alsJSONL
vomioBroker
angelegt werden? Da ist dann aber der Zusammenhang zu der obigen Datenbanken nicht mehr gegeben, wenn damit Probleme, wegen irgendwelcher Flaschenhälse auftauchen, dann muss man sich tatsächlich wie @Blockmove geschrieben hat, mitRedis
auseinandersetzen, das ist aber ein ganz anderes Thema und ich würde dann lieber erst einmal von einer SD-Karte hin zu einer SSD am RasPI tendieren.VG
Bernd -
@dp20eic sagte in Datenbank, Historie, Trockner-Tracker:
der History Adapter nutz glaube ich das JSON Format.
jepp
jeder Tag ein Verzeichnis, darin jür jeden DP ein JSON -
Ich danke Euch für die weiteren Ausführungen.
Ich habe also gelernt, dass eine SQL-DB für den Betrieb von ioBroker erst bei wirklich viel Last notwendig wird und dass dafür Redis bereit steht.
Dass z.B. Node-Red eine SQL-DB benötigt habe ich gar nicht bedacht. War aber ja auch nur aus Interesse.Dann bin ich da ja gut unterwegs, starte erstmal mir dem History-Adapter und nehme mir dann irgendwann man Influx vor. SQL beherrsche ich prinzipiell, im Zweifel muss ich da aber bei inner-left-chuck-norris-Joints auch wieder nachlesen
Hab jetzt eine Idee, wie ich weiter machen kann. THX
-
@sammy-r said in Datenbank, Historie, Trockner-Tracker:
Dass z.B. Node-Red eine SQL-DB benötigt habe ich gar nicht bedacht. War aber ja auch nur aus Interesse.
Node RED braucht keine Datenbank. Jedoch ist Node RED das Schweizer Taschenmesser für IoT-Anwendungen.
Wenn man also einen Austausch zwischen ioBroker und einer Datenbank braucht, dann ist Node RED ein einfach handelbares Gateway -
@blockmove OK. Danke für die Korrektur, das hatte ich falsch verstanden.
-
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Ich habe also gelernt, dass eine SQL-DB für den Betrieb von ioBroker erst bei wirklich viel Last notwendig wird und dass dafür Redis bereit steht
Moin,
Du verdrehst da was, aber so richtig.
Bleib doch erste einmal nur bei den Datenbanken, da ist es so, dass einige/viele lieber eine "richtige" Datenbank haben wollen, nicht den
History
Adapter, denn der ist nur mitioBroker
internen Adaptern lauffähig, wohingegen, dieinfluxDB
oderSQL
Adapter die Anbindung an Datenbanken außerhalb desioBrokers
ermöglichen und dann kannst Du auch andere, mächtige Tools zur grafischen Darstellung nutzen, siehe -> https://play.grafana.org/dashboards.Redis
hat was mit den internenDatenbanken
desiobrokers
zu tun! Nicht mehr und nicht weniger, das hat nichts mit historischen Daten in einer Datenbank zu tun!VG
Bernd -
@dp20eic
Das hatte ich schon alles so verstanden.Ich habe im Moment aber nichts, was ausserhalb vom ioBroker 'existiert', geschweige denn Unmengen an Daten produziert. Deshalb möchte ich erstmal den kürzesten Weg zum Herumspielen mit Zeithistorien nutzen und das ist dann eben der History-Adapter.
Wenn dann das Thema Visualisierung ansteht oder sich eine 'echte' Anwendung auftut oder ich Lust auf Grafana & Co bekomme, dann installiere ich halt ein 'echte' DB.
Redis ist solange egal, wie ich keine Performance-Probleme oder Lust auf Stress habe -
@sammy-r sagte in Datenbank, Historie, Trockner-Tracker:
Redis ist solange egal, wie ich keine Performance-Probleme oder Lust auf Stress habe
Moin,
mir ging es nur darum, klarzustellen, dass
Rdeis
nichts mit Historisierung oderinfluxDB
,SQL
Datenbanken zu tun hat!VG
Bernd -
@dp20eic
Ja, das war mir nach den vorherigen Erklärungen klar.
Redis ist eine in Key-Value-In-Memory-DB, Historisierung/Zeitreihen sind optimal in InfluxDb oder auch SQL und SQL ist halt SQL
Vielleicht war Performance hier doppeldeutig. Das war auf das Verhalten vom Pi/ioBroker bezogen.
Aber auf jeden Fall besser, Du gehst auf Nummer sicher als dass ich voll gegen die Wand renneThx.