Hauptmenü

Kleine DOIF Hilfe :)

Begonnen von ChrisW, 16 September 2017, 13:39:32

Vorheriges Thema - Nächstes Thema

ChrisW

Raspberry PI3 mit allem möglichen.

Damian

ohne do always wird nur nach Zustandswechsel geschaltet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ChrisW

hm wie bekomm ich das den nun sauber hin ?
Will ja nur damit hinbekommen das das Tablet immer an bleibt wenn in den 30 Minuten eins von beiden True ist. Wenn jetzt 30 Minuten False bei beiden ist soll screenOff gehen.

Raspberry PI3 mit allem möglichen.

Damian

Zitat von: ChrisW am 22 September 2017, 22:02:27
hm wie bekomm ich das den nun sauber hin ?
Will ja nur damit hinbekommen das das Tablet immer an bleibt wenn in den 30 Minuten eins von beiden True ist. Wenn jetzt 30 Minuten False bei beiden ist soll screenOff gehen.

Dann musst du bei false mit and statt or arbeiten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ChrisW

lol doch so einfach ? Scheint im Test echt zu klappen ich werd es mal weiter im Auge behalten :)
Raspberry PI3 mit allem möglichen.

ChrisW

#20
also heute morgen auch wieder das Problem screenOn führt er nicht aus. Mache ich es Manuell geht das Display an.
Irgendwie nach der Nacht wieso auch immer klappt das DoIf nicht mehr. Der STatus dort wurde aber verändert :(

([Winconnect.TABLET:motion_detect] eq "True" or [Winconnect.TABLET:microphone_detect] eq "True") (set Winconnect.TABLET screenOn) DOELSEIF ([Winconnect.TABLET:motion_detect] eq "False" and [Winconnect.TABLET:microphone_detect] eq "False") (set Winconnect.TABLET screenOff)


Hab mal ein Filelog erstellt aber da steht nur sowas:
2017-09-25_09:16:42 di_tabletscreen wait_timer: 25.09.2017 09:46:42 cmd_2 Winconnect.TABLET
2017-09-25_09:18:32 di_tabletscreen wait_timer: no timer
2017-09-25_09:18:33 di_tabletscreen wait_timer: 25.09.2017 09:48:33 cmd_2 Winconnect.TABLET
2017-09-25_09:22:17 di_tabletscreen wait_timer: no timer
2017-09-25_09:22:33 di_tabletscreen wait_timer: 25.09.2017 09:52:33 cmd_2 Winconnect.TABLET
2017-09-25_09:22:36 di_tabletscreen wait_timer: no timer
2017-09-25_09:22:41 di_tabletscreen wait_timer: 25.09.2017 09:52:41 cmd_2 Winconnect.TABLET
2017-09-25_09:22:44 di_tabletscreen wait_timer: no timer
2017-09-25_09:22:49 di_tabletscreen wait_timer: 25.09.2017 09:52:49 cmd_2 Winconnect.TABLET
2017-09-25_09:22:49 di_tabletscreen wait_timer: no timer
2017-09-25_09:22:54 di_tabletscreen wait_timer: 25.09.2017 09:52:54 cmd_2 Winconnect.TABLET
2017-09-25_09:22:55 di_tabletscreen wait_timer: no timer
2017-09-25_09:22:59 di_tabletscreen wait_timer: 25.09.2017 09:52:59 cmd_2 Winconnect.TABLET
2017-09-25_09:23:02 di_tabletscreen wait_timer: no timer
2017-09-25_09:23:04 di_tabletscreen wait_timer: 25.09.2017 09:53:04 cmd_2 Winconnect.TABLET
2017-09-25_09:23:12 di_tabletscreen wait_timer: no timer
2017-09-25_09:23:43 di_tabletscreen wait_timer: 25.09.2017 09:53:43 cmd_2 Winconnect.TABLET


Kann es sein das wegen dem wait attribut auch für screen on gewartet wird?
Raspberry PI3 mit allem möglichen.

Damian

Dein Timer zur Ausführung wird zwar gesetzt, paar Minuten später wird durch ein Ereignis aber wieder in den cmd_1 Zustand gewechselt - das Löscht den Timer - die Ausführung von cmd_2 kommt nicht zum Zuge.

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

ChrisW

hm und eine idee wie ich das nun am besten gelöst bekomme ? Kann man den timer nicht im code einbauen ? Würde das was bringen ?
Raspberry PI3 mit allem möglichen.

Damian

Zitat von: ChrisW am 25 September 2017, 11:39:59
hm und eine idee wie ich das nun am besten gelöst bekomme ? Kann man den timer nicht im code einbauen ? Würde das was bringen ?

setze mal dieses Attribut im deinem DOIF: https://fhem.de/commandref_DE.html#DOIF_checkReadingEvent
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ChrisW

okay Danke habe mal checkReadingEvent 0 gesetzt im ersten Test hat es nun geklappt ich versuche es nun mal mit beiden zusammen ob das auch noch geht :)
Raspberry PI3 mit allem möglichen.

Damian

Zitat von: ChrisW am 25 September 2017, 12:40:15
okay Danke habe mal checkReadingEvent 0 gesetzt im ersten Test hat es nun geklappt ich versuche es nun mal mit beiden zusammen ob das auch noch geht :)

eigentlich müsstest du checkReadingEvent  auf 1 setzen, damit es Wirkung zeigt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ChrisW

dann hat es nicht funktioniert. Hatte es erst auf 1.
Nun mit 0 klappt es derzeit .. komisch
Raspberry PI3 mit allem möglichen.

ChrisW

so lange ohne ausgekommen aber jetzt habe ich fhem neu gemacht nun will ich es nochmal versuchen.. mit checkReadingEvent 0 hat es auch nicht besser funktioniert. Mit 1 aber auch nicht.
Sehe das bei wait_timer öfters notimer oder so etwas was ( 06.02.2019 21:39:11 cmd_2 Winconnect.TABLET ) aber dann wieder zu notimer wechselt........ die beiden Mic und Motion verändern sich aber nicht !

Internals:
   DEF        ([Winconnect.TABLET:motion_detect] eq "True" or [Winconnect.TABLET:microphone_detect] eq "True") (set Winconnect.TABLET screenOn) DOELSEIF ([Winconnect.TABLET:motion_detect] eq "False" and [Winconnect.TABLET:microphone_detect] eq "False") (set Winconnect.TABLET screenOff)

   FUUID      5c5496c6-f33f-09a2-0553-30fd4008f75d212c
   MODEL      FHEM
   NAME       di_tabletscreen
   NR         670
   NTFY_ORDER 50-di_tabletscreen
   STATE      cmd_1
   TYPE       DOIF
   .attraggr:
   .attrminint:
   READINGS:
     2019-02-06 21:24:20   Device          Winconnect.TABLET
     2019-02-05 20:55:02   cmd             1
     2019-02-05 20:55:02   cmd_event       Winconnect.TABLET
     2019-02-05 20:55:02   cmd_nr          1
     2019-02-06 21:23:54   e_Winconnect.TABLET_microphone_detect True
     2019-02-06 21:11:24   e_Winconnect.TABLET_motion_detect False
     2019-02-05 20:55:02   error           set Winconnect.TABLET screenOn: Device needs to be ON to adjust screenon.
     2019-02-05 20:55:02   state           cmd_1
     2019-02-06 21:23:54   wait_timer      no timer
   Regex:
   attr:
     wait:
       0:
         0
       1:
         800
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Winconnect.TABLET','motion_detect') eq "True" or ::ReadingValDoIf($hash,'Winconnect.TABLET','microphone_detect') eq "True"
     1          ::ReadingValDoIf($hash,'Winconnect.TABLET','motion_detect') eq "False" and ::ReadingValDoIf($hash,'Winconnect.TABLET','microphone_detect') eq "False"
   devices:
     0           Winconnect.TABLET
     1           Winconnect.TABLET
     all         Winconnect.TABLET
   do:
     0:
       0          set Winconnect.TABLET screenOn
     1:
       0          set Winconnect.TABLET screenOff
     2:
   helper:
     event      memory_available: 1.893
     globalinit 1
     last_timer 0
     sleepdevice Winconnect.TABLET
     sleepsubtimer 0
     sleeptimer -1
     timerdev   Winconnect.TABLET
     timerevent microphone_detect: True
     triggerDev Winconnect.TABLET
     timerevents:
       microphone_detect: True
     timereventsState:
       microphone_detect: True
     triggerEvents:
       memory_available: 1.893
     triggerEventsState:
       memory_available: 1.893
   internals:
   itimer:
   perlblock:
   readings:
     0           Winconnect.TABLET:motion_detect Winconnect.TABLET:microphone_detect
     1           Winconnect.TABLET:motion_detect Winconnect.TABLET:microphone_detect
     all         Winconnect.TABLET:motion_detect Winconnect.TABLET:microphone_detect
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   checkReadingEvent 1
   wait       0:800
Raspberry PI3 mit allem möglichen.

amenomade

Wäre es nicht besser mit:
([Winconnect.TABLET:motion_detect] eq "True" or [Winconnect.TABLET:microphone_detect] eq "True") (set Winconnect.TABLET screenOn) DOELSE (set Winconnect.TABLET screenOff)
?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ChrisW

Danke schaut aktuell so aus als ob es funktioniert :)
Raspberry PI3 mit allem möglichen.