Verständnisproblem bei event-on-change-reading

Begonnen von Thomas_SH, 03 August 2015, 18:59:17

Vorheriges Thema - Nächstes Thema

Thomas_SH

Hallo,

nach gefühlten 1000 Nachrichten stehe ich immer noch auf dem Schlauch was die Anwendung von event-on-change-reding betrifft.

Mein Sensor ist dieser bzw hat folgende Eigenschaften:


Internals
DEF 28-000006375c6a
NAMEGPIO4_DS18B20_000006375c6a
NR41
NTFY_ORDER50-GPIO4_DS18B20_000006375c6a
STATE 32.6C
TYPE GPIO4

Readings

failures 0 2015-08-03 13:51:14
state T: 32 2015-08-03 18:51:53
temperature 32.25 2015-08-03 18:52:09


Attributes

event-min-interval state:600

event-on-change-reading T:2

event-on-update-reading .*

model DS18B20

pollingInterval 15

stateFormat
{sprintf("%.1f",ReadingsVal("GPIO4_DS18B20_000006375c6a","temperature",0))."C"}

Probably associated with
FileLog_GPIO4_DS18B20_000006375c6a
FileLog
Select icon Extend devStateIcon Delete this device (GPIO4_DS18B20_000006375c6a) Device specific help


Die "readings" dieses Sensors sind also "T:" und "temperature". die sollen nur dann ins Log geschrieben werden wenn sich der Wert um 2 oder mehr Grad C geändert hat. Aber das passiert nicht. Warum?

pi@raspberrypi /opt/fhem/log $ tail GPIO4_DS18B20_000006375c6a-2015.log
2015-08-03_18:42:35 GPIO4_DS18B20_000006375c6a temperature: 32.687
2015-08-03_18:42:37 GPIO4_DS18B20_000006375c6a temperature: 32.75
2015-08-03_18:42:53 GPIO4_DS18B20_000006375c6a temperature: 32.625
2015-08-03_18:43:09 GPIO4_DS18B20_000006375c6a temperature: 32.625
2015-08-03_18:43:24 GPIO4_DS18B20_000006375c6a T: 32.625
2015-08-03_18:43:24 GPIO4_DS18B20_000006375c6a temperature: 32.625
2015-08-03_18:43:40 GPIO4_DS18B20_000006375c6a temperature: 32.625
2015-08-03_18:43:56 GPIO4_DS18B20_000006375c6a temperature: 33
2015-08-03_18:43:58 GPIO4_DS18B20_000006375c6a temperature: 32.937
2015-08-03_18:44:12 GPIO4_DS18B20_000006375c6a temperature: 32.687


Ist das evtl. ein Problem mit Gleichkomma- oder Ganzzahlen in der Befehlszeile?

Thomas

Joachim

Moin Thomas_SH,

ZitatDie "readings" dieses Sensors sind also "T:" und "temperature".
Da liegst Du falsch.
Es gibt das reading "temperature" und es gibt den "state", der in diesem Fall den Wert "T: 32.625" hat.
"state" ist sehr speziell!
Wenn Du jetzt:
Zitatwenn sich der Wert um 2 oder mehr Grad C geändert hat
diese Vorgabe hat, dann ist
event-on-change-reading temperature:2
Dein Freund.

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

Thomas_SH

Zitat von: Joachim am 03 August 2015, 19:14:26

Es gibt das reading "temperature" und es gibt den "state", der in diesem Fall den Wert "T: 32.625" hat.
"state" ist sehr speziell!
Wenn Du jetzt:diese Vorgabe hat, dann ist
event-on-change-reading temperature:2
Dein Freund.


Danke, das hatte ich schon vermutet, nur hat sich das Browserfenster über eine Stunde nicht aktualisiert, daher hatte ich den Erfolg nicht mitbekommen. Und was ist an "state" so speziell?

Thomas

jensb

#3
Hallo Thomas,

das Reading "state" ist insofern speziell, da viele Module darin ihren Betriebszustand eintragen, z.B. initializing, ready, next at ..., etc. oder halt auch mal den Messwert, wenn alles in Ordnung ist und es sich um ein Mess-Modul handelt.

Das interne Reading "STATE" bestimmt die Standarddarstellung eines Devices im Webinterface. Es übernimmt im Normalfall den Wert des Readings "state", sofern man nicht über das Attribut "stateFormat" eine selbst definierte Darstellungsform für "STATE" vorgibt.

LG, Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb