notify funtioniert nicht - ich verzweifle

Begonnen von Meister_Petz, 13 November 2016, 16:49:48

Vorheriges Thema - Nächstes Thema

Meister_Petz

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

CoolTux


define Alarmanlage0 notify Alarmanlage.targetState:.0 setreading Alarmanlage currentState 0
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Meister_Petz


CoolTux

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?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Meister_Petz

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


CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Meister_Petz

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!



CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Meister_Petz

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: