HM Hilfe bei Verknüpfung von Fensterkontakt und Aktor

872 views
Skip to first unread message

Sunti

unread,
Oct 13, 2011, 3:56:13 PM10/13/11
to FHEM users
http://groups.google.com/group/flutuberwachung/browse_thread/thread/3f1a23dad3123a76/b7000d32236526ba#b7000d32236526ba

Hallo miteinander,
ich habe die gleiche Frage-/Problemstellung wie Andreas und da ich
ein
DAU bin versuche ich mich im "Nachbauen" um zu lernen / besser
verstehen zu können

Jetzt sitze ich schon zwei Abende dran und kriege es nicht einmal
nachgebaut

Basis:
HM-SEC-SC Tür-/Fensterkontakt genannt Gartentor
HM-LCS-Sw1-PL Schaltsteckdose genannt Dose

Jetzt habe ich Andreas Beispiel umgebaut in:
define GartentorNotify notify Gartentor {if ("%" eq "contact:open")
{fhem "set Dose on"} else {fhem "set Dose off"}}
attr GartentorNotify room 8 Test

Das Ziel dürfte klar sein:
der Fensterkontakt meldet open = Dose On
der Fensterkontakt meldet closed = Dose Off

leider macht es das nicht so ganz wie gewünscht

ich schalte im fhem webif die Dosen manuell auf On - öffne ich jetzt
den Kontakt - geht die Dose auf Off - jetzt kann ich den Kontakt so
oft hin und herschalten - es passiert gar nichts

wenn ich jetzt im Webbrowser auf aktualisieren gehen schaltet die
Dose
auf On ????

wenn ich jetzt wieder den Kontakt öffne schaltet wieder die Dose auf
Off - jetzt kann ich wieder den Kontakt hin und herschalten - es
passiert wieder gar nichts

ist die Dose von Anfang an Off - kann ich den Kontakt hin und
herschalten - es passiert gar nichts

Auch die Logs helfen mir nicht weiter:

In Fhem.log steht nichts
2011.10.13 21:06:14 3: Opening CUL device /dev/ttyACM0
2011.10.13 21:06:14 3: CUL device opened
2011.10.13 21:06:14 2: Switched CUL rfmode to HomeMatic
2011.10.13 21:06:14 2: FHEMWEB port 8083 opened
2011.10.13 21:06:14 2: FHEMWEB port 8084 opened
2011.10.13 21:06:14 2: FHEMWEB port 8085 opened

Im Log vom Sensor "Gartentor"

2011-10-13_21:26:46 Gartentor contact: open (to broadcast)
2011-10-13_21:26:47 Gartentor contact: closed (to broadcast)
2011-10-13_21:26:51 Gartentor contact: open (to broadcast)
2011-10-13_21:26:52 Gartentor contact: closed (to broadcast)

oder mit hinterlegtem eventmap open:on closed:off

2011-10-13_21:38:10 Gartentor contact: on (to broadcast)
2011-10-13_21:38:12 Gartentor contact: off (to broadcast)
2011-10-13_21:38:16 Gartentor contact: on (to broadcast)
2011-10-13_21:38:17 Gartentor contact: off (to broadcast)

werde ich nicht schlau

das einzig was mir auffällt im Log des Aktors Dose ist das da kein On
ankommt - aber warum nicht?

2011-10-13_21:26:49 Dose off
2011-10-13_21:26:49 Dose deviceMsg: off
2011-10-13_21:26:51 Dose off
2011-10-13_21:26:51 Dose deviceMsg: off
2011-10-13_21:26:52 Dose off
2011-10-13_21:26:52 Dose deviceMsg: off

Bin natürlich für jede Hilfe dankbar - Greets Markus
Message has been deleted

Rudolf Koenig

unread,
Oct 13, 2011, 5:14:29 PM10/13/11
to fhem-...@googlegroups.com
> define GartentorNotify notify Gartentor {if ("%" eq "contact:open")
...

> 2011-10-13_21:26:46 Gartentor contact: open (to broadcast)

Mein Tipp: "contact:open" ne "contact: open (to broadcast)"
Versuch mal:
if("%" =~ m/contact.*open/) { ... }
elsif("%" =~ m/contact.*closed/) { ... }

Das mit dem "(to broadcast)" ist neuerdings in CUL_HM dazugekommen, d.h.
Andreas muesste nach einem fhem-update auch sein notify anpassen.

Sunti

unread,
Oct 13, 2011, 7:52:29 PM10/13/11
to FHEM users
Hallo miteinander,

@Andreas danke für deine komplette CFG - werde ich später noch genauer
studieren für weiter Anregungen (Nachbauten)

@Rudi - ich habe mein GartentorNotify so geändert

define GartentorNotify notify Gartentor if("%" =~ m/contact.*open/)
{fhem "set Dose on"} elsif("%" =~ m/contact.*closed/) {fhem "set
Dose off"}

leider kommt im fhem.log folgender Fehler wenn ich den Kontakt öffne/
schließe

2011.10.14 01:45:02 3: Unknown command if("contact:, try help
2011.10.14 01:45:02 3: NTFY return: Unknown command if("contact:, try
help

Ist das mit elsif so richtig und muß ich dem Kontakt jetzt noch
eventmap open:on closed:off zuweisen - ich glaube nicht oder?

Danke Greets Markus

Sunti

unread,
Oct 13, 2011, 8:32:11 PM10/13/11
to FHEM users
Hallo miteinander,

na ich glaub ich hab`s rausgefunden - nachts geht die Zeit ja noch
schnell rum als am Tag - ich glaube da hat ne Klammer gefehlt:

define GartentorNotify notify Gartentor {if("%" =~ m/contact.*open/)
{fhem "set Dose on"} elsif("%" =~ m/contact.*closed/) {fhem "set
Dose off"}}

Erster Kurzcheck verlief erfolgreich - gehe jetzt wieder ins Bett

Greets Markus

Sunti

unread,
Oct 15, 2011, 8:18:53 AM10/15/11
to FHEM users
Hallo miteinander,

leider komme ich schon wieder nicht weiter - natürlich soll noch eine
zeitliche Einschränkung her - das Licht soll ja nicht am Tage angehen
sondern nur in der Zeit vom Sonnenuntergang bis Sonnenaufgang

Ich schalte das Licht mit:

+*{sunrise_rel(1200,"05:01","09:00")} aus

und mit

+*{sunset_rel(-1203,"16:00","21:59")} ein

nur in dieser Zeit soll der Türkontakt die Meldung an bzw. aus geben.
Ich habe die verschiedensten Sachen hinter:

define GartentorNotify notify Gartentor {if("%" =~ m/contact.*open/)
{fhem "set Dose on"} ...

ausprobiert - komme aber nicht weiter

Rudolf Koenig

unread,
Oct 15, 2011, 8:28:23 AM10/15/11
to fhem-...@googlegroups.com
> sondern nur in der Zeit vom Sonnenuntergang bis Sonnenaufgang

isday()

Sunti

unread,
Oct 15, 2011, 9:05:54 AM10/15/11
to FHEM users
@ Rudi - sorry ich weiß nicht wo ich`s hinsetzten soll - hab nochmals
in der http://fhem.de/commandref.html#perl nachgelesen aber ich bin zu
doof dafür

Greets Markus


Rudolf Koenig

unread,
Oct 16, 2011, 3:45:30 AM10/16/11
to fhem-...@googlegroups.com
On Sat, Oct 15, 2011 at 06:05:54AM -0700, Sunti wrote:
> @ Rudi - sorry ich wei� nicht wo ich`s hinsetzten soll - hab nochmals

> in der http://fhem.de/commandref.html#perl nachgelesen aber ich bin zu
> doof daf�r

Vorschlag: perl Einsteigerkurs besuchen oder ein vergleichbares Buch lesen.

Solange:

define GartentorNotify notify Gartentor {\
if("%" =~ m/contact.*open/ && isday()) {\


fhem "set Dose on";;\
} elsif("%" =~ m/contact.*closed/) {\

fhem "set Dose off";;\
}\
}

Je nachdem was man will, kann man beide if Anweisungen mit einem isday()
begluecken.

Sunti

unread,
Oct 16, 2011, 5:02:45 AM10/16/11
to FHEM users
@Rudi - bedankt, leider scheint noch irgendwas nicht zu stimmen,
folgende Fehlermeldung erscheint im cfg.log

Wäre nett wenn Du noch einmal drüberschauen würdest

Greets Markus


2011.10.16 10:57:09 3: syntax error at (eval 449) line 1, near "\if"
syntax error at (eval 449) line 1, at EOF
syntax error at (eval 449) line 1, at EOF

2011.10.16 10:57:09 3: NTFY return: syntax error at (eval 449) line
1, near "\if"
syntax error at (eval 449) line 1, at EOF
syntax error at (eval 449) line 1, at EOF

Rudolf Koenig

unread,
Oct 23, 2011, 7:28:07 AM10/23/11
to FHEM users
> 2011.10.16 10:57:09 3: syntax error at (eval 449) line 1, near "\if"

Du hast wohl die Daten nicht so, wie in meinem Posting steht, in das
fhem.cfg reinkopiert, sondern alles auf eine Zeile. Alternativ hast Du
es im Browser
in FHEMWEB eingegeben, indem Du im Detail-mode auf das DEF geklickt
hast: da sind die \ Zeichen und die doppelten ;; ueberfluessig. Und
ich habe diesen Schnipsel auch nicht getestet, es war nur als Hilfe zu
Selbsthilfe gedacht.

Ich fuehle mich unwohl als Perl-Syntax-Checker, dafuer gibt es Buecher/
Kurse etc. Oder die anderen Teilnehmer dieser Liste :) Mir ist
bewusst, dass die, die Programmieren nicht lernen wollen oder koennen
mit fhem ohne Hilfe keine komplexe Steuerung zusammenbauen koennen,
andererseits sehe ich mich nicht als die Loesung fuer solche Faelle.
Evtl. waere ein Web-Zusammenclick-Frontend wie bei der CCU die
Alternative, obwohl ich (aus Erfahrung) ueberzeugt bin, dass sowas
sich nur fuer Demo oder kleinere Aufgaben eignet. Aber immerhin.
Reply all
Reply to author
Forward
0 new messages