DOIF Zustandswechsel funktioniert bei event-on-change-reading nicht

Begonnen von ultraedition, 05 Juli 2015, 22:41:34

Vorheriges Thema - Nächstes Thema

ultraedition

Hallo, ich habe mehrere LaCrosse Temperatursensoren im Einsatz. Einen habe ich umgebaut, so dass ich ihn als "Fenster auf" / "Fenster zu" nutzen kann. Ich lasse mir dann mittels DOIF eine Pushnachricht schicken. Das funktioniert alles super, solange ich nicht das Attr. "event-on-change-reading" am Temp- Sensor gesetzt habe. Wenn ich jedoch das Attr. setze wird der Status im DOIF nicht mehr geändert.

Muss ich im DOIF ein bestimmtes Attr. setzen? Folgenden DOIF Code Eintrag habe ich derzeit.

define Werkstatt_Fenster DOIF ([SS_Temp_02:temperature2] < 0) (set pushmsg message Fenster in der Werksatt offen !!! {(localtime)}) DOELSE ([SS_Temp_02:temperature2] > 0) (set pushmsg message Fenster in der Werksatt geschlossen !!! {(localtime)})
attr Werkstatt_Fenster alias Werkstattfenster
attr Werkstatt_Fenster cmdState Offen|Geschlossen
attr Werkstatt_Fenster repeatsame 1
attr Werkstatt_Fenster wait 30


Der dazugehörige Temp- Sensor ohne event-on-change Attr. (also die Variante bei der alles funktioniert)

#Temperatursensor mit extra externen T-Sensor Typ: TX25IT
define SS_Temp_02 LaCrosse 21
attr SS_Temp_02 IODev myJeeLink
attr SS_Temp_02 stateFormat temperature°C


Füge ich:

attr SS_Temp_02 event-on-change-reading temperature:0.1, temperature2:20

hinzu geht erkennt DOIF den Zustandswechsel nicht mehr.

Ich bin für jeden Input dankbar.


flurin

Hi,

So geht es nicht:

... DOELSE ([SS_Temp_02:temperature2] > 0) (set pushmsg message Fenster in der Werksatt geschlossen !!! {(localtime)})


sondern:

... DOELSEIF ([SS_Temp_02:temperature2] >= 0) (set pushmsg message Fenster in der Werksatt geschlossen !!! {(localtime)})


oder einfach:

... DOELSE (set pushmsg message Fenster in der Werksatt geschlossen !!! {(localtime)})


Frage zu:

attr SS_Temp_02 event-on-change-reading temperature:0.1, temperature2:20


Zitat
Wenn hinter dem Namen eines "readings" eine :Schwelle angegeben ist, wird das Event nur getriggert wenn die Änderung grösser als diese Schwelle ist.

Ist das, was du willst?


ultraedition

Hi, danke für deine Antwort. Ja richtig den DOELSE Teil kann ich weiter vereinfachen, aber da liegt nicht das Problem.

Mein Problem ist genau der event-on-change-reading Teil. Das DOIF wird beim überschreiten der Schwelle nicht wie gewünscht getriggert.
Sobald ich jedoch das Attribut testweise auskommentiere funktioniert der DOIF fehlerfrei.

An sich funktioniert das Attribut, da z.B. ein Log Eintrag nur bei Werte die größer der angegebenen Schwelle sind erstellt wird.

Volker

LuckyDay

event-on-change-reading ist eine Komma getrennte Liste von Readings,
warum hast du ein LeerZeichen nach dem Komma  drin?

ultraedition

Hary,

danke für den Hinweis mit dem Leerzeichen. Manchmal sind es die einfachsten Dinge. Jetzt klappt alles.

Nochmals danke für den Tipp.

Volker