KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor
KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum
Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki
[Beantwortet] Logik zur Werteaggregierung
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: 379
- Registriert: So Aug 26, 2018 5:59 pm
- Wohnort: Herborn
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 237 Mal
Logik zur Werteaggregierung
Hallo zusammen,
wie ich hier beschrieben habe, habe ich nun meinen Smappee Energiemonitor via MQTT mit meinem Wolf verbunden. Allerdings werden die Werte im Sekundentakt geliefert (nicht einstellbar) und ich habe die Befürchtung, dass ich damit früher oder später die InfluxDB oder die Auswertung in Grafana überstrapaziere.
Ich suche nun eine Logik, die diese Werte auf einem Eingang im Sekundentakt annimmt und daraus einen Mittelwert der z.B. letzten 10 Sekunden bildet, und diesen dann alle 10 Sekunden auf den Ausgang gibt.
Hat jemand eine Idee wie man das realisieren könnte? Am liebsten mit einem Standardbaustein, zur Not aber auch mit einer Custom Logik.
VG
Earl
wie ich hier beschrieben habe, habe ich nun meinen Smappee Energiemonitor via MQTT mit meinem Wolf verbunden. Allerdings werden die Werte im Sekundentakt geliefert (nicht einstellbar) und ich habe die Befürchtung, dass ich damit früher oder später die InfluxDB oder die Auswertung in Grafana überstrapaziere.
Ich suche nun eine Logik, die diese Werte auf einem Eingang im Sekundentakt annimmt und daraus einen Mittelwert der z.B. letzten 10 Sekunden bildet, und diesen dann alle 10 Sekunden auf den Ausgang gibt.
Hat jemand eine Idee wie man das realisieren könnte? Am liebsten mit einem Standardbaustein, zur Not aber auch mit einer Custom Logik.
VG
Earl
Wiregate#1504 + PBM
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
-
- Reactions:
- Beiträge: 2200
- Registriert: So Aug 12, 2018 1:38 pm
- Wohnort: Karlsruher Raum
- Hat sich bedankt: 492 Mal
- Danksagung erhalten: 897 Mal
Wie wäre es mit einem Tiefpass eingangsseitig und senden des Outputs per Timer?
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit
-
- Reactions:
- Beiträge: 379
- Registriert: So Aug 26, 2018 5:59 pm
- Wohnort: Herborn
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 237 Mal
top, funktioniert!
und nach ein wenig Suchen im Forum habe ich auch entsprechende Anleitung gefunden:
viewtopic.php?f=24&t=1524&p=15889&hilit=tiefpass#p15889
VG
Earl
und nach ein wenig Suchen im Forum habe ich auch entsprechende Anleitung gefunden:
viewtopic.php?f=24&t=1524&p=15889&hilit=tiefpass#p15889
VG
Earl
Wiregate#1504 + PBM
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
-
- Reactions:
- Beiträge: 309
- Registriert: Mi Sep 05, 2018 1:09 pm
- Hat sich bedankt: 575 Mal
- Danksagung erhalten: 128 Mal
Ob man das so machen kann hängt davon ab, was Du mit den Werten anfangen möchtest. Wenn Du den zeitlichen Verlauf der Leistung beobachten möchtest, ist diese Lösung wahrscheinlich gut genug.
Wenn Du allerdings aus den Leistungswerten Deinen Energieverbrauch bestimmen willst könnte der Tiefpass Fehler verursachen. Dazu würdest Du nämlich genau den Durchnittswert der Einzelwerte benötigen und ob der Tiefpass das liefert ist mindestens fraglich und müsste ggf. geklärt werden.
TWS 2600 ID:186 + 3 PBM, VPN offen, Reboot nach Vereinbarung
TWS 3500L ID:895 + 1 PBM, VPN offen, Reboot nach Vereinbarung
TWS 3500L ID:895 + 1 PBM, VPN offen, Reboot nach Vereinbarung
-
- Reactions:
- Beiträge: 379
- Registriert: So Aug 26, 2018 5:59 pm
- Wohnort: Herborn
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 237 Mal
@terseek hast du denn eine bessere Idee? So für den Fall, dass ich darüber den Energieverbrauch bestimmen wollte?
VG
Earl
VG
Earl
Wiregate#1504 + PBM
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
-
- Reactions:
- Beiträge: 1908
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 643 Mal
- Danksagung erhalten: 797 Mal
Ich denke, das wird ohne Customlogik nicht gehen...
Zumindest wenn man annehmen darf dass der Wert wirklich genau 1x je Sekunde geliefert wird. Wenn man jedoch (um die Genauigkeit zu erhöhen) auch Zeitstempel nutzen will, wird es komplizierter...denn ich denke mal der Leistubgszähler liefert keinen Zeitstempel auf einem zweiten GA, oder?
Zumindest wenn man annehmen darf dass der Wert wirklich genau 1x je Sekunde geliefert wird. Wenn man jedoch (um die Genauigkeit zu erhöhen) auch Zeitstempel nutzen will, wird es komplizierter...denn ich denke mal der Leistubgszähler liefert keinen Zeitstempel auf einem zweiten GA, oder?
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 309
- Registriert: Mi Sep 05, 2018 1:09 pm
- Hat sich bedankt: 575 Mal
- Danksagung erhalten: 128 Mal
Leider nein, habe zwar schon ein paar ganz einfache Logiken im Einsatz, aber was Du hier brauchst übersteigt meine Fähigkeiten.
TWS 2600 ID:186 + 3 PBM, VPN offen, Reboot nach Vereinbarung
TWS 3500L ID:895 + 1 PBM, VPN offen, Reboot nach Vereinbarung
TWS 3500L ID:895 + 1 PBM, VPN offen, Reboot nach Vereinbarung
-
- Reactions:
- Beiträge: 379
- Registriert: So Aug 26, 2018 5:59 pm
- Wohnort: Herborn
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 237 Mal
@Robosoc die Werte kommen über MQTT im Json Format und beinhalten tatsächlich auch jeweils einen Timestamp.
Der update Intervall ist sollte exakt eine Sekunde sein. Da der Timestamp aber eine Genauigkeit von nur einer Sekunde hat, wird die vermutlich nicht sonderlich hilfreich sein.
Von dem her wäre ein durchschnitt über die letzten x Werte hinreichend genau für meinen Anwendungsfall.
Der update Intervall ist sollte exakt eine Sekunde sein. Da der Timestamp aber eine Genauigkeit von nur einer Sekunde hat, wird die vermutlich nicht sonderlich hilfreich sein.
Von dem her wäre ein durchschnitt über die letzten x Werte hinreichend genau für meinen Anwendungsfall.
Wiregate#1504 + PBM
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
-
- Reactions:
- Beiträge: 1908
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 643 Mal
- Danksagung erhalten: 797 Mal
Sollte funktionieren...Du kannst über einen Eingang die Sprungweite einstellen...zum Testen habe ich da mit dem Wert 3 und 5 gearbeitet. Default ist 10, falls Du nichts vorgibst.
Code: Alles auswählen
/**
* Durchschnitt über Anzahl von Werten berechnen / Wert-Aggregation
* https://forum.timberwolf.io/viewtopic.php?f=24&t=3025&sid=879f2f2e9efcd6fc4c2058b515b49af7
*
* Nutzungsrechte:
* Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.
*/
{
"Level": [
["$In","float",0.0],
["$Mittel","float",0.0],
["$Integral","float",0.0],
["$Zwischenwert","float",0.0],
["$n","integer",10],
["$counter","integer",0],
["$counter+1","integer",0],
["$Reset","bool",false],
["$const_1","integer",1],
["$VAR<Inhibit?>","bool",false]
],
"Module": [
["Break", ["$VAR<Inhibit?>"]],
["Polynomial", "$In", "$Integral",["$Integral", "$const_1"]],
["Polynomial", "$const_1", "$counter",["$counter", "$const_1"]],
["Ratio" , "$Integral" , "$Zwischenwert" , "$counter"],
["Polynomial", "$const_1", "$counter+1",["$counter", "$const_1"]],
["Comparator" , "$counter+1" , "$Reset" , "$n"],
["Latch","$Zwischenwert","$Mittel","$Reset",1],
["Latch",0,"$counter","$Reset",1],
["Latch",0,"$Integral","$Reset",1]
],
"Input": [
["Messwert","Eingang, der regelmässig mit einem neuen Wert versorgt wird.","$In","a"],
["Anzahl Werte","Anzahl der Werte, über die der Durchschnitt gerechnet werden soll","$n","u"],
["Inhibit","Inhibit","$VAR<Inhibit?>","u"]
],
"Output": [
["Mittelwert","","$Mittel","c"],
["Zwischenwerte","","$Zwischenwert?","c"]
]
}
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 379
- Registriert: So Aug 26, 2018 5:59 pm
- Wohnort: Herborn
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 237 Mal
@Robosoc besten Dank, die Custom Logik funktioniert einwandfrei.
Hier auch gleich mal ein Screenshot der den Unterschied der Custom Logik (blau) zur Tiefpass Logik (rot) zeigt. Beide sind so eingestellt, dass sie die sekündlich ankommenden Werte (grün) in eine 10 Sekunden Aggregation zusammenfassen.
zum einen läuft die Tiefpass Logik dem zeitlichen Verlauf nochmals mindestens eine Iteration weiter hinter her. Zum anderen scheint der Tiefpass mit der momentanen Einstellung unter Umständen sensibel für sich regelmäßig wiederholende Spitzen zu sein.

Hier auch gleich mal ein Screenshot der den Unterschied der Custom Logik (blau) zur Tiefpass Logik (rot) zeigt. Beide sind so eingestellt, dass sie die sekündlich ankommenden Werte (grün) in eine 10 Sekunden Aggregation zusammenfassen.
zum einen läuft die Tiefpass Logik dem zeitlichen Verlauf nochmals mindestens eine Iteration weiter hinter her. Zum anderen scheint der Tiefpass mit der momentanen Einstellung unter Umständen sensibel für sich regelmäßig wiederholende Spitzen zu sein.

Wiregate#1504 + PBM
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu
Timberwolf 950Q #233
Timberwolf 3500XL #1459 + PBM/ VPN aktiv / Reboot OK
EFH mit KNX, 1-Wire, DMX, MQTT (RTC PV, OpenWB, AWtrix, OpenDTU), HTTP API (Tibber)
Docker: MQTT Broker, Unifi WLAN Controller, NodeJS, CometVisu