(NUKI Türschloss): DOIF führt DOELSEIF nicht aus

Begonnen von oli82, 17 November 2017, 10:04:13

Vorheriges Thema - Nächstes Thema

oli82

Leider nein, aber da war der Home "present". Habe extra kurz vorher geschaut

amenomade

Interessant wäre ein list des DOIFs wenn er sich deiner Meinung nach in einem falschem Zustand befindet.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux


([23:00] and [NUKIDevice1234:lockstate] ne "locked" and [EG_FlurBewegungsmelder:motion:sec] > 1200) (set NUKIDevice1234 lock) DOELSEIF ([NUKIDevice1234:lockstate] eq "locked" and [07:00] and [Home:presence] eq "present") (set NUKIDevice1234 unlock)


Ich würde erstmal schauen das Du nur auf die Zeiten triggerst, denn darauf kommt es ja anscheinend an. Und dann die anderen Bedingungen einfach nur ab fragst.
Dann würde ich mal schauen das immer zu erst die Zeit steht.


([23:00] and [?NUKIDevice1234:lockstate] ne "locked" and [?EG_FlurBewegungsmelder:motion:sec] > 1200) (set NUKIDevice1234 lock) DOELSEIF ([07:00] and [?NUKIDevice1234:lockstate] ne "unlocked" and [?Home:presence] eq "present") (set NUKIDevice1234 unlock)



Grüße
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

oli82

Hey Marko.

Danke für den Vorschlag der Abfrage.
Die Uhrzeit hatte ich anfangs immer an erster Stelle.
Bei den Tests ist sie dann etwas "gewandert".
Wenn ich Zuhause bin teste ich mal den neuen Aufbau.

oli82

Leider schließt das Schloss immer noch nicht morgens wieder auf.
Alle Bedingungen sind true, aber um 7Uhr beleibt das Schloss zu... (auch zu jeder anderen Zeit die ich beim Testen eingestellt habe.)

CoolTux

Ja Olli das mag ja sein, aber was sollen wir denn jetzt da machen, ich meine so ganz ohne weitere stichhaltige, sichtbare Infos.
Nimm bitte meine DOIF Variante und erweiter morgens die Zeit auf von 07:00-08:00 und mach in der Zeit wo auch die anderen Bedingungen true sind ein list von allen beteiligten Devices. Anders geht es nicht.


Grüße
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

Per

#21
Zitat von: oli82 am 22 November 2017, 13:14:10aber um 7Uhr beleibt das Schloss zu...
Zwei Fragen dazu:
1. geht es zu, wenn du den Befehl in der Kommandozeile ausführst?
2. was sagt der Eventlog zu dieser Zeit?

Zur Not kannst du ja mal einen externen Trigger
definde tester DOIF ([07:00]) (set dummy auf)
starten und auf den Dummy triggern.

Oder ein
set di.lockout cmd_2
ausführen.

oli82

Das ist ja das kuriose.
Zu geht es. Auf geht es auch, wenn ich cmd_2 über set ausführe.
Externen Trigger teste ich, sobald unser Besuch wieder weg ist ;)

oli82

Neue Erkenntnis:

Externer Trigger klappt auch nicht.
Irgendwie reagiert das Nuki in der Kombination nicht auf unlock.
Ein ([16:15]) (set nuki1234 unlock) klappt sofort

CoolTux

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

oli82

#25
Zitat von: oli82 am 21 November 2017, 10:22:52

Hier mal ein komplettes list:
Internals:
   DEF        ([23:00] and [NUKIDevice1234:lockstate] ne "locked" and [EG_FlurBewegungsmelder:motion:sec] > 1200) (set NUKIDevice1234 lock) DOELSEIF ([NUKIDevice1234:lockstate] eq "locked" and [07:00] and [Home:presence] eq "present") (set NUKIDevice1234 unlock)
   NAME       di.lockout
   NR         547
   NTFY_ORDER 50-di.lockout
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2017-11-21 10:19:26   Device          Home
     2017-11-21 06:37:54   cmd             0
     2017-11-21 10:19:26   e_Home_presence absent
     2017-11-21 09:17:57   e_EG_FlurBewegungsmelder_motion off
     2017-11-21 06:37:54   state           initialized
     2017-11-21 06:37:55   timer_01_c01    21.11.2017 23:00:00
     2017-11-21 07:00:00   timer_02_c02    22.11.2017 07:00:00
   condition:
     0          DOIF_time_once($hash,0,$wday) and ReadingValDoIf($hash,'NUKIDevice1234','lockstate') ne "locked" and ReadingSecDoIf('EG_FlurBewegungsmelder','motion') > 1200
     1          ReadingValDoIf($hash,'NUKIDevice1234','lockstate') eq "locked" and DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'Home','presence') eq "present"
   days:
   devices:
     0           NUKIDevice1234 EG_FlurBewegungsmelder
     1           NUKIDevice1234 Home
     all         NUKIDevice1234 EG_FlurBewegungsmelder Home
   do:
     0:
       0          set NUKIDevice1234 lock
     1:
       0          set NUKIDevice1234 unlock
     2:
   helper:
     event      durTimerAbsence_cr: 156,durTimerAbsence: 02:36:24
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev Home
     triggerEvents:
       durTimerAbsence_cr: 156
       durTimerAbsence: 02:36:24
     triggerEventsState:
       durTimerAbsence_cr: 156
       durTimerAbsence: 02:36:24
   internals:
   interval:
   itimer:
   localtime:
     0          1511301600
     1          1511330400
   readings:
     0           NUKIDevice1234:lockstate EG_FlurBewegungsmelder:motion
     1           NUKIDevice1234:lockstate Home:presence
     all         NUKIDevice1234:lockstate EG_FlurBewegungsmelder:motion Home:presence
   realtime:
     0          23:00:00
     1          07:00:00
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   time:
     0          23:00:00
     1          07:00:00
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   trigger:
   triggertime:
     1511301600:
       localtime  1511301600
       hash:
     1511330400:
       localtime  1511330400
       hash:
Attributes:
   addStateEvent 1
   do         always
   room       11_Security
   verbose    5


Frank_Huber

was mich wundert:
In den Readings taucht das Nuki nicht auf!?!?

Wenn der DOIF das auswerten könnte würde das Reading hier mit gelistet sein.

Damian

Wenn die Bedingung:

([NUKIDevice1234:lockstate] eq "locked" and [07:00] and [Home:presence] eq "present")

um 07:00 Uhr nicht wahr war, dann war Home:presence] eq "present" oder [NUKIDevice1234:lockstate] eq "locked" nicht wahr. Das sollte sich um 07:00 Uhr relativ einfach nachvollziehen lassen.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

Oli das ist aber nicht meine Lösung. Wo sind die Fragezeichen?
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

oli82

Die fehlen da noch. War ja vor deinem Post. Sorry.
Habe jetzt mal die Abfrage des lockstate weg gelassen und teste nochmal mit der Uhrzeit direkt im DOIF