4-Kanal-Schaltaktor HM-LC-SW4-PCB über Vor-Ort-Knopf für 2 Minuten einschalten

Begonnen von dogexan, 02 Juni 2014, 12:06:08

Vorheriges Thema - Nächstes Thema

dogexan

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

epsrw1

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
Ich habe keine Ahnung, aber davon wenigstens ganz viel

dogexan

als Antwort bekomme ich:
No device named atdirektRasen found

Edit: Es sind sogar nur 2 Sekunden zum Testen

Gruß Alex

Bennemannc

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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

dogexan

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

LuckyDay

das sieht so aus, wie wenn dein Notify 5 mal zuschlägt, also aufgerufen wird

dogexan

#6
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

Bennemannc

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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

dogexan

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

Bennemannc

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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

dogexan

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

Bennemannc

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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

dogexan

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

Puschel74

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
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.

dogexan

#14
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