FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: dogexan am 02 Juni 2014, 12:06:08

Titel: 4-Kanal-Schaltaktor HM-LC-SW4-PCB über Vor-Ort-Knopf für 2 Minuten einschalten
Beitrag von: dogexan am 02 Juni 2014, 12:06:08
Hallo zusammen,

ich habe folgenden notify:

define ndirektRasen notify Rasen { if(ReadingsVal("Rasen", "deviceMsg", "") eq "on (to broadcast)") {fhem("define atdirektRasen at +00:00:02 set Rasen off")}}

Wenn ich am HM-LC-SW4-WM eine Taste drücke, in meinem Fall Taste 2, zieht das Relais an und an Fhem wird "on (to broadcast)" geschickt.

Ich möchte dann dass Fhem nach 2 Sekunden den off Befehl sendet.

Der Code oben funktioniert auch einwandfrei, aber ich bekomme einen Fehler im Log, dass "atdirektRasen" schon definiert ist.
Wie kann "atdirektRasen" noch definiert sein wenn sich diese at Funktion doch nach einmal benutzen wieder löscht?

Gibt es vielleicht eine einfachere Möglichkeit nach einer bestimmten Zeit ein Gerät off zu schalten.
Ich hab nach off-for-timer gesucht aber nichts funktionierendes gefunden.

Hier der Log:
2014.06.01 22:51:38 3: define atdirektRasen at +00:00:02 set Rasen off : atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: ndirektRasen return value: atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: define atdirektRasen at +00:00:02 set Rasen off : atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: ndirektRasen return value: atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: define atdirektRasen at +00:00:02 set Rasen off : atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: ndirektRasen return value: atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: define atdirektRasen at +00:00:02 set Rasen off : atdirektRasen already defined, delete it first
2014.06.01 22:51:38 3: ndirektRasen return value: atdirektRasen already defined, delete it first
2014.06.01 22:51:40 3: define atdirektRasen at +00:00:02 set Rasen off : atdirektRasen already defined, delete it first
2014.06.01 22:51:40 3: ndirektRasen return value: atdirektRasen already defined, delete it first
2014.06.01 22:51:40 3: CUL_HM set Rasen off

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: epsrw1 am 02 Juni 2014, 12:27:20
hi alex,
so wie ich das im log sehe waren die 2 minuten seit dem letzten test noch nicht vorbei. ggfs einfach in der konsole "list atdirektRasen" bevor Du den knopf drückst um zu sehen ob das device noch von einen vorherigen test da ist
LG, florian
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 12:35:01
als Antwort bekomme ich:
No device named atdirektRasen found

Edit: Es sind sogar nur 2 Sekunden zum Testen

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Bennemannc am 02 Juni 2014, 12:36:38
Hallo,

Du kannst ein Device nur einmal definieren. Da Du das "atdirektRasen" nirgendwo löschst knallt es eben beim zweiten Mal.
im Hinteren Teil
Zitat{fhem("define atdirektRasen at +00:00:02 set Rasen off")}
könntest Du auch einfach einen set absetzen.
{fhem ("set Rasen on-for-timer 2")} das setzt dann zwar noch einmal on ab, schaltet aber auch nach 2 sec wieder ab.

Gruß Christoph
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 12:42:09
Hab jetzt grade die Idee von Bennemannc ausprobiert.
Funktioniert genauso wie meine erste Variante

Im Log steht jetzt:
2014.06.02 12:39:20 3: CUL_HM set Rasen on-for-timer 2
2014.06.02 12:39:20 3: CUL_HM set Rasen on-for-timer 2
2014.06.02 12:39:20 3: CUL_HM set Rasen on-for-timer 2
2014.06.02 12:39:20 3: CUL_HM set Rasen on-for-timer 2
2014.06.02 12:39:20 3: CUL_HM set Rasen on-for-timer 2

Ich befürchte dass wenn ich den Timer mal auf 10 Minuten stelle, der Log dann "voll" geschrieben wird

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: LuckyDay am 02 Juni 2014, 12:52:25
das sieht so aus, wie wenn dein Notify 5 mal zuschlägt, also aufgerufen wird
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 12:58:39
Vielleicht passiert das beim Wechsel zu "on (to broadcast)".

Kann man das unterdrücken?

Edit: Aber nach 2 Sekunden geht der "Rasen" off. Müsste dann nicht theoretisch 5 * 2 Sekunden on-for-timer 2 ausgeführt werden?

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Bennemannc am 02 Juni 2014, 13:01:17
Hallo,

war ja auch eine blöde Idee - Perpetuum Mobile - der on-for-timer löst sich ja selber aus  :(
Ich muss heute Abend mal zuhause nachsehen - ich habe da etwas mit der Außenbeleuchtung, die nach 5 Minuten wieder ausgehen soll. Ist noch ungetestet, aber wenn das geht poste ich Dir das.
Normalerweise drückt man ja an dem Teil keine Tasten - sondern schaltet mit externen Schalten - dann ist die Sache einfacher. Dann geht das mit dem Notify wie beschrieben, da das Auslösende Event ja nicht vom zu schaltenden Device kommt.
Wenn Du das unbedingt mit den Tastern machen willst, könnte man mal nachsehen ob man das interne peering abschaltet und dann nur über fhem geht. Das hat aber den Nachteil, das fhem immer laufen muss.

Gruß Christoph
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 13:07:51
Man kann ja unterscheiden zwischen "off (to broadcast)" und "off (to CUL_HM)"

off (to broadcast) kommt nur wenn man den Taster direkt am Gerät betätigt, somit müsste man theoretisch nicht mit on-for-timer sich selbst auslösen.
Da durch on-for-timer das Gerät nachher auf "off (to CUL_HM)" steht.

Fhem läuft bei mir immer und wenn doch mal nicht, kann ich immer noch das Wasser direkt am Ventil öffnen für die Bewässerung.

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Bennemannc am 02 Juni 2014, 13:11:04
Hallo,

wie hat mein Ausbilder immer gesagt: "Wissen heißt wissen wo's steht" .....
ich hab's wiedergefunden - nicht notify, sondern eventMap ist die Lösung. Hier ist der Link: http://forum.fhem.de/index.php/topic,20264.msg138090.html#msg138090
also bei eventMap muss  /on-for-timer 2:an/ rein mit den Schrägstichen !!!

Gruß Christoph
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 13:35:27
Hallo,

ich bekomme es nicht gebacken.

Im Anhang ein Screenshot von den Attributen.

Aber mal angenommen das würde mit /on-for-timer 2:an/ funktionieren dann würde doch auch der Timer anspringen wenn ich nur "an" von Fhem aus sende

also "set Rasen on" oder nicht!?

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Bennemannc am 02 Juni 2014, 13:55:35
Hallo,

ich habe mit eventMap auch noch nicht so viel rumgemacht. Wenn ich das richtig verstehe, werden hier events gemappt - also umgebogen. In diesem Fall würde dann aus "an" "on-for-timer 1". Die Schrägstriche sind erforderlich wegen dem Leerzeichen zwischen on-for-timer und der 2.
Das notify solltest Du gelöscht haben.
ZitatAber mal angenommen das würde mit /on-for-timer 2:an/ funktionieren dann würde doch auch der Timer anspringen wenn ich nur "an" von Fhem aus sende
Ja, dann gibt es kein an mehr sondern nur on-for-timer. Das kann sinvoll sein z.B. für Trepenhausautomaten. BTW off funktioniert dann immer noch wie gewohnt. Das wird ja nicht umgebogen. Wenn Du also das mit dem Rasen auf eine bestimmte Zeit einschränken möchtest, würde das so gehen.

Gruß Christoph
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 15:31:14
Nur "on-for-timer" wäre nicht gut.

Ich glaube ich bleibe lieber bei meiner ersten bzw. bei deiner Variante (funktionieren ja beide)

Dann muss ich eben mit den "unnötigen" Einträgen im Log leben.

So oft betätige ich die Bewässerung ja nicht durch drücken direkt am Taster. ;)

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 02 Juni 2014, 17:18:36
Hallo,

die Hinweismeldung (es ist keine Fehlermeldung) kommt weil das regexp des notify auf ALLES triggert was Rasen sendet.
Pass das regexp entsprechend an und du bekommst die Hinweismeldung nichtmehr zu sehen.
Der Event Monitor sollte dir dabei helfen.

Grad gesehen:
Es ist besser das regexp eng zu halten da das notify sonst jedesmal prüfen muss ob die Bedingungen erfüllt sind.
Dennoch. Der Event Monitor sollte hier dein Freund sein  8)

Grüße
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 18:46:03
Hallo,

der Event Monitor gibt folgendes aus:
Events:
2014-06-02 18:43:05 Global global DEFINED atdirektRasen
2014-06-02 18:43:05 CUL_HM Rasen level: 100
2014-06-02 18:43:05 CUL_HM Rasen pct: 100
2014-06-02 18:43:05 CUL_HM Rasen deviceMsg: an (to broadcast)
2014-06-02 18:43:05 CUL_HM Rasen an
2014-06-02 18:43:05 CUL_HM Rasen timedOn: aus
2014-06-02 18:43:07 CUL_HM CUL_HM_HM_LC_SW4_WM_21C7EA CMDs_pending
2014-06-02 18:43:07 CUL_HM Rasen set_aus
2014-06-02 18:43:07 Global global DELETED atdirektRasen
2014-06-02 18:43:08 CUL_HM CUL_HM_HM_LC_SW4_WM_21C7EA CMDs_done
2014-06-02 18:43:08 CUL_HM Rasen level: 0
2014-06-02 18:43:08 CUL_HM Rasen pct: 0
2014-06-02 18:43:08 CUL_HM Rasen deviceMsg: aus (to CUL_0)
2014-06-02 18:43:08 CUL_HM Rasen aus
2014-06-02 18:43:08 CUL_HM Rasen timedOn: aus

Basierend auf meiner ersten Variante

Ich sehe da keinen Fehler, bzw ich weiß nicht genau wodrauf ich achten muss.
Wie, Wo und Was kann ich an regexp anpassen??

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 02 Juni 2014, 18:55:28
Hallo,

nach deinen Event Monitor Einträgen und dem Code
define ndirektRasen notify Rasen { if(ReadingsVal("Rasen", "deviceMsg", "") eq "on (to broadcast)") {fhem("define atdirektRasen at +00:00:02 set Rasen off")}}
dürfte das at nie angelegt werden da deviceMsg nie "on (to broadcast)" enthält.
Post mal einen Screenshot vom Reading bitte.

Versuch mal:
define ndirektRasen notify Rasen.an define atdirektRasen at +00:00:02 set Rasen off

Grüße

Edith: Code nochmal geändert - versuchs damit nochmal bitte.
Warum gehst du auf das Reading deviceMsg?
Edith2: Hast du Rasen über die Weboberfläche geschaltet? Vor Ort dürfte der mMn kein an senden sondern maximal on.
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 19:07:48
Ich gehe über deviceMsg da ich nur möchte dass der Rasen (in dem Beispiel für 2 Sekunden) wenn ich auf den Taster am Gerät drücke, bewässert wird.
Daher kann dein Code doch gar nicht funktionieren oder!?

Das "on (to broadcast)" sagt ja ganz klar aus dass der Taster am Gerät selber gedrückt wurde.
Im Anhang der Screenshot

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 02 Juni 2014, 19:16:24
Hallo,

ZitatDas "on (to broadcast)" sagt ja ganz klar aus dass der Taster am Gerät selber gedrückt wurde.
Na dann zeig mir bitte in deinem Post vom Event Monitor das on (to broadcast)

Ich sehe nur ein an (to broadcast).

Grüße
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 19:22:11
Ja du hast mit dem "an" nicht ganz unrecht

Habs jetzt mal so probiert funktioniert so aber gar nicht (Auszug aus DEF)

Rasen { if(ReadingsVal("Rasen", "deviceMsg", "") eq "an (to broadcast)") {fhem("define atdirektRasen at +00:00:02 set Rasen off")}}
aber hier noch ein Screenshot

Ich habs eben auch mal als "an (to broadcast)" gesehen kann aber keine Regel festellen warum mal so und mal so

Edit: Grade noch mal den Event Monitor mit laufen lassen. Da steht dann wieder drin "an (to broadcast)"

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Bennemannc am 02 Juni 2014, 19:30:14
Hallo,

wenn Du das eventMap gelöscht hast (deleteattr) dann steht da natürlich wieder on statt an. Versuche mal nicht soviel auf einmal zu ändern.

Gruß Christoph
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 19:30:58
Hallo,

eventmap war schon wieder weg

Bei mir steht im eventmap genau das drin was auch vorher drin stand: on:an off:aus

Da dran kann es doch nicht liegen

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 02 Juni 2014, 19:37:40
Hallo,

daher bitte ich im angepinnten Beitrag auch um die defines der zugehörigen Geräte.
Weil damit das Rätselraten nicht zu sehr ausartet  >:(

Nun wäre noch interessant ob du im Event Monitor bei der Vor Ort Bedienung ein on bekommst und bei der FHEM-Bedienung ein an

Den dann liese sich das Ganze ganz easy mit einem
define ndirektRasen notify Rasen.on define atdirektRasen at +00:00:02 set Rasen off
lösen.

Grüße
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 19:51:14
Beim nächsten mal wird alles besser ;D

Also die Ergebnisse von dem eben geposteten Event Monitor sind vom drücken direkt am Gerät.

Aber funktionieren "tuts" mit diesem notify

define ndirektRasen notify Rasen { if(ReadingsVal("Rasen", "deviceMsg", "") eq "on (to broadcast)") {fhem("define atdirektRasen at +00:00:02 set Rasen off")}}

Also der notify steht auf on
der Event Monitor sagt an
aber es funktioniert

bis auf der Log halt

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 02 Juni 2014, 20:00:59
Hallo,

ein letztes Mal und dann sind mir die Meldungen im Logfile auch egal.

define ndirektRasen notify Rasen:deviceMsg.on define atdirektRasen at +00:00:02 set Rasen off

Wozu soll das notify x-mal aufgerufen werden wenn es nur um 1 Reading geht?

Wenn der Event Monitor an "sagt" dann ist es das gesendete Event und nicht das empfangen - behaupte ich jetzt mal.
Ein Aktor (egal ob FS20 oder HM) wird mMn kein an oder aus senden sondern maximal ein on oder off.
an und aus macht dann das eventMap draus - aber das kann ich nur vermuten da wir das define ja nicht sehen dürfen (warum auch immer).

Grüße
Titel: Antw:off-for-timer
Beitrag von: dogexan am 02 Juni 2014, 21:08:51
Hallo,

Zitatan und aus macht dann das eventMap draus - aber das kann ich nur vermuten da wir das define ja nicht sehen dürfen (warum auch immer).

Ich weiß nicht was du meinst.

Mein eventMap hab ich vorher schonmal gepostet.
Jetzt nochmal im Anhang alles von "list Rasen"

Der Code von dir funktioniert nicht.
Der Log sagt nichts dazu
Der Event Monitor nur das:
Events:
2014-06-02 21:08:14 CUL_HM Rasen level: 100
2014-06-02 21:08:14 CUL_HM Rasen pct: 100
2014-06-02 21:08:14 CUL_HM Rasen deviceMsg: an (to broadcast)
2014-06-02 21:08:14 CUL_HM Rasen an
2014-06-02 21:08:14 CUL_HM Rasen timedOn: aus
2014-06-02 21:08:23 CUL_HM Rasen level: 0
2014-06-02 21:08:23 CUL_HM Rasen pct: 0
2014-06-02 21:08:23 CUL_HM Rasen deviceMsg: aus (to broadcast)
2014-06-02 21:08:23 CUL_HM Rasen aus
2014-06-02 21:08:23 CUL_HM Rasen timedOn: aus

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 03 Juni 2014, 05:41:10
Moin,

jo, Doppelpunkt übersehen  :o

define ndirektRasen notify Rasen:deviceMsg:.on define atdirektRasen at +00:00:02 set Rasen off

Aber ich schieb den Beitrag mal in den HM-Bereich da ich vermute das sich das über die Devcie-Internen Funktionen leichter lösen lässt und du garkein notify benötigen wirst.

Änder mal den Beitragstitel passend ab bitte - off-fo-timer ist doch etwas dürftig und sollte eher lauten:
Gerät xyx (hier HM......) über Vor-Ort-Knopf für 2 Minuten einschalten
Danke.

Grüße

P.S.: Gestern ist mir das erst eingefallen nachdem ich den Rechenr schon runtergefahren hatte  8)
Titel: Antw:off-for-timer
Beitrag von: martinp876 am 03 Juni 2014, 09:35:00
Hi,

handelt es sich hier um einen HM schalt-aktor der bei Druck auf die lokal angeschlossene Taste immer nach x sec wieder ausgeschaltet werden soll?
Dann würde ich es IM HM device lösen. Einfach einstellen, dass er, wenn der lokale Taster gedrückt wird, nach 2 sec wieder off geht.
Erst einmal pairen, intKeysVisib auf visib schalten und shOnTime des Peer self01 auf die An-dauer setzen.

Gruss Martin
Titel: Antw:off-for-timer
Beitrag von: dogexan am 03 Juni 2014, 09:39:23
Hallo,

ich werde den Code erst am Donnerstag ausprobieren können.

Ja, im Homematic Bereich ist das Thema wohl besser aufgehoben 8)

An martin876:
Dein Vorschlag werde ich dann auch am Donnerstag ausprobieren können.

Gruß Alex
Titel: Antw:off-for-timer
Beitrag von: Puschel74 am 03 Juni 2014, 15:58:32
Hallo,

@martin
Ja - dogexan möchte das Device direkt am Taster am Gerät einschalten und es soll nach 2 Minuten wieder abschalten.
Ich hatte ihn noch gebeten denTthreadtitel anzupassen  ::)

@dogexan
Meinen Code kannst du dann vergessen (und das ganze notify drumherum).
Wenn martin sagt das es geht und du es genauso machst wie er sagt dann geht das auch  8)

Und Fragen immer schön beantworten  ;)

Grüße
Titel: Antw:4-Kanal-Schaltaktor HM-LC-SW4-PCB über Vor-Ort-Knopf für 2 Minuten
Beitrag von: dogexan am 12 Oktober 2014, 10:47:40
Hallo,

also aus Donnerstag ist nichts geworden, aber ein paar Monate später dann doch.

An Puschel74: Threadtitel ist jetzt angepasst.

An Martin876: intKeysVisib steht jetzt bei mir auf visib. Mit shOnTime hab ich noch meine Probleme.
Wenn ich dich richtig verstehe, soll ich den Wert bei "R-self04-shOnTime" auf die Anzahl der Sekunden ändern wo das Relai angezogen ist. (Es geht jetzt um Kanal 4 auf dem Aktor)

Frage jetzt: Wie mache ich das? Welchen Befehl brauche ich um den Wert der momentan auf 111600 s steht zu ändern? (siehe Anhang)

Gruß Alex
Titel: Antw:4-Kanal-Schaltaktor HM-LC-SW4-PCB über Vor-Ort-Knopf für 2 Minuten einschalten
Beitrag von: martinp876 am 12 Oktober 2014, 15:46:40
R- ist ein prefix, self04 der peer, also der sender des trigger. Hier intern.
Das kommando ist regSet
Set entity regSet shOnTime 2 self04

111600 ist maximal und sollte als unendlich angezeigt werden - aktuelle sw.
Ist nur bei on,off unendlich, nicht so bei delay
Titel: Antw:4-Kanal-Schaltaktor HM-LC-SW4-PCB über Vor-Ort-Knopf für 2 Minuten einschalten
Beitrag von: dogexan am 12 Oktober 2014, 17:32:37
Hallo,

Sehr schön jetzt geht´s ;D  8)

Vielen Dank noch mal für die Hilfe.


Gruß Alex