FHEM Forum

FHEM => Automatisierung => Thema gestartet von: stratege-0815 am 09 Juli 2017, 11:10:11

Titel: notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: stratege-0815 am 09 Juli 2017, 11:10:11
Hallo zusammen,
ich habe ein notify für meine Haustürklingel gebaut, das sieht so aus:



GPIOTuerklingel:on get cam1 image;sleep 3;
set Treppenhausbeleuchtung on;
set teleBot sendPhoto /opt/fhem/www/snapshots/cam1_snapshot_2.jpg;
set teleBot sendPhoto /opt/fhem/www/snapshots/cam1_snapshot_3.jpg;
set teleBot sendPhoto /opt/fhem/www/snapshots/cam1_snapshot_4.jpg;
set teleBot sendPhoto /opt/fhem/www/snapshots/cam1_snapshot_5.jpg;


Bei Betätigung der Türklingel werden von cam1 Bilder gemacht, dann kommt eine Pause weil die Bilder der cam erst weggeschrieben werden müssen. Die Treppenhausbeleuchtung schaltet ein, die letzten Bilder werden mir via Telegram geschickt.
Das funktioniert auch soweit. Aber ich will das Einschalten der Treppenhausbeleuchtung auf das Zeitfenster zwischen Sonnenuntergang und -aufgang beschränken. Das kriege ich irgendwie nicht hin.
Wer weiss Rat?

Gruß
J
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: krikan am 09 Juli 2017, 11:13:30
Schau Dir das Attribut https://fhem.de/commandref.html#disabledForIntervals an; enthaelt auch ein Beispiel mit sunrise/sunset.
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: CoolTux am 09 Juli 2017, 11:15:06
Bitte verwende Code Tages für Logausgaben und Codeteile.

Du kannst das Attribut disableForInterval nehmen.  Oder Du kannst eine Bedingung einbauen. Entweder mit dem FHEM Befehl IF siehe Commandref oder Du gehst auf Perlebene und machst dort if
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: Otto123 am 09 Juli 2017, 11:31:59
Hi,

um die Abfrage Tag/Nacht etwas einfacher zu machen, habe ich mir ganz am Anfang einen Tageslicht Dummy definiert. Der wird einfach von zwei at (sunrise sunset) auf 0 oder 1 gesetzt und an verschiedenen Stellen in meinem FHEM abgefragt.

IF ([Tageslicht] eq "0") (set switch1 on)

Gruß Otto
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: rudolfkoenig am 09 Juli 2017, 11:37:07
Fuer sowas gibt es "seit immer" die perl Funktion isday(), erklaert in commandref. Ob sie mit IF verwendbar ist weiss ich nicht, war eigentlich fuer if gedacht.

Fuer Casual Leser: IF ist ein FHEM-befehl mit seiner eigenen Syntax, verwandt mit DOIF. Mit if ist das "normale" perl Sprachelement gemeint.
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: Otto123 am 09 Juli 2017, 12:07:49
Perl war mir am Anfang zu "heikel"  ;) aber klar mit Perl geht es genauso einfach:
{if (isday() == 0) {fhem "set switch1 on"}}

Nach meinen Tests bekommt IF den Umgang mit isday() nicht hin. Aber vielleicht habe ich nicht alle Möglichkeiten probiert. Es ist mit Sicherheit dann auch nicht mehr "einfacher".

Vor allem für Windows User: niemals "entspannt" mit Groß und Kleinschreibung umgehen.  ;D

Gruß Otto
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: CoolTux am 09 Juli 2017, 12:13:55
 ;D


{if ( not isday() ) {fhem "set switch1 on"}}


Oder halt statt not ! nehmen
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: Damian am 09 Juli 2017, 12:17:52
Zitat von: Otto123 am 09 Juli 2017, 12:07:49
Nach meinen Tests bekommt IF den Umgang mit isday() nicht hin. Aber vielleicht habe ich nicht alle Möglichkeiten probiert.

wahrscheinlich ;)

IF (!isday()) (set switch1 on)
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: Otto123 am 09 Juli 2017, 12:43:56
Zitat von: Damian am 09 Juli 2017, 12:17:52
wahrscheinlich ;)
Ich habe mit viel viel mehr Klammern angefangen und dann reduziert - diese minimal Variante habe ich mir dann nicht mehr getraut  :-[
;D ;D ;D

Immerhin hat der TE jetzt die Qual der Wahl  :)

Schönen Sonntag
Otto
Titel: Antw:notify mit Einschränkung zwischen Sonnenuntergang und -aufgang
Beitrag von: Damian am 09 Juli 2017, 14:23:34
Zitat von: Otto123 am 09 Juli 2017, 12:43:56
Ich habe mit viel viel mehr Klammern angefangen und dann reduziert - diese minimal Variante habe ich mir dann nicht mehr getraut

Das war noch nicht die minimale Variante:

IF (!isday) (set switch1 on)