From 18cd315b98094abb21722193ae5111e79c170fe9 Mon Sep 17 00:00:00 2001 From: Stephan Knull Date: Wed, 25 Sep 2024 11:33:58 +0200 Subject: [PATCH] Introduce conditions for scenes --- klanglicht-module-base/pom.xml | 5 + .../lightmanager/model/lm/LMCondition.kt | 18 + .../lightmanager/model/lm/LMConditionNight.kt | 14 + .../hardware/lightmanager/model/lm/LMScene.kt | 3 +- .../lightmanager/model/lm/LMScenes.kt | 2 +- .../model/preferences/Preferences.kt | 2 + .../lightmanager/model/lm/LMScenesTest.kt | 13 + .../.klanglicht/resources/scenes.yml | 4639 +++++++++-------- .../configuration/ApplicationPreferences.kt | 2 +- .../scenes/service/ScenesService.kt | 36 +- .../webclient/LightmanagerClientTest.kt | 2 +- 11 files changed, 2434 insertions(+), 2302 deletions(-) create mode 100644 klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMCondition.kt create mode 100644 klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMConditionNight.kt create mode 100644 klanglicht-module-base/src/test/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenesTest.kt diff --git a/klanglicht-module-base/pom.xml b/klanglicht-module-base/pom.xml index 4a7ac25..3451913 100644 --- a/klanglicht-module-base/pom.xml +++ b/klanglicht-module-base/pom.xml @@ -25,6 +25,11 @@ twinkly-api ${version.twinkly} + + de.visualdiggits + solar-time + 1.0.0-SNAPSHOT + diff --git a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMCondition.kt b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMCondition.kt new file mode 100644 index 0000000..d7dd622 --- /dev/null +++ b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMCondition.kt @@ -0,0 +1,18 @@ +package de.visualdigits.klanglicht.hardware.lightmanager.model.lm + +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonSubTypes.Type +import com.fasterxml.jackson.annotation.JsonTypeInfo +import de.visualdigits.klanglicht.model.preferences.Preferences + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.WRAPPER_OBJECT +) +@JsonSubTypes( + Type(name = "night", value = LMConditionNight::class), +) +abstract class LMCondition { + + abstract fun evaluate(prefs: Preferences): Boolean +} diff --git a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMConditionNight.kt b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMConditionNight.kt new file mode 100644 index 0000000..787ac57 --- /dev/null +++ b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMConditionNight.kt @@ -0,0 +1,14 @@ +package de.visualdigits.klanglicht.hardware.lightmanager.model.lm + +import de.visualdigits.klanglicht.model.preferences.Preferences +import de.visualdigits.solartime.SolarTime +import java.time.ZonedDateTime + +class LMConditionNight( + val value: Boolean = true +) : LMCondition() { + + override fun evaluate(prefs: Preferences): Boolean { + return value == SolarTime.switchLightsOn(ZonedDateTime.now(), prefs.installationLat, prefs.installationLon) + } +} diff --git a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScene.kt b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScene.kt index 1eccdc0..127045f 100644 --- a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScene.kt +++ b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScene.kt @@ -4,10 +4,11 @@ class LMScene( var name: String, var color: List = listOf(), + var condition: LMCondition? = null, var actions: List = listOf() ) { override fun toString(): String { - return "$name: ${color.joinToString(",")}${if (actions.isNotEmpty()) "\n - ${actions.joinToString("\n - ")}" else ""}" + return "$name: ${color.joinToString(",")}${if (condition != null) ", Condition: ${condition?.javaClass?.simpleName}" else ""}${if (actions.isNotEmpty()) "\n - ${actions.joinToString("\n - ")}" else ""}" } } diff --git a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenes.kt b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenes.kt index 8be376e..2abafa8 100644 --- a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenes.kt +++ b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenes.kt @@ -19,7 +19,7 @@ class LMScenes( private val mapper = ObjectMapper(YAMLFactory()) .registerModule(kotlinModule()) - fun unmarshall(file: File): LMScenes { + fun readValue(file: File): LMScenes { val lmScenes = mapper.readValue(file, LMScenes::class.java) lmScenes.scenes.values.forEach { g -> g.scenes.forEach { s -> lmScenes.scenesMap[s.name] = s } } return lmScenes diff --git a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/model/preferences/Preferences.kt b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/model/preferences/Preferences.kt index 7edf27f..5196adf 100644 --- a/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/model/preferences/Preferences.kt +++ b/klanglicht-module-base/src/main/kotlin/de/visualdigits/klanglicht/model/preferences/Preferences.kt @@ -25,6 +25,8 @@ import java.nio.file.Paths @JsonIgnoreProperties("klanglichtDir", "dmxInterface", "fixtures", "serviceMap", "shellyMap", "twinklyMap", "stageMap", "colorWheelMap", "log") class Preferences( var name: String = "", + var installationLat: Double = 0.0, + var installationLon: Double = 0.0, var theme: String = "", var fadeDurationDefault: Long = 0, var baseUrl: String? = null, diff --git a/klanglicht-module-base/src/test/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenesTest.kt b/klanglicht-module-base/src/test/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenesTest.kt new file mode 100644 index 0000000..9b423fe --- /dev/null +++ b/klanglicht-module-base/src/test/kotlin/de/visualdigits/klanglicht/hardware/lightmanager/model/lm/LMScenesTest.kt @@ -0,0 +1,13 @@ +package de.visualdigits.klanglicht.hardware.lightmanager.model.lm + +import org.junit.jupiter.api.Test +import java.io.File + +class LMScenesTest { + + @Test + fun testReadScenes() { + val scenes = LMScenes.readValue(File(ClassLoader.getSystemResource(".klanglicht/resources/scenes.yml").toURI())) + println(scenes) + } +} diff --git a/klanglicht-module-base/src/test/resources/.klanglicht/resources/scenes.yml b/klanglicht-module-base/src/test/resources/.klanglicht/resources/scenes.yml index 6099ee9..d88ff63 100644 --- a/klanglicht-module-base/src/test/resources/.klanglicht/resources/scenes.yml +++ b/klanglicht-module-base/src/test/resources/.klanglicht/resources/scenes.yml @@ -4,2329 +4,2404 @@ scenes: name: "All" hasColorWheel: true colorWheelOddEven: true - scenes: [] + scenes: [ ] All: name: "All" hasColorWheel: true colorWheelOddEven: false scenes: - - name: "All Red" - color: - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - name: "All Dark Red" - color: - - "#880000" - actions: - - hybrid: - hexColors: - - "880000" - - name: "All Green" - color: - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - name: "All Dark Green" - color: - - "#008800" - actions: - - hybrid: - hexColors: - - "00ff00" - - name: "All Blue" - color: - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - name: "All Dark Blue" - color: - - "#000088" - actions: - - hybrid: - hexColors: - - "000088" - - name: "All Yellow" - color: - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - name: "All Cyan" - color: - - "#00ffff" - actions: - - hybrid: - hexColors: - - "00ffff" - - name: "All Dark Cyan" - color: - - "#008888" - actions: - - hybrid: - hexColors: - - "008888" - - name: "All Magenta" - color: - - "#ff00ff" - actions: - - hybrid: - hexColors: - - "ff00ff" - - name: "All Orange" - color: - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - name: "All Purple" - color: - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - name: "All Teal" - color: - - "#2388ad" - actions: - - hybrid: - hexColors: - - "2388ad" - - name: "All White" - color: - - "#ffffff" - actions: - - hybrid: - hexColors: - - "ffffff" - - name: "All Red / Blue" - color: - - "#0000ff" - - "#ff0000" - - "#ff0000" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "0000ff" - - "ff0000" - - "ff0000" - - "ff0000" - - "ff0000" - - "0000ff" - - name: "All Dark Red / Blue" - color: - - "#000088" - - "#880000" - - "#880000" - - "#000088" - actions: - - hybrid: - hexColors: - - "000088" - - "000088" - - "880000" - - "880000" - - "880000" - - "880000" - - "000088" - - name: "All Blue / Red" - color: - - "#ff0000" - - "#0000ff" - - "#0000ff" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - "ff0000" - - "0000ff" - - "0000ff" - - "0000ff" - - "0000ff" - - "ff0000" - - name: "All Dark Blue / Red" - color: - - "#880000" - - "#000088" - - "#000088" - - "#880000" - actions: - - hybrid: - hexColors: - - "880000" - - "880000" - - "000088" - - "000088" - - "000088" - - "000088" - - "880000" - - name: "All Green / Red" - color: - - "#ff0000" - - "#00ff00" - - "#00ff00" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - "ff0000" - - "00ff00" - - "00ff00" - - "00ff00" - - "00ff00" - - "ff0000" - - name: "All Dark Green / Red" - color: - - "#880000" - - "#008800" - - "#008800" - - "#880000" - actions: - - hybrid: - hexColors: - - "880000" - - "880000" - - "008800" - - "008800" - - "008800" - - "008800" - - "880000" - - name: "All Red / Green" - color: - - "#00ff00" - - "#ff0000" - - "#ff0000" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "00ff00" - - "ff0000" - - "ff0000" - - "ff0000" - - "ff0000" - - "00ff00" - - name: "All Dark Red / Green" - color: - - "#008800" - - "#880000" - - "#880000" - - "#008800" - actions: - - hybrid: - hexColors: - - "008800" - - "008800" - - "880000" - - "880000" - - "880000" - - "880000" - - "008800" - - name: "All Green / Blue" - color: - - "#0000ff" - - "#00ff00" - - "#00ff00" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "0000ff" - - "00ff00" - - "00ff00" - - "00ff00" - - "00ff00" - - "0000ff" - - name: "All Dark Green / Blue" - color: - - "#000088" - - "#008800" - - "#008800" - - "#000088" - actions: - - hybrid: - hexColors: - - "000088" - - "000088" - - "008800" - - "008800" - - "008800" - - "008800" - - "000088" - - name: "All Blue / Green" - color: - - "#00ff00" - - "#0000ff" - - "#0000ff" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "00ff00" - - "0000ff" - - "0000ff" - - "0000ff" - - "0000ff" - - "00ff00" - - name: "All Dark Blue / Green" - color: - - "#008800" - - "#000088" - - "#000088" - - "#008800" - actions: - - hybrid: - hexColors: - - "008800" - - "008800" - - "000088" - - "000088" - - "000088" - - "000088" - - "008800" - - name: "All Blue / Cyan" - color: - - "#00ffff" - - "#0000ff" - - "#0000ff" - - "#00ffff" - actions: - - hybrid: - hexColors: - - "00ffff" - - "00ffff" - - "0000ff" - - "0000ff" - - "0000ff" - - "0000ff" - - "00ffff" - - name: "All Dark Blue / Cyan" - color: - - "#008888" - - "#000088" - - "#000088" - - "#008888" - actions: - - hybrid: - hexColors: - - "008888" - - "008888" - - "000088" - - "000088" - - "000088" - - "000088" - - "008888" - - name: "All Green / Magenta" - color: - - "#ff00ff" - - "#00ff00" - - "#00ff00" - - "#ff00ff" - actions: - - hybrid: - hexColors: - - "ff00ff" - - "ff00ff" - - "00ff00" - - "00ff00" - - "00ff00" - - "00ff00" - - "ff00ff" - - name: "All Magenta / Green" - color: - - "#00ff00" - - "#ff00ff" - - "#ff00ff" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "00ff00" - - "ff00ff" - - "ff00ff" - - "ff00ff" - - "ff00ff" - - "00ff00" - - name: "All Green / Yellow" - color: - - "#ffff00" - - "#00ff00" - - "#00ff00" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "ffff00" - - "00ff00" - - "00ff00" - - "00ff00" - - "00ff00" - - "ffff00" - - name: "All Yellow / Green" - color: - - "#00ff00" - - "#ffff00" - - "#ffff00" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "00ff00" - - "ffff00" - - "ffff00" - - "ffff00" - - "ffff00" - - "00ff00" - - name: "All Cyan / Blue" - color: - - "#0000ff" - - "#00ffff" - - "#00ffff" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "0000ff" - - "00ffff" - - "00ffff" - - "00ffff" - - "00ffff" - - "0000ff" - - name: "All Dark Cyan / Blue" - color: - - "#000088" - - "#008888" - - "#008888" - - "#000088" - actions: - - hybrid: - hexColors: - - "000088" - - "000088" - - "008888" - - "008888" - - "008888" - - "008888" - - "000088" - - name: "All Orange / Teal" - color: - - "#2388ad" - - "#ff8000" - - "#ff8000" - - "#2388ad" - actions: - - hybrid: - hexColors: - - "2388ad" - - "2388ad" - - "ff8000" - - "ff8000" - - "ff8000" - - "ff8000" - - "2388ad" - - name: "All Teal / Orange" - color: - - "#ff8000" - - "#2388ad" - - "#2388ad" - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - "ff8000" - - "2388ad" - - "2388ad" - - "2388ad" - - "2388ad" - - "ff8000" - - name: "All Orange / Purple" - color: - - "#8000ff" - - "#ff8000" - - "#ff8000" - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - "8000ff" - - "ff8000" - - "ff8000" - - "ff8000" - - "ff8000" - - "8000ff" - - name: "All Purple / Orange" - color: - - "#ff8000" - - "#8000ff" - - "#8000ff" - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - "ff8000" - - "8000ff" - - "8000ff" - - "8000ff" - - "8000ff" - - "ff8000" - - name: "All Yellow / Purple" - color: - - "#8000ff" - - "#ffff00" - - "#ffff00" - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - "8000ff" - - "ffff00" - - "ffff00" - - "ffff00" - - "ffff00" - - "8000ff" - - name: "All Purple / Yellow" - color: - - "#ffff00" - - "#8000ff" - - "#8000ff" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "ffff00" - - "8000ff" - - "8000ff" - - "8000ff" - - "8000ff" - - "ffff00" - - name: "All Yellow / Magenta" - color: - - "#ff00ff" - - "#ffff00" - - "#ffff00" - - "#ff00ff" - actions: - - hybrid: - hexColors: - - "ff00ff" - - "ff00ff" - - "ffff00" - - "ffff00" - - "ffff00" - - "ffff00" - - "ff00ff" - - name: "All Magenta / Yellow" - color: - - "#ffff00" - - "#ff00ff" - - "#ff00ff" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "ffff00" - - "ff00ff" - - "ff00ff" - - "ff00ff" - - "ff00ff" - - "ffff00" - - name: "All Purple / Magenta" - color: - - "#ff00ff" - - "#8000ff" - - "#8000ff" - - "#ff00ff" - actions: - - hybrid: - hexColors: - - "ff00ff" - - "ff00ff" - - "8000ff" - - "8000ff" - - "8000ff" - - "8000ff" - - "ff00ff" - - name: "All Magenta / Purple" - color: - - "#8000ff" - - "#ff00ff" - - "#ff00ff" - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - "8000ff" - - "ff00ff" - - "ff00ff" - - "ff00ff" - - "ff00ff" - - "8000ff" - - name: "All White / Blue" - color: - - "#0000ff" - - "#ffffff" - - "#ffffff" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "0000ff" - - "ffffff" - - "ffffff" - - "ffffff" - - "ffffff" - - "0000ff" - - name: "All Blue / White" - color: - - "#ffffff" - - "#0000ff" - - "#0000ff" - - "#ffffff" - actions: - - hybrid: - hexColors: - - "ffffff" - - "ffffff" - - "0000ff" - - "0000ff" - - "0000ff" - - "0000ff" - - "ffffff" - - name: "All Red / White" - color: - - "#ffffff" - - "#ff0000" - - "#ff0000" - - "#ffffff" - actions: - - hybrid: - hexColors: - - "ffffff" - - "ffffff" - - "ff0000" - - "ff0000" - - "ff0000" - - "ff0000" - - "ffffff" - - name: "All White / Red" - color: - - "#ff0000" - - "#ffffff" - - "#ffffff" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - "ff0000" - - "ffffff" - - "ffffff" - - "ffffff" - - "ffffff" - - "ff0000" - - name: "All Rainbow Blue-Red" - color: - - "#0000ff" - - "#00ffff" - - "#00ff00" - - "#ffff00" - - "#ff8000" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "0000ff" - - "00ffff" - - "00ff00" - - "80ff00" - - "ffff00" - - "ff3000" - - "ff0000" - - name: "All Rainbow Red-Blue" - color: - - "#ff0000" - - "#ff8000" - - "#ffff00" - - "#00ff00" - - "#00ffff" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "ff0000" - - "ff3000" - - "ffff00" - - "80ff00" - - "00ff00" - - "00ffff" - - "0000ff" - - name: "All Rainbow Dark Blue-Red" - color: - - "#000080" - - "#008080" - - "#008000" - - "#808000" - - "#808000" - - "#800000" - actions: - - hybrid: - hexColors: - - "000080" - - "008080" - - "008000" - - "808000" - - "808000" - - "803000" - - "800000" - - name: "All Rainbow Dark Red-Blue" - color: - - "#800000" - - "#808000" - - "#808000" - - "#008000" - - "#008080" - - "#000080" - actions: - - hybrid: - hexColors: - - "800000" - - "803000" - - "808000" - - "808000" - - "008000" - - "008080" - - "000080" - - name: "All purple-green" - color: - - "#8000ff" - - "#00ff00" - - "#8000ff" - - "#00ff00" - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - "00ff00" - - "8000ff" - - "00ff00" - - "8000ff" - - "00ff00" - - "8000ff" - - name: "All green-purple" - color: - - "#00ff00" - - "#8000ff" - - "#00ff00" - - "#8000ff" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "8000ff" - - "00ff00" - - "8000ff" - - "00ff00" - - "8000ff" - - "008800" - - name: "All blue-green" - color: - - "#0000ff" - - "#00ff00" - - "#0000ff" - - "#00ff00" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "00ff00" - - "0000ff" - - "00ff00" - - "0000ff" - - "00ff00" - - "0000ff" - - name: "All green-blue" - color: - - "#00ff00" - - "#0000ff" - - "#00ff00" - - "#0000ff" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "0000ff" - - "00ff00" - - "0000ff" - - "00ff00" - - "0000ff" - - "00ff00" - - name: "All red-green" - color: - - "#ff0000" - - "#00ff00" - - "#ff0000" - - "#00ff00" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - "00ff00" - - "ff0000" - - "00ff00" - - "ff0000" - - "00ff00" - - "ff0000" - - name: "All green-red" - color: - - "#00ff00" - - "#ff0000" - - "#00ff00" - - "#ff0000" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "ff0000" - - "00ff00" - - "ff0000" - - "00ff00" - - "ff0000" - - "00ff00" - - name: "All blue-cyan" - color: - - "#0000ff" - - "#00ffff" - - "#0000ff" - - "#00ffff" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "00ffff" - - "0000ff" - - "00ffff" - - "0000ff" - - "00ffff" - - "0000ff" - - name: "All cyan-blue" - color: - - "#00ffff" - - "#0000ff" - - "#00ffff" - - "#0000ff" - - "#00ffff" - actions: - - hybrid: - hexColors: - - "00ffff" - - "0000ff" - - "00ffff" - - "0000ff" - - "00ffff" - - "0000ff" - - "00ffff" - - name: "All blue-yellow" - color: - - "#0000ff" - - "#ffff00" - - "#0000ff" - - "#ffff00" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "ffff00" - - "0000ff" - - "ffff00" - - "0000ff" - - "ffff00" - - "0000ff" - - name: "All yellow-blue" - color: - - "#ffff00" - - "#0000ff" - - "#ffff00" - - "#0000ff" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "0000ff" - - "ffff00" - - "0000ff" - - "ffff00" - - "0000ff" - - "ffff00" - - name: "All blue-white" - color: - - "#0000ff" - - "#ffffff" - - "#0000ff" - - "#ffffff" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "ffffff" - - "0000ff" - - "ffffff" - - "0000ff" - - "ffffff" - - "0000ff" - - name: "All white-blue" - color: - - "#ffffff" - - "#0000ff" - - "#ffffff" - - "#0000ff" - - "#ffffff" - actions: - - hybrid: - hexColors: - - "ffffff" - - "0000ff" - - "ffffff" - - "0000ff" - - "ffffff" - - "0000ff" - - "ffffff" - - name: "All green-yellow" - color: - - "#00ff00" - - "#ffff00" - - "#00ff00" - - "#ffff00" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "ffff00" - - "00ff00" - - "ffff00" - - "00ff00" - - "ffff00" - - "00ff00" - - name: "All yellow-green" - color: - - "#ffff00" - - "#00ff00" - - "#ffff00" - - "#00ff00" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "00ff00" - - "ffff00" - - "00ff00" - - "ffff00" - - "00ff00" - - "ffff00" - - name: "All purple-yellow" - color: - - "#8000ff" - - "#ffff00" - - "#8000ff" - - "#ffff00" - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - "ffff00" - - "8000ff" - - "ffff00" - - "8000ff" - - "ffff00" - - "8000ff" - - name: "All yellow-purple" - color: - - "#ffff00" - - "#8000ff" - - "#ffff00" - - "#8000ff" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "8000ff" - - "ffff00" - - "8000ff" - - "ffff00" - - "8000ff" - - "ffff00" - - name: "All yellow-magenta" - color: - - "#ffff00" - - "#ff00ff" - - "#ffff00" - - "#ff00ff" - - "#ffff00" - - "#ff00ff" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "ff00ff" - - "ffff00" - - "ff00ff" - - "ffff00" - - "ff00ff" - - "ffff00" - - name: "All magenta-yellow" - color: - - "#ff00ff" - - "#ffff00" - - "#ff00ff" - - "#ffff00" - - "#ff00ff" - - "#ffff00" - - "#ff00ff" - actions: - - hybrid: - hexColors: - - "ff00ff" - - "ffff00" - - "ff00ff" - - "ffff00" - - "ffff00" - - "ff00ff" - - name: "All purple-orange" - color: - - "#8000ff" - - "#ff8000" - - "#8000ff" - - "#ff8000" - - "#8000ff" - actions: - - hybrid: - hexColors: - - "8000ff" - - "ff8000" - - "8000ff" - - "ff8000" - - "8000ff" - - "ff8000" - - "8000ff" - - name: "All orange-purple" - color: - - "#ff8000" - - "#8000ff" - - "#ff8000" - - "#8000ff" - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - "8000ff" - - "ff8000" - - "8000ff" - - "ff8000" - - "8000ff" - - "ff8000" - - name: "All red-orange" - color: - - "#ff0000" - - "#ff8000" - - "#ff0000" - - "#ff8000" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - "ff8000" - - "ff0000" - - "ff8000" - - "ff0000" - - "ff8000" - - "ff0000" - - name: "All orange-red" - color: - - "#ff8000" - - "#ff0000" - - "#ff8000" - - "#ff0000" - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - "ff0000" - - "ff8000" - - "ff0000" - - "ff8000" - - "ff0000" - - "ff8000" - - name: "All yellow-orange" - color: - - "#ffff00" - - "#ff8000" - - "#ffff00" - - "#ff8000" - - "#ffff00" - actions: - - hybrid: - hexColors: - - "ffff00" - - "ff8000" - - "ffff00" - - "ff8000" - - "ffff00" - - "ff8000" - - "ffff00" - - name: "All orange-yellow" - color: - - "#ff8000" - - "#ffff00" - - "#ff8000" - - "#ffff00" - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - "ffff00" - - "ff8000" - - "ffff00" - - "ff8000" - - "ffff00" - - "ff8000" - - name: "All red-blue" - color: - - "#ff0000" - - "#0000ff" - - "#ff0000" - - "#0000ff" - - "#ff0000" - actions: - - hybrid: - hexColors: - - "ff0000" - - "0000ff" - - "ff0000" - - "0000ff" - - "ff0000" - - "0000ff" - - "ff0000" - - name: "All blue-red" - color: - - "#0000ff" - - "#ff0000" - - "#0000ff" - - "#ff0000" - - "#0000ff" - actions: - - hybrid: - hexColors: - - "0000ff" - - "ff0000" - - "0000ff" - - "ff0000" - - "0000ff" - - "ff0000" - - "0000ff" - - name: "All green-orange" - color: - - "#00ff00" - - "#ff8000" - - "#00ff00" - - "#ff8000" - - "#00ff00" - actions: - - hybrid: - hexColors: - - "00ff00" - - "ff8000" - - "00ff00" - - "ff8000" - - "00ff00" - - "ff8000" - - "00ff00" - - name: "All orange-green" - color: - - "#ff8000" - - "#00ff00" - - "#ff8000" - - "#00ff00" - - "#ff8000" - actions: - - hybrid: - hexColors: - - "ff8000" - - "00ff00" - - "ff8000" - - "00ff00" - - "ff8000" - - "00ff00" - - "ff8000" - - name: "All Enterprise E" - color: - - "#000088" - - "#000088" - - "#ffff80" - - "#000088" - - "#000088" - - "#000088" - - "#000088" - actions: [] - - name: "All LightBlue" - color: - - "#7777ff" - - "#aaaaff" - - "#7777ff" - - "#aaaaff" - - "#7777ff" - - "#aaaaff" - - "#7777ff" - actions: - - hybrid: - hexColors: - - "7777ff" - - "aaaaff" - - "7777ff" - - "aaaaff" - - "7777ff" - - "aaaaff" - - "7777ff" - - name: "All Christmas" - color: - - "#990000" - - "#009900" - - "#990000" - - "#009900" - - "#990000" - - "#009900" - - "#990000" - actions: - - hybrid: - hexColors: - - "990000" - - "009900" - - "990000" - - "009900" - - "990000" - - "009900" - - "990000" - - name: "All White" - color: - - "#ffffff" - actions: - - hybrid: - hexColors: - - "ffffff" - - name: "All Warm White" - color: - - "#ffde59" - actions: - - hybrid: - hexColors: - - "000000" - - "000000" - - "94832d" - - "94832d" - - "94832d" - - "94832d" - - "000000" - gains: - - 1.0 - - name: "All Black" - color: - - "#303030" - actions: - - hybrid: - hexColors: - - "000000" - - name: "Licht TV" - color: - - "#fffad5" - actions: - - shelly: - ids: - - "Wohnzimmer_Deckenlampe" - - "Flur" - - "Kristall" - - "Schlafzimmer" - turnOn: false - - hybrid: - hexColors: - - "000000" - - "000000" - - "94832d" - - "94832d" - - "94832d" - - "94832d" - - "000000" - - pause: - duration: 5000 - - lmair: - comment: "Idual On" - sceneIndex: 42 - - hybrid: - hexColors: - - "000000" - - pause: - duration: 1000 - - shelly: - ids: - - "Wohnzimmer_Esstisch" - turnOn: false - - name: "TV Licht Aus" - color: - - "#000000" - actions: - - lmair: - comment: "Idual Off" - sceneIndex: 1499 - - name: "Licht Kino" - color: - - "#000088" - - "#000088" - - "#880000" - - "#880000" - actions: - - hybrid: - hexColors: - - "000000" - - "000000" - - "94832d" - - "94832d" - - "94832d" - - "94832d" - - "000000" - gains: - - 1.0 - - pause: - duration: 2000 - - lmair: - comment: "Idual Off" - sceneIndex: 1499 - - pause: - duration: 1000 - - hybrid: - hexColors: - - "7777ff" - - "aaaaff" - - "7777ff" - - "aaaaff" - - "7777ff" - - "aaaaff" - - "7777ff" - - pause: - duration: 5000 - - hybrid: - hexColors: - - "000088" - - "000088" - - "ffffcc" - - "000088" - - "000088" - - "000088" - - "000088" - - pause: - duration: 5000 - - hybrid: - hexColors: - - "880000" - - "880000" - - "000088" - - "000088" - - "000088" - - "000088" - - "880000" - - name: "Licht Kino Kurz" - color: - - "#000088" - - "#000088" - - "#880000" - - "#880000" - actions: - - hybrid: - hexColors: - - "000000" - - "000000" - - "94832d" - - "94832d" - - "94832d" - - "94832d" - - "000000" - gains: - - 1.0 - - lmair: - comment: "Idual Off" - sceneIndex: 1499 - - hybrid: - hexColors: - - "880000" - - "880000" - - "000088" - - "000088" - - "000088" - - "000088" - - "880000" + - name: "All Red" + color: + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - name: "All Dark Red" + color: + - "#880000" + actions: + - hybrid: + hexColors: + - "880000" + - name: "All Green" + color: + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - name: "All Dark Green" + color: + - "#001f00" + actions: + - hybrid: + hexColors: + - "001f00" + - name: "All Blue" + color: + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - name: "All Dark Blue" + color: + - "#000088" + actions: + - hybrid: + hexColors: + - "000088" + - name: "All Yellow" + color: + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - name: "All Cyan" + color: + - "#00ffff" + actions: + - hybrid: + hexColors: + - "00ffff" + - name: "All Dark Cyan" + color: + - "#008888" + actions: + - hybrid: + hexColors: + - "008888" + - name: "All Magenta" + color: + - "#ff00ff" + actions: + - hybrid: + hexColors: + - "ff00ff" + - name: "All Orange" + color: + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - name: "All Purple" + color: + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - name: "All Teal" + color: + - "#2388ad" + actions: + - hybrid: + hexColors: + - "2388ad" + - name: "All White" + color: + - "#ffffff" + actions: + - hybrid: + hexColors: + - "ffffff" + - name: "All Red / Blue" + color: + - "#0000ff" + - "#ff0000" + - "#ff0000" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "0000ff" + - "ff0000" + - "ff0000" + - "ff0000" + - "ff0000" + - "0000ff" + - name: "All Dark Red / Blue" + color: + - "#000088" + - "#880000" + - "#880000" + - "#000088" + actions: + - hybrid: + hexColors: + - "000088" + - "000088" + - "880000" + - "880000" + - "880000" + - "880000" + - "000088" + - name: "All Blue / Red" + color: + - "#ff0000" + - "#0000ff" + - "#0000ff" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - "ff0000" + - "0000ff" + - "0000ff" + - "0000ff" + - "0000ff" + - "ff0000" + - name: "All Dark Blue / Red" + color: + - "#880000" + - "#000088" + - "#000088" + - "#880000" + actions: + - hybrid: + hexColors: + - "880000" + - "880000" + - "000088" + - "000088" + - "000088" + - "000088" + - "880000" + - name: "All Green / Red" + color: + - "#ff0000" + - "#00ff00" + - "#00ff00" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - "ff0000" + - "00ff00" + - "00ff00" + - "00ff00" + - "00ff00" + - "ff0000" + - name: "All Dark Green / Red" + color: + - "#880000" + - "#008800" + - "#008800" + - "#880000" + actions: + - hybrid: + hexColors: + - "880000" + - "880000" + - "008800" + - "008800" + - "008800" + - "008800" + - "880000" + - name: "All Red / Green" + color: + - "#00ff00" + - "#ff0000" + - "#ff0000" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "00ff00" + - "ff0000" + - "ff0000" + - "ff0000" + - "ff0000" + - "00ff00" + - name: "All Dark Red / Green" + color: + - "#008800" + - "#880000" + - "#880000" + - "#008800" + actions: + - hybrid: + hexColors: + - "008800" + - "008800" + - "880000" + - "880000" + - "880000" + - "880000" + - "008800" + - name: "All Green / Blue" + color: + - "#0000ff" + - "#00ff00" + - "#00ff00" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "0000ff" + - "00ff00" + - "00ff00" + - "00ff00" + - "00ff00" + - "0000ff" + - name: "All Dark Green / Blue" + color: + - "#000088" + - "#008800" + - "#008800" + - "#000088" + actions: + - hybrid: + hexColors: + - "000088" + - "000088" + - "008800" + - "008800" + - "008800" + - "008800" + - "000088" + - name: "All Blue / Green" + color: + - "#00ff00" + - "#0000ff" + - "#0000ff" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "00ff00" + - "0000ff" + - "0000ff" + - "0000ff" + - "0000ff" + - "00ff00" + - name: "All Dark Blue / Green" + color: + - "#008800" + - "#000088" + - "#000088" + - "#008800" + actions: + - hybrid: + hexColors: + - "008800" + - "008800" + - "000088" + - "000088" + - "000088" + - "000088" + - "008800" + - name: "All Blue / Cyan" + color: + - "#00ffff" + - "#0000ff" + - "#0000ff" + - "#00ffff" + actions: + - hybrid: + hexColors: + - "00ffff" + - "00ffff" + - "0000ff" + - "0000ff" + - "0000ff" + - "0000ff" + - "00ffff" + - name: "All Dark Blue / Cyan" + color: + - "#008888" + - "#000088" + - "#000088" + - "#008888" + actions: + - hybrid: + hexColors: + - "008888" + - "008888" + - "000088" + - "000088" + - "000088" + - "000088" + - "008888" + - name: "All Green / Magenta" + color: + - "#ff00ff" + - "#00ff00" + - "#00ff00" + - "#ff00ff" + actions: + - hybrid: + hexColors: + - "ff00ff" + - "ff00ff" + - "00ff00" + - "00ff00" + - "00ff00" + - "00ff00" + - "ff00ff" + - name: "All Magenta / Green" + color: + - "#00ff00" + - "#ff00ff" + - "#ff00ff" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "00ff00" + - "ff00ff" + - "ff00ff" + - "ff00ff" + - "ff00ff" + - "00ff00" + - name: "All Green / Yellow" + color: + - "#ffff00" + - "#00ff00" + - "#00ff00" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "ffff00" + - "00ff00" + - "00ff00" + - "00ff00" + - "00ff00" + - "ffff00" + - name: "All Yellow / Green" + color: + - "#00ff00" + - "#ffff00" + - "#ffff00" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "00ff00" + - "ffff00" + - "ffff00" + - "ffff00" + - "ffff00" + - "00ff00" + - name: "All Cyan / Blue" + color: + - "#0000ff" + - "#00ffff" + - "#00ffff" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "0000ff" + - "00ffff" + - "00ffff" + - "00ffff" + - "00ffff" + - "0000ff" + - name: "All Dark Cyan / Blue" + color: + - "#000088" + - "#008888" + - "#008888" + - "#000088" + actions: + - hybrid: + hexColors: + - "000088" + - "000088" + - "008888" + - "008888" + - "008888" + - "008888" + - "000088" + - name: "All Orange / Teal" + color: + - "#2388ad" + - "#ff8000" + - "#ff8000" + - "#2388ad" + actions: + - hybrid: + hexColors: + - "2388ad" + - "2388ad" + - "ff8000" + - "ff8000" + - "ff8000" + - "ff8000" + - "2388ad" + - name: "All Teal / Orange" + color: + - "#ff8000" + - "#2388ad" + - "#2388ad" + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - "ff8000" + - "2388ad" + - "2388ad" + - "2388ad" + - "2388ad" + - "ff8000" + - name: "All Orange / Purple" + color: + - "#8000ff" + - "#ff8000" + - "#ff8000" + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - "8000ff" + - "ff8000" + - "ff8000" + - "ff8000" + - "ff8000" + - "8000ff" + - name: "All Purple / Orange" + color: + - "#ff8000" + - "#8000ff" + - "#8000ff" + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - "ff8000" + - "8000ff" + - "8000ff" + - "8000ff" + - "8000ff" + - "ff8000" + - name: "All Yellow / Purple" + color: + - "#8000ff" + - "#ffff00" + - "#ffff00" + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - "8000ff" + - "ffff00" + - "ffff00" + - "ffff00" + - "ffff00" + - "8000ff" + - name: "All Purple / Yellow" + color: + - "#ffff00" + - "#8000ff" + - "#8000ff" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "ffff00" + - "8000ff" + - "8000ff" + - "8000ff" + - "8000ff" + - "ffff00" + - name: "All Yellow / Magenta" + color: + - "#ff00ff" + - "#ffff00" + - "#ffff00" + - "#ff00ff" + actions: + - hybrid: + hexColors: + - "ff00ff" + - "ff00ff" + - "ffff00" + - "ffff00" + - "ffff00" + - "ffff00" + - "ff00ff" + - name: "All Magenta / Yellow" + color: + - "#ffff00" + - "#ff00ff" + - "#ff00ff" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "ffff00" + - "ff00ff" + - "ff00ff" + - "ff00ff" + - "ff00ff" + - "ffff00" + - name: "All Purple / Magenta" + color: + - "#ff00ff" + - "#8000ff" + - "#8000ff" + - "#ff00ff" + actions: + - hybrid: + hexColors: + - "ff00ff" + - "ff00ff" + - "8000ff" + - "8000ff" + - "8000ff" + - "8000ff" + - "ff00ff" + - name: "All Magenta / Purple" + color: + - "#8000ff" + - "#ff00ff" + - "#ff00ff" + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - "8000ff" + - "ff00ff" + - "ff00ff" + - "ff00ff" + - "ff00ff" + - "8000ff" + - name: "All White / Blue" + color: + - "#0000ff" + - "#ffffff" + - "#ffffff" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "0000ff" + - "ffffff" + - "ffffff" + - "ffffff" + - "ffffff" + - "0000ff" + - name: "All Blue / White" + color: + - "#ffffff" + - "#0000ff" + - "#0000ff" + - "#ffffff" + actions: + - hybrid: + hexColors: + - "ffffff" + - "ffffff" + - "0000ff" + - "0000ff" + - "0000ff" + - "0000ff" + - "ffffff" + - name: "All Red / White" + color: + - "#ffffff" + - "#ff0000" + - "#ff0000" + - "#ffffff" + actions: + - hybrid: + hexColors: + - "ffffff" + - "ffffff" + - "ff0000" + - "ff0000" + - "ff0000" + - "ff0000" + - "ffffff" + - name: "All White / Red" + color: + - "#ff0000" + - "#ffffff" + - "#ffffff" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - "ff0000" + - "ffffff" + - "ffffff" + - "ffffff" + - "ffffff" + - "ff0000" + - name: "All Rainbow Blue-Red" + color: + - "#0000ff" + - "#00ffff" + - "#00ff00" + - "#ffff00" + - "#ff8000" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "0000ff" + - "00ffff" + - "00ff00" + - "80ff00" + - "ffff00" + - "ff3000" + - "ff0000" + - name: "All Rainbow Red-Blue" + color: + - "#ff0000" + - "#ff8000" + - "#ffff00" + - "#00ff00" + - "#00ffff" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "ff0000" + - "ff3000" + - "ffff00" + - "80ff00" + - "00ff00" + - "00ffff" + - "0000ff" + - name: "All Rainbow Dark Blue-Red" + color: + - "#000080" + - "#008080" + - "#008000" + - "#808000" + - "#808000" + - "#800000" + actions: + - hybrid: + hexColors: + - "000080" + - "008080" + - "008000" + - "808000" + - "808000" + - "803000" + - "800000" + - name: "All Rainbow Dark Red-Blue" + color: + - "#800000" + - "#808000" + - "#808000" + - "#008000" + - "#008080" + - "#000080" + actions: + - hybrid: + hexColors: + - "800000" + - "803000" + - "808000" + - "808000" + - "008000" + - "008080" + - "000080" + - name: "All purple-green" + color: + - "#8000ff" + - "#00ff00" + - "#8000ff" + - "#00ff00" + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - "00ff00" + - "8000ff" + - "00ff00" + - "8000ff" + - "00ff00" + - "8000ff" + - name: "All green-purple" + color: + - "#00ff00" + - "#8000ff" + - "#00ff00" + - "#8000ff" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "8000ff" + - "00ff00" + - "8000ff" + - "00ff00" + - "8000ff" + - "00ff00" + - name: "All blue-green" + color: + - "#0000ff" + - "#00ff00" + - "#0000ff" + - "#00ff00" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "00ff00" + - "0000ff" + - "00ff00" + - "0000ff" + - "00ff00" + - "0000ff" + - name: "All green-blue" + color: + - "#00ff00" + - "#0000ff" + - "#00ff00" + - "#0000ff" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "0000ff" + - "00ff00" + - "0000ff" + - "00ff00" + - "0000ff" + - "00ff00" + - name: "All red-green" + color: + - "#ff0000" + - "#00ff00" + - "#ff0000" + - "#00ff00" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - "00ff00" + - "ff0000" + - "00ff00" + - "ff0000" + - "00ff00" + - "ff0000" + - name: "All green-red" + color: + - "#00ff00" + - "#ff0000" + - "#00ff00" + - "#ff0000" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "ff0000" + - "00ff00" + - "ff0000" + - "00ff00" + - "ff0000" + - "00ff00" + - name: "All blue-cyan" + color: + - "#0000ff" + - "#00ffff" + - "#0000ff" + - "#00ffff" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "00ffff" + - "0000ff" + - "00ffff" + - "0000ff" + - "00ffff" + - "0000ff" + - name: "All cyan-blue" + color: + - "#00ffff" + - "#0000ff" + - "#00ffff" + - "#0000ff" + - "#00ffff" + actions: + - hybrid: + hexColors: + - "00ffff" + - "0000ff" + - "00ffff" + - "0000ff" + - "00ffff" + - "0000ff" + - "00ffff" + - name: "All blue-yellow" + color: + - "#0000ff" + - "#ffff00" + - "#0000ff" + - "#ffff00" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "ffff00" + - "0000ff" + - "ffff00" + - "0000ff" + - "ffff00" + - "0000ff" + - name: "All yellow-blue" + color: + - "#ffff00" + - "#0000ff" + - "#ffff00" + - "#0000ff" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "0000ff" + - "ffff00" + - "0000ff" + - "ffff00" + - "0000ff" + - "ffff00" + - name: "All blue-white" + color: + - "#0000ff" + - "#ffffff" + - "#0000ff" + - "#ffffff" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "ffffff" + - "0000ff" + - "ffffff" + - "0000ff" + - "ffffff" + - "0000ff" + - name: "All white-blue" + color: + - "#ffffff" + - "#0000ff" + - "#ffffff" + - "#0000ff" + - "#ffffff" + actions: + - hybrid: + hexColors: + - "ffffff" + - "0000ff" + - "ffffff" + - "0000ff" + - "ffffff" + - "0000ff" + - "ffffff" + - name: "All green-yellow" + color: + - "#00ff00" + - "#ffff00" + - "#00ff00" + - "#ffff00" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "ffff00" + - "00ff00" + - "ffff00" + - "00ff00" + - "ffff00" + - "00ff00" + - name: "All yellow-green" + color: + - "#ffff00" + - "#00ff00" + - "#ffff00" + - "#00ff00" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "00ff00" + - "ffff00" + - "00ff00" + - "ffff00" + - "00ff00" + - "ffff00" + - name: "All purple-yellow" + color: + - "#8000ff" + - "#ffff00" + - "#8000ff" + - "#ffff00" + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - "ffff00" + - "8000ff" + - "ffff00" + - "8000ff" + - "ffff00" + - "8000ff" + - name: "All yellow-purple" + color: + - "#ffff00" + - "#8000ff" + - "#ffff00" + - "#8000ff" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "8000ff" + - "ffff00" + - "8000ff" + - "ffff00" + - "8000ff" + - "ffff00" + - name: "All yellow-magenta" + color: + - "#ffff00" + - "#ff00ff" + - "#ffff00" + - "#ff00ff" + - "#ffff00" + - "#ff00ff" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "ff00ff" + - "ffff00" + - "ff00ff" + - "ffff00" + - "ff00ff" + - "ffff00" + - name: "All magenta-yellow" + color: + - "#ff00ff" + - "#ffff00" + - "#ff00ff" + - "#ffff00" + - "#ff00ff" + - "#ffff00" + - "#ff00ff" + actions: + - hybrid: + hexColors: + - "ff00ff" + - "ffff00" + - "ff00ff" + - "ffff00" + - "ff00ff" + - "ffff00" + - "ff00ff" + - name: "All purple-orange" + color: + - "#8000ff" + - "#ff8000" + - "#8000ff" + - "#ff8000" + - "#8000ff" + actions: + - hybrid: + hexColors: + - "8000ff" + - "ff8000" + - "8000ff" + - "ff8000" + - "8000ff" + - "ff8000" + - "8000ff" + - name: "All orange-purple" + color: + - "#ff8000" + - "#8000ff" + - "#ff8000" + - "#8000ff" + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - "8000ff" + - "ff8000" + - "8000ff" + - "ff8000" + - "8000ff" + - "ff8000" + - name: "All red-orange" + color: + - "#ff0000" + - "#ff8000" + - "#ff0000" + - "#ff8000" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - "ff8000" + - "ff0000" + - "ff8000" + - "ff0000" + - "ff8000" + - "ff0000" + - name: "All orange-red" + color: + - "#ff8000" + - "#ff0000" + - "#ff8000" + - "#ff0000" + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - "ff0000" + - "ff8000" + - "ff0000" + - "ff8000" + - "ff0000" + - "ff8000" + - name: "All yellow-orange" + color: + - "#ffff00" + - "#ff8000" + - "#ffff00" + - "#ff8000" + - "#ffff00" + actions: + - hybrid: + hexColors: + - "ffff00" + - "ff8000" + - "ffff00" + - "ff8000" + - "ffff00" + - "ff8000" + - "ffff00" + - name: "All orange-yellow" + color: + - "#ff8000" + - "#ffff00" + - "#ff8000" + - "#ffff00" + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - "ffff00" + - "ff8000" + - "ffff00" + - "ff8000" + - "ffff00" + - "ff8000" + - name: "All red-blue" + color: + - "#ff0000" + - "#0000ff" + - "#ff0000" + - "#0000ff" + - "#ff0000" + actions: + - hybrid: + hexColors: + - "ff0000" + - "0000ff" + - "ff0000" + - "0000ff" + - "ff0000" + - "0000ff" + - "ff0000" + - name: "All blue-red" + color: + - "#0000ff" + - "#ff0000" + - "#0000ff" + - "#ff0000" + - "#0000ff" + actions: + - hybrid: + hexColors: + - "0000ff" + - "ff0000" + - "0000ff" + - "ff0000" + - "0000ff" + - "ff0000" + - "0000ff" + - name: "All green-orange" + color: + - "#00ff00" + - "#ff8000" + - "#00ff00" + - "#ff8000" + - "#00ff00" + actions: + - hybrid: + hexColors: + - "00ff00" + - "ff8000" + - "00ff00" + - "ff8000" + - "00ff00" + - "ff8000" + - "00ff00" + - name: "All orange-green" + color: + - "#ff8000" + - "#00ff00" + - "#ff8000" + - "#00ff00" + - "#ff8000" + actions: + - hybrid: + hexColors: + - "ff8000" + - "00ff00" + - "ff8000" + - "00ff00" + - "ff8000" + - "00ff00" + - "ff8000" + - name: "All Enterprise E" + color: + - "#000088" + - "#000088" + - "#ffff80" + - "#000088" + - "#000088" + - "#000088" + - "#000088" + actions: [ ] + - name: "All LightBlue" + color: + - "#7777ff" + - "#aaaaff" + - "#7777ff" + - "#aaaaff" + - "#7777ff" + - "#aaaaff" + - "#7777ff" + actions: + - hybrid: + hexColors: + - "7777ff" + - "aaaaff" + - "7777ff" + - "aaaaff" + - "7777ff" + - "aaaaff" + - "7777ff" + - name: "All Christmas" + color: + - "#990000" + - "#009900" + - "#990000" + - "#009900" + - "#990000" + - "#009900" + - "#990000" + actions: + - hybrid: + hexColors: + - "990000" + - "009900" + - "990000" + - "009900" + - "990000" + - "009900" + - "990000" + - name: "All White" + color: + - "#ffffff" + actions: + - hybrid: + hexColors: + - "ffffff" + - name: "All Warm White" + color: + - "#ffde59" + actions: + - hybrid: + hexColors: + - "000000" + - "000000" + - "94832d" + - "94832d" + - "94832d" + - "94832d" + - "000000" + gains: + - 1.0 + - name: "All Black" + color: + - "#303030" + actions: + - hybrid: + hexColors: + - "000000" + - name: "Licht TV" + color: + - "#fffad5" + condition: + night: + value: true + actions: + - shelly: + ids: + - "Wohnzimmer_Deckenlampe" + - "Flur" + - "Kristall" + - "Schlafzimmer" + turnOn: false + - hybrid: + hexColors: + - "000000" + - "000000" + - "94832d" + - "94832d" + - "94832d" + - "94832d" + - "000000" + - pause: + duration: 5000 + - lmair: + comment: "Idual On" + sceneIndex: 42 + - hybrid: + hexColors: + - "000000" + - pause: + duration: 1000 + - shelly: + ids: + - "Wohnzimmer_Esstisch" + turnOn: false + - name: "TV Licht Aus" + color: + - "#000000" + actions: + - lmair: + comment: "Idual Off" + sceneIndex: 1499 + - name: "Licht Kino" + color: + - "#000088" + - "#000088" + - "#880000" + - "#880000" + actions: + - hybrid: + hexColors: + - "000000" + - "000000" + - "94832d" + - "94832d" + - "94832d" + - "94832d" + - "000000" + gains: + - 1.0 + - pause: + duration: 2000 + - lmair: + comment: "Idual Off" + sceneIndex: 1499 + - pause: + duration: 1000 + - hybrid: + hexColors: + - "7777ff" + - "aaaaff" + - "7777ff" + - "aaaaff" + - "7777ff" + - "aaaaff" + - "7777ff" + - pause: + duration: 5000 + - hybrid: + hexColors: + - "000088" + - "000088" + - "ffffcc" + - "000088" + - "000088" + - "000088" + - "000088" + - pause: + duration: 5000 + - hybrid: + hexColors: + - "880000" + - "880000" + - "000088" + - "000088" + - "000088" + - "000088" + - "880000" + - name: "Licht Kino Kurz" + color: + - "#000088" + - "#000088" + - "#880000" + - "#880000" + actions: + - hybrid: + hexColors: + - "000000" + - "000000" + - "94832d" + - "94832d" + - "94832d" + - "94832d" + - "000000" + gains: + - 1.0 + - lmair: + comment: "Idual Off" + sceneIndex: 1499 + - hybrid: + hexColors: + - "880000" + - "880000" + - "000088" + - "000088" + - "000088" + - "000088" + - "880000" Deko: name: "Deko" hasColorWheel: true colorWheelOddEven: false scenes: - - name: "Deko Red" - color: - - "#ff0000" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "ff0000" - - name: "Deko Dark Red" - color: - - "#880000" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "880000" - - name: "Deko Green" - color: - - "#00ff00" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "00ff00" - - name: "Deko Dark Green" - color: - - "#008800" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "00ff00" - - name: "Deko Blue" - color: - - "#0000ff" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "0000ff" - - name: "Deko Dark Blue" - color: - - "#000088" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "000088" - - name: "Deko Yellow" - color: - - "#ffff00" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "ffff00" - - name: "Deko Cyan" - color: - - "#00ffff" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "00ffff" - - name: "Deko Magenta" - color: - - "#ff00ff" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "ff00ff" - - name: "Deko Orange" - color: - - "#ff8000" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "ff8000" - - name: "Deko Purple" - color: - - "#8000ff" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "8000ff" - - name: "Deko Teal" - color: - - "#2388ad" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "2388ad" - - name: "Deko White" - color: - - "#ffffff" - actions: - - hybrid: - ids: - - "Starwars" - - "Bar" - - "Rgbw" - hexColors: - - "ffffff" + - name: "Deko Red" + color: + - "#ff0000" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "ff0000" + - name: "Deko Dark Red" + color: + - "#880000" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "880000" + - name: "Deko Green" + color: + - "#00ff00" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "00ff00" + - name: "Deko Dark Green" + color: + - "#008800" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "00ff00" + - name: "Deko Blue" + color: + - "#0000ff" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "0000ff" + - name: "Deko Dark Blue" + color: + - "#000088" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "000088" + - name: "Deko Yellow" + color: + - "#ffff00" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "ffff00" + - name: "Deko Cyan" + color: + - "#00ffff" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "00ffff" + - name: "Deko Magenta" + color: + - "#ff00ff" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "ff00ff" + - name: "Deko Orange" + color: + - "#ff8000" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "ff8000" + - name: "Deko Purple" + color: + - "#8000ff" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "8000ff" + - name: "Deko Teal" + color: + - "#2388ad" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "2388ad" + - name: "Deko White" + color: + - "#ffffff" + actions: + - hybrid: + ids: + - "Starwars" + - "Bar" + - "Rgbw" + hexColors: + - "ffffff" Starwars: name: "Starwars" hasColorWheel: true colorWheelOddEven: false scenes: - - name: "Starwars Red" - color: - - "#ff0000" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "ff0000" - - name: "Starwars Dark Red" - color: - - "#880000" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "880000" - - name: "Starwars Green" - color: - - "#00ff00" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "00ff00" - - name: "Starwars Dark Green" - color: - - "#008800" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "00ff00" - - name: "Starwars Blue" - color: - - "#0000ff" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "0000ff" - - name: "Starwars Dark Blue" - color: - - "#000088" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "000088" - - name: "Starwars Yellow" - color: - - "#ffff00" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "ffff00" - - name: "Starwars Cyan" - color: - - "#00ffff" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "00ffff" - - name: "Starwars Magenta" - color: - - "#ff00ff" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "ff00ff" - - name: "Starwars Orange" - color: - - "#ff8000" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "ff8000" - - name: "Starwars Purple" - color: - - "#8000ff" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "8000ff" - - name: "Starwars Teal" - color: - - "#2388ad" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "2388ad" - - name: "Starwars White" - color: - - "#ffffff" - actions: - - hybrid: - ids: - - "Starwars" - hexColors: - - "ffffff" + - name: "Starwars Red" + color: + - "#ff0000" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "ff0000" + - name: "Starwars Dark Red" + color: + - "#880000" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "880000" + - name: "Starwars Green" + color: + - "#00ff00" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "00ff00" + - name: "Starwars Dark Green" + color: + - "#008800" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "00ff00" + - name: "Starwars Blue" + color: + - "#0000ff" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "0000ff" + - name: "Starwars Dark Blue" + color: + - "#000088" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "000088" + - name: "Starwars Yellow" + color: + - "#ffff00" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "ffff00" + - name: "Starwars Cyan" + color: + - "#00ffff" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "00ffff" + - name: "Starwars Magenta" + color: + - "#ff00ff" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "ff00ff" + - name: "Starwars Orange" + color: + - "#ff8000" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "ff8000" + - name: "Starwars Purple" + color: + - "#8000ff" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "8000ff" + - name: "Starwars Teal" + color: + - "#2388ad" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "2388ad" + - name: "Starwars White" + color: + - "#ffffff" + actions: + - hybrid: + ids: + - "Starwars" + hexColors: + - "ffffff" Rgbw: name: "Rgbw" hasColorWheel: true colorWheelOddEven: false scenes: - - name: "Rgbw Red" - color: - - "#ff0000" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "ff0000" - - name: "Rgbw Dark Red" - color: - - "#880000" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "880000" - - name: "Rgbw Green" - color: - - "#00ff00" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "00ff00" - - name: "Rgbw Dark Green" - color: - - "#008800" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "00ff00" - - name: "Rgbw Blue" - color: - - "#0000ff" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "0000ff" - - name: "Rgbw Dark Blue" - color: - - "#000088" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "000088" - - name: "Rgbw Yellow" - color: - - "#ffff00" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "ffff00" - - name: "Rgbw Cyan" - color: - - "#00ffff" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "00ffff" - - name: "Rgbw Magenta" - color: - - "#ff00ff" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "ff00ff" - - name: "Rgbw Orange" - color: - - "#ff8000" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "ff8000" - - name: "Rgbw Purple" - color: - - "#8000ff" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "8000ff" - - name: "Rgbw Teal" - color: - - "#2388ad" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "2388ad" - - name: "Rgbw White" - color: - - "#ffffff" - actions: - - hybrid: - ids: - - "Rgbw" - hexColors: - - "ffffff" + - name: "Rgbw Red" + color: + - "#ff0000" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "ff0000" + - name: "Rgbw Dark Red" + color: + - "#880000" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "880000" + - name: "Rgbw Green" + color: + - "#00ff00" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "00ff00" + - name: "Rgbw Dark Green" + color: + - "#008800" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "00ff00" + - name: "Rgbw Blue" + color: + - "#0000ff" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "0000ff" + - name: "Rgbw Dark Blue" + color: + - "#000088" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "000088" + - name: "Rgbw Yellow" + color: + - "#ffff00" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "ffff00" + - name: "Rgbw Cyan" + color: + - "#00ffff" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "00ffff" + - name: "Rgbw Magenta" + color: + - "#ff00ff" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "ff00ff" + - name: "Rgbw Orange" + color: + - "#ff8000" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "ff8000" + - name: "Rgbw Purple" + color: + - "#8000ff" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "8000ff" + - name: "Rgbw Teal" + color: + - "#2388ad" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "2388ad" + - name: "Rgbw White" + color: + - "#ffffff" + actions: + - hybrid: + ids: + - "Rgbw" + hexColors: + - "ffffff" Dmx: name: "Dmx" hasColorWheel: true colorWheelOddEven: false scenes: - - name: "DMX Red" - color: - - "#ff0000" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "ff0000" - - name: "DMX Dark Red" - color: - - "#880000" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "880000" - - name: "DMX Green" - color: - - "#00ff00" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "00ff00" - - name: "DMX Dark Green" - color: - - "#008800" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "00ff00" - - name: "DMX Blue" - color: - - "#0000ff" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "0000ff" - - name: "DMX Dark Blue" - color: - - "#000088" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "000088" - - name: "DMX Yellow" - color: - - "#ffff00" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "ffff00" - - name: "DMX Cyan" - color: - - "#00ffff" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "00ffff" - - name: "DMX Magenta" - color: - - "#ff00ff" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "ff00ff" - - name: "DMX Orange" - color: - - "#ff8000" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "ff8000" - - name: "DMX Purple" - color: - - "#8000ff" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "8000ff" - - name: "DMX Teal" - color: - - "#2388ad" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "2388ad" - - name: "DMX White" - color: - - "#ffffff" - actions: - - hybrid: - ids: - - "15" - - "29" - - "21" - - "1" - hexColors: - - "ffffff" + - name: "DMX Red" + color: + - "#ff0000" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "ff0000" + - name: "DMX Dark Red" + color: + - "#880000" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "880000" + - name: "DMX Green" + color: + - "#00ff00" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "00ff00" + - name: "DMX Dark Green" + color: + - "#008800" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "00ff00" + - name: "DMX Blue" + color: + - "#0000ff" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "0000ff" + - name: "DMX Dark Blue" + color: + - "#000088" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "000088" + - name: "DMX Yellow" + color: + - "#ffff00" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "ffff00" + - name: "DMX Cyan" + color: + - "#00ffff" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "00ffff" + - name: "DMX Magenta" + color: + - "#ff00ff" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "ff00ff" + - name: "DMX Orange" + color: + - "#ff8000" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "ff8000" + - name: "DMX Purple" + color: + - "#8000ff" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "8000ff" + - name: "DMX Teal" + color: + - "#2388ad" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "2388ad" + - name: "DMX White" + color: + - "#ffffff" + actions: + - hybrid: + ids: + - "15" + - "29" + - "21" + - "1" + hexColors: + - "ffffff" Bar: name: "Bar" hasColorWheel: true scenes: - - name: "Bar Red" - color: - - "#ff0000" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "ff0000" - - name: "Bar Dark Red" - color: - - "#880000" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "880000" - - name: "Bar Green" - color: - - "#00ff00" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "00ff00" - - name: "Bar Dark Green" - color: - - "#008800" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "00ff00" - - name: "Bar Blue" - color: - - "#0000ff" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "0000ff" - - name: "Bar Dark Blue" - color: - - "#000088" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "000088" - - name: "Bar Yellow" - color: - - "#ffff00" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "ffff00" - - name: "Bar Cyan" - color: - - "#00ffff" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "00ffff" - - name: "Bar Magenta" - color: - - "#ff00ff" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "ff00ff" - - name: "Bar Orange" - color: - - "#ff8000" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "ff8000" - - name: "Bar Purple" - color: - - "#8000ff" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "8000ff" - - name: "Bar Teal" - color: - - "#2388ad" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "2388ad" - - name: "Bar White" - color: - - "#ffffff" - actions: - - hybrid: - ids: - - "Bar" - hexColors: - - "ffffff" + - name: "Bar Red" + color: + - "#ff0000" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "ff0000" + - name: "Bar Dark Red" + color: + - "#880000" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "880000" + - name: "Bar Green" + color: + - "#00ff00" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "00ff00" + - name: "Bar Dark Green" + color: + - "#008800" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "00ff00" + - name: "Bar Blue" + color: + - "#0000ff" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "0000ff" + - name: "Bar Dark Blue" + color: + - "#000088" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "000088" + - name: "Bar Yellow" + color: + - "#ffff00" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "ffff00" + - name: "Bar Cyan" + color: + - "#00ffff" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "00ffff" + - name: "Bar Magenta" + color: + - "#ff00ff" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "ff00ff" + - name: "Bar Orange" + color: + - "#ff8000" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "ff8000" + - name: "Bar Purple" + color: + - "#8000ff" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "8000ff" + - name: "Bar Teal" + color: + - "#2388ad" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "2388ad" + - name: "Bar White" + color: + - "#ffffff" + actions: + - hybrid: + ids: + - "Bar" + hexColors: + - "ffffff" Idual: name: "Idual" hasColorWheel: false colorWheelOddEven: false scenes: - - name: "IDual On" - color: - - "#ffffff" - actions: - - lmair: - comment: "Idual On" - sceneIndex: 42 - - name: "IDual Off" - color: - - "#000000" - actions: - - lmair: - comment: "Idual Off" - sceneIndex: 1499 - - name: "IDual DayWhite" - color: - - "#ffffff" - actions: - - lmair: - comment: "Idual DayWhite" - sceneIndex: 940 - - name: "IDual ColdWhite" - color: - - "#d5f1ff" - actions: - - lmair: - comment: "Idual ColdWhite" - sceneIndex: 948 - - name: "IDual WarmWhite" - color: - - "#fffad5" - actions: - - lmair: - comment: "Idual WarmWhite" - sceneIndex: 46 + - name: "IDual On" + color: + - "#ffffff" + actions: + - lmair: + comment: "Idual On" + sceneIndex: 42 + - name: "IDual Off" + color: + - "#000000" + actions: + - lmair: + comment: "Idual Off" + sceneIndex: 1499 + - name: "IDual DayWhite" + color: + - "#ffffff" + actions: + - lmair: + comment: "Idual DayWhite" + sceneIndex: 940 + - name: "IDual ColdWhite" + color: + - "#d5f1ff" + actions: + - lmair: + comment: "Idual ColdWhite" + sceneIndex: 948 + - name: "IDual WarmWhite" + color: + - "#fffad5" + actions: + - lmair: + comment: "Idual WarmWhite" + sceneIndex: 46 Yamaha: name: "Yamaha" hasColorWheel: false colorWheelOddEven: false scenes: - - name: "Sci-Fi" - color: - - "#1100ff" - - "#000088" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Sci-Fi" - - name: "Spectacle" - color: - - "#ff1100" - - "#880000" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Spectacle" - - name: "Adventure" - color: - - "#66ff00" - - "#00aa00" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Adventure" - - name: "The Roxy Theatre" - color: - - "#ffcc00" - - "#ffff00" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "The+Roxy+Theatre" - - name: "The Bottom Line" - color: - - "#ffcc00" - - "#ffff00" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "The+Bottom+Line" - - name: "Hall In Munich" - color: - - "#aa00ff" - - "#3300aa" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Hall+in+Munich" - - name: "Hall In Vienna" - color: - - "#aa00ff" - - "#3300aa" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Hall+in+Vienna" - - name: "Standard" - color: - - "#cccccc" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Standard" - - name: "Surround Decoder" - color: - - "#cccccc" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "Surround+Decoder" - - name: "7ch Stereo" - color: - - "#cccccc" - actions: - - yamahaAvantage: - command: "surroundProgram" - program: "7ch+Stereo" + - name: "Sci-Fi" + color: + - "#1100ff" + - "#000088" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Sci-Fi" + - name: "Spectacle" + color: + - "#ff1100" + - "#880000" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Spectacle" + - name: "Adventure" + color: + - "#66ff00" + - "#00aa00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Adventure" + - name: "Drama" + color: + - "#66ff00" + - "#00aa00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Drama" + - name: "Mono Movie" + color: + - "#66ff00" + - "#00aa00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Mono+Movie" + - name: "The Roxy Theatre" + color: + - "#ffcc00" + - "#ffff00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "The+Roxy+Theatre" + - name: "The Bottom Line" + color: + - "#ffcc00" + - "#ffff00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "The+Bottom+Line" + - name: "Cellar Club" + color: + - "#ffcc00" + - "#ffff00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Cellar+Club" + - name: "Chamber" + color: + - "#ffcc00" + - "#ffff00" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Chamber" + - name: "Hall In Munich" + color: + - "#aa00ff" + - "#3300aa" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Hall+in+Munich" + - name: "Hall In Vienna" + color: + - "#aa00ff" + - "#3300aa" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Hall+in+Vienna" + - name: "Standard" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Standard" + - name: "Sports" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Sports" + - name: "Straight" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Straight" + - name: "Pure Direct On" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "setPureDirect" + enable: true + - name: "Pure Direct Off" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "setPureDirect" + enable: false + - name: "Surround Decoder" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "Surround+Decoder" + - name: "2ch Stereo" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "2ch+Stereo" + - name: "7ch Stereo" + color: + - "#cccccc" + actions: + - yamahaAvantage: + command: "surroundProgram" + program: "7ch+Stereo" Shelly: name: "Shelly" hasColorWheel: false colorWheelOddEven: false scenes: - - name: "All Off" - color: - - "#000000" - actions: - - shelly: - ids: - - "Flur,Schlafzimmer" - turnOn: true - - shelly: - ids: - - "Wohnzimmer_Deckenlampe,Regal,Kristall,Rgbw,Bar,Starwars" - turnOn: false - - pause: - duration: 1000 - - shelly: - ids: - - "Wohnzimmer_Esstisch" - turnOn: false - - lmair: - comment: "Idual Off" - sceneIndex: 1499 - - name: "Esstisch An" - color: - - "#ffffff" - actions: - - shelly: - ids: - - "Wohnzimmer_Esstisch" - turnOn: true - - name: "Esstisch Aus" - color: - - "#000000" - actions: - - shelly: - ids: - - "Wohnzimmer_Esstisch" - turnOn: false - - name: "Deckenlampe On" - color: - - "#ffffff" - actions: - - shelly: - ids: - - "Wohnzimmer_Deckenlampe" - turnOn: true - - name: "Deckenlampe Off" - color: - - "#000000" - actions: - - shelly: - ids: - - "Wohnzimmer_Deckenlampe" - turnOn: false - - name: "Deckenfluter On" - color: - - "#ffffff" - actions: - - lmair: - comment: "Deckenfluter On" - sceneIndex: 131 - - name: "Deckenfluter Dim" - color: - - "#888888" - actions: - - lmair: - comment: "Deckenfluter Dim" - sceneIndex: 395 - - name: "Deckenfluter Off" - color: - - "#000000" - actions: - - lmair: - comment: "Deckenfluter Off" - sceneIndex: 133 - - name: "Salzkristall On" - color: - - "#ffffff" - actions: - - shelly: - ids: - - "Kristall" - turnOn: true - - name: "Salzkristall Off" - color: - - "#000000" - actions: - - shelly: - ids: - - "Kristall" - turnOn: false - - name: "Flur On" - color: - - "#ffffff" - actions: - - shelly: - ids: - - "Flur" - turnOn: true - - name: "Flur Off" - color: - - "#000000" - actions: - - shelly: - ids: - - "Flur" - turnOn: false - - name: "Schlafzimmer On" - color: - - "#ffffff" - actions: - - shelly: - ids: - - "Schlafzimmer" - turnOn: true - - name: "Schlafzimmer Off" - color: - - "#000000" - actions: - - shelly: - ids: - - "Schlafzimmer" - turnOn: false + - name: "All Off" + color: + - "#000000" + actions: + - shelly: + ids: + - "Flur" + - "Schlafzimmer" + turnOn: true + - shelly: + ids: + - "Wohnzimmer_Deckenlampe" + - "Regal,Kristall" + - "Rgbw,Bar" + - "Starwars" + turnOn: false + - pause: + duration: 1000 + - shelly: + ids: + - "Wohnzimmer_Esstisch" + turnOn: false + - lmair: + comment: "Idual Off" + sceneIndex: 1499 + - name: "Esstisch An" + color: + - "#ffffff" + actions: + - shelly: + ids: + - "Wohnzimmer_Esstisch" + turnOn: true + - name: "Esstisch Aus" + color: + - "#000000" + actions: + - shelly: + ids: + - "Wohnzimmer_Esstisch" + turnOn: false + - name: "Deckenlampe On" + color: + - "#ffffff" + actions: + - shelly: + ids: + - "Wohnzimmer_Deckenlampe" + turnOn: true + - name: "Deckenlampe Off" + color: + - "#000000" + actions: + - shelly: + ids: + - "Wohnzimmer_Deckenlampe" + turnOn: false + - name: "Deckenfluter On" + color: + - "#ffffff" + actions: + - lmair: + comment: "Deckenfluter On" + sceneIndex: 131 + - name: "Deckenfluter Dim" + color: + - "#888888" + actions: + - lmair: + comment: "Deckenfluter Dim" + sceneIndex: 395 + - name: "Deckenfluter Off" + color: + - "#000000" + actions: + - lmair: + comment: "Deckenfluter Off" + sceneIndex: 133 + - name: "Salzkristall On" + color: + - "#ffffff" + actions: + - shelly: + ids: + - "Kristall" + turnOn: true + - name: "Salzkristall Off" + color: + - "#000000" + actions: + - shelly: + ids: + - "Kristall" + turnOn: false + - name: "Flur On" + color: + - "#ffffff" + actions: + - shelly: + ids: + - "Flur" + turnOn: true + - name: "Flur Off" + color: + - "#000000" + actions: + - shelly: + ids: + - "Flur" + turnOn: false + - name: "Schlafzimmer On" + color: + - "#ffffff" + actions: + - shelly: + ids: + - "Schlafzimmer" + turnOn: true + - name: "Schlafzimmer Off" + color: + - "#000000" + actions: + - shelly: + ids: + - "Schlafzimmer" + turnOn: false diff --git a/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/configuration/ApplicationPreferences.kt b/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/configuration/ApplicationPreferences.kt index f4e76ad..a4692e6 100644 --- a/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/configuration/ApplicationPreferences.kt +++ b/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/configuration/ApplicationPreferences.kt @@ -72,6 +72,6 @@ class ApplicationPreferences { fun scenes(): LMScenes { // Not including this into spring boot configuration as we want this to be loaded each time // to make runtime changes possible here. - return LMScenes.unmarshall(Paths.get(klanglichtDirectory.canonicalPath, "resources", "scenes.yml").toFile()) + return LMScenes.readValue(Paths.get(klanglichtDirectory.canonicalPath, "resources", "scenes.yml").toFile()) } } diff --git a/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/scenes/service/ScenesService.kt b/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/scenes/service/ScenesService.kt index c19e00c..dfaa2f6 100644 --- a/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/scenes/service/ScenesService.kt +++ b/klanglicht-rest/src/main/kotlin/de/visualdigits/klanglicht/scenes/service/ScenesService.kt @@ -33,29 +33,33 @@ class ScenesService( lmScene ?.let { s -> log.info("Executing scene '$sceneName'...") - s.actions.forEach { action -> - log.info(" Executing action '$action'...") - when (action) { - is LMActionLmAir -> - lightmanagerService.controlIndex(index = action.sceneIndex) + if (s.condition == null || s.condition?.evaluate(prefs.preferences!!) == true) { + s.actions.forEach { action -> + log.info(" Executing action '$action'...") + when (action) { + is LMActionLmAir -> + lightmanagerService.controlIndex(index = action.sceneIndex) - is LMActionShelly -> - shellyService.power(ids = action.ids, turnOn = action.turnOn) + is LMActionShelly -> + shellyService.power(ids = action.ids, turnOn = action.turnOn) - is LMActionHybrid -> - hybridStageService.hexColor(ids = action.ids, hexColors = action.hexColors, gains = action.gains) + is LMActionHybrid -> + hybridStageService.hexColor(ids = action.ids, hexColors = action.hexColors, gains = action.gains) - is LMActionLmYamahaAvantage -> { - when (action.command) { - "surroundProgram" -> yamahaAvantageService.setSurroundProgram(program = action.program) - "setPureDirect" -> yamahaAvantageService.setPureDirect(enable = action.enable) + is LMActionLmYamahaAvantage -> { + when (action.command) { + "surroundProgram" -> yamahaAvantageService.setSurroundProgram(program = action.program) + "setPureDirect" -> yamahaAvantageService.setPureDirect(enable = action.enable) + } } - } - is LMActionPause -> action.duration?.let { Thread.sleep(it) } + is LMActionPause -> action.duration?.let { Thread.sleep(it) } + } } + } else { + log.info("Condition '${s.condition?.javaClass?.simpleName}' not true - skipping actions") } - }?:also { + }?:also { log.info("No scene with name '$sceneName'") } } else { diff --git a/klanglicht-rest/src/test/kotlin/de/visualdigits/klanglicht/lightmanager/webclient/LightmanagerClientTest.kt b/klanglicht-rest/src/test/kotlin/de/visualdigits/klanglicht/lightmanager/webclient/LightmanagerClientTest.kt index 3ce4d70..4c42deb 100644 --- a/klanglicht-rest/src/test/kotlin/de/visualdigits/klanglicht/lightmanager/webclient/LightmanagerClientTest.kt +++ b/klanglicht-rest/src/test/kotlin/de/visualdigits/klanglicht/lightmanager/webclient/LightmanagerClientTest.kt @@ -58,7 +58,7 @@ class LightmanagerClientTest @Autowired constructor( @Test fun testLoadScenes() { val file = File(ClassLoader.getSystemResource(".klanglicht/preferences/scenes.json").toURI()) - val scenes = LMScenes.unmarshall(file) + val scenes = LMScenes.readValue(file) println(scenes) } }