#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

kabanett

Hallo Helmi55,
falls ich es richtig verstanden habe soll die Aktion doch immer beim Fersehen an oder aus, ausgeführt werden. Innerhalb des Zeitraums. Oder?
Dann nimm das DOELSEIF raus, Attribut do allways setzen und danach ein checkall. Dann brauchst du nicht bis morgen warten ;)

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

Otto123

Wozu do always?
Damit immer wenn der Fernseher einen Event sendet (der on "bestätigt") auch noch mal das Licht nachgetriggert wird? Oder man das Licht ausschalten kann und es geht beim nächsten Event wieder an? 
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

Bartimaus

#17
Moin,

ich würde nicht mit Sunset/Sunrise arbeiten, weil die jeweils nur einmal feuern bzw. ein Event auslösen.

Ich würde Twilight nehmen, und da als Schaltwert das Reading "Twilight" nehmen..., so in etwa hat es Damian auch in der Commandref zu DOIF beschrieben.

also:

AND [MeinTwilight:Twilight] < "40"

So habe ich es quasi realisiert, und funzt tadellos.

Der TV hängt an einer TasmotaSteckdose, da frage ich das Powerreading ab, ob der TV läuft. Die Module zu WOL oder SamsungTV haben bei mir nicht so schnell/zuverlässig funktioniert wie diese günstige Gosund@Tasmota  ;D
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Zitat von: Bartimaus am 22 März 2020, 09:44:21
ich würde nicht mit Sunset/Sunrise arbeiten, weil die jeweils nur einmal feuern bzw. ein Event auslösen.
Hier ging es zuletzt um einen Zeitraum und nicht um einmalige Events  ::)
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 22 März 2020, 10:31:20
Hier ging es zuletzt um einen Zeitraum und nicht um einmalige Events  ::)

Naja,
Zitat... AND [MeinTwilight:Twilight] < 40
kann man auch als Zeitraum ansehen
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

@Damian JA - Hab ich was anderes behauptet?

Bartimaus hat offenbar das übersehen [{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

Damian

Zitat von: Otto123 am 22 März 2020, 10:44:38
@Damian JA - Hab ich was anderes behauptet?

Bartimaus hat offenbar das übersehen [{sunset("real",0,"16:00","22:00")}-00:00]

Ist mir schon klar. Im Thread geht's um "Lampen auch nach Sonnenuntergang in Abhängigkeit TV schalten" und da kann man [{sunset("real",0,"16:00","22:00")}-00:00] als  [MeinTwilight:Twilight] < 40 ansehen, es steht nirgendwo drin, dass nach Mitternacht es nicht mehr funktionieren soll ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

Hallo
da habe ich ja wieder eine heftige Diskussion ausgelöst
Ich habs jetzt so geschrieben
(([15:00-23:00]) and [TV:state] eq "on" and [Daemmerung:twilight] < "40" and [Homestatus_Haus] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSE
Danke an Bartimaus
Mal sehen was sich am Abend tut........
Schönen Sonntag noch
Gruß
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/

Bartimaus

Gerne,

wenn die Lampe aber um 23:00 Uhr ausgehen soll, würde ich das im DOELSE noch mit angeben...
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Helmi55

Hallo Bartimaus,
nein, wann die Lampen ausgehen sollen (wenn ich daheim bin) bestimme ICH.
Da gibts dann einen Schalter "alles aus"
Anders funktioniert das bei Abwesenheit
(([({sunset("REAL",0,"15:30","21:30")}+200+int(rand(200)))]) and [du_HSH] eq "Abwesend") (set Stehlampe_Stiegen on, set Vorhang_Kugel on, set GrillerBeleuchtung on) DOELSEIF (([([22:35]+int(rand(1900)))]) and [du_HSH] eq "Abwesend") (set Stehlampe_Stiegen off, set Vorhang_Kugel off, set GrillerBeleuchtung off, set du_WB_Alles_aus off)
Aber herzlichen Dank für deinen Hinweis 8)
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/

Bartimaus

LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Helmi55

Hallo
und danke für eure Unterstützung.
So funktioniert es nun (ohne Anwesenheitserkennung im Moment)
(([15:00-23:00]) and [TV:state] eq "on" and [Daemmerung:twilight] < "55") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSE

Zum nicht funktionieren kam auch noch eine Fehler der IP Adresse im TV Modul dazu. war eigentlich immer auf fixer IP. Da ist irgendwas beim letzten Update der A1 Box schief gelaufen. Egal, Fehler gefunden und es funkt wieder.

Bleibt Gesund
LG
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/