Timer für Rolladen/Dachfenster

Begonnen von tomily, 06 Dezember 2017, 11:19:29

Vorheriges Thema - Nächstes Thema

tomily

Hallo Leute,

ich habe mal eine Frage an euch:

Ich habe für mein el. Dachluke einen Homematic-Rolladenaktor verbaut und in FHEM eingebunden.
Kann mir jemand sagen, wie ich folgendes Ziel erreichen kann:

Sobald das Dachfenster am Schalter direkt geöffnet wird (Zustand ist dann größer =0), soll das Fenster nach 30 Minuten automatisch wieder schließen.
Status 0 = geschlossen / Status 100 = geöffnet.

Ich bin bei meinen Versuchen mit timern leider gescheitert.

Würde mich extrem über euer Feedback freuen.

Grüße Tom

Fixel2012

Ein einfaches Modul dafür ist DOIF, ist sehr anfänger freundlich.

Siehe hier:

http://commandref.fhem.de/commandref_DE.html#DOIF

Hat allerdings sehr viele Möglichkeiten und könnte dich am Anfang etwas verwirren.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

CoolTux


define notifyDachfenster notify dachfensterdevice:pct:.* { if( $EVTPART1 > 0) { fhem("sleep 1800; set $DEVICE pct 0") }


Könnte so gehen

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

Hollo

Zitat von: CoolTux am 06 Dezember 2017, 12:41:20
Könnte so gehen
Oder z.B. einen watchdog, der auf öffnen triggert und nach 30 Minuten schliesst, wenn nicht in der Zeit geschlossen.

Wir kennen ja die ganzen bisherigen Versuche nicht!?   :-\

FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

CoolTux

Das ist sogar noch viel viel besser. Ich vergesse immer wieder den Watchdog. Dabei ist der echt gut
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

tomily

Hey Leute,

wow das ging aber schnell. Danke für eure Ansätze.
Werde mir das DoIf aufjeden Fall anschauen.

Hat bezüglich dem Watchdog jemand auf die Schnelle eine Idee, wie das realisierbar wäre?
Die Wiki-Einträge zum Watchdog erschlägt mich etwas :-)))

Grüße

CoolTux


presenceNadin.presence:.present 00:05:35 presenceNadin.presence:.absent {systemCommand("wd_GTagBatterieNadin","gtagbattery",5)} ; trigger wd_GTagBatterieNadin .


Achtung der Punkt am Ende ist wichtig, nicht übersehen!
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

tomily

wow, danke für die schnelle Antwort. Jetzt sollte ich es nur noch kapieren :-)
"wd_GTagBatterieNadin" wäre dann durch den Namen meines Gerätes zu ersetzen, oder?

CoolTux

Sorry mein Fehler. So kannst Du natürlich nichts erkennen


Internals:
   CFGFN
   CMD        {systemCommand("wd_GTagBatterieNadin","gtagbattery",5)} ; trigger wd_GTagBatterieNadin .
   DEF        presenceNadin.presence:.present 00:05:35 presenceNadin.presence:.absent {systemCommand("wd_GTagBatterieNadin","gtagbattery",5)} ; trigger wd_GTagBatterieNadin .
   NAME       wd_GTagBatterieNadin
   NR         473
   NTFY_ORDER 50-wd_GTagBatterieNadin
   RE1        presenceNadin.presence:.present
   RE2        presenceNadin.presence:.absent
   STATE      defined
   TO         335
   TYPE       watchdog
   READINGS:
     2017-12-06 10:34:15   Activated       activated
     2017-12-06 10:39:50   Triggered       triggered
   helper:
Attributes:


So sieht man was was ist. Im Grunde funktioniert watchdog ähnlich wie notify.

presenceNadin.presence:.present 00:05:35 presenceNadin.presence:.absent - getriggert wird auf das Device presenceNadin mit dem Reading presence und den Wert present wenn das als Event kommt löst der watchdog aus. Dann wird 5min und 35sekunden gewartet und wenn in dieser Zeit kein Event kommt was das Device presenceNadin mit dem Reading presence und dem Wert absent beinhaltet wird ausgelöst.
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

tomily

Hallo CoolTux,

vielen Dank für Deine Mühe. Erst mal sorry für meine späte Antwort. Ich musste kurzfristig wegfahren.
Bitte lache mich nicht aus, aber ich bin immernoch nicht ganz dahinter gestiegen, würde es aber gerne verstehen.

Mein Device, das ich schalten will heißt bad_Dachfenster. Es soll nach der Zeit den Status 0 erhalten.
Wäre das dann die Zeile, die ich eingeben muss? Oder muss ich hierzu ein dummy o.ä. anlegen?

define bad_Dachfenster.presence:.present 00:05:35 bad_Dachfenster.presence:.absent {systemCommand("wd_GTagBatterieNadin","gtagbattery",5)} ; trigger wd_GTagBatterieNadin .

Besten Dank und Grüße

CoolTux

Zitat von: tomily am 11 Dezember 2017, 08:19:37
Hallo CoolTux,

vielen Dank für Deine Mühe. Erst mal sorry für meine späte Antwort. Ich musste kurzfristig wegfahren.
Bitte lache mich nicht aus, aber ich bin immernoch nicht ganz dahinter gestiegen, würde es aber gerne verstehen.

Mein Device, das ich schalten will heißt bad_Dachfenster. Es soll nach der Zeit den Status 0 erhalten.
Wäre das dann die Zeile, die ich eingeben muss? Oder muss ich hierzu ein dummy o.ä. anlegen?

define bad_Dachfenster.presence:.present 00:05:35 bad_Dachfenster.presence:.absent {systemCommand("wd_GTagBatterieNadin","gtagbattery",5)} ; trigger wd_GTagBatterieNadin .

Besten Dank und Grüße

Ok schauen wir mal zusammen.

Du möchtest einen watchdog anlegen

define wd_badDachfensterTimerClosed watchdog


Damit legst Du fest das etwas definiert wird (define), den Namen des Watchdogs, also wie er heißen soll (wd_badDachfensterTimerClosed) und um was für ein Gerätetyp es sich handelt (watchdog)

Nun kommt das eigentliche was soll getriggert/überwacht werden

define wd_badDachfensterTimerClosed watchdog bad_Dachfenster:pct.[1-9]+ 00:05:35 bad_Dachfenster:pct.0 set bad_Dachfenster pct 0, trigger wd_badDachfensterTimerClosed .

bad_Dachfenster:pct.[1-9]+
getriggert wird auf das Event bad_Dachfenster:pct.[1-9]+ , um es einfach zu sagen wenn das Device bad_Dachfenster im Reading pct eine Änderung erfährt vom Wert > 0 dann lasse den watchdog anlaufen (das [1-9]+ ist RegEx)
lasse den Watchdog  00:05:35 lang laufen so lange nicht ein Event kommt bad_Dachfenster:pct.0 , also einfach ausgedrückt wenn das Device bad_Dachfenster im Reading pct eine Änderung erfährt vom Wert gleich 0

Das trigger am Ende ist noch alte Schule, dafür gibt es mittlerweile ein Attribut, geht nur darum das er beim nächsten mal wieder triggert.
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

tomily

Hi,

danke für deine mega schnelle Reaktionen und die ausführliche Erklärung.
Habs definiert und es wurde auch angelegt. Leider fährt das Fenster nach Ablauf der Zeit nicht automatisch zu :-/

Hab mal 2 Screenshots angehängt, vielleicht kannst Dir das ja mal anschauen :-)

Grüße


CoolTux

Ist denn der Watchdog abgelaufen? Kannst du bitte Mal ein list geben.
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

CoolTux


define wd_badDachfensterTimerClosed watchdog bad_Dachfenster:pct:.[1-9]+ 00:00:10 bad_Dachfenster:pct:.0 set bad_Dachfenster pct 0; trigger wd_badDachfensterTimerClosed .


Getestet und für gut befunden. Bitte kopie paste machen.
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

tomily

cool! Danke. Also jetzt habe ich es grob gerafft, um was es geht.
Das anlegen hat geklappt. Allerdings funktioniert der Watchdog nur genau 1x.

Nach Anlage läuft der Timer zur korrekten Zeit und schließt auch das Fenster. Allerdings bleibt der watchdog dann für immer auf "triggered" stehen,
obwohl das Fenster wie im Screenshot auf Wert 10 (also über 0) steht.
Habe gerade noch festgestellt, dass der geschlossene Zustand "off" und nicht 0 ist. Kann es damit zu tun haben?
FHEM zeigt den Zustand also bis 0.1 in Zahlen und zeigt anschließend "off" als Schaltzustand an.

Liebe Grüße

CoolTux

Gib mal bitte list vom watchdog.

Also in FHEMWEB oben Kommandozeile list watchdogname

Und das selbe bitte vom fensterdevice wenn es zu ist.
Kann mir nicht vorstellen das das Reading pct off zeigt
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

tomily

Hi,

beim reinkopieren sieht es furchbar aus. Habe dir die Ergebnisse in einer Textdatei angehängt, damit du Sie mit Notepad++ aufmachen kannst.
Passt das?

Danke und Grüße

CoolTux

Hab kein Notepad++

Schau Dir bitte noch einmal an was ich bei meinem Beispiel zu stehen habe und wie Deine DEF vom Watchdog aktuell aus schaut. Da fehlt noch was.
Das pct 0 ist auch ok. Das Reading pct 0 ist korrekt.
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

tomily

Zunächst mal vielen Dank für die Mühe, die du Dir wegen mir machst. Bin echt begeistert vom Support in diesem Forum.
Wenn es nicht klappt ist es nicht so schlimm. Bekomme ja langsam ein schlechtes Gewissen ;-)

Ich habe den define-Befehl von Dir 1:1 kopiert und bei mir eingefügt. Komischerweise hat der Watchdog einmal funktioniert. Dann nicht mehr.

Anbei die List-als Screenshot. Vielleicht funktioniert das besser?!

Grüße Tom

CoolTux

Guten Morgen,

Screenshot ist Kacke. Lieber list machen und hier in Codetags (oben in der Symbolleiste das Raute Zeichen) einfügen.
Kann sein das auch was angeschnitten ist beim Screen.

Aber überlege mal kurz was dafür sorgen könnte das der watchdog wieder getriggert wird. Also so rein aus meinen Code den Du hast. Wie gesagt vielleicht steht das ja drin und ich sehe es nicht im screen weil es abgeschnitten ist.


Hier noch mal mein Code

define wd_badDachfensterTimerClosed watchdog bad_Dachfenster:pct:.[1-9]+ 00:00:10 bad_Dachfenster:pct:.0 set bad_Dachfenster pct 0; trigger wd_badDachfensterTimerClosed .
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

tomily

achso, klar so gehts natürlich auch  ::)

List watchdog:

Internals:
   CMD        set bad_Dachfenster pct 0
   DEF        bad_Dachfenster:pct:.[1-9]+ 00:00:10 bad_Dachfenster:pct:.0 set bad_Dachfenster pct 0
   NAME       wd_badDachfensterTimerClosed
   NOTIFYDEV  wd_badDachfensterTimerClosed,bad_Dachfenster
   NR         35
   NTFY_ORDER 50-wd_badDachfensterTimerClosed
   RE1        bad_Dachfenster:pct:.[1-9]+
   RE2        bad_Dachfenster:pct:.0
   STATE      defined
   TO         10
   TYPE       watchdog
   Readings:
     2017-12-12 07:13:49   Activated       activated
     2017-12-12 07:13:59   Triggered       triggered
     2017-12-12 08:13:54   state           defined
Attributes:
   room       3-Bad



List Fenster:


Internals:
   CUL1_MSGCNT 38
   CUL1_RAWMSG A0D0EA4105ED8B2F1000106010000::-56.5:CUL1
   CUL1_RSSI  -56.5
   CUL1_TIME  2017-12-12 08:13:54
   DEF        5ED8B2
   IODev      CUL1
   LASTInputDev CUL1
   MSGCNT     38
   NAME       bad_Dachfenster
   NOTIFYDEV  global
   NR         34
   NTFY_ORDER 50-bad_Dachfenster
   STATE      off
   TYPE       CUL_HM
   lastMsg    No:0E - t:10 s:5ED8B2 d:F10001 06010000
   protLastRcv 2017-12-12 08:13:54
   protSnd    44 last_at:2017-12-12 08:13:54
   protState  CMDs_done
   rssi_CUL1  cnt:10 lst:-58 max:-55 avg:-56.9 min:-58
   rssi_at_CUL1 max:-54 min:-61.5 avg:-57.46 cnt:38 lst:-56.5
   Readings:
     2017-12-12 08:13:46   CommandAccepted yes
     2017-12-03 14:39:25   D-firmware      2.11
     2017-12-03 14:39:25   D-serialNr      OEQ0893326
     2017-12-12 08:04:19   PairedTo        0xF10001
     2017-12-03 14:39:30   R-driveDown     50 s
     2017-12-03 14:39:30   R-driveTurn     0.5 s
     2017-12-03 14:39:30   R-driveUp       50 s
     2017-12-03 14:39:30   R-pairCentral   0xF10001
     2017-12-03 14:39:30   R-powerUpAction off
     2017-12-03 14:39:30   R-sign          off
     2017-12-12 08:04:19   RegL_00.          02:01 0A:F1 0B:00 0C:01 15:FF 18:00 00:00
     2017-12-12 08:04:20   RegL_01.         08:00 09:00 0A:00 0B:01 0C:F4 0D:01 0E:F4 0F:05 10:00  30:06 57:24 56:00 00:00
     2017-12-12 08:13:54   deviceMsg       off (to CUL1)
     2017-12-12 08:13:54   level           0
     2017-12-12 08:13:54   motor           stop:off
     2017-12-12 08:13:54   pct             0
     2017-12-12 08:04:17   powerOn         2017-12-12 08:04:17
     2017-12-12 08:13:54   recentStateType info
     2017-12-12 08:13:54   state           off
     2017-12-12 08:13:54   timedOn         off
   Helper:
     HM_CMDNR   14
     PONtest    0
     cSnd       01F100015ED8B2010E,01F100015ED8B2010E
     dlvlCmd    ++A011F100015ED8B20201000000
     mId        006A
     peerIDsRaw ,00000000
     rxType     1
     supp_Pair_Rep 0
     Dir:
       cur        stop
       rct        down
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +5ED8B2,00,00,00
       nextSend   1513062834.55004
       prefIO
       rxt        0
       vccu
       p:
         5ED8B2
         00
         00
         00
     Mrssi:
       mNo        0E
       Io:
         CUL1       -54.5
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
       prs        1
     Rpt:
       IO         CUL1
       flg        A
       ts         1513062834.45354
       ack:
         HASH(0x2651640)
         0E8002F100015ED8B200
     Rssi:
       Cul1:
         avg        -56.9
         cnt        10
         lst        -58
         max        -55
         min        -58
       At_cul1:
         avg        -57.4605263157895
         cnt        38
         lst        -56.5
         max        -54
         min        -61.5
     Shadowreg:
Attributes:
   IODev      CUL1
   autoReadReg 4_reqStatus
   devStateIcon off:fts_window_roof on:fts_window_roof_open_2 on:10px-kreis-gelb on:fts_window_roof_open_2 >=0:10px-kreis-gelb >=1:fts_window_roof_open_2 >1:fts_window_roof_open_2
   expert     2_raw
   firmware   2.11
   icon       fts_window_roof
   model      HM-LC-Bl1PBU-FM
   peerIDs    00000000,
   room       3-Bad
   serialNr   OEQ0893326
   subType    blindActuator
   webCmd     statusRequest:toggleDir:on:off:up:down:stop

CoolTux

Ok ich sehe was der Unterschied von meiner zu Deiner Definition ist.
Nun bist Du dran. Ich helfe sehr gerne, aber auch nur wenn der Hilfesuchende Eigeninitiative zeigt. Ich bilde mir nun ein Dich auf das Problem recht gut gelenkt zu haben. Schau mal bitte
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

tomily

Ok lieber CoolTux. Jetzt habe ich nicht nur exakt die Funktion, die ich haben wollte, sondern habe nochmal viel im FHEM, sowie ein neues Feature dazugelernt.
Beim Copy und Pasten hat es den Part "; trigger wd_badDachfensterTimerClosed ." nicht übernommen. Diesen habe ich händisch nochmal hinzugefügt und siehe da...it works auch 2x

8)

Meine Tests waren jetzt alle per Remote, da ich nicht Vorort bin. Werde das ganze heute Abend nochmals testen, ob es auch Funktioniert wenn das Fenster über den Taster gefahren wird.

Was komisch ist, dass es ab und zu nicht funktioniert, wenn das Fenster durch den Watchdog zugefahren wurde und ich des danach wieder öffne. Prüft der Watchdog auch, ob es eine gewisse Zeit geschlossen war?

Ich danke Dir für die Unterstützung! Wirklich sehr sehr geil!

CoolTux

Nein der Watchdog prüft da gar nichts. Der Watchdog reagiert immer nur auf Events. Und zwar auf die welche Du als Regex da eingegeben hast.
Im Gründe musst Du also nur prüfen ob ein entsprechendes Event beim auffahren erzeugt wird. Schau dazu im Eventmonitor nach und filter da schon nach Dein Dachfenster.



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

tomily

Nochmals ganz herzlichen Dank! Ich werde heute Abend das ganze noch per Schalterbetätigung testen.
Wenn das funktioniert schließe ich den Thread und bin sehr happy :)

Grüße

CoolTux

Sehr gerne. Schließen musst Du ihn nicht.
Einfach in Deinen ersten Post gehen und im Betreff [erledigt] oder [gelöst] vorne anschreiben.



Grüße
Leon
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

tomily

Moin zusammen,

nochmals Danke für den Support. Hier ein kleiens Fazit:

Der Watchdog als solches funktioniert innerhalb von FHEM nun so wie er soll. Ich habe beim Anlegen einfach einen Fehler gemacht bzw. bemerkt, dass nicht nicht der ganze Code kopiert worden ist.

Wenn das Fenster über den Homematic Schalter DIREKT geöffnet wird, wird im FHEM-Log kein Event erzeugt. Somit wird der watchdog nicht ausgelöst.
Seltsamerweise geht es manchmal. Also etwas buggy und Ich werde noch versuchen herauszufinden, wann es geht.

Viele Grüße