Moin,
ich verzweifle. Mein notify zu "Alarmanlage:.*currentState:.*x" klappt einfach nicht.
Was mach ich falsch?
define Alarmanlage dummy
attr Alarmanlage readingList ModusInWorten currentState targetState
attr Alarmanlage stateFormat ModusInWorten
# Schalten
define Alarmanlage0 notify Alarmanlage:.*targetState:.*0 setreading Alarmanlage currentState 0
define Alarmanlage1 notify Alarmanlage:.*targetState:.*1 setreading Alarmanlage currentState 1
# Modus in Worten
define AlarmanlageMinW0 notify Alarmanlage:.*currentState:.*0 setreading Alarmanlage ModusInWorten aus
define AlarmanlageMinW1 notify Alarmanlage:.*currentState:.*1 setreading Alarmanlage ModusInWorten aktiviert
Das steht im Monitor:
2016-11-13 16:45:22 dummy Alarmanlage targetState: 0
2016-11-13 16:45:22 dummy Alarmanlage currentState: 0
nichts was ich von currentState abhängig mache klappt. Ich hab schon alles mögliche versucht:
notify Alarmanlage:.*currentState:.*0
notify Alarmanlage:.*currentState:.*1
notify Alarmanlage:.*currentState:.*
notify Alarmanlage:currentState:.*
notify Alarmanlage currentState:.0
notify Alarmanlage currentState:*
Danke
Petz
define Alarmanlage0 notify Alarmanlage.targetState:.0 setreading Alarmanlage currentState 0
leider klappt das auch nicht...
Bitte mal ein list vom Dummy unmd vom Notify machen. Springt das Notify so gar nicht an?
Sicher das die Events so Sound wie du sie da geschrieben hast?
Hab gestern noch rum getestet und dann hats plötzlich funtkioniert.
ABER: Heute wieder das gleiche Problem bei einem anderen Notify
NUN WIRDS KRASS! Wir sind in einer CFG!
(es geht um "setreading HKSecSys current 0")
das geht (ist in einem notify zusammengefasst):
define SecuritySystemiW0 notify SecuritySystem:.*currentState:.*0 setreading SecuritySystem ModusInWorten Zuhause ;; setreading HKSecSys current 0
das geht nicht (aufgeteilt in 2 notifys - die leerzeichen sind nur drin, damit man hier sieht, dass sie identisch sind):
define SecuritySystemiW0 notify SecuritySystem:.*currentState:.*0 setreading SecuritySystem ModusInWorten Zuhause
define HKSecSysGet0 notify SecuritySystem:.*currentState:.*0 setreading HKSecSys current 0
Was bedeutet in Deinen Augen denn gehen? Was geht nicht?
Wird das Notify nicht getriggert, wird das Reading nicht gesetzt?
Deine cfg bringt mir nichts kann mit sowas nichts anfangen. Daher list vom dummy und Notify und dann kann ich mal schauen. Und noch mal den Eventmonitor abwerfen und bitte genau den Event dokumentieren.
ok ok
hab noch was rausgefunden: Es hängt von der Alphabetischen Reihenfolge des Notifys ab.
also es läuft so:"set SecuritySystem Aus"
define SecSysWeb3 notify SecuritySystem:.*Aus setreading SecuritySystem targetState 3
define SecuritySystem3 notify SecuritySystem:.*targetState:.*3 setreading SecuritySystem currentState 3
und dann
define SecuritySysteA notify SecuritySystem:.*currentState:.*3 setreading HomekitSecuritySystem currentState 3
Wenn ich aus SecuritySysteA z.B. SecuritySystem4 mache damit es alphabetisch nach dem SecuritySystem3 notify ist, dann klappts.
Muss man auf die Reihenfolge aufpassen?
Hier die lists der Notifys
SecSysWeb
Internals:
CFGFN ./FHEM/1_SecuritySystem.cfg
DEF SecuritySystem:.*Aus setreading SecuritySystem targetState 3
NAME SecSysWeb3
NOTIFYDEV SecuritySystem
NR 315
NTFY_ORDER 50-SecSysWeb3
REGEXP SecuritySystem:.*Aus
STATE 2016-11-14 09:55:28
TYPE notify
Readings:
2016-11-14 09:55:19 state active
Attributes:
SecuritySystem3
Internals:
CFGFN ./FHEM/1_SecuritySystem.cfg
DEF SecuritySystem:.*targetState:.*3
setreading SecuritySystem currentState 3 ;
setreading SuG targetState 0 ;
setreading OlympiaProtect targetState 3
NAME SecuritySystem3
NOTIFYDEV SecuritySystem
NR 326
NTFY_ORDER 50-SecuritySystem3
REGEXP SecuritySystem:.*targetState:.*3
STATE 2016-11-14 09:55:28
TYPE notify
Readings:
2016-11-14 09:55:19 state active
Attributes:
SecuritySysteA
Internals:
CFGFN ./FHEM/1_SecuritySystem.cfg
DEF SecuritySystem:.*currentState:.*3 setreading HomekitSecuritySystem currentState 3
NAME SecuritySysteA
NOTIFYDEV SecuritySystem
NR 342
NTFY_ORDER 50-SecuritySysteA
REGEXP SecuritySystem:.*currentState:.*3
STATE active
TYPE notify
Readings:
2016-11-14 10:07:38 state active
Attributes:
Danke für die Hilfe!
Könnte schwören das Du hunderte von Fehlermeldungen im Log stehen hast. Aber ich schlage vor ich schreibe Dir hier mal wie es gehen sollte und Du machst es bitte genau so. Und wenn es nicht geht dann gibst Du mir ein list der entsprechenden Devices und ein Logauszug wenn da was zu zu ordnen ist.
Also Du schaltest einen Schalter mit
set SecuritySystem Aus
aud das Event triggert ein Notify
define SecSysWeb3 notify SecuritySystem.Aus setreading SecuritySystem targetState 3
oder
define SecSysWeb3 notify SecuritySystem:.Aus setreading SecuritySystem targetState 3
Ist aberglaube eher ersteres. Du verpasst also dem selben schalter ein Readingeintrag und triggerst dann wieder auf den Schalter aber eben nur auf ein anderes Event
define SecuritySystem3 notify SecuritySystem.targetState:.3 setreading SecuritySystem currentState 3
und setzt wieder ein Reading, wieder im selben Device und triggerst dann dieses Reading
define SecuritySysteA notify SecuritySystem.currentState:.3 setreading HomekitSecuritySystem currentState 3
Reinfolge spielt keine Rolle. Auch wenn ich das durcheinander nicht verstehe. Aber so wie ich es jetzt hier geschrieben habe sollte es eigentlich funktionieren. Voraussetzung ist das Deine setreading auch tatsächlich einen Event aus lösen. Deswegen schaue im Eventmonitor was da genau an kommt.
So, ich hab nun den Test in einen Clon gepackt, der eine extrem kleine Config hat und meine notifys "berichtigt"... Die Reihenfolge spielt aber offenbar eine Rolle, denn:
das funktioniert
# wenn 0 dann target 0
define Step1 notify Ablauf.0 setreading Ablauf targetState 0
# wenn target 0 dann current 0
define Step2 notify Ablauf.targetState:.0 setreading Ablauf currentState 0
# wenn current 0 dann state "aus"
define Step3 notify Ablauf.currentState:.0 set Ablauf aus
wenn ich aus Step3 ein Step0 mache wird das Step0(vorher Step3) notify ignoriert
# wenn 0 dann target 0
define Step1 notify Ablauf.0 setreading Ablauf targetState 0
# wenn target 0 dann current 0
define Step2 notify Ablauf.targetState:.0 setreading Ablauf currentState 0
# wenn current 0 dann state "aus"
define Step0 notify Ablauf.currentState:.0 set Ablauf aus
Monitor (mit Step3):
2016-11-16 13:37:36 dummy Ablauf 0
2016-11-16 13:37:36 dummy Ablauf targetState: 0
2016-11-16 13:37:36 dummy Ablauf currentState: 0
2016-11-16 13:37:36 dummy Ablauf aus
Monitor (mit Step0):
2016-11-16 13:39:12 dummy Ablauf 0
2016-11-16 13:39:12 dummy Ablauf targetState: 0
2016-11-16 13:39:12 dummy Ablauf currentState: 0
Eckdaten:
define Ablauf dummy
attr Ablauf room _Tests
attr Ablauf setList 0 1
attr Ablauf readingList currentState targetState
list Ablauf:
Internals:
NAME Ablauf
NR 126
STATE aus
TYPE dummy
Readings:
2016-11-16 13:32:23 currentState 0
2016-11-16 13:32:23 state aus
2016-11-16 13:32:23 targetState 0
Attributes:
readingList currentState targetState
room _Tests
setList 0 1
list Step1:
Internals:
DEF Ablauf.0 setreading Ablauf targetState 0
NAME Step1
NR 128
NTFY_ORDER 50-Step1
REGEXP Ablauf.0
STATE 2016-11-16 13:32:23
TYPE notify
Readings:
2016-11-16 13:32:16 state active
Attributes:
list Step2:
Internals:
DEF Ablauf.targetState:.0 setreading Ablauf currentState 0
NAME Step2
NR 130
NTFY_ORDER 50-Step2
REGEXP Ablauf.targetState:.0
STATE 2016-11-16 13:32:23
TYPE notify
Readings:
2016-11-16 13:32:16 state active
Attributes:
list Step3:
Internals:
DEF Ablauf.currentState:.0 set Ablauf aus
NAME Step3
NR 132
NTFY_ORDER 50-Step3
REGEXP Ablauf.currentState:.0
STATE 2016-11-16 13:32:23
TYPE notify
Readings:
2016-11-16 13:32:16 state active
Attributes:
list Step0:
Internals:
DEF Ablauf.currentState:.0 set Ablauf aus
NAME Step0
NR 132
NTFY_ORDER 50-Step0
REGEXP Ablauf.currentState:.0
STATE active
TYPE notify
Readings:
2016-11-16 13:38:39 state active
Attributes: