Beleuchtungsschaltung per Türkontakt mit DOIF

Begonnen von ozeanix, 13 April 2018, 18:00:32

Vorheriges Thema - Nächstes Thema

ozeanix

Ich habe einen Max Fensterkontakt an unsere Badtür installiert, um das Licht zu schalten.

Mit folgendem Befehl geht das Licht auch an und nach 10min wieder aus. Perfect.

define aon_Bad_Bel DOIF ([MAX_xxxxxx:"opened"]) (set Bad_Bel on) DOELSE (set Bad_Bel off)
attr aon_Bad_Bel room Beleuchtung
attr aon_Bad_Bel wait 0:600

Nun habe ich das Problem, wenn man Baden will soll das Licht anbleiben.
Dazu habe ich einen Dummy erstellt.

define baden dummy
attr baden group Action
attr baden room Beleuchtung
attr baden setList on off
define a_baden_on DOIF ([baden:"on"]) (set Bad_Bel on, set MAX_xxxxxx desiredTemperature 23.0)
define a_baden_off DOIF ([baden:"off"]) (set Bad_Bel off, set MAX_xxxxxx desiredTemperature 14.0)

Wenn ich den Dummy schalte geht das Licht an und die Heizung wird hochgestellt.
Sitz man länger in der Wanne geht das Licht nach 10min dennoch aus, da man durch die Tür gehen muss.

Aus dem Grund möchte ich dem DOIF Befehl oben mit der Abfrage des Dummy baden erweitern, der das Ausschalten des Lichtes unterbindet.
Also:
define aon_Bad_Bel DOIF ([MAX_xxxxxx:"opened"]) (set Bad_Bel on) DOELSEIF ([baden:"off"]) (set Bad_Bel off)
attr aon_Bad_Bel room Beleuchtung
attr aon_Bad_Bel wait 0:600

Leider funktioniert der DOIF Befehl nicht mehr. Es passiert nichts.

Was mache ich falsch.

Vielen Dank im Voraus.

satprofi

also:

define aon_Bad_Bel DOIF ([MAX_xxxxxx:"opened"]) (set Bad_Bel on) DOELSEIF ([baden:"off"]) (set Bad_Bel off)

define aon_Bad_Bel DOIF
([MAX_xxxxxx] eq "opened") (set xxx on)
DOELSEIF ([baden] eq "off") (ser xxxx off)

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

ozeanix

Danke für die schnelle Antwort.
Sobald der DOELSEIF Befehl eingetragen ist kommt ein Perl fehler.

Ich habe das jetzt auf zwei Befehle aufgesplittet und es funktioniert.

define aon_Bad_Bel DOIF ([MAX_xxxxxx] eq "opened") (set Bad_Bel on)
attr aon_Bad_Bel room Beleuchtung

define aoff_Bad_Bel DOIF ([MAX_xxxxxx] eq "closed" and [baden] eq "off") (set Bad_Bel off)
attr aoff_Bad_Bel room Beleuchtung
attr aoff_Bad_Bel wait 300

satprofi

wie lautet der fehler?

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

ozeanix

2018.04.13 21:37:22 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/10_MAX.pm line 842.
2018.04.13 21:37:22 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_MAX.pm line 844.
2018.04.13 21:37:22 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_MAX.pm line 846.
2018.04.13 21:37:22 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_MAX.pm line 848.
2018.04.13 21:37:22 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_MAX.pm line 850.
2018.04.13 21:37:22 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_MAX.pm line 853.

ozeanix

Ein update habe ich bereits durchgeführt.
Das System ist respian stretch mit Stand vom Februar.

satprofi

der fehler liegt aber im max modul, nicht in doif

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Per

Vllt. packst du das alles nicht in ein DOIF?
Allerdings solltest du dir vorab eine Tabelle der möglichen Zustände erstellen. Dann bekommst du das auch umgesetzt.

Und: bitte Code in Code-Tags (
  • -Button im Editor) setzen.