Nachtlicht Carport: PIRI2-Bewegungsmelder, FS20WS-Lichtschalter / Fehler Unrecognized character \xE2

1,376 views
Skip to first unread message

bsl

unread,
Jul 24, 2012, 7:04:47 PM7/24/12
to fhem-...@googlegroups.com
Hallo,

ich bekomme es nicht hin. Möchte mittels PIRI2-Bewegungsmelder das Licht unterm Carport schalten. Manuelles schalten per FHEM-Button klappt auch zu jeder Tageszeit - die Automatik sollte allerdings nur bei Dunkelheit aktiv werden.
FHEM redet in der Logdatei mit mir, aber ich verstehe sie/ihn/es nicht.

Aus der FHEM-Logdatei:
2012.07.24 19:33:18 2: FS20 PIRI_Carp1 on-old-for-timer 60
2012.07.24 19:33:18 3: act_Carp_PIRI1 return value: Unrecognized character \xE2; marked by <-- HERE after ay) {fhem(<-- HERE near column 21 at (eval 286) line 1.


Aus meiner FHEM.cfg inclusive der kopierten Notizen darin:

#Licht Carport Tag und Nacht - $isday
#Wenn Sie einen Bewegungsmelder haben, der aber für ein Nachtlicht nur nachts #auslösen soll, verwenden Sie die Variable $isday:
#define Nachtlicht notify Bewegungsmelder {if (!$isday) {fhem(„set lampe on“)} }
#Da $isday von Sunrise gesetzt wird, muss dieses Modul aktiv sein.
# -> Frage: Was muss ich dazu erledigen?
define act_Carp_PIRI1 notify PIRI_Carp1 {if (!$isday) {fhem(„set Carp_WS_Licht on-for-timer 60“)} }


Und die Definition des FS20-Wechselschalters:

#fs20WS1  =Wechselschalter Licht Carport
define Carp_WS_Licht FS20 174c 01
attr Carp_WS_Licht eventMap /on-for-timer 600:T10m/on:on/off:off/
attr Carp_WS_Licht follow-on-for-timer 1
attr Carp_WS_Licht group 1_Licht_Carp
attr Carp_WS_Licht icon icoPirAuto.png
attr Carp_WS_Licht model fs20ws1
attr Carp_WS_Licht room 09_Tuer_u_Carp
attr Carp_WS_Licht webCmd on:off:on-for-timer 600


Für eine Erhellung wäre ich dankbar,
Stefan

Sebastian

unread,
Jul 24, 2012, 7:14:24 PM7/24/12
to fhem-...@googlegroups.com
Hallo,

ich würde sagen, dass das define so lauten muss :

define act_Carp_PIRI1 notify PIRI_Carp1:on {if (!$isday) {fhem("set Carp_WS_Licht on-for-timer 60")} } 

on, da er dann bei einem Einschaltbefehl, also bei Bewegung das notify auslöst. Die Gänsebeinchen sollten oben sein.
Eigentlich sollte es so funktionieren.

Lg

bsl

unread,
Jul 24, 2012, 8:17:47 PM7/24/12
to fhem-...@googlegroups.com
Hallo,
Dank für die schnelle Hilfestellung. Deine Zeile habe ich genauso in die cfg kopiert

define act_Carp_PIRI1 notify PIRI_Carp1:on {if (!$isday) {fhem("set Carp_WS_Licht on-for-timer 60")} }
mit folgendem Ergebnis: Licht bleibt aus.

Kommandozeile: set PIRI_Carp1 on
2012.07.25 02:11:49 2: FS20 set PIRI_Carp1 on
2012.07.25 02:11:49 3: Triggering act_Carp_PIRI1
2012.07.25 02:11:49 3: act_Carp_PIRI1 return value: Global symbol "$isday" requires explicit package name at (eval 549) line 1.

Schade, es klang so schön.
Gruß, Stefan

Sebastian

unread,
Jul 24, 2012, 8:25:22 PM7/24/12
to fhem-...@googlegroups.com
Hallo,

habe gerade getestet, das on an der Stelle ist doch egal, da er dann einfach auf alle Sendebefehle reagiert.
Ich habe aber gelesen das isday wohl keine variable ist sondern eine funktion isday().
Also vielleicht mal probieren $isday durch isday() ersetzten, vielleicht klappt dies.

Lg

bsl

unread,
Jul 24, 2012, 8:53:52 PM7/24/12
to fhem-...@googlegroups.com
Hallo Sebastian,

super, Deine Lösung klappt! (Trockentest über Kommandozeile: set PIRI_Carp1 on)

Die Konfig lautet bei mir:
define act_Carp_PIRI1 notify PIRI_Carp1:on {if (!isday()) {fhem("set Carp_WS_Licht on-for-timer 120")} }

Dank von mir und Familie,
Stefan
Message has been deleted

Sebastian

unread,
Jul 24, 2012, 9:21:14 PM7/24/12
to fhem-...@googlegroups.com
Das freut mich, das ich dir/euch weiterhelfen konnte :)

P.S.: Sollte der Bewegungsmelder kein on-sginal senden, sondern einen anderen Befehl und die Lampe geht nicht an, einfach das :on wieder aus dem define nehmen, oder PIRI umprogrammieren, wie auch immer ;)

Lg und Gute Nacht
Sebastian

bsl

unread,
Aug 1, 2012, 6:10:19 PM8/1/12
to fhem-...@googlegroups.com
Hallo noch einmal,

weil auch Punkte bei FHEM den Unterschied machen können (on.*): Es lief leider doch nicht wirklich im Echtbetrieb.
Hier also mit ergänzten "Punkten" und bei sommernächtlichem Gehtest belohnt mit Beleuchtung:

define PiriCarp1 FS20 5130 00
attr PiriCarp1 comment FS20-PIRI-2 Bewegungsmelder OBERTEIL
attr PiriCarp1 follow-on-for-timer 120
attr PiriCarp1 icon icoPirAuto.png
attr PiriCarp1 model fs20piri
attr PiriCarp1 showtime 1

define actPiriCarp1 notify PiriCarp1:on.* {if (!isday()) {fhem("set CarpLiFS20 on-for-timer 120")} }

Das Leben kann so einfach sein. Dank für den Support,
Stefan

Matthias Soll

unread,
Aug 28, 2012, 12:20:21 PM8/28/12
to fhem-...@googlegroups.com
Hallo zusammen,
ich versuche seit tagen einen NET-IO ausgang mit meinem PIRI2 zu schalten bisher komplett ohne Erfolg.

define zRelais1 ECMDDevice RELAIS 01
attr zRelais1 room AVR-Net-IO

define FS20_1eeb00 FS20 1eeb 00
attr FS20_1eeb00 follow-on-for-timer 300
attr FS20_1eeb00 model fs20piri
attr FS20_1eeb00 showtime 1
define testRelais1 notify FS20_1eeb01:on.* {if (!isday()) {fhem("set zRelais1 on-for-timer 120")} }

kann mir jemand weiterhelfen wie kann ich den on-for-old-timer 60 Befehl aus dem log verwenden und in ein notify einbauen?

puschel74

unread,
Aug 28, 2012, 3:11:07 PM8/28/12
to fhem-...@googlegroups.com
Hallo,

bring den Piri doch einfach dazu on zu senden.
Ich hab 2 Piri im Einsatz (auch für Licht ein) und einer sendet mir ein on und der andere ein on-old-for-timer.
Das liese sich auch umstellen, werd ich auch die Tage mal machen wenn es die Arbeit zulässt.
Also wenn du das on-old ... nicht brauchst einfach umstellen.
Allerdings greift mein fhem auch bei on-old-for-timer ein und schaltet mir das Licht.
siehe
https://groups.google.com/forum/?hl=de&fromgroups=#!topic/fhem-users/ifUedHloU1Q

Allerdings hast du einen FS20_1eeb00 definiert und frägst einen FS20_1eeb01 ab.
Ist das so gewollt oder fehlt da noch was?

Grüße

Matthias Soll

unread,
Aug 28, 2012, 3:52:37 PM8/28/12
to fhem-...@googlegroups.com
Hallo,
wie stelle ich denn den piri um, dass er nu on sendet?
Bisher habe ich noch gar nichts schalten können nichtmal testweise hätte gerne ein kleines erfolgserlebnis.
Das mit dem eeb01 abfragen hatte ich nur für die Frage falsch zusammenkopiert, in der cfg ist das richtig aber funktioniert trotzdem nich :-(
Könntest du hier vielleicht deinen .cfg auszug posten?
Gruß

bsl

unread,
Aug 28, 2012, 4:14:03 PM8/28/12
to fhem-...@googlegroups.com
Hallo Mathias, hallo Puschel74,

nur als Notiz: Auch bei mir lief es denn doch nicht wirklich mit "!isday". Derzeit habe ich den Schalter in FHEM vorläufig deaktiviert und bin zurückgegangen auf reine Zeitsteuerung von...bis.
define actLiCarp_nachts notify PiriCarp1:on.* { if($hour > 20 || $hour < 5) { fhem "set CarpLiFS20 on-for-timer 120" } }

Das Thema ist bei mir nach wie vor aktuell, der Herbst naht und ich möchte nicht täglich die Uhrzeiten verstellen.  ;-)
Gruß, Stefan.

bsl

unread,
Aug 28, 2012, 4:36:21 PM8/28/12
to fhem-...@googlegroups.com
>wie stelle ich denn den piri um, dass er nu on sendet?
Selbst gerade nachgelesen: Seite 24 im Handbuch (pdf) hilft evtl   ;-)


Am Dienstag, 28. August 2012 21:52:37 UTC+2 schrieb Matthias Soll:

Rudolf Koenig

unread,
Aug 29, 2012, 1:40:45 AM8/29/12
to fhem-...@googlegroups.com
> nur als Notiz: Auch bei mir lief es denn doch nicht wirklich mit "!isday".

Wie waers mit

define actLiCarp_nachts notify PiriCarp1:on.* {
if(!isday()) {
fhem "set CarpLiFS20 on-for-timer 120";
}
}

oder mit 30-Min nach Sonnenaufgang:

define actLiCarp_nachts notify PiriCarp1:on.* {
my $now = FmtTime(time());
my $rise = sunrise_abs(1800);
my $set = sunset_abs(-1800);
if($now lt $rise && $set lt $now) {
fhem "set CarpLiFS20 on-for-timer 120";
}
}

Zeilenenden und ; sind zu schuetzen (\ bzw ;;), oder in der FHEMWEB
Detail-Ansicht einzugeben.

Fuer Unsichere empfehle ich das erst zu testen, wie es auch in
http://fhem.de/commandref.html#perl beschrieben ist:

fhem> { isday() }
fhem> { FmtTime(time()) }
fhem> { sunrise_abs(1800) }
fhem> { (FmtTime(time()) gt sunrise_abs(1800)) ? "ja" : "nein" }
usw.

dou...@gmx.de

unread,
Aug 29, 2012, 1:59:46 AM8/29/12
to fhem-...@googlegroups.com

...ich mag diese Beispiele sehr! 

Ich weiss, das sie für einen Autor auf Experten-Level auf Dauer langweilig und  ermüdend sein müssen, aber für mich ermöglichen sie einen sehr anschaulichen und sofort umsetzbaren Gewinn mit Aha-Effekt, und einen attraktiven Einstieg in die Materie. 
- Soll und kann nicht das Selbststudium ersetzen; aber macht einfach Spass, wenn Dinge sofort funktionieren.

Danke schön!!

VG
Ralf


bsl

unread,
Aug 29, 2012, 2:19:09 PM8/29/12
to fhem-...@googlegroups.com
>Zeilenenden und ; sind zu schuetzen (\ bzw ;;),
>oder in der FHEMWEB Detail-Ansicht einzugeben.

Okay, das war´s vermutlich bei mir, der Text war sonst identisch. Ein Schnelltest mit "isday" ohne Ausrufungszeichen läuft, ich mag aber Tochter und Freund gerade nicht unter dem Carport vertreiben.
Danke und Gruß von der Terrasse,
Stefan

Matthias Soll

unread,
Aug 29, 2012, 2:56:14 PM8/29/12
to fhem-...@googlegroups.com
ERFOLGSERLEBNIS!!!

So nach dem umstellen auf ON (vielen dank für den Tip) konnte ich über ein einfaches notify licht anschalten.
Wie kann ich es nach bestimmter Zeit wieder ausschalten wenn mein device kein on-for-timer kennt?
(entschuldigt die "vermutlich" totale anfängerfrage)

puschel74

unread,
Aug 29, 2012, 11:11:09 PM8/29/12
to fhem-...@googlegroups.com
Hallo,

mit einem at ein off triggern nach der gewünschten Zeit.

Grüße

Matthias Soll

unread,
Aug 30, 2012, 12:19:19 AM8/30/12
to fhem-...@googlegroups.com

Hallo puschel74
Könntest du mir ein beispiel schicken, ich finde nichts unter at ein off trigger.

--
To unsubscribe from this group, send email to
fhem-users+...@googlegroups.com

Mitch

unread,
Aug 30, 2012, 3:09:40 AM8/30/12
to fhem-...@googlegroups.com
schick doch einfach noch ein off mit der Zeit die Du mächtest (z.B. +00:10:00)


Am Mittwoch, 29. August 2012 20:56:14 UTC+2 schrieb Matthias Soll:

puschel74

unread,
Aug 30, 2012, 11:47:41 AM8/30/12
to fhem-...@googlegroups.com
Hallo,

ich hab Rudis Vorschlag mal gedanklich erweitert:


define actLiCarp_nachts notify PiriCarp1:on.* {
  if(!isday()) {
    fhem "set CarpLiFS20 on";
    define actLiCarp_nachtsoff at +00:10:00; fhem "set CarpLiFS20 off"; fhem "delete actLiCarp_nachtsoff";
  }
}

Ungetest und vermutlich voller Fehler - so wie immer noch bei mir.
So (oder so ähnlich) schaltet dir das Licht ein und ab diesem Zeitpunkt + 10 Minuten
wieder aus.
Fhem legt dann automatisch ein eigenes notify dafür an welches du nach der Ausführung natürlich
wieder löschen musst.
Das Problem wird nur werden wenn innerhalb dieser 10 Minuten der Piri das Licht nochmal einschalten will,
also die Abfrage nochmal durchlaufen wird bevor das off-notify gelöscht wurde, meckert fhem (zu recht) das
das define schon existiert und erst gelöscht werden soll.
Dies liese sich so umgehen:


define actLiCarp_nachts notify PiriCarp1:on.* {
  if(!isday()) {
    fhem "delete actLiCarp_nachtsoff";
    fhem "set CarpLiFS20 on";
    define actLiCarp_nachtsoff at +00:10:00; fhem "set CarpLiFS20 off"; fhem "delete actLiCarp_nachtsoff";
  }
}

Nun meckert fhem nur bei der ersten Ausführung das das define noch nicht existiert und daher nicht gelöscht
werden kann.

Ich bin mir aber sicher das einige, die sich besser auskennen als ich, bessere Lösungen haben werden.
Wie geschrieben, erstmal nur auf die schnelle aus den Gedanken geschossen und völlig ungetestet.

Und sollte ich hier kompletten Blödsinn verzapft haben bitte ich mir das auch (noch) nachzusehen ;-)

Grüße

puschel74

unread,
Aug 30, 2012, 12:47:04 PM8/30/12
to fhem-...@googlegroups.com
Hallo,

selbst noch draufgekommen ;-)

Bei diesem (selbst wenn es funktionieren würde),


define actLiCarp_nachts notify PiriCarp1:on.* {
  if(!isday()) {
    fhem "delete actLiCarp_nachtsoff";
    fhem "set CarpLiFS20 on";
    define actLiCarp_nachtsoff at +00:10:00; fhem "set CarpLiFS20 off"; fhem "delete actLiCarp_nachtsoff";
  }
}

müsste fhem jedesmal meckern, wenn das define durch sich selbst gelöscht werden würde, wenn der Piri das
Licht einschalten würde.
Also wäre sowas in die Richtung besser:


define actLiCarp_nachts notify PiriCarp1:on.* {
  if(!isday()) {
    fhem "delete actLiCarp_nachtsoff";
    fhem "set CarpLiFS20 on";
    define actLiCarp_nachtsoff at +00:10:00 fhem "set CarpLiFS20 off";
  }
}

Nun meckert fhem nur einmal bei einem Neustart und der erstmaligen Auslösung des Piri das
das define noch nicht existiert.
Aber immer noch ungetestet ;-)

Grüße

Matthias Soll

unread,
Aug 30, 2012, 3:21:07 PM8/30/12
to fhem-...@googlegroups.com
@Mitch könntest du mir ein Beispiel schicken?
Kann man nicht einfach ein zeitverzögertes notify mit dem off befehl bauen?

puschel74

unread,
Aug 30, 2012, 3:37:58 PM8/30/12
to fhem-...@googlegroups.com
Hallo,

das ist eigentlich genau das was ich dir geschrieben habe ;-)
Während der Piri das on sendet kannst du ein, zeitlich davon, abhängiges off in einem at verpacken.
Hast du meinen gedanklichen Versuch mal probiert?
Ich vermute ja und der produziert nur Fehler.
Das liegt evtl. "nur" an den Semikola (oder Semikolos).
Oder Du legst dir einen Empfänger zu der on-for-timer kann ;-))

Grüße

Matthias Soll

unread,
Aug 31, 2012, 9:02:35 AM8/31/12
to fhem-...@googlegroups.com

Hallo,
ich hatte eine Lösung gesucht die ich verstehe :-)
Scheint aber schwieriger zu sein als ich dachte :-(
zuerst hat er gemeckert, dass er isday nicht kennt das habe ich dann gelöscht, dann hat er gemeckert, dass er fhem nicht kennt.
Und schon weis ich nicht weiter.
Warum geht das hier nicht:
define Door_bew_melder notify FS20_1eeb00 set wgLight on
define Door_bew_melder1 at +00:00:10 "set wgLight off"

Oder kann ich einen timer einfach als attribut setzen? so dass ein gerät nie länger als 10 sekunden an geht?
isday brauche ich nicht der bewegungmelder hat ja einen dämmerungsschalter drin.

puschel74

unread,
Aug 31, 2012, 11:19:51 AM8/31/12
to fhem-...@googlegroups.com
Hallo,

mit

define Door_bew_melder notify FS20_1eeb00 set wgLight on

hast du zwar schön deine Aktion definiert aber fhem weiß nicht was es machen soll ;-)

1.) define Door_bew_melder notify FS20_1eeb00.on set wgLight on
damit fhem weiß das was geschehen soll wenn der Bewegungsmelder ein on sendet.
2.) define Door_bew_melder notify FS20_1eeb00.on fhem "set wgLight on"
damit fhem weiß was geschehen soll.
Du kannst hier ja verschiedene Skripte ausführen lassen oder evtl. auch "nur" Perl-Code
daher die Anweisung fhem "was soll geschehen".
In diesem Fall soll fhem das wgLight einschalten.

Du darfst nicht Perl-Code und fhem-Anweisungen verwechseln - das geschieht mir auch noch
ab und zu mal.
Ein gutes Perlbuch und die Beispiele im Wiki durchackern dann klappt das auch mit dem
Code ;-)

Grüße

P.S.: Alles wieder ungetestet natürlich

Rudolf Koenig

unread,
Aug 31, 2012, 1:25:54 PM8/31/12
to fhem-...@googlegroups.com
Korrektur:

define Door_bew_melder notify FS20_1eeb00.on { fhem "set wgLight on" }

d.h. im vorherigen Beitrag fehlte das { bzw. }

fhem "arg" oder fhem("arg") ist eine Perl Funktion, um die "normalen" fhem
Kommandos auch aus perl erreichen zu koennen. fhem interpretiert etwas als
perl, wenn das erste und letzte Zeichen { bzw. } ist. Siehe auch
http://fhem.de/commandref.html#command

puschel74

unread,
Aug 31, 2012, 2:04:25 PM8/31/12
to fhem-...@googlegroups.com
Hallo,

ich wusste ich hab was vergessen - danke Rudi.
Das kommt davon wenn ich nicht in meine cfg schaue - Asche auf mein Haupt.

Grüße

Matthias Soll

unread,
Aug 31, 2012, 3:41:59 PM8/31/12
to fhem-...@googlegroups.com
Hallo,
erstmal danke für die Hilfe.

Habe den PIRI aber umgestellt auf on signal mit:

define Door_bew_melder notify FS20_1eeb00 set wgLight on
geht das licht an, nur aus bekomme ich es bisher nicht.

Matthias Soll

unread,
Aug 31, 2012, 3:45:53 PM8/31/12
to fhem-...@googlegroups.com

das
define Door_bew_melder notify FS20_1eeb00.on { fhem "set wgLight on" }
geht aber auch

puschel74

unread,
Aug 31, 2012, 4:01:46 PM8/31/12
to fhem-...@googlegroups.com
Hallo,

also dann setzen wir doch mal hier an - weil der Syntax und die Formatierung des Befehls stimmt (warum beim anderen das Licht an geht kann
ich hier leider nicht zerpflücken - Rudi weiß das bestimmt aus dem efef).

Dann mach doch einfach mal ein

define Door_bew_melder notify FS20_1eeb00.on {\
fhem "set wgLight on";;\
}

draus und poste mal das Ergebniss bitte.
Es sollte nicht viel mehr machen als vorher außer das es auch funktioniert ;-)
Ok, das Licht geht auch nicht aus damit aber Step-by-Step.
Du willst es ja auch verstehen hast du geschrieben ;-)
Achtung!! Du musst die Zeichensetzung GENAUSO übernehmen.
Am besten du bearbeitest deine fhem.cfg mit notepad++ dann kannst du das per copy&paste
rüberkopieren (stimmt doch so @Rudi oder?).

Grüße

Grüße

Matthias Soll

unread,
Aug 31, 2012, 4:06:43 PM8/31/12
to fhem-...@googlegroups.com

das funktioniert

puschel74

unread,
Aug 31, 2012, 4:38:26 PM8/31/12
to fhem-...@googlegroups.com
Hallo,

na das ist doch mal was ;-)

Wie gesagt. Warum das


define Door_bew_melder notify FS20_1eeb00 set wgLight on

auch funktioniert weiß nur Rudi und die Götter ;-)

Aber auf das
define Door_bew_melder notify FS20_1eeb00.on {\
fhem "set wgLight on";;\
}
können wir jetzt langsam aufbauen.
Ok. Grad gelesen das du einen Net-IO als Empfänger hast *grübel*
Dann musst du wohl oder übel mit einem zusätzlichen at einen off-Befehl triggern (das hatten wir schon ;-) ).
Ich hoffe ich hab das richtig erfasst??

Grüße

Am Freitag, 31. August 2012 22:06:43 UTC+2 schrieb Matthias Soll:

das funktioniert

Matthias Soll

unread,
Aug 31, 2012, 5:00:01 PM8/31/12
to fhem-...@googlegroups.com
Hallo Puschel,
hast du noch einen tip zum aufbauen :-)
Ich komme mit den semikolons gschwungenen und runden klammern noch nicht so zurecht.
Net io ist richtig momentan teste ich das aber mit intertechno geht genau so.

Rudolf Koenig

unread,
Sep 1, 2012, 2:41:21 AM9/1/12
to fhem-...@googlegroups.com
> Warum das
> define Door_bew_melder notify FS20_1eeb00 set wgLight on
> auch funktioniert wei� nur Rudi und die G�tter ;-)

Und die, die http://fhem.de/commandref.html#notify gelesen haben :)

Btw. ein verzoegertes aus ist rel. einfach:

define Door_bew_melder notify FS20_1eeb00\
set wgLight on;;sleep 60;set wgLight off

Matthias Soll

unread,
Sep 1, 2012, 3:16:16 AM9/1/12
to fhem-...@googlegroups.com

habe es hinbekommen so funktioniert es:


define Door_bew_melder notify FS20_1eeb00.on {\
fhem "set wgLight on;; define reset_wgLight at +00:01 set wgLight off";;\
}

sieht jemand einen Fehler?

Die andere Lösung werde ich noch probieren DANKE für eure Hilfe.

puschel74

unread,
Sep 1, 2012, 4:08:20 AM9/1/12
to fhem-...@googlegroups.com
Hallo,

na wunderbar wenn es jetzt klappt.
Immer schön dran bleiben ;-)
Ja Rudi. Die fhem reference harrt noch der Übersetzung die vielleicht mal kommen wird ;-)

Grüße

Matthias Soll

unread,
Sep 1, 2012, 5:52:56 AM9/1/12
to fhem-...@googlegroups.com
Hmm Rudi´s Lösung sieht schön einfach und verständlich aus aber funktioniert bei mir nicht.

PumpkinEater

unread,
Sep 25, 2012, 4:21:40 AM9/25/12
to fhem-...@googlegroups.com

Am Mittwoch, 29. August 2012 07:40:48 UTC+2 schrieb Rudolf Koenig:

define actLiCarp_nachts notify PiriCarp1:on.* {
  my $now  = FmtTime(time());
  my $rise = sunrise_abs(1800);
  my $set  = sunset_abs(-1800);
  if($now lt $rise && $set lt $now) {
    fhem "set CarpLiFS20 on-for-timer 120";
  }
}

Eine Verständnisfrage dazu - Beispiel:
Sunset: 19 Uhr
Sunrise: 07 Uhr
Now: 02:00

Dann würde in der If-Abfrage stehen:
  if(02:00 lt 07:30 && 18:30 lt 02:00 {

Die Bedingung wäre dann doch eigentlich falsch, weil der zweite Teil des Ausdrucks falsch ist. Infolgedessen dürfte CarpLiFS20 nachts um 2 Uhr nicht eingeschaltet werden (?). Da ich ähnlichen Code im Forum schon mehrfach gesehen habe, nehme ich an, dass es trotzdem funktioniert .. aber warum?

Danke schon mal für Tipps, die mich aus der Dämmerung holen ;-)

Gruß
Peter

PumpkinEater

unread,
Sep 25, 2012, 1:03:03 PM9/25/12
to fhem-...@googlegroups.com
Ich antworte mir mal selber:

Ich habe nun an anderer Stelle gefunden, dass die Bedingung wohl  so aussehen muss:
  if(sunrise_abs(1800) gt $now || $now gt sunset_abs(-1800)) {\set

Ich werd's mal testen.

puschel74

unread,
Sep 25, 2012, 1:06:40 PM9/25/12
to fhem-...@googlegroups.com
Hallo

my $now=sprintf("%%02d:%%02d",$hour,$min);
if(sunrise_abs(3600) gt $now || $now gt sunset_abs(-3600)) {
fhem ("set EG_Eingang_Licht_innen on-for-timer 30; sleep 1; set EG_Vorraum_Licht on-for-timer 48");
Achtung: Teilauszug!!

So sieht es ein meiner Konfig aus und funktioniert wunderbar.

Grüße
Reply all
Reply to author
Forward
0 new messages