notify mit Einschränkung zwischen Sonnenuntergang und -aufgang

Begonnen von stratege-0815, 09 Juli 2017, 11:10:11

Vorheriges Thema - Nächstes Thema

stratege-0815

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

krikan


CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

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.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

 ;D


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


Oder halt statt not ! nehmen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Damian

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)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

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)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF