Eine wirklich richtige Lösung wird es aber weder mit dem Tiefpass noch mit jeder anderen potentiell denkbaren nachgeschalteten Logik.
Ich denke ein Ansatz könnte sein herauszufinden, welcher der beiden Werte zuerst vom Sensor gesendet wird. Dann müßte man das Eintreffen des zweiten Wertes als Trigger für die Addition verwenden.
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
[Gelöst] Zwei Werte synchron aufaddieren
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: 309
- Registriert: Mi Sep 05, 2018 1:09 pm
- Hat sich bedankt: 575 Mal
- Danksagung erhalten: 128 Mal
Zuletzt geändert von terseek am Mo Feb 21, 2022 11:22 pm, insgesamt 1-mal geändert.
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: 1908
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 643 Mal
- Danksagung erhalten: 797 Mal
Einfachste Lösung : Tiefpass, würde ich damit wohl machen.
Alternative im Custom Code: Du könntest ermitteln, ob das aktuelle Ergebnis des Codes ( bevor Du ihn auf den Ausgang schreibst) größer als z.B. 0,5 % vom vorherigen Ergebniswert abweicht) und wenn ja, änderst Du den Ausgang nicht. Ob dafür die Sprunghöhen ausreichend sind, bin ich mir aber nicht sicher.
Alternative im Custom Code: Du könntest ermitteln, ob das aktuelle Ergebnis des Codes ( bevor Du ihn auf den Ausgang schreibst) größer als z.B. 0,5 % vom vorherigen Ergebniswert abweicht) und wenn ja, änderst Du den Ausgang nicht. Ob dafür die Sprunghöhen ausreichend sind, bin ich mir aber nicht sicher.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 373
- Registriert: Di Okt 02, 2018 4:28 pm
- Wohnort: St. Ilgen, Baden-Württemberg
- Hat sich bedankt: 130 Mal
- Danksagung erhalten: 113 Mal
- Kontaktdaten:
Man könnte auch alles was mehr als 5 hPa von der letzten Messung abweicht als offensichtlichen Messfehler ignorieren. Dann ignoriert man bei einem Ausreißer zwei Werte (die beiden Flanken, nach dem zweiten Leseprozess sind die beiden Werte wieder zusammen passend), der dritte passt wieder, wird genommen und am Ende sieht das so aus als würden da einfach zwei Werte fehlen.Robosoc hat geschrieben: ↑Di Feb 22, 2022 6:36 am Alternative im Custom Code: Du könntest ermitteln, ob das aktuelle Ergebnis des Codes ( bevor Du ihn auf den Ausgang schreibst) größer als z.B. 0,5 % vom vorherigen Ergebniswert abweicht) und wenn ja, änderst Du den Ausgang nicht. Ob dafür die Sprunghöhen ausreichend sind, bin ich mir aber nicht sicher.
Beispiel:
Zeitpunkt | Wert A | Wert B | Summe | Ergebnis |
---|---|---|---|---|
1 | 990 | 1 | 991 | akzeptiert |
2 | 990 | 9 | 999 | abgelehnt |
3 | 980 | 9 | 989 | akzeptiert |
4 | 980 | 7 | 987 | akzeptiert |
Ich versuch das mal.
Grüße
Marc
Zuletzt geändert von Zugschlus am Di Feb 22, 2022 2:45 pm, insgesamt 1-mal geändert.
--
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.
-
- Reactions:
- Beiträge: 1908
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 643 Mal
- Danksagung erhalten: 797 Mal
Ja, eas meinte ich ja und entspricht etwa den 0,5%
Aber bei dem Fehler ganz rechts in Deinem Screenshot könnte es schon sein, dass es nicht mehr funktioniert. Da hast Du einen vergleichsweise lang anliegenden Fehlerwert, der zu klein ist, während der eigentlich korrekte Messwert steigt...aber probiere es mal...zumindest ist es eine gute CustomCode Übung.
Aber bei dem Fehler ganz rechts in Deinem Screenshot könnte es schon sein, dass es nicht mehr funktioniert. Da hast Du einen vergleichsweise lang anliegenden Fehlerwert, der zu klein ist, während der eigentlich korrekte Messwert steigt...aber probiere es mal...zumindest ist es eine gute CustomCode Übung.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 1908
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 643 Mal
- Danksagung erhalten: 797 Mal
Zu deinem Customcode hätte ich noch zwei Hinweise...aber nichts Falsches oder so.
Du hast bei den Ein- und Ausgängen den Namen (Parameter 1)und die Beschreibung/Tooltipp (Parameter2) gleich gewählt...das ist irgendwie sinnlos...wenn ich meine den Tooltipp nicht zu brauchen , lasse ich ihn tatsächlich leer = "", ansonsten fülle ich ihn gerne auch mit längerem Text, der mir den gewünschten Inthalt des Wertes genauer erklärt. Aber so wie Du es jetzt gemacht hast funktioniert es natürlich, ich war mir bloß nicht sicher, ob Du den Zweck des zweiten Parameters kanntest.
Du hast jeden Ein- und Ausgang mit dem Verhalten a definiert. Das ist an sich auch nicht falsch und du kannst es ja in der GUI überschreiben. Aber das birgt eine Gefahr. Solltest Du das Verhalten in der GUI umdefiniert haben und den CustomCode nachträglich mal ändern oder die Zelle kopieren, verlierst Du die in der GUI definierten Verhalten...deshalb würde ich dringend empfehlen das Triggerverhalten bereits im Code korrekt zu definieren.
Du hast bei den Ein- und Ausgängen den Namen (Parameter 1)und die Beschreibung/Tooltipp (Parameter2) gleich gewählt...das ist irgendwie sinnlos...wenn ich meine den Tooltipp nicht zu brauchen , lasse ich ihn tatsächlich leer = "", ansonsten fülle ich ihn gerne auch mit längerem Text, der mir den gewünschten Inthalt des Wertes genauer erklärt. Aber so wie Du es jetzt gemacht hast funktioniert es natürlich, ich war mir bloß nicht sicher, ob Du den Zweck des zweiten Parameters kanntest.
Du hast jeden Ein- und Ausgang mit dem Verhalten a definiert. Das ist an sich auch nicht falsch und du kannst es ja in der GUI überschreiben. Aber das birgt eine Gefahr. Solltest Du das Verhalten in der GUI umdefiniert haben und den CustomCode nachträglich mal ändern oder die Zelle kopieren, verlierst Du die in der GUI definierten Verhalten...deshalb würde ich dringend empfehlen das Triggerverhalten bereits im Code korrekt zu definieren.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 373
- Registriert: Di Okt 02, 2018 4:28 pm
- Wohnort: St. Ilgen, Baden-Württemberg
- Hat sich bedankt: 130 Mal
- Danksagung erhalten: 113 Mal
- Kontaktdaten:
So sieht das jetzt aus:
Code: Alles auswählen
{
"_Meta": { // Optional
"Description": "",
"Version": "1.00",
"Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
},
"Input": [
["Summand","Summand","$VAR<Summand!>","ai"],
["Differenz","Differenz","$diff","ai"]
],
"Output": [
["LimLow","LimLow","$LimLow","a"],
["LimHigh","LimHigh","$LimHigh","a"],
["CompRes","CompRes","$CompRes","a"],
["Luftdruck","Luftdruck","$Out","c"],
["Summe","Summe","$Summe","a"],
["Dummy","Dummy","$Dummy","a"],
["Valid","Valid","$Valid","a"]
],
"Module": [
["Polynomial","$ConstOne","$Summe",["$VAR<Summand!>"]],
["CalcFormula",["$Summe","$diff"],"$LimLow","$SubFormel"],
["CalcFormula",["$Summe","$diff"],"$LimHigh","$AddFormel"],
["Limiter","$Out","$Dummy","$Valid",["$LimLow","$LimHigh"]],
["Latch","$Summe","$Intermed","$Valid",0],
["Multiplexer", ["$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Summe", "$Intermed"],"$Out","$Out"]
],
"Level": [
["$VAR<Summand!>","float",0],
["$diff","float",0],
["$Summe","float",0],
["$LimLow","float",0],
["$LimHigh","float",0],
["$CompRes","float",0],
["$AddFormel","string","X1+X2"],
["$SubFormel","string","X1-X2"],
["$Dummy","float",0],
["$Valid","bool",true],
["$Intermed","float",0],
["$Out","float",0],
["$ConstOne","float",1]
]
}

Das funktioniert jetzt seit Februar, und in der Zeit in der es funktioniert hat, habe ich wohl vergessen wie das Ding funktioniert. Also, bloß nicht anfassen

Grüße
Marc
--
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.