FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Larusso am 06 Juni 2018, 20:30:51

Titel: TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Larusso am 06 Juni 2018, 20:30:51
Hallo zusammen,

ich versuche mich gerade daran eine TTS Benachrichtigung auszugeben wenn mein Garagentor länger als 20 Minuten auf steht, leider bekomme ich mit meiner unten aufgeführten DOIF immer nach 20 Minuten eine Benachrichtigung das die Garage aufsteht. Nun sollte man doch meinen das dies nur geschieht wenn state auf für 20 Minuten aktiv ist und nicht wenn das reading in den 20 Minuten wieder auf zu switcht. Hat da jemand eine Idee wo mein Denkfehler ist?

([Garage] eq "auf" and [Garage:state:sec] <1200) (set MyTTS tts die Garage ist seit 20 Minuten auf schliesen sie bitte die Garage)


Internals:
   DEF        ([Garage] eq "auf" and  [Garage:state:sec] <1200) (set MyTTS tts die Garage ist seit 20 Minuten auf schliesen sie bitte die Garage)
   MODEL      FHEM
   NAME       ttsGarage
   NR         495
   NTFY_ORDER 50-ttsGarage
   STATE      disabled
   TYPE       DOIF
   .attreour:
     .*
   READINGS:
     2018-06-06 18:54:51   Device          Garage
     2018-06-06 18:53:06   cmd             1
     2018-06-06 18:53:06   cmd_event       Garage
     2018-06-06 18:53:06   cmd_nr          1
     2018-06-06 18:54:51   e_Garage_STATE  zu
     2018-06-06 18:54:51   e_Garage_state  zu
     2018-06-06 18:55:23   last_cmd        cmd_1
     2018-06-06 18:55:23   mode            disabled
     2018-06-06 18:55:23   state           disabled
   condition:
     0          InternalDoIf($hash,'Garage','STATE') eq "auf" and  ReadingSecDoIf('Garage','state') <1200
   devices:
     0           Garage
     all         Garage
   do:
     0:
       0          set MyTTS tts die Garage ist seit 20 Minuten auf schliesen sie bitte die Garage
     1:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           Garage:STATE
     all         Garage:STATE
   itimer:
   perlblock:
   readings:
     0           Garage:state
     all         Garage:state
   uiState:
   uiTable:
Attributes:
   alias      tts Garage
   do         always
   event-on-update-reading .*
   room       99.unbenutzt


dazu passend gibt es noch den Dummy für das Garagentor, welcher an states nicht viel her gibt auf und zu

Internals:
   CHANGED   
   NAME       Garage
   NR         409
   STATE      zu
   TYPE       dummy
   .attreocr:
     state
   .attrminint:
   READINGS:
     2018-06-06 20:28:53   state           zu
Attributes:
   devStateIcon auf:fts_garage_door_10@red zu:fts_garage_door_100
   event-on-change-reading state
   fp_Eigenheim 1025,481,5,Garage,
   genericDeviceType garage
   group      Garagensteuerung
   room       Garage,Homekit,Text2Speech
   setList    auf zu
   webCmd     auf:zu
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Otto123 am 06 Juni 2018, 22:13:10
Hi,

du fragst ab ob das Reading jünger als 1200 sec ist. Oder?
[Garage:state:sec] <1200

Aus meiner Sicht sollte die Nachricht sofort kommen und nicht nach 20 min. Oder ich habe es nicht verstanden.

Leider ist Dein list im Zustand disabled  :'(

Gruß Otto
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Hollo am 08 Juni 2018, 10:04:29
Zitat von: Larusso am 06 Juni 2018, 20:30:51
...wenn mein Garagentor länger als 20 Minuten auf steht
...wenn state auf für 20 Minuten aktiv ist und nicht wenn das reading in den 20 Minuten wieder auf zu switcht.

Hat da jemand eine Idee wo mein Denkfehler ist?
Wie wäre es einfach mit einem watchdog!?
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: willib am 08 Juni 2018, 11:03:56
Für ein nur cmd ist das DOIF vielleicht overkill. Da solltest du einen watchdog nehmen.
Wenn du noch mehr vorhast würde ich folgendes vorschlagen:
([Garage] eq "auf") (set MyTTS tts die Garage ist seit 20 Minuten auf schliesen sie bitte die Garage)
und als Attribut
wait 1200
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Damian am 08 Juni 2018, 11:15:28
Zitat von: Otto123 am 06 Juni 2018, 22:13:10
Hi,

du fragst ab ob das Reading jünger als 1200 sec ist. Oder?
[Garage:state:sec] <1200

Aus meiner Sicht sollte die Nachricht sofort kommen und nicht nach 20 min. Oder ich habe es nicht verstanden.

Leider ist Dein list im Zustand disabled  :'(

Gruß Otto
Abfragen dieser Art sind meistens nur ohne Trigger sinnvoll, also [?Garage:state:sec] <1200, denn zum Triggerzeitpunkt ist [Garage:state:sec] = 0, in diesem Fall ist es eher ungeeignet.

Wait beinhaltet normalerweise watchdog-Funktionalität, da es im ELSE-Fall abbricht.
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Larusso am 08 Juni 2018, 14:33:07
danke an alle für die Rückmeldung......

ja < oder > macht schon einen riesigen unterschied in der syntax  :o Habe das ganze jetzt mal mit wait 1200 eingestellt und schau mal ob das klappt, melde mich zwecks gelösst oder nicht noch mal.....dankeschön für den wie immer schnellen support.

Zusatz: wait im DOIF wird nicht unterbrochen wenn das Garagentor wieder zu ist also löst TTS auch dann aus wenn ich es wider schliese. Ich habe es jetzt über einen watchdog gelösst, das scheint sehr gut zu funktionieren. Eine Frage hätte ich aber noch zu dem watchdog. Löst der watchdog nur einmal aus wenn das Ereigniss eintritt oder wiederholt er den Auslöser in bestimmten Intervallen? Ich hätte gerne nicht nur einmal eine Benachrichtigung per TTS wenn das Garagentor nach Zeit x noch offen steht, sollte ich dann nämlich gerade im Garten sein verpasse ich den Aufruf und das Tor bleibt weiter auf. Einen Automatischen schlies Vorgang möchte ich nicht einbringen, da ich Kinder habe und das Garagentor keine Lichtschranke besitzt.

hier der watchdog als device list:


Internals:
   CFGFN     
   CMD        set MyTTS tts das Garagentor steht noch auf!
   DEF        Garage:auf 00:00:30 Garage:zu set MyTTS tts das Garagentor steht noch auf!
   NAME       Garagentorwaechter
   NOTIFYDEV  Garage,Garagentorwaechter
   NR         7109
   NTFY_ORDER 50-Garagentorwaechter
   RE1        Garage:auf
   RE2        Garage:zu
   STATE      defined
   TO         30
   TYPE       watchdog
   .attraggr:
   .attrminint:
   READINGS:
     2018-06-08 14:52:02   Activated       activated
     2018-06-08 14:52:32   Triggered       triggered
     2018-06-08 14:53:14   state           defined
Attributes:
   alias      tts Garage steht zu lange auf
   autoRestart 1
   room       Garage,Text2Speech
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Damian am 08 Juni 2018, 16:23:40
ZitatZusatz: wait im DOIF wird nicht unterbrochen wenn das Garagentor wieder zu ist also löst TTS auch dann aus wenn ich es wider schliese.

Das ist nicht richtig, siehe Beispiel von willib.
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Larusso am 08 Juni 2018, 17:49:02
Habe es aber ausprobiert und genau so verhält es sich bei mir.
Titel: Antw:TTS Benachrichtigung nach 20 Minuten Garage auf kommt immer wenn sie offen war
Beitrag von: Damian am 08 Juni 2018, 22:03:13
Zitat von: Larusso am 08 Juni 2018, 17:49:02
Habe es aber ausprobiert und genau so verhält es sich bei mir.

Dann hast du beim DOIF etwas falsch definiert, z. B. do always. Wenn watchdog geht, dann ist alles ok.