Lösungsansatz für Öffnungsdauer von Türöffnerkontakt

Begonnen von Carsten K., 01 Januar 2016, 17:02:59

Vorheriges Thema - Nächstes Thema

Carsten K.

Gutes neues Jahr!

Weihnachten hat mir einen Türkontakt beschert - funzt super.
Meine Wunsch: ich möchte eine Aktion ausführen, wenn der Türkontakt länger als x Sekunden offen ist (unsere Haustür schließt nicht immer korrekt).

DOIF habe ich schon ausprobiert, hat nicht geklappt.
Ich könnte natürlich ein "at" definieren, aber ich denke, dass kostet zuviel Ressourcen.

Ich habe bis jetzt einen Zeitwert vom letzten Öffnen der Tür.
Meine Bedingung könnte sein "(time - doorLastOpened) > 120)".

Welchen "schicken" Ansatz seht Ihr?
Ich bin gespannt.

VG
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

marvin78

Wie wäre es mit einem watchdog?

Wobei das mit DOIF sicher auch funktioniert.

Rince

Ich verwende DOIF, klappt sehr gut.
Wenn du mal ein list <türöffnerdevice> posten würdest, könnte man dir auch helfen...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Carsten K.

Ich dachte, für DOIF brauche ich einen Event (Notify) von irgendeinem Device.
Habe ich vielleicht noch nicht richtig verstanden.
Ich werde da noch weiterüben.

WatchDog kenne ich noch nicht - werde ich auch mal ausprobieren.

Vielen Dank für die Hinweise
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Carsten K.

List TuerKontakt1:
Internals:
   CUL1_MSGCNT 167
   CUL1_RAWMSG A0C3584413FC224000000013400::-82:CUL1
   CUL1_RSSI  -82
   CUL1_TIME  2016-01-01 16:11:46
   DEF        3FC224
   IODev      CUL1
   LASTInputDev CUL1
   MSGCNT     167
   NAME       TuerKontakt1
   NR         286
   NTFY_ORDER 50-TuerKontakt1
   STATE      closed
   TYPE       CUL_HM
   lastMsg    No:35 - t:41 s:3FC224 d:000000 013400
   protCmdDel 4
   protLastRcv 2016-01-01 16:11:46
   protResnd  3 last_at:2015-12-30 17:44:17
   protResndFail 1 last_at:2015-12-30 18:15:15
   protSnd    4 last_at:2015-12-30 18:15:14
   protState  CMDs_done_Errors:1
   rssi_at_CUL1 avg:-72.59 min:-101 max:-50.5 lst:-82 cnt:167
   Readings:
     2015-12-30 15:37:49   Activity        alive
     2015-12-24 21:28:44   CommandAccepted yes
     2015-12-24 21:28:38   D-firmware      2.4
     2015-12-24 21:28:38   D-serialNr      MEQ1138668
     2015-12-24 21:28:38   R-pairCentral   set_0xF11234
     2015-12-31 16:34:23   alive           yes
     2016-01-01 16:11:46   battery         ok
     2016-01-01 16:11:46   contact         closed (to broadcast)
     2015-12-31 16:34:23   recentStateType info
     2015-12-31 16:34:23   sabotageError   off
     2016-01-01 16:11:46   state           closed
     2016-01-01 16:11:46   trigger_cnt     52
   Helper:
     HM_CMDNR   53
     PONtest    1
     getCfgList all
     getCfgListNo ,4
     mId        00B1
     rxType     28
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +3FC224,00,00,00
       nextSend   1451661106.55549
       prefIO
       rxt        2
       vccu
       p:
         3FC224
         00
         00
         00
     Mrssi:
       mNo        35
       Io:
         CUL1       -80
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
     Rssi:
       At_cul1:
         avg        -72.5928143712575
         cnt        167
         lst        -82
         max        -50.5
         min        -101
Attributes:
   IODev      CUL1
   actCycle   028:00
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   2.4
   group      Tuerklingel
   model      HM-SEC-SC-2
   room       5_System
   serialNr   MEQ1138668
   subType    threeStateSensor
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

chunter1

Machs mit einem einfachen DOIF und dem attr wait x.

Carsten K.

Vielen Dank für die Tips.
Ich werde meine Ergebnisse dann später hier kundtun.

VG
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Wuppi68

FHEM unter Proxmox als VM

Carsten K.

Zitat von: Wuppi68 am 01 Januar 2016, 19:00:22
und richtig pairen
Was meinst Du mit "richtig pairen"?
Das Gerät ist schon eingebunden und meldet auch korrekt  ::)
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Puschel74

Zitat2015-12-24 21:28:38   R-pairCentral   set_0xF11234
Das Device ist noch nicht eingebunden und das es korrekt meldet sagt nichts aus.
Das set_ muss weg.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Rince

So gehts mit DOIF
DEF        ([fl_TK_Haustuer] eq "opened") (say Bitte denkt daran die Haustüre wieder zu schließen)
Attributes:
   repeatcmd  60
   room       Flur,Sicherheit
   wait       120


fl_TK_Haustuer tauscht du gegen denen Namen aus
"say" ist bei mir ein cmdalias, welches dann die Sprachausgabe erledigt
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Carsten K.

Hallo Ihr Lieben!

ich habe die Vorschläge und Dokus durchgearbeitet und habe es tatsächlich hinbekommen  :o
Folgende Elemente habe ich definiert (ist noch im Test, daher keine "echten" Werte):
- DOIF auf das Device (den Türkontakt)
([TuerKontakt1] eq "open") ( setreading dum_TuerKontaktCheck urHaustuer open ) DOELSE ( setreading dum_TuerKontaktCheck urHaustuer closed )
- mit "wait" kann ich super die Nachlaufzeit steuern :)
- Dummy dum_TuerKontaktCheck mit UserReading "urHaustuer", damit ich danach ein Notify für eine Folgeaktion darauf setzen kann.
- Notify auf das UserReading des Dummy "dum_TuerKontaktCheck"

Vielen Dank!
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Rince

Sehr schön  :)
Zitatdanach ein Notify für eine Folgeaktion darauf setzen kann
Kann man machen.

Du könntest aber auch die Folgebefehle direkt in das DOIF schreiben, dann hättest du alles an einem Ort. Im DEF Editorfenster kannst du bequem mit Zeilenumbrüchen werkeln, um das ganze schön übersichtlich zu halten.
Der Vorteil wäre, dass du dann eine Zeitsteuerung gleich dazu bekommst:

(say die Haustüre ist übrigens noch offen) (say macht endlich die Haustüre zu) (say wenn jetzt nicht bald die Haustüre zugemacht wird, spiele ich Volksmusik) (set Squeezebox play Volksmusik)

wait 60, 60, 45, 60
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Carsten K.

ich würde gerne Perl-Code (also eine Funktion in 99_myUtil.pm) aufrufen, da ich es später als Alarm-Event verwenden möchte.
Das habe ich aber so nicht hinbekommen  :(
Daher habe ich die mir bekannten Mittel genommen  ;D und es über das Notify gelöst.

Falls ich ein Beispiel zum Aufruf einer Perl-Funktion bekäme  :-[, wäre das (für mich) der Königsweg  :D
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Rince

Perlcode in fhem ist immer in {  }
Wenn du eine Funktion in der 99myUtils hast, dann kannst du ihren Namen in geschweiften Klammern aufrufen.

Ein Beispiel, welches nicht exakt das macht (was besseres habe ich grade nicht zur Hand (mein dLAN spinnt)):

Codeauszug aus einer Readingsgroup:
attr Spritpreise valueStyle {Werte($READING,$VALUE)}

99er Code:

###################################################
###     Spritpreisübersicht - Farbsortierung    ###
###################################################

sub Werte($$) {
  my ($name, $wert) = @_;
# Log(3,"$name $wert");
  if ($name eq "Diesel") {
    return 'style="color:red"' if($wert >= 1.39);
    return 'style="color:blue"' if(($wert >= 1.33) && ($wert < 1.39));
    return 'style="color:green;;font-weight:bold"' if($wert <= 1.32);
  }elsif ($name eq "SuperE10") {
    return 'style="color:crimson"' if($wert >= 1.70);
    return 'style="color:yellow"' if(($wert >= 1.55) && ($wert < 1.70));
    return 'style="color:lightgreen;;font-weight:bold"' if($wert < 1.55);
  }elsif ($name eq "SuperE5") {
    return 'style="color:red"' if($wert >= 1.59);
    return 'style="color:blue"' if(($wert >= 1.49) && ($wert < 1.59));
    return 'style="color:green;;font-weight:bold"' if($wert <= 1.48);
  } 
}

Die Funktion "Werte" wird aufgerufen mit 2 Parametern:  {Werte($READING,$VALUE)}

In der Funktion "Werte" nehmen wir die 2 Werte, definieren 2 Variablen und weisen ihnen diese Werte zu...

sub Werte($$) {
  my ($name, $wert) = @_;
# Log(3,"$name $wert");
....


Hilft dir das weiter?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)