Pause in LightScene möglich?

Begonnen von The Grue, 18 Dezember 2022, 13:21:15

Vorheriges Thema - Nächstes Thema

The Grue

Servus!

Gibt es eine Möglichkeit in einer LightScene nach einem Geräte eine Pause einzulegen? Hintergrund: Ich habe einen Medienschrank mit einem SmartPlug der den ganzen Schrank einschaltet. Bei der Szene zum Einschalten kommt mit dem Attribut switchingOrder der Plug als erstes dran, danach die angeschlossenen Geräte. Jetzt braucht der AVR einen Moment zum "booten", bis ich den einschalten kann, deshalb bräuchte ich eine Pause zwischen set Cinema.Rack on und set kino.avr on (ja, ich habe ein Chaos in den Namen...).

async_delay wäre eine Möglichkeit, aber dann wird ja auch vor jedem anderen Gerät gewartet und das dauert mir zu lange.

Muss auch nicht unbedingt eine LightScene sein, die hab' ich halt jetzt schon mal.

Hier ist die LightScene wie sie jetzt definiert ist:

define kino.Szenen LightScene kino.mitte.licht kino.tuer.licht kino.links.licht kino.rechts.licht kino.theke.downlight kino.pc.power kino.avr kino.dekoleiste kino.theke.arbeitsplatte Cinema.Rack
attr kino.Szenen alias Kino: Szenen
attr kino.Szenen async_delay 5
attr kino.Szenen room Maschinenraum,Kino
attr kino.Szenen switchingOrder Kino_Start:Cinema.Rack,kino.avr,kino.pc.power,kino.dekoleiste,kino.tuer.licht,.* \
                                Kino_Film_Pause:kino.dekoleiste,kino.theke.arbeitsplatte,.* \
                                Kino_Film_läuft:.*.licht,kino.dekoleiste,.*\
                                Licht_Mitte:kino.mitte.licht,.*
#   CONFIGFILE ./log/LightScenes.save
#   DEF        kino.mitte.licht kino.tuer.licht kino.links.licht kino.rechts.licht kino.theke.downlight kino.pc.power kino.avr kino.dekoleiste kino.theke.arbeitsplatte Cinema.Rack
#   FUUID      5d31bec9-f33f-39ae-161e-27a1b72126470b0d
#   HAS_DataDumper 1
#   HAS_JSON   1
#   NAME       kino.Szenen
#   NR         250
#   NTFY_ORDER 50-kino.Szenen
#   STATE      Lichter_Aus
#   TYPE       LightScene
#   eventCount 45
#   mayBeVisible 1
#   CONTENT:
#     Cinema.Rack 1
#     kino.avr   1
#     kino.dekoleiste 1
#     kino.links.licht 1
#     kino.mitte.licht 1
#     kino.pc.power 1
#     kino.rechts.licht 1
#     kino.theke.arbeitsplatte 1
#     kino.theke.downlight 1
#     kino.tuer.licht 1
#   READINGS:
#     2022-12-17 20:35:53   state           Lichter_Aus
#   SCENES:
#     Alles_aus:
#       kino.avr   off
#       kino.dekoleiste dim 0
#       kino.kodi  off
#       kino.links.licht off
#       kino.mitte.licht off
#       kino.pc.power off
#       kino.rechts.licht off
#       kino.theke.arbeitsplatte dim 0
#       kino.theke.downlight off
#       kino.theke.licht off
#       kino.tuer.licht off
#     Kino_Film_Pause:
#       kino.avr   on
#       kino.dekoleiste dim 99
#       kino.links.licht off
#       kino.mitte.licht off
#       kino.pc.power on
#       kino.rechts.licht off
#       kino.theke.arbeitsplatte dim 99
#       kino.theke.downlight off
#       kino.theke.licht on
#       kino.tuer.licht off
#     Kino_Film_läuft:
#       kino.avr   on
#       kino.dekoleiste dim 0
#       kino.links.licht off
#       kino.mitte.licht off
#       kino.pc.power on
#       kino.rechts.licht off
#       kino.theke.arbeitsplatte dim 0
#       kino.theke.downlight off
#       kino.theke.licht off
#       kino.tuer.licht off
#     Kino_Start:
#       Cinema.Rack on
#       kino.avr   on
#       kino.dekoleiste dim 99
#       kino.links.licht off
#       kino.mitte.licht off
#       kino.pc.power on
#       kino.rechts.licht off
#       kino.theke.arbeitsplatte dim 99
#       kino.theke.downlight off
#       kino.theke.licht off
#       kino.tuer.licht on
#     Licht_Mitte:
#       kino.dekoleiste dim 0
#       kino.links.licht off
#       kino.mitte.licht on
#       kino.rechts.licht off
#       kino.theke.arbeitsplatte dim 0
#       kino.theke.downlight off
#       kino.theke.licht off
#       kino.tuer.licht off
#     Lichter_An:
#       kino.dekoleiste dim 0
#       kino.kodi  off
#       kino.links.licht on
#       kino.mitte.licht on
#       kino.rechts.licht on
#       kino.theke.arbeitsplatte dim 99
#       kino.theke.downlight on
#       kino.theke.licht on
#       kino.tuer.licht on
#     Lichter_Aus:
#       kino.dekoleiste dim 0
#       kino.links.licht off
#       kino.mitte.licht off
#       kino.rechts.licht off
#       kino.theke.arbeitsplatte dim 0
#       kino.theke.downlight off
#       kino.theke.licht off
#       kino.tuer.licht off
#   devices:
#     Cinema.Rack
#     kino.avr
#     kino.dekoleiste
#     kino.links.licht
#     kino.mitte.licht
#     kino.pc.power
#     kino.rechts.licht
#     kino.theke.arbeitsplatte
#     kino.theke.downlight
#     kino.tuer.licht
#   switchingOrder:
#     Kino_Film_Pause:
#       kino.dekoleiste
#       kino.theke.arbeitsplatte
#       Cinema.Rack
#       kino.avr
#       kino.links.licht
#       kino.mitte.licht
#       kino.pc.power
#       kino.rechts.licht
#       kino.theke.downlight
#       kino.tuer.licht
#     Kino_Film_läuft:
#       kino.links.licht
#       kino.mitte.licht
#       kino.rechts.licht
#       kino.tuer.licht
#       kino.dekoleiste
#       Cinema.Rack
#       kino.avr
#       kino.pc.power
#       kino.theke.arbeitsplatte
#       kino.theke.downlight
#     Kino_Start:
#       Cinema.Rack
#       kino.avr
#       kino.pc.power
#       kino.dekoleiste
#       kino.tuer.licht
#       kino.links.licht
#       kino.mitte.licht
#       kino.rechts.licht
#       kino.theke.arbeitsplatte
#       kino.theke.downlight
#     Licht_Mitte:
#       kino.mitte.licht
#       Cinema.Rack
#       kino.avr
#       kino.dekoleiste
#       kino.links.licht
#       kino.pc.power
#       kino.rechts.licht
#       kino.theke.arbeitsplatte
#       kino.theke.downlight
#       kino.tuer.licht
#
setstate kino.Szenen Lichter_Aus
setstate kino.Szenen 2022-12-17 20:35:53 state Lichter_Aus


DeeSPe

Wenn du die LightScene bearbeitest (edit scene) kannst du statt "set" im Dropdown auch "setcmd" auswählen.
Dort einfach beim AVR den Einschaltbefehl eingeben (z.B. "set AVR on") und dann gefolgt von "; sleep 60" um nach dem Einschalten 60 Sekunden zu warten auf den nächsten Befehl!
Ich habe das selbst noch nie gemacht, sollte aber so funktionieren denke ich.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

The Grue

#2
Danke, das klingt schon mal gut :) Allerdings müsste ich wohl "set Cinema.Rack on; sleep 06" verwenden, oder? Ich will ja nach dem Einschalten von Cinema.Rack warten.

War da nicht was, daß fhem bei sleep total blockiert? Das hier meine ich:

ZitatBemerkung: falls sleep von keinem Befehl gefolgt wird, dann wird FHEM blockiert. Das ist unerwünscht, und im FHEM-Log wird eine Warnung protokolliert.
https://fhem.de/commandref_DE.html#sleep

Ah, der Thread hier beschreibt das ganz gut:
https://forum.fhem.de/index.php?topic=56204.0

DeeSPe

Zitat von: The Grue am 18 Dezember 2022, 13:47:17
Danke, das klingt schon mal gut :) Allerdings müsste ich wohl "set Cinema.Rack on; sleep 06" verwenden, oder? Ich will ja nach dem Einschalten von Cinema.Rack warten.

War da nicht was, daß fhem bei sleep total blockiert? Das hier meine ich:
https://fhem.de/commandref_DE.html#sleep

Ah, der Thread hier beschreibt das ganz gut:
https://forum.fhem.de/index.php?topic=56204.0

Oder stellst das sleep dem nächsten set Befehl voran.
Ein FHEM sleep ist nicht blockierend. Ein Perl sleep ist aber blockierend.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Otto123

Zitat von: The Grue am 18 Dezember 2022, 13:21:15
Jetzt braucht der AVR einen Moment zum "booten", bis ich den einschalten kann, deshalb bräuchte ich eine Pause zwischen set Cinema.Rack on und set kino.avr on (ja, ich habe ein Chaos in den Namen...).
Wenn Du in FHEM erkennen kannst das der AVR gebootet hat, kannst Du es definierter machen. sleep kann auch auf einen Event warten:
sleep kino.avr:stateAV:.off; set kino.avr on
Beispiel in der Annahme das stateAV von absent nach off geht wenn der Receiver gebootet hat? Ich kenne das Modul leider nicht.
Eventuell geht auch state:.off oder eben ein separates presence Device - aber ich denke das Modul leistet die Precense Information.

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

The Grue

Servus Otto,

Zitat von: Otto123 am 18 Dezember 2022, 14:12:14
Wenn Du in FHEM erkennen kannst das der AVR gebootet hat, kannst Du es definierter machen. sleep kann auch auf einen Event warten:

Super, danke! Ich hab's jetzt so in der Szene eingetragen, funktioniert perfekt:

sleep kino.avr.off ; set kino.avr on