#gelöst# Lampen auch nach Sonnenuntergang in Abhängigkeit TV schalten

Begonnen von Helmi55, 21 März 2020, 10:00:08

Vorheriges Thema - Nächstes Thema

Helmi55

Hallo guten morgen,
ich möchte mit einem DOIF Lampen schalten, wenn in der Zeit 16-22 Uhr der Sonnenuntergang ist/war und in diesem Zeitraum das TV Gerät eingeschaltet wurde.
Dieses DOIF schaltet nur wenn das TV Gerät läuft und Sunset ist
([{sunset("real",1000)}-22:00] and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSEIF ([0:00])

Mit diesem DOIF tut sich gar nichts -
(({sunset("real",0,"16:00","22:00")}) and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSEIF ([0:00])

Was über sehe ich hier.
Wie gesagt TV muss eingeschaltet sein und die Lampen sollen schalten auch wenn Sunset schon vorbei war.
Danke für eure Hilfe und bleibt Gesund

Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Damian

Zitat von: Helmi55 am 21 März 2020, 10:00:08
Hallo guten morgen,
ich möchte mit einem DOIF Lampen schalten, wenn in der Zeit 16-22 Uhr der Sonnenuntergang ist/war und in diesem Zeitraum das TV Gerät eingeschaltet wurde.
Dieses DOIF schaltet nur wenn das TV Gerät läuft und Sunset ist
([{sunset("real",1000)}-22:00] and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSEIF ([0:00])

Mit diesem DOIF tut sich gar nichts -
(({sunset("real",0,"16:00","22:00")}) and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSEIF ([0:00])

Was über sehe ich hier.
Wie gesagt TV muss eingeschaltet sein und die Lampen sollen schalten auch wenn Sunset schon vorbei war.
Danke für eure Hilfe und bleibt Gesund

Helmut

Im ersten Beispiel hast du ein Zeitintervall genommen im zweiten nicht. Warum nicht?

Natürlich musst du auch im zweiten Beispiel eine Endzeit angeben, wie im ersten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

Servus
Ich dachte ,,16:00","22:00" ist das Zeitintervall ?
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Otto123

#3
Es ist aber ein Zeitintervall für den Sonnenuntergang, nicht für das DOIF :)
Zitatdefmod a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on
Schalte lamp1 an, sobald die Sonne unter den Horizont sinkt (h ≤ 0), jedoch nicht vor 18:00 und nicht nach 21:00.
Dein DOIF - da muss doch so Zeit muss doch in eckige?
([{sunset("real",0,"16:00","22:00")}] and [TV:state] eq "on")

Analog diesem Beispiel in der Doku
ZitatSchalten mit Zeitfunktionen, hier: bei Sonnenaufgang und Sonnenuntergang:

define di_light DOIF ([{sunrise(900,"06:00","08:00")}]) (set outdoorlight off) DOELSEIF ([{sunset(900,"17:00","21:00")}]) (set outdoorlight on)
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

Helmi55

Otto danke dir - diese Klammern.... 8)
Habe so geändert und werde heute Abend testen.
Danke und Gesund bleiben
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Damian

Zitat von: Otto123 am 21 März 2020, 13:17:00
Es ist aber ein Zeitintervall für den Sonnenuntergang, nicht für das DOIF :)Dein DOIF - da muss doch so Zeit muss doch in eckige?
([{sunset("real",0,"16:00","22:00")}] and [TV:state] eq "on")

Analog diesem Beispiel in der Doku

Das wird nicht reichen, es muss schon ein Intervall sein und nicht nur ein Zeittrigger, es soll auch noch nach Sonnenuntergang funktionieren:

([{sunset("real",0,"16:00","22:00")}-22:00] and [TV:state] eq "on")


Die Zeitangaben innerhalb von sunset begrenzen nur die berechnete Sonnenuntergangszeit, es bleibt aber eben nur ein Zeitpunkt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

Hallo. Danke für mein Verständnis "16:00","22:00" ist der Zeitraum für den Sonnenuntergang und -22:00 sagt dass es nach dem Sonnenuntergang bis 22 Uhr funktionieren soll?

Danke
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Otto123

Nein ?
jedoch nicht vor 16:00 und nicht nach 22:00.

Bedeutet: geht die Sonne früher unter als 16:00 Uhr passiert es erst 16:00
geht die Sonne später als 22:00 Uhr unter, passiert es spätestens 22:00

@Damian
Das DOIF oben hat zwar einen Zeitraum, aber DOELSE ist doch einfach leer. Also passiert doch nur etwas wenn der Zeitraum beginnt. Das der Zeitraum endet, schubst noch nicht mal einen Sack Reis um. Es ändert nur den Zustand im DOIF. Oder ich habe DOIF mal wieder nicht verstanden ?
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

Helmi55

Hallo
Bin mir ja nicht sicher ob ich das so darstellen kannste ich möchte:
Ich setz mich zum Fernseher und wenn ich ihn einschalte soll wenn es finster ist im Zeitraum von 16 Uhr (Winter) und 22 Uhr Hochsommer) die Aktion ausgeführt werden
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Otto123

Dann geht meine Variante eventuell nicht! Du willst primär triggern wenn der Fernseher angeht.
Dann trag doch einfach -00:00 noch dazu, dann geht es sicher in dem Zeitraum.[{sunset("real",0,"16:00","22:00")}-00:00]
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

Helmi55

Guten Abend
also mit dem ([{sunset("real",0,"16:00","22:00")}-00:00] and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSEIF ([0:00])
Schalten die Lampen, wenn TV on nicht wenn TV an und Sunset tritt ein, noch wenn TV an und Sunset ist bereits vorbei?

Hier ein List vom DOIF
Internals:
   CFGFN     
   DEF        ([{sunset("real",0,"16:00","22:00")}-00:00] and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSEIF ([0:00])
   FUUID      5e74e976-f33f-ee2d-226a-7b6e821ef49ad60f
   MODEL      FHEM
   NAME       di_TVLampe_auto
   NOTIFYDEV  global,TV
   NR         551477
   NTFY_ORDER 50-di_TVLampe_auto
   STATE      initialized
   TYPE       DOIF
   VERSION    21208 2020-02-16 17:56:18
   READINGS:
     2020-03-21 18:17:40   cmd             0
     2020-03-21 18:17:40   mode            enabled
     2020-03-21 18:17:40   state           initialized
     2020-03-21 18:17:40   timer_01_c01    22.03.2020 18:07:09
     2020-03-21 18:17:40   timer_02_c01    22.03.2020 00:00:00
     2020-03-21 18:17:40   timer_03_c02    22.03.2020 00:00:00
   Regex:
     accu:
     cond:
       TV:
         0:
           state      ^TV$:^state:
   attr:
     cmdState:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'TV','state') eq "on"
     1          ::DOIF_time_once($hash,2,$wday)
   days:
   do:
     0:
       0          set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off
     1:
       0         
     2:
   helper:
     DEVFILTER  ^global$|^TV$
     NOTIFYDEV  global|TV
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1584896829
     1          1584831600
     2          1584831600
   readings:
     all         TV:state
   realtime:
     0          18:07:09
     1          00:00:00
     2          00:00:00
   time:
     0          {sunset("real",0,"16:00","22:00")}
     1          00:00:00
     2          0:00
   timeCond:
     0          0
     1          0
     2          1
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0  1
     1           2
   triggertime:
     1584831600:
       localtime  1584831600
       hash:
     1584896829:
       localtime  1584896829
       hash:
   uiState:
   uiTable:
Attributes:
   room       Steuerung


danke
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Bracew

Hallo Helmut,

eine ähnliche Frage wie Du sie hast, hatte ich auch einmal, falls es dir weiterhilft:
https://forum.fhem.de/index.php/topic,14010.msg175122.html#msg175122

Herausgekommen ist, dass FHEM die Lampe am Fernseher einschaltet, wenn
a) ich nicht verreist bin und
b) der TV angeschaltet ist und
c) es draußen theoretisch dunkel genug ist

Geholfen hat "Antwort #129 am: 14 Juni 2014, 22:01:31" von Dietmar63

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Otto123

Hallo Helmut,

Du hast ja das DOIF erst 10 min nach Sonnenuntergang verändert, der Zeitraum ist jetzt erst morgen?

Das DOELSEIF am Ende halte ich für Schnurbel ;)
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

Helmi55

Na gut in Zeiten wie diesen läuft ja nix davon. Werde das doelseif löschen und auf morgen warten
Muss es mir raussuchen, aber das doelseif wurde mir hier mal empfohlen?
Schönen Abend
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Otto123

Ich kenne diese Empfehlung und bleibe bei meiner Meinung :)
Aber Du hast ja einen Zeitraum -00:00 der endet da. Da brauchst Du am Ende kein ([00:00]) das ist doppelt und unübersichtlich. Es sei denn der DOIF Chef sieht das anders, dann hör lieber auf ihn ;)

Du kannst doch für einen Test heut einfach mal die DEF ändern:
{sunset("real",0,"21:00","22:00")} und nochmal testen, falls Du Lust hast und es heute langweilig wird.

Also die 21:00 ist willkürlich gewählt,, sollte halt eine Zeit in der nahen Zukunft sein :)
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