Modul 98_cloneDummy funktioniert nicht wie erwartet

Begonnen von Gast45, 03 Februar 2018, 19:06:18

Vorheriges Thema - Nächstes Thema

Gast45

Hallo zusammen,

mein eindruck ist, dass ein cloneDummy sich nicht wie das originale Device verhält. Ich habe einen Temperatur/Luftfeuchtigkeit-Sensor. Da er sich bei jedem Batteriewechsel völlig neu anmeldet, wollte ich das Device von der übrigen Konfiguration (Log, Plot, ....) trennen. Dazu dachte ich mir einen cloneDummy anzulegen.

Ich habe in diesem cloneDummy "SensorAussen" folgendes konfiguriert:

define SensorAussen cloneDummy SensorAussenQuelle
attr SensorAussen addStateEvent 1
attr SensorAussen cloneIgnore T,H
attr SensorAussen event-min-interval .*:180
attr SensorAussen event-on-change-reading state

Es ist aber leider so, dass diese Attribute nicht wirken wollen. Das Log-File sieht wie folgt aus:

2018-02-03_17:15:59 SensorAussen T: 3.5 H: 82.0 D: 0.7 A: 5.0
2018-02-03_17:16:57 SensorAussen T: 3.5 H: 82.0 D: 0.7 A: 5.0
2018-02-03_17:16:57 SensorAussen T: 3.5 H: 82.0 D: 0.7 A: 5.0
2018-02-03_17:17:58 SensorAussen T: 3.5 H: 82.0 D: 0.7 A: 5.0
2018-02-03_17:19:00 SensorAussen T: 3.5 H: 82.0 D: 0.7 A: 5.0
2018-02-03_17:20:02 SensorAussen T: 3.5 H: 82.0 D: 0.7 A: 5.0

Auch unveränderte Werte tauchen im Minutentakt, teilweise sogar zweimal zeitgleich auf. Ist das Verhalten bekannt? Soll das so sein oder ist das ein Fehlverhalten? Hat jemand ähnliche Erfahrungen gemacht?

Schon mal Danke im Voraus.
Meist liegt der Fehler vor der Tastatur

betateilchen

das dürfte nicht an cloneDummy liegen, sondern an einem falschen Verständnis der event.* Attribute Deinerseits.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gast45

#2
Also ich wollte erreichen, dass bei jeder Änderung des Reading state ein Eintrag im log erscheint. Wenn sich nichts ändert, möchte ich aber wenigstens alle 3 Minuten einen Eintrag im log haben.

Ansonsten werden die Logs übers Jahr so groß, dass FHEM sie nicht mehr verarbeiten kann.

Was verstehe ich denn genau falsch? Wie müsste es aussehen? So wie ich es gebaut habe, ist es doch in der Hilfe erklärt?
Meist liegt der Fehler vor der Tastatur

betateilchen

Zitat von: Gast45 am 03 Februar 2018, 20:19:51
Also ich wollte erreichen, dass bei jeder Änderung des Reading state ein Eintrag im log erscheint.

Ok, dann tut cloneDummy genau das, was Du möchtest. Bei einem cloneDummy "ändert" sich das reading "state" bei jeder Aktualisierung.

Zitat von: Gast45 am 03 Februar 2018, 20:19:51
Ansonsten werden die Logs übers Jahr so groß, dass FHEM sie nicht mehr verarbeiten kann.

Dann hast Du eher ein organisatorisches Problem in Deiner FHEM Installation. Du solltest Deine Logs soweit aufteilen, z.B. monatlich oder wöchentlich, dass das nicht passiert. Oder die regexp für Dein Logging so anpassen, dass nur das geloggt wird, was Du wirklich brauchst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gast45

Ich möchte nur Änderungen loggen, keine Aktualisierungen mit unveränderten Werten.

Bei Wetterdaten macht aber nur eine einzige Datei für das ganze Jahr am meisten Sinn, weil man so auch den Temperaturverlauf mal über das ganze Jahr in einem Plot darstellen kann. Deshalb wird das wahrscheinlich auch die Standard-Definition von FHEM für Temperatursensoren sein?!
Meist liegt der Fehler vor der Tastatur

betateilchen

Zitat von: Gast45 am 03 Februar 2018, 21:11:47
Bei Wetterdaten macht aber nur eine einzige Datei für das ganze Jahr am meisten Sinn, weil man so auch den Temperaturverlauf mal über das ganze Jahr in einem Plot darstellen kann.

Quatsch. Das mit dem Jahresplot funktioniert auch, wenn Du die Logdateien täglich neu erstellen lässt. Vorausgesetzt, Du hast die Dateien das Jahr über alle aufbewahrt.

Zitat von: Gast45 am 03 Februar 2018, 21:11:47
Ich möchte nur Änderungen loggen, keine Aktualisierungen mit unveränderten Werten

Dann solltest Du beaser kein cloneDummy dafür verwenden (genauer: nicht das reading state eines cloneDummy)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gast45

Ok, dann probiere ich das mit den monatlichen Dateien nochmal aus, aber ich meine FHEM hat es nicht geschafft 12 Dateien zu öffnen. Aber das bringt mir am Ende ja auch nichts. Ob eine Datei zu groß ist, oder die Summe von 12 Dateien genauso groß :)
Ich hatte schon mal an halbjährlich gedacht, aber dafür gibt es keine Variable im Linux. Ich muss also die geloggten Daten reduzieren. Ständig gleiche Werte haben ja auch keinenwirklichen Informationsgehalt.

Was das Reading betrifft hatte ich es auch mal mit temperature und humidity statt state versucht. Funktionierte aber auch nicht.

Das Attribut hatte ich richtig geschrieben (event-on-change-reading). Kann man ja nicht falsch zusammenklicken ;)
Meist liegt der Fehler vor der Tastatur

Gast45

#7
Ich habe mir jetzt erstmal geholfen, indem ich die cloneDummies ersetzt habe durch manuell angelegte Dummies

define SensorAussen dummy
attr SensorAussen event-min-interval .*:180
attr SensorAussen event-on-change-reading state

in die ich alle 10 Sekunden per notify die Werte aus der Quelle kopiere.

define cp_SensorAussenQuelle_to_SensorAussen at +*00:00:10 { my $temp= ReadingsVal("SensorAussenQuelle","temperature",0) ; my $hum= ReadingsVal("SensorAussenQuelle","humidity",0) ; fhem("set SensorAussen T: $temp H: $hum");}

Hier scheint die von mir gewählte event-Definition zu wirken.
Jedenfalls sieht das Log jetzt so aus:

2018-02-04_13:14:31 SensorAussen T: 2.2 H: 75.0 D: -1.8 A: 4.2
2018-02-04_13:15:31 SensorAussen T: 2.1 H: 75.0 D: -1.9 A: 4.2
2018-02-04_13:17:41 SensorAussen T: 2.1 H: 76.0 D: -1.7 A: 4.3
2018-02-04_13:18:41 SensorAussen T: 1.7 H: 76.0 D: -2.1 A: 4.1
2018-02-04_13:21:41 SensorAussen T: 1.7 H: 76.0 D: -2.1 A: 4.1
2018-02-04_13:24:41 SensorAussen T: 1.7 H: 76.0 D: -2.1 A: 4.1
2018-02-04_13:27:41 SensorAussen T: 1.7 H: 76.0 D: -2.1 A: 4.1

Geänderte Werte erscheinen sofort. Ändern sich die Werte nicht, so erscheint alle 3 Minuten ein Log.

Meist liegt der Fehler vor der Tastatur