DOIF wird erst nach einen "shutdown restart" ausgeführt

Begonnen von dieter56, 18 April 2016, 09:09:13

Vorheriges Thema - Nächstes Thema

dieter56

Ein freundliches Hallo an vielen Experten hier.

Ich habe ein Problem mit folgender DOIF:


(set Kueche_Rollladen pct 90)\
\
DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "on" and [Kueche.Fenstersensor] eq "closed") \
(set Kueche_Rollladen pct 90)\
\
DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "on" and [Kueche.Fenstersensor] ne "open") \
(set Kueche_Rollladen up)\
\
DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "off" and [Kueche.Fenstersensor] ne "closed") \
(set Kueche_Rollladen pct 20)\
\
DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "off" and [Kueche.Fenstersensor] eq "closed") \
(set Kueche_Rollladen down)
attr di_KuecheRollladen wait 0 :  120


Wenn ich das Reading Kueche_Rollladen:AutoStatus von "oben" auf "unten" ändere startet das DOIF nicht.
Erst wenn ich unmittelbar danach FHEM mit "shutdown restart" neu starte verarbeitet es das Event.

Ich habe vieles probiert aber keinen Hinweise gefunden was da los ist.

Ich hoffe, dass von Euch jemand Rat weis.

Viele Grüße
Dieter

CoolTux

Hallo,

Viel zu wenig Informationen. Ein list aller beteiligten Devices, ein Logauszug, Hast Du mal über den Eventmonitor geschaut ob auch ein Event ausgelöst wird. Kommt beim DOIF überhaupt etwas an.

Löse mal aus und dann mache ein list vom DOIF.


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

dieter56

Danke.

hier die Antwort auf liste Kueche_Rolladen


Internals:
   DEF        234B89
   HMLAN1_MSGCNT 2
   HMLAN1_RAWMSG R2825F680,0001,17ACC457,FF,FFCD,02A410234B892BAC750601C8004B
   HMLAN1_RSSI -51
   HMLAN1_TIME 2016-04-18 08:54:17
   INTRIGGER  1
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     2
   NAME       Kueche_Rollladen
   NR         29
   NTFY_ORDER 50-Kueche_Rollladen
   NTFY_TRIGGERTIME 2016-04-18 08:54:04
   STATE      A: unten; S: yes
   TYPE       CUL_HM
   lastMsg    No:02 - t:10 s:234B89 d:2BAC75 0601C8004B
   protLastRcv 2016-04-18 08:54:17
   protSnd    2 last_at:2016-04-18 08:54:17
   protState  CMDs_done
   rssi_HMLAN1 min:-75 cnt:1 max:-75 lst:-75 avg:-75
   rssi_at_HMLAN1 max:-51 lst:-51 cnt:2 min:-51 avg:-51
   CHANGED:
     sunExposure: yes
     recentStateType: info
     deviceMsg: up (to VCCU)
     level: 100
     motor: stop:up
     pct: 100
     up
     timedOn: down
     AutoStatus: oben
     sunExposure: yes
     AutoStatus: oben
     sunExposure: yes
     AutoStatus: oben
     sunExposure: yes
     AutoStatus: oben
     sunExposure: yes
     AutoStatus: oben
     sunExposure: yes
     AutoStatus: oben
     AutoStatus: unten
     AutoStatus: oben
     AutoStatus: unten
     AutoStatus: oben
     AutoStatus: unten
     AutoStatus: oben
     AutoStatus: unten
   CHANGEDWITHSTATE:
   Readings:
     2016-04-18 09:25:39   AutoStatus      unten
     2016-04-18 08:21:05   CommandAccepted yes
     2016-04-05 09:11:11   D-firmware      2.2
     2016-04-05 09:11:11   D-serialNr      KEQ0714217
     2016-04-11 16:20:35   PairedTo        0x2BAC75
     2015-06-09 10:59:18   R-driveDown     21 s
     2015-06-09 10:59:18   R-driveTurn     0.5 s
     2015-06-09 10:59:18   R-driveUp       21 s
     2015-06-09 10:59:17   R-pairCentral   0x2BAC75
     2015-06-09 10:59:18   R-sign          off
     2016-04-11 16:20:35   RegL_00.        02:01 0A:2B 0B:AC 0C:75 15:FF 18:00 00:00
     2016-04-11 16:20:36   RegL_01.        08:00 09:00 0A:00 0B:00 0C:D2 0D:00 0E:D2 0F:05 10:00  30:06 57:06 00:00
     2016-03-20 19:42:12   autolevel       0
     2016-04-18 08:54:17   deviceMsg       on (to VCCU)
     2016-04-18 08:54:17   level           100
     2016-04-13 20:40:04   levelMissed     desired:0
     2016-04-18 08:54:17   motor           stop:on
     2016-04-18 08:54:17   pct             100
     2016-04-05 08:26:28   powerOn         2016-04-05 08:26:28
     2016-04-18 08:54:17   recentStateType info
     2016-04-18 08:54:17   state           on
     2016-04-18 09:26:00   sunExposure     yes
     2016-04-18 08:54:17   timedOn         off
   Helper:
     HM_CMDNR   2
     cSnd       ,012BAC75234B89010E
     mId        006A
     rxType     1
     Dir:
       cur        stop
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +234B89,00,00,00
       nextSend   1460962457.25731
       prefIO
       rxt        0
       vccu
       p:
         234B89
         00
         00
         00
     Mrssi:
       mNo        02
       Io:
         HMLAN1     -49
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
       prs        1
     Rpt:
       IO         HMLAN1
       flg        A
       ts         1460962457.04198
       ack:
         HASH(0x24a4270)
         0280022BAC75234B8900
     Rssi:
       Hmlan1:
         avg        -75
         cnt        1
         lst        -75
         max        -75
         min        -75
       At_hmlan1:
         avg        -51
         cnt        2
         lst        -51
         max        -51
         min        -51
Attributes:
   IODev      HMLAN1
   alias      Küche.Rollladen
   autoReadReg 5_readMissing
   devStateIcon up:fts_shutter_10@green down:fts_shutter_100@black 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 0\d.*:fts_shutter_100
   directSunlight -100:-45,8:90
   event-on-change-reading .*
   eventMap   on:up off:down
   expert     2_full
   firmware   2.2
   fp_Erdgeschoss 44,298,0,,
   group      Rollos
   model      HM-LC-Bl1PBU-FM
   pct50      66
   peerIDs    00000000,
   room       Home,Küche
   serialNr   KEQ0714217
   sortby     200
   stateFormat A: AutoStatus; S: sunExposure
   subType    blindActuator
   userattr   pct50 Hoehe directSunlight
   webCmd     pct


Wenn ich "setreading Kueche_Rollladen AutoStatus oben" oder "setreading Kueche_Rollladen AutoStatus unten" als Kommando eingebe wird im Eventmonitor nichts angezeigt.

CoolTux

Was ist mit list vom DIOF? Muss ich verstehen warum Du setreading verwendest? Wieso Du also ausgerechnet in ein Device noch ein Reading auf die Art reinschreiben willst?

Du hast ein pct von 100, daraus ergibt sich zwangsläufig ein unten.
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

dieter56

Hier die Antwort auf list di_KuecheRolllade:


Internals:
   DEF        ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "on" and [Kueche.Fenstersensor] eq "closed" and [?06:30-19:30])
(set Kueche_Rollladen pct 90)

DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "on" and [Kueche.Fenstersensor] eq "closed")
(set Kueche_Rollladen pct 90)

DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "on" and [Kueche.Fenstersensor] ne "open")
(set Kueche_Rollladen up)

DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "off" and [Kueche.Fenstersensor] ne "closed")
(set Kueche_Rollladen pct 20)

DOELSEIF ([Kueche_Rollladen:AutoStatus] eq "unten" and [Kueche.Lampe] eq "off" and [Kueche.Fenstersensor] eq "closed")
(set Kueche_Rollladen down)
   NAME       di_KuecheRollladen
   NR         176
   NTFY_ORDER 50-di_KuecheRollladen
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2016-04-18 08:54:16   Device          Kueche.Lampe
     2016-04-18 08:21:04   cmd_event       Kueche_Rollladen
     2016-04-18 08:21:04   cmd_nr          5
     2016-04-18 08:54:16   e_Kueche.Lampe_STATE off
     2016-04-18 08:54:04   e_Kueche_Rollladen_AutoStatus unten
     2016-04-18 08:21:04   state           cmd_5
     2016-04-18 08:54:00   timer_1_c1      19.04.2016 06:30:00
     2016-04-18 08:54:00   timer_2_c1      18.04.2016 19:30:00
     2016-04-18 08:54:00   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'Kueche_Rollladen','AutoStatus','','',AttrVal($hash->{NAME},'notexist',undef)) eq "unten" and InternalDoIf($hash,'Kueche.Lampe','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" and InternalDoIf($hash,'Kueche.Fenstersensor','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "closed" and DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"")
     1          ReadingValDoIf($hash,'Kueche_Rollladen','AutoStatus','','',AttrVal($hash->{NAME},'notexist',undef)) eq "unten" and InternalDoIf($hash,'Kueche.Lampe','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" and InternalDoIf($hash,'Kueche.Fenstersensor','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "closed"
     2          ReadingValDoIf($hash,'Kueche_Rollladen','AutoStatus','','',AttrVal($hash->{NAME},'notexist',undef)) eq "unten" and InternalDoIf($hash,'Kueche.Lampe','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" and InternalDoIf($hash,'Kueche.Fenstersensor','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) ne "open"
     3          ReadingValDoIf($hash,'Kueche_Rollladen','AutoStatus','','',AttrVal($hash->{NAME},'notexist',undef)) eq "unten" and InternalDoIf($hash,'Kueche.Lampe','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "off" and InternalDoIf($hash,'Kueche.Fenstersensor','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) ne "closed"
     4          ReadingValDoIf($hash,'Kueche_Rollladen','AutoStatus','','',AttrVal($hash->{NAME},'notexist',undef)) eq "unten" and InternalDoIf($hash,'Kueche.Lampe','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "off" and InternalDoIf($hash,'Kueche.Fenstersensor','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "closed"
   Days:
   Devices:
     0           Kueche_Rollladen Kueche.Lampe Kueche.Fenstersensor
     1           Kueche_Rollladen Kueche.Lampe Kueche.Fenstersensor
     2           Kueche_Rollladen Kueche.Lampe Kueche.Fenstersensor
     3           Kueche_Rollladen Kueche.Lampe Kueche.Fenstersensor
     4           Kueche_Rollladen Kueche.Lampe Kueche.Fenstersensor
     all         Kueche_Rollladen Kueche.Lampe Kueche.Fenstersensor
   Do:
     0:
       0          set Kueche_Rollladen pct 90
     1:
       0          set Kueche_Rollladen pct 90
     2:
       0          set Kueche_Rollladen up
     3:
       0          set Kueche_Rollladen pct 20
     4:
       0          set Kueche_Rollladen down
   Helper:
     event      deviceMsg: off (to VCCU),level: 0,pct: 0,off,timedOn: off
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   Kueche.Lampe
     timerevent deviceMsg: off (to VCCU),level: 0,pct: 0,off,timedOn: off
     triggerDev Kueche.Lampe
     timerevents:
       deviceMsg: off (to VCCU)
       level: 0
       pct: 0
       off
       timedOn: off
     triggerEvents:
       deviceMsg: off (to VCCU)
       level: 0
       pct: 0
       off
       timedOn: off
   Internals:
     0           Kueche.Lampe:STATE Kueche.Fenstersensor:STATE
     1           Kueche.Lampe:STATE Kueche.Fenstersensor:STATE
     2           Kueche.Lampe:STATE Kueche.Fenstersensor:STATE
     3           Kueche.Lampe:STATE Kueche.Fenstersensor:STATE
     4           Kueche.Lampe:STATE Kueche.Fenstersensor:STATE
     all         Kueche.Lampe:STATE Kueche.Fenstersensor:STATE
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1461040200
     1          1461000600
   Readings:
     0           Kueche_Rollladen:AutoStatus
     1           Kueche_Rollladen:AutoStatus
     2           Kueche_Rollladen:AutoStatus
     3           Kueche_Rollladen:AutoStatus
     4           Kueche_Rollladen:AutoStatus
     all         Kueche_Rollladen:AutoStatus
   Realtime:
     0          06:30:00
     1          19:30:00
   Regexp:
     0:
     1:
     2:
     3:
     4:
     All:
   State:
   Time:
     0          06:30:00
     1          19:30:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Trigger:
   Triggertime:
     1461000600:
       localtime  1461000600
       Hash:
     1461040200:
       localtime  1461040200
       Hash:
Attributes:
   wait       0 :  120


100% bedeuten bei meinen Rolläden immer oben.

CoolTux

Ich versuche zu verstehen wofür Dein AutoStatus ausgerechnet als Reading da ist. Stellst Du den Status des Readings nur zu Testzwecken von Hand oder soll das in der tat so sein.
Wenn das generell von Hand sein soll, dann meine Empfehlung.
Mach einen Dummy den Du AutoStatus nennst und wo Du mit setList unten und oben auswählen kannst.

Einen direkten Fehler kann ich so erstmal nicht erkennen in Deiner Def.


cmd_event       Kueche_Rollladen
     2016-04-18 08:54:04   e_Kueche_Rollladen_AutoStatus unten


Zu mindest triggert er anscheinend Dein Kueche_Rollladen_AutoStatus
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

dieter56

Hallo,

das reading AutoStatus wird von einer anderen DOIF für alle Rollläden in Abhängigkeit von Zeit, Dunkelheit, Urlaub etc gestzt. Das funtioniert auch einwandfrei.

Für jeden Rolladen gibt es eine DOIF die wiederum in Abhängigkeit von AutoStaus, Beleuchtung, Sonnenstand, Innentemperatur, Fensteröffnung, etc den Rollladen in die entsprechende Position fährt. Letzteres funktioniert eben nur nach einen "shutdown restart".

CoolTux

Ah ok. Verstehe. Wie gesagt, getriggert wird anscheinend korrekt. Und geschalten hat er ja wohl auch. cmd5 stand da vorhin
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

dieter56

Hallo und Danke.

Ich habe jetzt folgendes probiert: Ich habe das Reading AutoStatus in eine neue Dummy-Variable (Als reading) geschrieben. Eine Veränderung dieses Readings triggert das nachfolgende DOIF ordnungsgemäß. Ich werde jetzt wohl für jeden Rollladen noch eine Dummyvariable anlegen. Das wollte ich eigentlich vermeiden weil das System so immer unübersichtlicher wird.

Die Ursache liegt wohl bei FHEM. Offensichtlich wird auf selbst angelegte Reading nicht so getriggert wie auf die natürlich vorhanden. Ich werde versuchen das Problem einzukreisen um es nochmal zu posten.

Nochmals viele Dank.