LaCrosse Sensoren am JeeLink

Begonnen von Spartacus, 23 Mai 2014, 16:21:26

Vorheriges Thema - Nächstes Thema

Spartacus

Hallo,
ich habe folgendes gebaut:

Jeelink an einem RPI, daran 2 x LaCrosse mit Temp und Luftfeuchte.
Das Ganze steht in einer Gartenhütte, per fhem2fem ist das an einen zweiten Pi gekoppelt.
Auf dem zweiten Pi habe ich zwei cloneDummys "Aussen" und "innen" definiert, die Temperatur und Luftfeuchte empfangen.

Für "Aussen" und "innen" schreibe ich ein Logfile und lasse es mit gplot anzeigen.

Mein Problem:
Die Daten kommen im 2-Sekundetakt rein. Wie kann ich es verhindern, dass alles ins Logfile geschrieben wird? Es reicht eigentlich ein Wert pro Stunde.  Wo setzt man an?
Beim Logfile?
Oder kann man die Events direkt verhindern. Es würde ja auch reichen, wenn die Temperatur vom Sensor nur jede Stunde an den Clone übermittelt wird.

Danke und Gruß,
Spartacus

Nachtrag: mit event-min-interval könnte man Events nur alle xx Sekunden zulassen, aber das funzt nicht so, wie gedacht. Die Events kommen doch alle paar Sekunden duch. Mit event-on-change-reading und event-on-change-update soll dies weiter einzugrenzen sein. Aber ich verstehe nicht so ganz, wie die beiden Attribute dafür genutzt werden könnten. Habe schon in der commandref gelesen und ein wenig damit rumgespielet, aber so richtig klappt das nicht!

event-min-interval  temperature:60, humidity:60, battery:3600

Ziel soll es sein, dass alle xxsec, nur je ein Event zugelassen werden soll. Den Trigger könnte man auf die Temperatur setzen. BatterieStatus sollte dann direkt gemeldet werden.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

marvin78

event-on-change-reading sorgt dafür, dass nur veränderte Werte trigger auslösen und auch geloggt werden. Kommt also erst 2.0 Grad und 2 Sekunden später wieder 2.0 Grad, wird nicht neu getriggert.

event-on-update-reading hilft dir hier nicht, da es immer triggert, wenn ein Wert kommt (meiner Ansicht nach nur sinnvoll bei Bewegungsmeldern).

Im Prinzip bist du mit event-min-intervall auf der richtigen Spur. Das sollte genau das machen, was du möchtest und das klappt bei meinen LaCrosse Sensoren auch einwandfrei. Aber lass mal die Leerzeichen weg.

Joachim

Du brauchst beides, event-min-interval, damit alle xxx-Sekunden auf jeden Fall geloggt wird,
und event-on-change-reading, damit nur Änderungen geloggt werden, wenn sie erfolgen.
Experimentire damit mal etwas herum.
Beispiel:
attr FS_Bad event-min-interval Temperatur:600,Feuchte:600,V:600,VAD:600
attr FS_Bad event-on-change-reading Temperatur,Feuchte,V,VAD


Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Spartacus

Hallo,
danke für die Hinweise! Habe es jetzt mal so eingestellt:

event-min-interval: stae:60,temperature:600,humidity:600,battery:3600
event-on-change-reading: state,temperature,humidity,battery


Das scheint zu gehen! Obwohl ich das "event-on-change-reading" wieder lösche, da sonst jede 1/10 Temperaturänderung wieder ein Event auslöst. Alle 10min. den aktuellen Wert lesen, ist eigentlich genug!

Ich denke, der Fehler bei mir lag auch daran, dass ich das "state" -Event, welches sich aus Temperatur und Luftfeuchte zusammensetzt, ignoriert habe.

Kann man das "state"-Event nicht komplett verhindern? Das braucht man m.E. gar nicht!
Danke,
Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

marvin78

Klar. Sowohl bei event-on-change-reading, als auch bei event-min-interval state weg lassen. Dann generiert es kein event mehr.

tpm88

Zitat von: Spartacus am 23 Mai 2014, 20:47:15
event-min-interval: stae:60,temperature:600,humidity:600,battery:3600
event-on-change-reading: state,temperature,humidity,battery
In der ersten Zeile hast du auf jeden Fall einen Typo: stae:60

Schau Dir zu dem Thema auch noch mal die Beiträge 622ff im Original LaCrosse Thread an:
http://forum.fhem.de/index.php/topic,14786.msg165607.html#msg165607

Dort steht, dass sich das Reading "state" anders verhält als "temperature" und "humidity"

Ich selber verwende folgende Einstellungen:

   event-min-interval humidity:60,state:60,temperature:60
   event-on-change-reading battery
   event-on-update-reading humidity,state,temperature


Damit erreiche ich folgendes:
=> die Readings temperature und humidity werden ca alle 60 Sekunden aktualisiert, egal ob sich was geändert hat oder nicht
=> das Kombi-Reading state wird höchstens alle 60 Sekunden aktualisiert, aber nur wenn sich der state verändert hat
=> das Battery Reading erhalte ich, sobald sich dort etwas ändert

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Spartacus

Hallo Tobias,
danke für die Infos. Ich habe mir das jetzt noch mal durchgelesen und denke, dass ich jetzt eine vernünftige Kombination eingestellt habe!

Vielen Dank auch an die anderen Helfer!
Ich teste meine Einstellungen jetzt mal ein paar Tage aus!

Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R