Hauptmenü

DOIF arbeitet unerwartet...

Begonnen von Torben80, 31 März 2018, 22:43:40

Vorheriges Thema - Nächstes Thema

Torben80

Also...
Es sind ja Kontakte der Alarmanlage. Die Anlage wird per "defice Kontakte" HTTPMOD (JSON) alle 5 Sekunden abgefragt.
Hierbei wird dann ja erkannt, dass ein Fenster "Door Open" ist oder eine Tür "Door Open" ist.

Wenn ein Reading sich ändert, greift eines der DOIFS (Tuer oder Fenster) und setzt das Reading auf "Kontakte:Status_Fenster" aud Open oder Close.

Gleichzeitig greift mein Notify,  und setzt die LED-Anzeige auf Grün oder Rot.

Ich werde mal eben ein Fenster AUFmachen und wieder ZUmachen und danach ein Tür AUFmachen und wieder ZUmachen und den Inhalt des EventMonitors mal eben posten, ich steige nicht mehr durch, da es für mich kein ersichtliches Problem gibt :-(

Frank_Huber

Event-on-change-reading in den httpmod gesetzt?
Das würde zumindest den traffic reduzieren

Mit dem Handy online, daher kurz gefasst...


Torben80


############F E N S T E R     AUF##################
2018-04-01 22:20:40 HTTPMOD Kontakte Flur: Door Open
2018-04-01 22:20:40 HTTPMOD Kontakte Status_Fenster: Open
2018-04-01 22:20:45 DOIF dKontakte_Fenster cmd_nr: 2
2018-04-01 22:20:45 DOIF dKontakte_Fenster cmd: 2
2018-04-01 22:20:45 DOIF dKontakte_Fenster cmd_event: Kontakte
2018-04-01 22:20:45 DOIF dKontakte_Fenster cmd_2
2018-04-01 22:20:45 DOIF dKontakte_Tuer cmd_nr: 2
2018-04-01 22:20:45 DOIF dKontakte_Tuer cmd: 2
2018-04-01 22:20:45 DOIF dKontakte_Tuer cmd_event: Kontakte
2018-04-01 22:20:45 DOIF dKontakte_Tuer cmd_2
2018-04-01 22:20:46 LEDStripe LED_Rahmen led_count: 8
2018-04-01 22:20:46 LEDStripe LED_Rahmen leds_on: 3
2018-04-01 22:20:46 HTTPMOD Kontakte Flur: Door Close
2018-04-01 22:20:46 HTTPMOD Kontakte Status_Fenster: Close
############F E N S T E R     ZU     ENDE##################
############TÜR     AUF##################
2018-04-01 22:20:50 DOIF dKontakte_Fenster cmd_nr: 2
2018-04-01 22:20:50 DOIF dKontakte_Fenster cmd: 2
2018-04-01 22:20:50 DOIF dKontakte_Fenster cmd_event: Kontakte
2018-04-01 22:20:50 DOIF dKontakte_Fenster cmd_2
2018-04-01 22:20:50 DOIF dKontakte_Tuer cmd_nr: 1
2018-04-01 22:20:50 DOIF dKontakte_Tuer cmd: 1
2018-04-01 22:20:50 DOIF dKontakte_Tuer cmd_event: Kontakte
2018-04-01 22:20:50 DOIF dKontakte_Tuer cmd_1
2018-04-01 22:20:51 LEDStripe LED_Rahmen led_count: 8
2018-04-01 22:20:51 LEDStripe LED_Rahmen leds_on: 3
2018-04-01 22:20:51 HTTPMOD Kontakte Haustuer: Door Open
2018-04-01 22:20:51 HTTPMOD Kontakte Status_Tuer: Open
2018-04-01 22:21:05 DOIF dKontakte_Fenster cmd_nr: 2
2018-04-01 22:21:05 DOIF dKontakte_Fenster cmd: 2
2018-04-01 22:21:05 DOIF dKontakte_Fenster cmd_event: Kontakte
2018-04-01 22:21:05 DOIF dKontakte_Fenster cmd_2
2018-04-01 22:21:05 DOIF dKontakte_Tuer cmd_nr: 2
2018-04-01 22:21:05 DOIF dKontakte_Tuer cmd: 2
2018-04-01 22:21:05 DOIF dKontakte_Tuer cmd_event: Kontakte
2018-04-01 22:21:05 DOIF dKontakte_Tuer cmd_2
2018-04-01 22:21:05 LEDStripe LED_Rahmen led_count: 8
2018-04-01 22:21:05 LEDStripe LED_Rahmen leds_on: 3
2018-04-01 22:21:05 HTTPMOD Kontakte Haustuer: Door Close
2018-04-01 22:21:05 HTTPMOD Kontakte Status_Tuer: Close
############TÜR     ZU     ENDE##################

Torben80


Torben80

Warum lösen beide DOIFs aus?
dKontakte_Tuer
und
dKontakte_Fenster

Wenn ich ein Fenster ODER eine Tür öffne und schließe?

Lists sind im ersten Beitrag...

Frank_Huber

Die lists bringen nichts. (aktueller Zustand)
Schau in die doif, da siehst doch was  getriggert hat

Mit dem Handy online, daher kurz gefasst...


Torben80

Zustand JETZT (ALLES IST ZU)
Das letzte was auf und zu gemacht wurde, ist die Haustür.
Under der Satus vom DUMMY (Fenster.Tuer) ist nach dem Schließen der Haustür auf Open gesprungen?!

Hier nun ALLES:

DOIF ---> dKontakte_Fenster
Internals:
   CFGFN     
   DEF        ([Kontakte:Badezimmer] eq "Door Open" or [Kontakte:Esszimmer] eq "Door Open" or [Kontakte:Flur] eq "Door Open" or [Kontakte:Kueche] eq "Door Open" or [Kontakte:Wohnzimmer_links] eq "Door Open" or [Kontakte:Wohnzimmer_rechts] eq "Door Open")
(setreading Kontakte Status_Fenster Open)
DOELSE
(setreading Kontakte Status_Fenster Close)
   MODEL      FHEM
   NAME       dKontakte_Fenster
   NR         3872
   NTFY_ORDER 50-dKontakte_Fenster
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-04-01 22:21:05   Device          Kontakte
     2018-04-01 22:21:05   cmd             2
     2018-04-01 22:21:05   cmd_event       Kontakte
     2018-04-01 22:21:05   cmd_nr          2
     2018-04-01 22:21:05   e_Kontakte_Badezimmer Door Close
     2018-04-01 22:21:05   e_Kontakte_Esszimmer Door Close
     2018-04-01 22:21:05   e_Kontakte_Flur Door Close
     2018-04-01 22:21:05   e_Kontakte_Kueche Door Close
     2018-04-01 22:21:05   e_Kontakte_Wohnzimmer_links Door Close
     2018-04-01 22:21:05   e_Kontakte_Wohnzimmer_rechts Door Close
     2018-03-30 14:20:26   mode            enabled
     2018-04-01 22:21:05   state           cmd_2
   Regex:
   condition:
     0          ReadingValDoIf($hash,'Kontakte','Badezimmer') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Esszimmer') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Flur') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Kueche') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Wohnzimmer_links') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Wohnzimmer_rechts') eq "Door Open"
   devices:
     0           Kontakte
     all         Kontakte
   do:
     0:
       0          setreading Kontakte Status_Fenster Open
     1:
       0          setreading Kontakte Status_Fenster Close
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Haustuer: Door Close
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Kontakte
     timerevent Haustuer: Door Close
     triggerDev Kontakte
     timerevents:
       Haustuer: Door Close
       Status_Tuer: Close
     timereventsState:
       Haustuer: Door Close
       Status_Tuer: Close
     triggerEvents:
       Haustuer: Door Close
       Status_Tuer: Close
     triggerEventsState:
       Haustuer: Door Close
       Status_Tuer: Close
   internals:
   itimer:
   readings:
     0           Kontakte:Badezimmer Kontakte:Esszimmer Kontakte:Flur Kontakte:Kueche Kontakte:Wohnzimmer_links Kontakte:Wohnzimmer_rechts
     all         Kontakte:Badezimmer Kontakte:Esszimmer Kontakte:Flur Kontakte:Kueche Kontakte:Wohnzimmer_links Kontakte:Wohnzimmer_rechts
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Alarmanlage


DOIF ---> dKontakte_Tuer
Internals:
   CFGFN     
   DEF        ([Kontakte:Haustuer] eq "Door Open" or [Kontakte:Terassentuer] eq "Door Open" or [Kontakte:Kellertuer] eq "Door Open")
(setreading Kontakte Status_Tuer Open)
DOELSE
(setreading Kontakte Status_Tuer Close)
   MODEL      FHEM
   NAME       dKontakte_Tuer
   NR         3463
   NTFY_ORDER 50-dKontakte_Tuer
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-04-01 22:21:05   Device          Kontakte
     2018-04-01 22:21:05   cmd             2
     2018-04-01 22:21:05   cmd_event       Kontakte
     2018-04-01 22:21:05   cmd_nr          2
     2018-04-01 22:21:05   e_Kontakte_Haustuer Door Close
     2018-04-01 22:21:05   e_Kontakte_Kellertuer Door Close
     2018-04-01 22:21:05   e_Kontakte_Terassentuer Door Close
     2018-03-30 14:26:18   mode            enabled
     2018-04-01 22:21:05   state           cmd_2
   Regex:
   condition:
     0          ReadingValDoIf($hash,'Kontakte','Haustuer') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Terassentuer') eq "Door Open" or ReadingValDoIf($hash,'Kontakte','Kellertuer') eq "Door Open"
   devices:
     0           Kontakte
     all         Kontakte
   do:
     0:
       0          setreading Kontakte Status_Tuer Open
     1:
       0          setreading Kontakte Status_Tuer Close
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Haustuer: Door Close
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Kontakte
     timerevent Haustuer: Door Close
     triggerDev Kontakte
     timerevents:
       Haustuer: Door Close
       Status_Tuer: Close
     timereventsState:
       Haustuer: Door Close
       Status_Tuer: Close
     triggerEvents:
       Haustuer: Door Close
       Status_Tuer: Close
     triggerEventsState:
       Haustuer: Door Close
       Status_Tuer: Close
   internals:
   itimer:
   readings:
     0           Kontakte:Haustuer Kontakte:Terassentuer Kontakte:Kellertuer
     all         Kontakte:Haustuer Kontakte:Terassentuer Kontakte:Kellertuer
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Alarmanlage



DOIF ---> dKontakte_STATE
Internals:
   CFGFN     
   DEF        ([Kontakte:Status_Tuer] eq "Open" or [Kontakte:Status_Fenster] eq "Open") (set Fenster.Tuer Open) DOELSEIF ([Kontakte:Status_Tuer] eq "Close" and [Kontakte:Status_Fenster] eq "Close") (set Fenster.Tuer Close)
   MODEL      FHEM
   NAME       dKontakte_STATE
   NR         10337
   NTFY_ORDER 50-dKontakte_STATE
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-04-01 22:21:05   Device          Kontakte
     2018-04-01 22:20:40   cmd             1
     2018-04-01 22:20:40   cmd_event       Kontakte
     2018-04-01 22:20:40   cmd_nr          1
     2018-04-01 22:20:45   e_Kontakte_Status_Fenster Close
     2018-04-01 21:51:31   e_Kontakte_Status_Tuer Open
     2018-04-01 21:46:28   mode            enabled
     2018-04-01 22:20:40   state           cmd_1
   Regex:
   condition:
     0          ReadingValDoIf($hash,'Kontakte','Status_Tuer') eq "Open" or ReadingValDoIf($hash,'Kontakte','Status_Fenster') eq "Open"
   devices:
     0           Kontakte
     all         Kontakte
   do:
     0:
       0          set Fenster.Tuer Open
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Haustuer: Door Close
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Kontakte
     timerevent Flur: Door Open,Status_Fenster: Open
     triggerDev Kontakte
     timerevents:
       Flur: Door Open
       Status_Fenster: Open
     timereventsState:
       Flur: Door Open
       Status_Fenster: Open
     triggerEvents:
       Haustuer: Door Close
       Status_Tuer: Close
     triggerEventsState:
       Haustuer: Door Close
       Status_Tuer: Close
   internals:
   itimer:
   readings:
     0           Kontakte:Status_Tuer Kontakte:Status_Fenster
     all         Kontakte:Status_Tuer Kontakte:Status_Fenster
   trigger:
   uiState:
   uiTable:
Attributes:
   checkReadingEvent 1
   do         always
   room       Alarmanlage


Dummy ---> Fenster.Tuer:
Internals:
   CFGFN     
   NAME       Fenster.Tuer
   NR         10325
   STATE      Open
   TYPE       dummy
   READINGS:
     2018-04-01 22:20:40   state           Open
Attributes:
   room       Alarmanlage


notify Fenster:
Internals:
   CFGFN     
   DEF        Kontakte:Status_Fenster:.* {if (ReadingsVal("Kontakte","Status_Fenster",0) eq "Open") {fhem ("set LED_Rahmen pixel 6 25 0 0");} else {if (ReadingsVal("Kontakte","Status_Fenster",0) eq "Close") {fhem ("set LED_Rahmen pixel 6 0 25 0");}}}
   NAME       led_alarm_konFens
   NOTIFYDEV  Kontakte
   NR         3698
   NTFY_ORDER 50-led_alarm_konFens
   REGEXP     Kontakte:Status_Fenster:.*
   STATE      2018-04-01 22:20:45
   TYPE       notify
   READINGS:
     2018-03-29 23:32:57   state           active
Attributes:
   room       Alarmanlage


notify Tuer:
Internals:
   CFGFN     
   DEF        Kontakte:Status_Tuer:.* {if (ReadingsVal("Kontakte","Status_Tuer",0) eq "Open") {fhem ("set LED_Rahmen pixel 5 25 0 0");} else {if (ReadingsVal("Kontakte","Status_Tuer",0) eq "Close") {fhem ("set LED_Rahmen pixel 5 0 25 0");}}}
   NAME       led_alarm_konTuer
   NOTIFYDEV  Kontakte
   NR         3702
   NTFY_ORDER 50-led_alarm_konTuer
   REGEXP     Kontakte:Status_Tuer:.*
   STATE      2018-04-01 22:21:05
   TYPE       notify
   READINGS:
     2018-03-29 23:34:31   state           active
Attributes:
   room       Alarmanlage





Kontakte (HTTPMOD):
Internals:
   BUSY       0
   CHANGED   
   DEF        http://user:pass@192.168.xx.xx/action/deviceListGet 5
   Interval   5
   JSONEnabled 1
   LASTSEND   1522615779.73716
   MainURL    http://user:pass@192.168.xx.xx/action/deviceListGet
   ModuleVersion 3.4.2 - 10.2.2018
   NAME       Kontakte
   NR         26
   STATE      Close Close
   TRIGGERTIME 1522615784.73552
   TRIGGERTIME_FMT 2018-04-01 22:49:44
   TYPE       HTTPMOD
   addr       http://192.168.xx.xx:80
   auth       1
   code       200
   compress   1
   conn       
   data       
   displayurl http://user:pass@192.168.xx.xx/action/deviceListGet
   header     
   host       192.168.xx.xx
   httpheader HTTP/1.0 200 OK
Server: Mongoose
Pragma: no-cache
Cache-control: no-cache
Expires: 0
Content-Type: application/json; charset=utf-8
   httpversion 1.0
   hu_blocking 0
   hu_filecount 68679
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /action/deviceListGet
   protocol   http
   pwd        pass
   redirects  0
   timeout    2
   url        http://user:pass@192.168.xx.xx/action/deviceListGet
   user       user
   value      0
   OLDREADINGS:
   QUEUE:
   READINGS:
     2018-04-01 22:49:39   Badezimmer      Door Close
     2018-04-01 22:49:39   Esszimmer       Door Close
     2018-04-01 22:49:39   Flur            Door Close
     2018-04-01 22:49:39   Haustuer        Door Close
     2018-04-01 22:49:39   Kellertuer      Door Close
     2018-04-01 22:49:39   Kueche          Door Close
     2018-03-30 14:56:48   Status          Open
     2018-04-01 22:21:05   Status_Fenster  Close
     2018-04-01 22:21:05   Status_Tuer     Close
     2018-04-01 22:49:39   Terassentuer    Door Close
     2018-04-01 22:49:39   Wohnzimmer_links Door Close
     2018-04-01 22:49:39   Wohnzimmer_rechts Door Close
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://user:pass@192.168.xx.xx/action/deviceListGet
     value      0
   defptr:
     readingBase:
       Badezimmer reading
       Esszimmer  reading
       Flur       reading
       Haustuer   reading
       Kellertuer reading
       Kueche     reading
       Terassentuer reading
       Wohnzimmer_links reading
       Wohnzimmer_rechts reading
     readingNum:
       Badezimmer 07
       Esszimmer  02
       Flur       08
       Haustuer   01
       Kellertuer 09
       Kueche     06
       Terassentuer 05
       Wohnzimmer_links 03
       Wohnzimmer_rechts 04
     readingOutdated:
     requestReadings:
       update:
         Badezimmer reading 07
         Esszimmer  reading 02
         Flur       reading 08
         Haustuer   reading 01
         Kellertuer reading 09
         Kueche     reading 06
         Terassentuer reading 05
         Wohnzimmer_links reading 03
         Wohnzimmer_rechts reading 04
   sslargs:
Attributes:
   devStateIcon Open:fts_window_1w_open Close:fts_window_1w
   event-on-change-reading .*
   reading01JSON senrows_10_status
   reading01Name Haustuer
   reading02JSON senrows_04_status
   reading02Name Esszimmer
   reading03JSON senrows_05_status
   reading03Name Wohnzimmer_links
   reading04JSON senrows_07_status
   reading04Name Wohnzimmer_rechts
   reading05JSON senrows_09_status
   reading05Name Terassentuer
   reading06JSON senrows_02_status
   reading06Name Kueche
   reading07JSON senrows_06_status
   reading07Name Badezimmer
   reading08JSON senrows_08_status
   reading08Name Flur
   reading09JSON senrows_03_status
   reading09Name Kellertuer
   room       Alarmanlage
   stateFormat Status_Tuer Status_Fenster
   userReadings Status,Status_Fenster,Status_Tuer
   userattr   reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading05JSON reading05Name reading06JSON reading06Name reading07JSON reading07Name reading08JSON reading08Name reading09JSON reading09Name

eisman

hi,

wenn ich das richtig verstanden habe soll eine LED bei Fenster offen auf Rot gehen und sonst auf grün, dito Türen.
die Lösung hatte ich weiter open schon geschrieben diese funktioniert bei 2 Installationen seit zwei Jahren ohne Probleme.
man muss sie nur etwas umbauen (device und readings).

entweder notify oder DOIF, beide braucht man dafür nicht.
bei der DOIF kann man auch die LED setzen.

Stellt sich mir die Frage will man hier eine Lösung oder nicht?????

gruss




1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Torben80

Die notifys schalten die LEDs. Das läuft ja auch.

Ich will aber zusätzlich, im den State eines Devices auf Open  / Close setzen wenn Tür oder Fenster auf ist.

Also muss ich ja per doif schon mal den Staus von Fenster und Türen überwachen um ihn dann auszuwerten.

Mfg torben


Gesendet von iPhone mit Tapatalk

eisman

Hi auch das funktioniert in der doif  mit set Dummy state ohne Probleme...... gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Torben80

Ja, das weiß ich.
Aber genau das ist ja das Problem was ich hier debattiere. Das Doif dreht den Status um. Siehe bitte erstes Post.

Ich habe schon alles auseinander gerissen, um den Fehler zu finden.


Gesendet von iPhone mit Tapatalk

eisman

Hi,

Nimm einfach alles aus der doif raus und fange mit einem Fenster an. Ich würde auch das or weglassen und mit eq oder ne arbeiten. Wenn ich das damals richtig verstanden habe,werte das or nur 2 Dinge , also muss man die klammern richtig setzen. Was bei and nicht dramatisch ist.
Entweder alle Fenster sind zu, dann grün oder sonst rot!
Da macht man keine Fehler
Und im Ausführung set led und set Dummy.

Gruß
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Frank_Huber

Hier ist der fehler:

READINGS:
     2018-04-01 22:21:05   Device          Kontakte
     2018-04-01 22:20:40   cmd             1
     2018-04-01 22:20:40   cmd_event       Kontakte
     2018-04-01 22:20:40   cmd_nr          1
     2018-04-01 22:20:45   e_Kontakte_Status_Fenster Close
     2018-04-01 21:51:31   e_Kontakte_Status_Tuer Open
     2018-04-01 21:46:28   mode            enabled
     2018-04-01 22:20:40   state           cmd_1


Mit dem Handy online, daher kurz gefasst...


Torben80

Ich kann in der Auswertung nicht ,,Set dummy" machen.

Warum?

Ein Doif nur für Fenster und
Ein Doif nur für Tür.

Dann muss jedes Doif in Auswertung LED schalten UND ein Reading irgendeines Devices auf Fenster ,,Open" / Tür ,,Open".

JETZT das dritte Doif, das den Zustand der beiden gerade genannten Readings prüft und per Auswertung den State des dummys setzt. Und da ist wieder das Problem aus Topic 1. er verwechselt den Zustand.


Gesendet von iPhone mit Tapatalk

Torben80

@Frank Huber,
das habe ich schon gesehen, aber ich kann es ja nicht ändern, es liegt ja nicht an mir.

Die Readings stehen beide auf Close, definitiv!
Aber da zeigt er er Open an, als ob er den Stuswechsel (Event) nicht checkt.


Gesendet von iPhone mit Tapatalk