Visualisierung manueller Zeitreihenwerte

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

Antworten
frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

Visualisierung manueller Zeitreihenwerte

Beitrag von frankh »

Hallo,
Derzeit habe ich fuer einige meiner Fritz DECT Steckdosen einen grafischen Verlauf fuer Temperatur und Stromverbrauch per rrd4j in meine openHAB sitemap eingebaut.
Das geht mit Items, die automatisch und in regelmässigen Intervallen aktualisiert werden ganz gut. Ich suche allerdings noch eine Möglichkeit, die Stromerzeugung meiner Solartherme pro Tag/Woche/Monat etc anzuzeigen. Die Werte muss ich allerdings manuell eingeben, da es keine Möglichkeit gibt, die Werte direkt an der Anlage auszulesen.
Rrd4j ist da leider suboptimal, da die Werte nicht direkt in der rrd Datei eingetragen werden können . Über eine import Textdatei kann ich Tag/Wert jeweils fuer 1-2 Wochen in zwei Items per rule einlesen, allerdings ist mir noch nicht klar, wie ich den Tag String konvertieren muss, damit rrd4j diesen Wert auch als Zeitstempel akzeptiert.
Hat hierzu jemand eine gute Idee bzw einen besseren Ansatz ?

Benutzeravatar
udo1toni
Beiträge: 13857
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von udo1toni »

Was hast Du denn da am Laufen?
Eine Photovoltaikanlage produziert Strom. Eine Solarthermieanlage wird zur Wärmegewinnung genutzt, braucht aber Strom für die Wärmepumpe.

Ich nehme an, dass Du die Messwerte nicht wirklich von Hand eingeben willst, sondern lediglich bisher keine Möglichkeit gefunden hast, sie automatisiert zu übertragen. Die Frage ist also zunächst, wo die Textdatei her kommt.

Jegliche Datenbankanbindung von openHAB aus speichert ausschließlich den Messwert, es wird kein Zeitstempel von openHAB gesendet, darum kümmert sich die Datenbank Engine. Entsprechend kannst Du auch nicht über openHAB Messwerte in die Datenbank schreiben und mit einem bestimmten Zeitstempel versehen.
Am ehesten könntest Du so etwas mit eine SQL Datenbank machen (MariaDB wäre das, was hier gewöhnlich eingesetzt wird). Es ist recht einfach, Anfügeabfragen zu programmieren, welche Daten z.B. aus csv Dateien in eine Tabelle der Wahl einfügen. Du müsstest dann einfach nur ein Item definieren, welches einmalig einen Wert in openHAB zugewiesen bekommt und diesen Wert persistiert. Dadurch wird das Item in der Datenbank angelegt. Nun hast Du eine Tabelle zur Verfügung, in die Du Deine Werte hineinschreiben kannst, wie gesagt mit einer Anfügeabfrage.

Ich möchte aber dringend dazu raten, stattdessen eigene Sensoren zu verbauen und diese in openHAB einzubinden, je nachdem, was gemessen werden soll, gibt es da unterschiedliche Möglichkeiten. Für Temperaturen gäbe es z.B. 1-Wire Sensoren, die Du auch dezentral über kleine Microcontroller anbinden kannst (z.B. Wemos D1), für Strommessung gibt es verschiedene Mssmodule, welche je nach Modell auch drahtlos oder auch über Messprotokolle an openHAB angebunden werden können, so wie die gewöhnlichen Haushaltszähler auch.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von frankh »

in der Tat pflege ich die Messwerte manuell in eine Excel Datei. Die Solartherme liefert die Werte nur an die Heizungsanlage und von dort gibt es leider keine API zum Auslesen der Werte. Fuer jeden Tag laesst sich dann der erzeugte Solarwert in kwh ablesen. Die Werte lese ich dann einmal in der Woche ab und trage sie in die Excel Datei ein.
An MariaDB hatte ich auch schon gedacht, da ich die auch fuer meinen Nextcloud Server nutze. Allerdings brauche ich dann trotzdem zwei Items, um den jeweiligen Tag als Zeitstempel fuer die Visualisierung dem Wert zuordnen zu koennen , oder nicht ?
Separate Sensoren an die Therme haengen habe ich noch gar nicht betrachtet. Da fehlt mir momentan das Basiswissen, dh welche Sensoren koennen wo an der Therme die Werte auslesen. Ein D1 waere dann das kleinere Problem, weil bereits der ein oder andere D1 mit dem openHAB Server verbunden ist.

Benutzeravatar
udo1toni
Beiträge: 13857
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von udo1toni »

frankh hat geschrieben: 20. Apr 2022 14:22 in der Tat pflege ich die Messwerte manuell in eine Excel Datei. Die Solartherme liefert die Werte nur an die Heizungsanlage und von dort gibt es leider keine API zum Auslesen der Werte. Fuer jeden Tag laesst sich dann der erzeugte Solarwert in kwh ablesen. Die Werte lese ich dann einmal in der Woche ab und trage sie in die Excel Datei ein.
Das würde mich ja extrem nerven. :) Immerhin kannst Du offensichtlich wenigstens die Tageswerte als Liste ablesen oder zumindest durchblättern, aber trotzdem...
frankh hat geschrieben: 20. Apr 2022 14:22 An MariaDB hatte ich auch schon gedacht, da ich die auch fuer meinen Nextcloud Server nutze. Allerdings brauche ich dann trotzdem zwei Items, um den jeweiligen Tag als Zeitstempel fuer die Visualisierung dem Wert zuordnen zu koennen , oder nicht ?
Nö. Du legst das Item an und persistierst einen Wert (das ist wichtig, weil openHAB die Tabelle für das Item selbst erzeugen will). Die Tabelle hat zwei Spalten, time und value. Dabei ist time mit einem Index versehen und wird mit dem aktuellen Zeitstempel gefüllt. Der Zeitstempel ist ein Long Wert (Millisekunden seit 01.01.1970, 00:00:00.000 Uhr). Dieser Zeitstempel lässt sich also hervorragend kalkulieren. Die Spalte time muss etwas angepasst werden, weil sie als default Wert current_timestamp(3) ON UPDATE current_timestamp(3) eingetragen hat, im Zweifel wird sie also den gelieferten Wert einfach überbügeln, aber das lässt sich ja problemlos abschalten, wenn man ein SQL Frontend hat oder aber mit SQL umgehen kann :). Es ist aber auch möglich, dass ein gelieferter Wert übernommen wird, das müsste man halt ausprobieren. value ist der eigentliche Messwert.
frankh hat geschrieben: 20. Apr 2022 14:22 Separate Sensoren an die Therme haengen habe ich noch gar nicht betrachtet. Da fehlt mir momentan das Basiswissen, dh welche Sensoren koennen wo an der Therme die Werte auslesen. Ein D1 waere dann das kleinere Problem, weil bereits der ein oder andere D1 mit dem openHAB Server verbunden ist.
Die größte Herausforderung dabei ist, Stellen zu finden, wo man solche Sensoren thermisch gut koppeln kann. Gewöhnlich gibt es dafür extra Rohrstücke, in denen die Sensoren in das Medium eintauchen, nur durch eine dünne Kupferwand getrennt. Es gibt aber auch die Möglichkeit, einfach den Sensor fest auf das Rohr zu klemmen und die Isolation anschließend drüber zu schieben. Selbst wenn die Messgenauigkeit abweicht, wird es nach dem Kalibrieren vielleicht eine Toleranz von 1% - 2% geben, dafür aber einen Messwert alle 30 Sekunden (oder in jedem anderen beliebigen Zeitabstand, kommt ja dann nur auf die Parametrierung an).
Ich gehe davon aus, dass Du mindestens jeweils Vor- und Rücklauf beider Kreise der Wärmepumpe erfassen musst. Den Durchfluss kannst Du natürlich nicht messen, also auch keine Bestimmung der Energiemenge, aber mit den erfassten Werten hast Du zumindest einen groben Temperaturverlauf.
Falls es Durchflussmengenzähler gibt, könnte man versuchen, das Signal passiv abzugreifen, z.B. mit einem Hallsensor, einem Reed Kontakt oder auch einem Optokoppler, da kommt es halt sehr auf die Schaltung der Heizungssteuerung an, was geht. Mit Durchflussmenge und Temperaturdifferenz könntest Du dann sogar einen Wärmemengenzähler programmieren (das nötige Wissen um die Formeln mal vorausgesetzt, das kann man ja auch ergooglen).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von frankh »

Der manuelle Weg nervt total :-)
Ich werde mich erstmal mit dem mariaDB Ansatz beschaeftigen. Mit dem Datumswert muss ich rumprobieren. Bin mir nicht sicher, ob ich das schon aus deiner Beschreibung verstanden habe. Bis jetzt habe ich in dem Excel das Format
TagX:WertX
TagY:WertY
TagZ:WertZ
...
Fuer den Fall, dass ich mal eine Woche verpasse (abgelesen werden koennen immer nur die beiden letzten Wochen) - gebe ich ein fixes Datum mit. Ist halt manuell - also worst case lueckenhaft.

Der Weg ueber zusaetzliche Sensorik macht natuerlich mehr Spass - wird aber ehr ein Zukunftsprojekt. Evtl ist der D1 ausserhalb des WLAN Bereichs , dh da summieren sich irgendwann die Herausforderungen gemessen am direkten Nutzen :-)

AirMR
Beiträge: 15
Registriert: 28. Aug 2019 14:45

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von AirMR »

Hallo,
ich hänge mich mal hier drauf da ich eigentlich genau dasselbe mache. Excel liste pflegen und diese Daten dann in Grafana ausgeben.
Ich würde das Ganze aber gerne über OH laufen lassen. D.h. die Daten über irgendeine Weise in OH importieren und in die InfluxDB schreiben.
Bisher habe ich durch googeln etc. noch nichts dazu gefunden.

Gibt es eine Möglichkeit einen item in OH manuell mit einem Wert zu belegen und dieses dann über persistence in der InfluxDB zu speichern?

Danke und Gruß

frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von frankh »

Hallo,

das mit dem importieren habe ich noch nicht probiert - da gibt es bestimmt auch eine oder mehrere Lösungen. Fehlt mir aber aktuell die Zeit. Im Moment nutze ich eine "quick & dirty" Lösung, dh die Werte erfasse ich weiterhin in einem Excel, um sie dann irgendwann in eine mariaDB oder irgendeine SQL Datenbank zu importieren und weiterzuverarbeiten. Die aggregierten Werte fuer Strom, Gas, Wasser , Solartherme etc "importiere" ich dann manuell in OH, dh ich aktualisiere die Item Werte in einer rule und kann sie dann ueber die persistence Funktion in OH visualisieren ueber Wochen/Monate.
Nicht schön - aber liefert erstmal das, was ich möchte, nämlich eine Zeitreihensicht über einen längeren Zeitraum. Die Tageswerte brauche ich dazu erstmal nicht. Wäre auch zu mühsam , die an den verschiedenen Zählern abzulesen, da zB die Heizung/Solartherme kein always-on display hat und ich somit nicht mal mit einer ESP-Cam die Werte auslesen kann.

.items Datei
Number Solar_KWH_Woche "Solartherme Wochen KwH [%.1f ]"

.rule
sendCommand(Solar_KWH_Woche, #abgelesenerWert)

.sitemap
Switch item=CHART_PERIOD label="Solartherme Wochenleistungen" mappings=[0="Tag", 1="Woche", 2="Monat"]
Chart item=Solar_KWH_Woche period=W refresh=300 visibility=[CHART_PERIOD==1]
Chart item=Solar_KWH_Woche period=W refresh=1800 visibility=[CHART_PERIOD==1]
Chart item=Solar_KWH_Woche period=M refresh=3600 visibility=[CHART_PERIOD==2]

Zähler ablesen finde ich alles sehr aufwendig bei der zum Teil steinzeitlichen Technik, die wir in Deutschland verbaut haben. Bei meiner Balkon PV kann ich die Werte einfach am Wechselrichter oder an der Steckdose ablesen. Wobei der Vorteil der Steinzeittechnik ein geringer bis gar kein Stromverbrauch und die "Unkaputtbarkeit" ist :-)

AirMR
Beiträge: 15
Registriert: 28. Aug 2019 14:45

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von AirMR »

Hallo Frank,

danke für den post.
genauso habe ich es jetzt auch realisiert.

Danke und Gruß

Benutzeravatar
udo1toni
Beiträge: 13857
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Visualisierung manueller Zeitreihenwerte

Beitrag von udo1toni »

Es gibt für jede Art Zähler auch eine Technik, die Zählerstände autoamtisch zu erfassen, z.B. über automatische Bilderkennung der Zählerstände. Aber zweifelsohne ist das ein aufwändiges Bastelprojekt, aber es gibt fertige Anleitungen im Netz.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten