FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: rvideobaer am 03 Oktober 2017, 16:07:38

Titel: (Gelöst) Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 03 Oktober 2017, 16:07:38
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Pfriemler am 03 Oktober 2017, 17:05:33
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.

Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 03 Oktober 2017, 17:08:06
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Pfriemler am 03 Oktober 2017, 17:34:55
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.
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 03 Oktober 2017, 17:37:16
Hallo,

ja danke das werde ich versuchen wenn das Fenster da und eingebaut ist.

Gruß Rolf
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 05 Oktober 2017, 19:14:06
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Pfriemler am 05 Oktober 2017, 20:39:08
Hm. Habs mir angesehen, aber den Fehler nicht gefunden. Bin aber auch kein notify, sondern mehr der DOIF-Typ.

Der nächste bitte!
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Otto123 am 05 Oktober 2017, 21:15:36
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 05 Oktober 2017, 22:29:14
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Otto123 am 05 Oktober 2017, 23:07:28
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 05 Oktober 2017, 23:14:58
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Otto123 am 05 Oktober 2017, 23:23:58
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 00:13:01
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Otto123 am 06 Oktober 2017, 09:36:03
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: nils_ am 06 Oktober 2017, 10:08:53
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!
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 10:23:18
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 10:30:16

FK_Kueche.(closed|open|tilted) { Log 1, $EVENT }


Bitte einmal testen. Danke
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 10:43:54
Hallo,

Das ist die Reaktion im Log:
Jalousie_test_2 return value: Unknown command {Log, try help.

Gruß Rolf
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 10:55:06
zeig mal bitte das notify. Da kann was nicht stimmen.
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 11:00:47
Hallo,

anbei das Notify als Screenshot

Gruß Rolf
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 11:02:55
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.
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 11:20:40
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 11:26:02
Also ich habe das Teil jetzt eins zu eins kopiert. Keine Fehler.
Wann war das letzte Update?
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 11:29:53
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 11:37:27
Nein das sollte einfach so gehen.
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 11:39:05
Gib mal bitte das oben in die Kommandozeile von FHEM ein

{ Log 1, 'EVENT' }


und schaue dann im log
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 15:16:09
Hallo,

im Log steht dann:
2017.10.06 15:15:09 1: EVENT

Gruß Rolf
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 15:20:23
OK und jetzt genau das was du in die Kommandozeile eingegeben hast ins notify als ausführenden Part.
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 17:24:49
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.
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 17:45:58
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
Titel: Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 18:31:23
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
Titel: (Gelöst)Antw:Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 18:37:20
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
Titel: Antw:(Gelöst) Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: CoolTux am 06 Oktober 2017, 18:53:30
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.
Titel: Antw:(Gelöst) Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: rvideobaer am 06 Oktober 2017, 19:09:29
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
Titel: Antw:(Gelöst) Jalousie Steuerung durch Fensterkontakt deaktivieren
Beitrag von: Otto123 am 08 Oktober 2017, 12:39:26
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