Hallo,
Ich bekomme demnächst ein Fenster mit eingebauter Jalousie, diese kann aber nur betätigt werden wenn das Fenster geschlossen ist. Nun habe ich für die Betätigung einen HM-LC-Ja1PBU-FM Schalter mit nachgeschalteter Relaisplatine. Wenn ich jetzt aber bei offenen Fenster den Schalter betätigen würde bliebe die Jalousie wo sie ist aber der Schalter würde z.b. Auf oder zu melden was nicht der fall wäre.
Könnte man jetzt mit dem Fensterkontakt verhindern das die Jalousie bei offenen Fenster betätigt wird?
Gruß Rolf
Vielleicht ist auch hier "inhibit" das Zauberwort. Fenster auf = inhibit, Fenster zu = freigegeben. Könnte man mit einem notify/DOIF machen.
Inhibit verhindert alle peergesteuerten Aktionen am Aktor, also auch die lokale Bedienung, nicht jedoch Befehle aus FHEM selbst. Das kann man aber auch leicht vom Zustand des Fensterkontaktes abhängig machen.
Allerdings frage ich mich, was das für ein Fenster sein soll. Wieso kann man es aufmachen, wenn die Jalousie sonstwo steht, und warum soll sie dann nicht mehr gefahren werden? Nur zum Verständnis.
Hallo,
die Jalousie befindet sich zwischen den Scheiben und wenn das Fenster auf bzw gekippt ist liegen die Kontakte im Rahmen nicht mehr an, so das der Motor keinen Strom bekommt.
Gruß Rolf
Ah ... das ergibt Sinn. Dann würde ich es mal mit inhibit probieren. Steht bei HM-Aktoren direkt als "set <Aktorkanal> inhibit on" bzw. "... off" zur Verfügung und setzt das Register inhbit entsprechend (ginge also auch über regSet). Eine direkte Kopplung ist meines Wissens nicht möglich, aber ob Du es mit einem notify oder einem DOIF löst, ist Deine Entscheidung. Und, wie schon gesagt, die Fahrbefehle aus FHEM an das geschlossene Fenster koppeln.
Hallo,
ja danke das werde ich versuchen wenn das Fenster da und eingebaut ist.
Gruß Rolf
Hallo,
da das Fenster wohl noch etwas dauert habe ich schon mal etwas probiert.
Ich habe jetzt 2 Notifys erstellt:
FK_Kueche:closed {fhem("set HM_Jalusie_Kueche inhibit off");}
FK_Kueche:open|FK_Kueche_2:tilted {fhem("set HM_Jalusie_Kueche inhibit on");}
das funktioniert auch soweit. Nun wollte ich das ganze gerne in nur ein Notify packen.
FK_Kueche
{ if (Value("FK_Kueche") eq "open"|| Value("FK_Kueche") eq "tilted") { fhem "set HM_Jalusie_Kueche inhibit on"}
else { fhem "set HM_Jalusie_Kueche inhibit off"} }
aber da funktioniert es leider nicht.
Hat jemand einen Tip?
Gruß Rolf
Hm. Habs mir angesehen, aber den Fehler nicht gefunden. Bin aber auch kein notify, sondern mehr der DOIF-Typ.
Der nächste bitte!
Hi,
macht das Sinn? Warum sind zwei notifys ein Problem? Vereinfachung:
FK_Kueche:closed set HM_Jalusie_Kueche inhibit off
FK_Kueche:open|FK_Kueche_2:tilted set HM_Jalusie_Kueche inhibit on
Dein zweiter Ansatz ist grundlegend falsch?!
Value("FK_Kueche") eq "tilted") muss es nicht Kueche_2 heißen?
Dein zweiter Ansatz wird nur von FK_Kueche getriggert, willst Du das?
Dann dieser Ansatz
FK_Kueche:(closed|open) IF ([FK_Kueche_2] eq "tilted" and [FK_Kueche] eq "open") (set HM_Jalusie_Kueche inhibit on) ELSE (set HM_Jalusie_Kueche inhibit off)
Sonst den Trigger noch dazu:
FK_Kueche_2:tilted|FK_Kueche:(closed|open) IF ([FK_Kueche_2] eq "tilted" and [FK_Kueche] eq "open") (set HM_Jalusie_Kueche inhibit on) ELSE (set HM_Jalusie_Kueche inhibit off)
Gruß Otto
Hallo,
ja ich hatte noch ein paar kleine Fehler da ich den Fensterkontakt umbenannt habe.
FK_Kueche:closed|open|tilted IF ([FK_Kueche] eq "tilted" || [FK_Kueche] eq "open") (set HM_Jalusie_Kueche inhibit on) ELSE (set HM_Jalusie_Kueche inhibit off)
aber leider klappt das auch nicht.
Da muss ich wohl noch etwas drüber nachdenken.
Gruß Rolf
Hallo Rolf,
sorry aber jetzt verstehe ich nix mehr. Du hast einen Fensterkontakt oder zwei? Hast Du überhaupt schon welche? Was für einen?
Bei closed soll inhibit off? Ansonsten on? Was klappt eigentlich nicht? inhibit geht nicht? Event kommt nicht?
FK_Kueche:closed|open|tilted IF ($EVENT eq "closed") (set HM_Jalusie_Kueche inhibit off) ELSE (set HM_Jalusie_Kueche inhibit on)
Gruß Otto
Hallo,
ich habe einen Fensterkontakt und der soll den Jalousieaktor bei offen oder gekippten Fenster inhibit setzten und wenn das Fenster zu ist wieder zurück. Mit den 2 Notifys funktioniert das auch. Aber bei dem mit dem if scheint kein Event ausgelöst zu werden.
Gruß Rolf
in deinen zwei notifys hast Du zwei Fensterkontakte, das kann nicht "funktionieren" :'( :-X
Der Event wird vom Kontakt ausgelöst und vom notify verarbeitet. Was sagt der Event Monitor wenn Du das Fenster öffnest?
Gibst Du uns bitte ein list vom kontakt?
Wenn Du es so machst, was steht dann im Log?FK_Kueche:closed|open|tilted {Log 1, $EVENT}
Gruß Otto
Hallo,
also mit dem folgenden Code
FK_Kueche:closed|open|tilted {if((Value("FK_Kueche") eq "tilted") || (Value("FK_Kueche") eq "open")) {fhem("set HM_Jalusie_Kueche inhibit on")} else {fhem("set HM_Jalusie_Kueche inhibit off")}}
bekomme ich diese Fehlermeldung
2017.10.05 23:57:37 3: Jalousie_FK_test return value: Unknown command {if((Value("FK_Kueche"), try help.
Gruß Rolf
Moin Rolf,
ich kann jetzt an Deinem Code trotz mehrfachem lesen und analysieren nichts falsches entdecken (außer das er meiner Meinung nach unnötig kompliziert ist).
Aber da wir ständig aneinander vorbeireden, Du meine Vorschläge nicht probierst, Du unpräzise Aussagen zu Fehlern machst, Du Fragen nicht beantwortest - macht mir das keinen Spaß mehr.
Sorry ich bin raus.
Gruß Otto
ich verstehe auch nicht warum man es unbedingt in ein notify "pressen" muss, wenn es mit 2 funktioniert (ja auch eins funktioniert das weiß ich wohl....)
define ntfy_1 FK_Kueche:closed set HM_Jalusie_Kueche inhibit off
define ntfy_1 FK_Kueche:(open|tilted) set HM_Jalusie_Kueche inhibit on
die events kannst du dir im eventmonitor genau anschauen und von dort auch direkt die notifys anlegen!
Hallo,
@Otto123
ich will mich nicht aufregen, aber Deine aussage das wir aneinander vorbeireden stimmt schon. Könnte aber auch daran liegen das Du das was ich bereits geschrieben habe ignorierst.
1. was ich erreichen will habe ich gleich am Anfang geschrieben.
2. Das es mit 2 Notifys funktioniert habe ich auch geschrieben, also kommen die Events auch wie sie sollen und da denke ich ist ein List des Fensterkontaktes unnötig.
3. kommt bei deinem Vorschlag "FK_Kueche:closed|open|tilted {Log 1, $EVENT}" im Prinzip die gleiche Fehlermeldung.
Aber trotzdem Danke für Deinen Versuch, werde wohl noch weiter suchen und probieren.
Gruß Rolf
FK_Kueche.(closed|open|tilted) { Log 1, $EVENT }
Bitte einmal testen. Danke
Hallo,
Das ist die Reaktion im Log:
Jalousie_test_2 return value: Unknown command {Log, try help.
Gruß Rolf
zeig mal bitte das notify. Da kann was nicht stimmen.
Hallo,
anbei das Notify als Screenshot
Gruß Rolf
bitte immer ein list machen, kein Screen
Oben in der Kommandozeile einfach list DEVICENAME
Und wenn Du beim Notify nun DEF drückst und dann wieder auf modify bekommst Du diesen Fehler?
Wie aktuell ist Dein FHEM? In meiner Testumgebung klappt das ohne Fehlermeldung.
Hallo,
also:
Internals:
CFGFN
DEF FK_Kueche.(closed|open|tilted) {Log 1, $EVENT}
NAME Jalousie_test_2
NR 103439
NTFY_ORDER 50-Jalousie_test_2
REGEXP FK_Kueche.(closed|open|tilted)
STATE 2017-10-06 10:49:36
TYPE notify
READINGS:
2017-10-06 10:47:01 state active
Attributes:
room Haus
Bei modify kommt kein Fehler, der taucht im Logfile bei betätigen des Fensterkontaktes auf.
Gruß Rolf
Also ich habe das Teil jetzt eins zu eins kopiert. Keine Fehler.
Wann war das letzte Update?
Vor ein paar Tagen?
Das Event scheint er zu registrieren, aber er führt dann keine Anweisung aus, "Unknown command". Muß man da noch was einstellen das er im Notify Perlcode ausführt?
Rolf
Nein das sollte einfach so gehen.
Gib mal bitte das oben in die Kommandozeile von FHEM ein
{ Log 1, 'EVENT' }
und schaue dann im log
Hallo,
im Log steht dann:
2017.10.06 15:15:09 1: EVENT
Gruß Rolf
OK und jetzt genau das was du in die Kommandozeile eingegeben hast ins notify als ausführenden Part.
Hallo,
ich habe jetzt das eingesetzt:FK_Kueche:state:.* { Log 1, 'EVENT' }
denn nur der ausführende Teil bringt ja keine Reaktion
also dann kommt wieder
Jalousie_test_2 return value: Unknown command {, try help.
wenn ich es so eingebe:FK_Kueche:open|tilted { Log 1, 'EVENT' }
bekomme ich im log ein:
2017.10.06 17:44:48 1: EVENT
Hallo,
ich bin jetzt wieder etwas schlauer.
FK_Kueche:(closed|open|tilted) {
if("FK_Kueche" eq "open"|"FK_Kueche" eq "tilted") {fhem "set HM_Jalusie_Kueche inhibit on"}
else {fhem "set HM_Jalusie_Kueche inhibit off"}}
funktioniert jetzt ohne Fehlermeldung, aber es wird leider nur der else Teil ausgeführt da der if Teil so noch nicht richtig ausgewertet wird.
Der Fehler war wohl eine Leerzeile am ende des Notify.
Gruß Rolf
Hallo,
FK_Kueche:(closed|open|tilted) {
if($EVENT eq "open"|$EVENT eq "tilted") {fhem "set HM_Jalusie_Kueche inhibit on"}
else {fhem "set HM_Jalusie_Kueche inhibit off"}}
ist jetzt die Funktionierende Version.
Ich danke allen die Geduld mit mir hatten und Ihre Zeit investiert haben
Gruß Rolf
Sehr interessant,
Ich kann mich in der Tat jetzt erinnern das wir sowas schon Mal hatten dieses Jahr. Udo hatte da auch bisschen Geld raucht zum finden.
Verstehe nur nicht wieso es bei mir auf dem Testsystem lief.
Hallo,
ich hatte das jetzt im Wiki gefunden das ich nochmal durchgearbeitet habe. Die Leerzeilen wirst Du halt nicht gehabt haben und ich habe mir sie wohl durch Kopieren eingefügt.
Kleine Ursache große Wirkung. ::)
Gruß Rolf
Hallo Rolf,
und genau deshalb ist ein angefordertes list niemals unnötig. :D
Eine kopierte DEF ist mehr oder weniger immer irgendwie bloß Fake, auch wenn das gar nicht gewollt ist.
Ja man muss diese Eigenheit mit der Leerzeile im Hinterkopf haben und auch ein Auge darauf haben. Das kann man schon mal übersehen. Aber irgendetwas musste ja an Deinem notify grundlegend falsch sein. Das mit unnötigen Leerzeilen in der DEF war schon öfters ein Problem, erinnere ich mich. Ich hatte das hier aber auch nicht im Kopf.
Vielleicht sollte der Hinweis in die Commandref und nicht erst im Wiki ganz hinten erscheinen.
Gruß Otto