Viele Wege führen nach Rom und wahrscheinlich ist vieles sehr spezifisch für mein Setup oder meine Vorstellungen, aber vielleicht kann ja trotzdem der ein oder andere davon profitieren.
Der Anfang macht ein Baustein, mit dem ich aus zwei binären Eingängen (Schalter) verschieden Szenen auslöse, wobei einer der Eingänge priorisiert ist.
Anwendungsfall bei mir die Küche: Die Unterschrankbeleuchtung ist sowohl Ambiente (dann gedimmt) oder Arbeitsbeleuchtung (volle Helligkeit), was ich über Szenen steuere. Dabei wollte ich, dass zwischen der Arbeitsbeleuchtung und Ambientebeleuchtung über Szenen gewechselt wird und ich sich zwischenzeitliche Veränderungen (ich habe was in der Küche mit Arbeitsbeleuchtung gemacht, zwischenzeitlich ist die Ambientebeleuchtung insgesamt ausgeschaltet worden) nicht unerwünscht beeinflussen.
Logikverhalten:
Prio Input | Std Input | Output |
---|---|---|
0 | 0 | Off Scene |
------------- | ------------- | -------------- |
0 | 1 | Std Scene |
------------- | ------------- | -------------- |
1 | 0 | Prio Scene |
------------- | ------------- | -------------- |
1 | 1 | Prio Scene |
------------- | ------------- | -------------- |
Code: Alles auswählen
/**##################################
Scene based priority switch V1.0
##################################*/
{
"Level": [
["$I_InputPrio","bool",false],
["$I_InputStd","bool",false],
["$P_PrioScene","integer",0],
["$P_StdScene","integer",0],
["$P_OffScene","integer",0],
["$O_Scene","integer",0],
["$Selector","integer",0],
["$Formula","string","X1-1"],
["$PrioScene","integer",0],
["$StdScene","integer",0],
["$OffScene","integer",0],
["$VAR<Inhibit?>","bool",false]
],
"Output": [
["Scene Out","Priorized scene output","$O_Scene","c"]
],
"Module": [
["Break",["$VAR<Inhibit?>"]],
["BinaryMultiplexer",["$I_InputStd","$I_InputPrio"],"$Selector"],
["CalcFormula",["$P_PrioScene"], "$PrioScene", "$Formula"],
["CalcFormula",["$P_StdScene"], "$StdScene", "$Formula"],
["CalcFormula",["$P_OffScene"], "$OffScene", "$Formula"],
["Multiplexer",["$OffScene","$StdScene","$PrioScene","$PrioScene"],"$O_Scene","$Selector"]
],
"Input": [
["Prio Input","Priorized switch input", "$I_InputPrio","a"],
["Std Input","Standard switch input", "$I_InputStd","a"],
["Priority scene","Scene number to send when priority input on", "$P_PrioScene","u"],
["Standard scene","Scene number to send when only standard input on", "$P_StdScene","u"],
["Off scene","Scene number to send to switch off", "$P_OffScene","u"],
["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
],
"_Meta": {
"Icon": "",
"Version": "1.0",
"_description": "Scene based priority switch"
}
}
/** Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License")
die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. */