Integral für Daten-Logger?

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten
Benutzeravatar

Ersteller
Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

Integral für Daten-Logger?

#1

Beitrag 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?
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Robert_Mini
Reactions:
Beiträge: 3907
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1275 Mal
Danksagung erhalten: 2220 Mal

#2

Beitrag 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
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10804
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5338 Mal
Danksagung erhalten: 8903 Mal
Kontaktdaten:

#3

Beitrag 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
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Benutzeravatar

Ersteller
Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

#4

Beitrag 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.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10804
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5338 Mal
Danksagung erhalten: 8903 Mal
Kontaktdaten:

#5

Beitrag 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
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Benutzeravatar

Ersteller
Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

#6

Beitrag 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)
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10804
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5338 Mal
Danksagung erhalten: 8903 Mal
Kontaktdaten:

#7

Beitrag 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
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Benutzeravatar

Ersteller
Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

#8

Beitrag 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)
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Robert_Mini
Reactions:
Beiträge: 3907
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1275 Mal
Danksagung erhalten: 2220 Mal

#9

Beitrag 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
Zuletzt geändert von Robert_Mini am Sa Jun 15, 2019 10:12 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“