Verständnisproblem mit log und event-on-change-reading

Begonnen von devil77, 02 November 2015, 07:55:02

Vorheriges Thema - Nächstes Thema

devil77

Ich habe ein Frage zu event-on-change-reading und dem erstellen von log-Werten. Meine Waschmaschine hängt an einem Homemtaic Zwischenstecker mit Leistungsmessung.
Der Momentanverbauch wird über das Attribut power gelogt. Meine attributes dazu sehen wie folgt aus

DbLogInclude -> power
event-min-interval -> power:300
event-on-change-reading -> power:0.03


Ich war jetzt der Meinung das power nur gelogt wird wenn sich der Werte um 0.03 zum Vorgängerwert geändert hat bzw. wenn die 300 Sekunden ohne Werteänderung vergangen sind.
Hintergrund ist der das im Standby die Maschine immer im 0.07 herumtänzelt.
Diese Spitzen wollte ich "rausfiltern" aber es funktioniert nicht.
Der Auszug aus dem log sieht Momentan so aus.

2015-11-02_06:04:18 0.08
2015-11-02_06:11:26 0.08
2015-11-02_06:17:08 0.07
2015-11-02_06:23:52 0.08
2015-11-02_06:29:17 0.08
2015-11-02_06:36:40 0.08
2015-11-02_06:41:49 0.07
2015-11-02_06:47:05 0.08
2015-11-02_06:52:26 0.08
2015-11-02_06:59:44 0.08
2015-11-02_07:04:50 0.08
2015-11-02_07:10:01 0.08
2015-11-02_07:15:19 0.08
2015-11-02_07:22:32 0.08
2015-11-02_07:27:34 0.07
2015-11-02_07:32:42 0.08
2015-11-02_07:37:56 0.08
2015-11-02_07:45:04 0.08


Habe ich irgendwo einen Denkfehler oder funktioniert das Ganze so nicht wie ich es mir vorstelle?

viegener

Generell funktioniert das genauso und wenn ich das richtig sehe sind ja in dem Log-Ausschnitt auch keine Änderungen für das reading power enthalten. Die Logeinträge sind ja ohne Namen des Readings, also sind das Änderungen des states, also solltest Du auch entsprechende Einträge für state machen.

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

devil77

Sorry, die Logeinträge sind direkt die Einträge aus der Plotfile über "show preprocessed input" angezeigt.
Also schon aus dblog nur die Einträge die "power" erzeugt hat.

viegener

Zitat von: devil77 am 02 November 2015, 07:55:02
Ich war jetzt der Meinung das power nur gelogt wird wenn sich der Werte um 0.03 zum Vorgängerwert geändert hat bzw. wenn die 300 Sekunden ohne Werteänderung vergangen sind.

Ich stolpere etwas über das bzw hier.

Aus meinem Verständnis sollte wenn beide Attribute gesetzt sind ein Log-Eintrag geschrieben werden, wenn EINE der beiden Bedingungen erfüllt ist. Also
1) entweder weicht der neue Wert mehr als 0.03 vom alten ab
2) oder es sind mindestens 300s vergangen.

Aus Deinem Log geht dann hervor, dass es keinen Fall gibt in dem 1) zutrifft, aber in allen Logeinträgen sind mehr als 300s vergangen.

Wolltest Du nur dann einen Log schreiben wenn die Abweichung mehr als 0.03 beträgt UND mehr als 300s vergangen sind? Das würde doch keinen Sinn ergeben, da dann starke Änderungen, die innerhalb von 300s auftreten gar nicht protokolliert würden?

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

devil77

Ziel war eigenltich, schreibe est einen log wenn Abweichung mehr als 0.03 ODER 300s rum sind seit letztem log Eintrag.

viegener

Genau das sollte der Fall sein und das sollte auch meine Aussage von oben sein (Streiche entweder hier es geht im logischen Sinne hier um ein ODER, wie von Dir geschrieben).

Gibt es denn Werte, die mehr als 0.03 abweichen und die NICHT im log auftauchen?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

devil77

Zitat von: viegener am 02 November 2015, 16:27:37
Gibt es denn Werte, die mehr als 0.03 abweichen und die NICHT im log auftauchen?
Die sehe ich ja nicht im log falls sie vorhanden sind, oder?
Wenn ich nach dem gehen was jetzt gelogt wird schwanke die Werte nur vom 0.06 bis 0.09.
Ich hatte mir halt erhoft die kleinen Schwankungen im log zu elemenieren aber das scheint so nicht zu funktionieren.
Ist die Frage ob event-on-change-reading mit der Zusatzangabe Schwellenwert überhaupt funktioniert bzw. unter was für Bedingungen das ganze nur funktioniert.

gero

Vielleicht ist event-aggregator für deinen Zweck das richtige?

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

devil77

Das ist nicht Zielführend da hier in der angegebenen Zeitspanne alle Werte bzw. Werteänderungen ignoriert werden um den Mittelwert zu bilden.

viegener

Zitat von: devil77 am 03 November 2015, 12:08:10
Die sehe ich ja nicht im log falls sie vorhanden sind, oder?
Wenn ich nach dem gehen was jetzt gelogt wird schwanke die Werte nur vom 0.06 bis 0.09.
Ich hatte mir halt erhoft die kleinen Schwankungen im log zu elemenieren aber das scheint so nicht zu funktionieren.
Ist die Frage ob event-on-change-reading mit der Zusatzangabe Schwellenwert überhaupt funktioniert bzw. unter was für Bedingungen das ganze nur funktioniert.

Das verstehe ich nicht.

Wenn Du nur Änderungen sehen willst, die um mindestens 0.03 abweichen. Warum setzt Du dann nicht einfach nur event-on-change-reading -> power:0.03. Dann siehst Du nur einen Eintrag wenn sich wirklich etwas verändert.

Solange Du auch noch min-interval setzt bekommst Du halt mindestens all 300s einen Eintrag auch wenn sich nicht viel geändert hat.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können