Seite 1 von 1

Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 11:30 am
von Chris M.
Als eine der ersten WireGate Logiken wollte ich meinen Daten-Logger übertragen.

Nun habe ich aber verschiedene Größen, von denen ich das Integral loggen möchte (z.B. wenn der Schaltaktor einen Strom misst und sendet, ich aber per Integrieren daraus die verbrauchte Energie abschätzen möchte).

Gibt's da schon eine Lösung für?

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 11:49 am
von Robert_Mini
Hallo Chris!

Glaube das gibt es noch nicht, denke wir brauchen hierzu ein paar FR:
- Integrator mit Reset-Eingang als Basisbaustein
- Advanced Energiebaustein: Integrator, Ausgabe des Energieverbrauchs der letzten Stunde (gleitend?), Heute, Vortag, aktuelles Monat, Vormonat, aktuelles Jahr.

lg
Robert

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 12:42 pm
von StefanW
Wir haben das bei uns im Haus - mit er Strommessung - so gelöst, dass wir die Meldungen jeweils in einer Zeitserie aufzeichnen und das integrieren dann der Auswertung durch Grafana überlassen.

Es ist angedacht - das auch in der Logik zu ermöglichen, in dem man zyklische SQL-Abfragen - die dann zu einem SQL-Objekt führen, ermöglicht. Damit hat man die Daten sowohl in der zeitlichen Abfolge und berechnet die Integrale daraus dann zu gegebener Zeit. Durch die Aufzeichnung in der Zeitserie sind die Dinge auch persistent.

lg

Stefan

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 1:23 pm
von Chris M.
InfluxDB kann integrieren - und damit sowohl die Anzeige in Grafana als auch im CometVisu Diagram. Das ist klar.

Bei mir geht es konkret darum, dass ich halt schon eine Zeitreihe (als RRD) im aufintegrierten Format habe, d.h. hier geht es darum mit der Vergangenheit kompatibel zu bleiben. Neu hätte ich es nativ gelöst (s.o.).

Davon unabhängig ist bei einer universelleren Logik (insb. als Bestandteil von Custom Logiken) ein Integrator-Block interessant -> FR wie @Robert_Mini geschrieben hat.
Grundsätzlich braucht der die Möglichkeit (= optionaler Eingang) für einen Initial-Wert ("IV") und einen Reset Eingang und sollte damit eigentlich vollständig und universell sein.

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 2:12 pm
von StefanW
Ok,

woher kommt dann der Initialwert? Aus einer (noch zu schaffenden) persistenten Schicht?

==> Bitte den FR als FR und mit mehr Details beschreiben bitte. Also welche Eingänge, Ausgänge, Berechnungsfunktionen. Desto besser beschrieben, desto genauer können wir mit einem passenden Baustein auch den Bedarf treffen.

lg

Stefan

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 3:07 pm
von Chris M.
Funktion / Block das das Integral des Eingangs über die Zeit berechnet.

Eingang:
- Wert der zu integrieren ist
- optional: Enable/Disable der Berechnung
- optional: Initialwert (wird bei erstmaligem Aufruf so wie bei Reset verwendet), Default = 0
- optional: Resel - Setzt des Ausgang auf den Initialwert und integriert wieder von dort los
Ausgang:
- der integrierte Wert

Berechnung/Update des Blocks immer dann wenn es einen neuen Wert am Eingang gibt, so wie in einem zeitlichen Rhythmus (einstellbar)

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 4:29 pm
von StefanW
oki, danke, verstanden.

Den zeitlichen Rhythmus kann man mit den Trigger-Eingänge realisieren. Da kann man ein Objekt drauflegen oder einen Timer.

Was ist wenn da Werte von einem Zähler kommen der aufintegriert? Da bräuchte man doch erst noch etwas, dass daraus erstmal die Differenz aus dem aktuellen und dem vorstehenden Zählerstand ermittelt um diese Differenz dann zu integrieren.

Beispiel ein Energiezähler der Pulse ausgibt an einer zählenden Tasterschnittstelle, welche den Zählerstand weitergibt.

lg

Stefan

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 6:06 pm
von Chris M.
Wenn Du ein Differential bzw. eine Rate brauchst, dann muss das ein solcher Block machen.

Den Wert von einem Summierer/Zähler aufzuintegrieren kann man schon machen - aber dann ist dann halt das Integral des Aufsummierers... :D

Für die gerade von Dir angesprochene Aufgabe ist ein Integral nicht wirklich gedacht - zumindest nicht direkt: ein wirklicher Puls wäre ja unendlich kurz und folglich bleibt das Integral darüber bei 0.
Lösung: Nehme einen Summierer, der bei jedem Event des Pulses um 1 nach oben zählt und parallel dazu ein Integral über den konstanten Wert "1". Wenn Du nun den Wert "Summierer geteilt durch Integral" ausrechnest hast Du wunderbar die Impulse in eine Rate umgerechnet - wenn die z.B. vom Stromzähler kommen also die aktuell bezogene Leistung ausgerechnet.
Damit das langzeitstabil ist muss nun noch das Thema Überlauf (bzw. schon wesentlich vorher die numerische Auslöschung) bedacht werden, dazu wird einfach in geeignetem Abstand ein Reset des Summierers und Integrals benötigt. (Wer das perfekt hinbekommen möchte muss da dann den Initialisierungswert des Summierers auf 1 und nicht auf 0 setzen und den Initialisierungswert auf 1/letzte Rate)

Re: Integral für Daten-Logger?

Verfasst: Sa Jun 15, 2019 10:09 pm
von Robert_Mini
Hallo zusammen!

Keep it simple.
- Einfacher Integrierer mit Reset und Startwert wie oben beschrieben für zb Leistung => Energie
- Damit kann man auch Impulsgeber (Regen, Stromzähler) abdecken => Impulse integrieren und mit einer Konstante (Regenmenge oder kwh/Impuls) multiplizieren

Was Fehlt ist die Rückrechnung von Impuls und Zeitpunkt auf den Differentialwert.
Ich würde mir dafür einen Zeitbaustein wünschen, in dem man in einer Customlogik die Linuxzeit in ms auslesen kann. Damit kann man dann aus (kwh/impuls)/(Zeit_akt - Zeit_last) die zb Leistung oder Regenintensität ausrechnen.
Ggf. muss man darüber einen gleitenden Mittelwert (weiterer Baustein) legen.

Das wären meine Anforderungen mit denen ich viele meiner plugins ablösen könnte.
Auch kann mit so einem Zeitbaustein eine Telegrammratenbegrenzung realisiert werden (AND t - t_last > dt_min).

Den Zeitbaustein stelle ich mir ähnlich dem Astro Baustein vor.
- Triggereingang (periodisch oder Telegramm)
- Ausgang mit Linuxzeit in ms und sec, min, h, woche, monat und jahr als einzelne optionale Ausgänge.

Lg
Robert