Integral für Daten-Logger?
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
-
- 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?
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?
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
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
-
- Reactions:
- Beiträge: 3907
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1275 Mal
- Danksagung erhalten: 2220 Mal
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
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
-
- 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:
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
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.
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.
-
- Reactions:
- Beiträge: 1225
- Registriert: Sa Aug 11, 2018 10:52 pm
- Wohnort: Oberbayern
- Hat sich bedankt: 250 Mal
- Danksagung erhalten: 887 Mal
- Kontaktdaten:
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.
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
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
-
- 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:
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
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.
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.
-
- Reactions:
- Beiträge: 1225
- Registriert: Sa Aug 11, 2018 10:52 pm
- Wohnort: Oberbayern
- Hat sich bedankt: 250 Mal
- Danksagung erhalten: 887 Mal
- Kontaktdaten:
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)
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
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
-
- 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:
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
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.
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.
-
- Reactions:
- Beiträge: 1225
- Registriert: Sa Aug 11, 2018 10:52 pm
- Wohnort: Oberbayern
- Hat sich bedankt: 250 Mal
- Danksagung erhalten: 887 Mal
- Kontaktdaten:
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...
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)
Den Wert von einem Summierer/Zähler aufzuintegrieren kann man schon machen - aber dann ist dann halt das Integral des Aufsummierers...

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
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
-
- Reactions:
- Beiträge: 3907
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1275 Mal
- Danksagung erhalten: 2220 Mal
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
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