Files
esphome-dmx512/example_4x_adj_vbar_pak.yaml

456 lines
13 KiB
YAML
Raw Permalink Normal View History

# Example configuration for four ADJ VBar Pak fixtures daisy chained with XLR cables
# DMX description: https://d295jznhem2tn9.cloudfront.net/ItemRelatedFiles/8659/vbar_pak.pdf
# Fixture configuration set for DMX 8 channel mode
# Note: for ESP8266 don't forget to also set "esp8266_restore_from_flash: true" in "esphome:" section
uart:
id: uart_bus
baud_rate: 250000
2023-12-17 14:46:53 +01:00
tx_pin:
number: GPIO2 #ESP8266
2023-12-21 12:25:50 +01:00
allow_other_uses: true # for ESPHome >= 2023.12.0
stop_bits: 2
dmx512:
id: dmx
uart_id: uart_bus
2023-12-17 14:46:53 +01:00
tx_pin:
number: GPIO2 #ESP8266
2023-12-21 12:25:50 +01:00
allow_other_uses: true # for ESPHome >= 2023.12.0
uart_num: 1
output:
- platform: dmx512
channel: 1
universe: dmx
id: vbar1_red
- platform: dmx512
channel: 2
universe: dmx
id: vbar1_green
- platform: dmx512
channel: 3
universe: dmx
id: vbar1_blue
- platform: dmx512
channel: 4
universe: dmx
id: vbar1_amber
- platform: dmx512
channel: 5
universe: dmx
id: vbar1_master
- platform: dmx512
channel: 6
universe: dmx
id: vbar1_effect_level
- platform: dmx512
channel: 7
universe: dmx
id: vbar1_effect_select
- platform: dmx512
channel: 8
universe: dmx
id: vbar1_effect_mode
- platform: dmx512
channel: 9
universe: dmx
id: vbar2_red
- platform: dmx512
channel: 10
universe: dmx
id: vbar2_green
- platform: dmx512
channel: 11
universe: dmx
id: vbar2_blue
- platform: dmx512
channel: 12
universe: dmx
id: vbar2_amber
- platform: dmx512
channel: 13
universe: dmx
id: vbar2_master
- platform: dmx512
channel: 14
universe: dmx
id: vbar2_effect_level
- platform: dmx512
channel: 15
universe: dmx
id: vbar2_effect_select
- platform: dmx512
channel: 16
universe: dmx
id: vbar2_effect_mode
- platform: dmx512
channel: 17
universe: dmx
id: vbar3_red
- platform: dmx512
channel: 18
universe: dmx
id: vbar3_green
- platform: dmx512
channel: 19
universe: dmx
id: vbar3_blue
- platform: dmx512
channel: 20
universe: dmx
id: vbar3_amber
- platform: dmx512
channel: 21
universe: dmx
id: vbar3_master
- platform: dmx512
channel: 22
universe: dmx
id: vbar3_effect_level
- platform: dmx512
channel: 23
universe: dmx
id: vbar3_effect_select
- platform: dmx512
channel: 24
universe: dmx
id: vbar3_effect_mode
- platform: dmx512
channel: 25
universe: dmx
id: vbar4_red
- platform: dmx512
channel: 26
universe: dmx
id: vbar4_green
- platform: dmx512
channel: 27
universe: dmx
id: vbar4_blue
- platform: dmx512
channel: 28
universe: dmx
id: vbar4_amber
- platform: dmx512
channel: 29
universe: dmx
id: vbar4_master
- platform: dmx512
channel: 30
universe: dmx
id: vbar4_effect_level
- platform: dmx512
channel: 31
universe: dmx
id: vbar4_effect_select
- platform: dmx512
channel: 32
universe: dmx
id: vbar4_effect_mode
- platform: template
id: vbar_groupdim
type: float
write_action:
- lambda: |-
id(vbar1_master).set_level(state);
id(vbar2_master).set_level(state);
id(vbar3_master).set_level(state);
id(vbar4_master).set_level(state);
number:
- platform: template
name: ${friendly_name} Effect Level
icon: mdi:flower-pollen-outline
id: vbar_effect_level_num
optimistic: true
min_value: 0
max_value: 255
step: 1
restore_value: true
set_action:
- lambda: |-
id(vbar1_effect_level).set_level(x / 255);
id(vbar2_effect_level).set_level(x / 255);
id(vbar3_effect_level).set_level(x / 255);
id(vbar4_effect_level).set_level(x / 255);
select:
- platform: template
name: ${friendly_name} Effect
optimistic: true
restore_value: true
icon: mdi:pan
disabled_by_default: true
id: vbar1_effect_select_dropdown
options:
- "None"
- "Color Macro"
- "Color Change"
- "Color Fade"
- "Sound Active"
- "Strobing"
set_action:
- lambda: |-
if (x.compare(std::string{"None"}) == 0) {
id(vbar1_effect_select).set_level(0);
id(vbar2_effect_select).set_level(0);
id(vbar3_effect_select).set_level(0);
id(vbar4_effect_select).set_level(0);
auto call = id(vbar_effect_level_num).make_call();
call.set_value(0);
call.perform();
}
if (x.compare(std::string{"Strobing"}) == 0) {
id(vbar1_effect_select).set_level(0.04);
id(vbar2_effect_select).set_level(0.04);
id(vbar3_effect_select).set_level(0.04);
id(vbar4_effect_select).set_level(0.04);
}
if (x.compare(std::string{"Color Macro"}) == 0) {
id(vbar1_effect_select).set_level(0.3);
id(vbar2_effect_select).set_level(0.3);
id(vbar3_effect_select).set_level(0.3);
id(vbar4_effect_select).set_level(0.3);
}
if (x.compare(std::string{"Color Change"}) == 0) {
id(vbar1_effect_select).set_level(0.5);
id(vbar2_effect_select).set_level(0.5);
id(vbar3_effect_select).set_level(0.5);
id(vbar4_effect_select).set_level(0.5);
}
if (x.compare(std::string{"Color Fade"}) == 0) {
id(vbar1_effect_select).set_level(0.66);
id(vbar2_effect_select).set_level(0.66);
id(vbar3_effect_select).set_level(0.66);
id(vbar4_effect_select).set_level(0.66);
}
if (x.compare(std::string{"Sound Active"}) == 0) {
id(vbar1_effect_select).set_level(0.9);
id(vbar2_effect_select).set_level(0.9);
id(vbar3_effect_select).set_level(0.9);
id(vbar4_effect_select).set_level(0.9);
auto call = id(vbar_effect_level_num).make_call();
call.set_value(200);
call.perform();
}
- platform: template
name: ${friendly_name} Effect Mode
icon: mdi:dots-hexagon
optimistic: true
restore_value: true
id: vbar_effect_mode_dropdown
options:
- Change-Fade-Sound-1-Macro-OFF
- Change-Fade-Sound-2-Macro-R
- Change-Fade-Sound-3-Macro-G
- Change-Fade-Sound-4-Macro-B
- Change-Fade-Sound-5-Macro-A
- Change-Fade-Sound-6-Macro-RG
- Change-Fade-Sound-7-Macro-RB
- Change-Fade-Sound-8-Macro-RA
- Change-Fade-Sound-9-Macro-GB
- Change-Fade-Sound-10-Macro-GA
- Change-Fade-Sound-11-Macro-BA
- Change-Fade-Sound-12-Macro-RGB
- Change-Fade-Sound-13-Macro-RGA
- Change-Fade-Sound-14-Macro-RBA
- Change-Fade-Sound-15-Macro-GBA
- Change-Fade-Sound-16-Macro-RGBA
set_action:
- lambda: |-
if (x.compare(std::string{"Change-Fade-Sound-1-Macro-OFF"}) == 0) {
id(vbar1_effect_mode).set_level(0.03);
id(vbar2_effect_mode).set_level(0.03);
id(vbar3_effect_mode).set_level(0.03);
id(vbar4_effect_mode).set_level(0.03);
}
if (x.compare(std::string{"Change-Fade-Sound-2-Macro-R"}) == 0) {
id(vbar1_effect_mode).set_level(0.09);
id(vbar2_effect_mode).set_level(0.09);
id(vbar3_effect_mode).set_level(0.09);
id(vbar4_effect_mode).set_level(0.09);
}
if (x.compare(std::string{"Change-Fade-Sound-3-Macro-G"}) == 0) {
id(vbar1_effect_mode).set_level(0.16);
id(vbar2_effect_mode).set_level(0.16);
id(vbar3_effect_mode).set_level(0.16);
id(vbar4_effect_mode).set_level(0.16);
}
if (x.compare(std::string{"Change-Fade-Sound-4-Macro-B"}) == 0) {
id(vbar1_effect_mode).set_level(0.22);
id(vbar2_effect_mode).set_level(0.22);
id(vbar3_effect_mode).set_level(0.22);
id(vbar4_effect_mode).set_level(0.22);
}
if (x.compare(std::string{"Change-Fade-Sound-5-Macro-A"}) == 0) {
id(vbar1_effect_mode).set_level(0.28);
id(vbar2_effect_mode).set_level(0.28);
id(vbar3_effect_mode).set_level(0.28);
id(vbar4_effect_mode).set_level(0.28);
}
if (x.compare(std::string{"Change-Fade-Sound-6-Macro-RG"}) == 0) {
id(vbar1_effect_mode).set_level(0.35);
id(vbar2_effect_mode).set_level(0.35);
id(vbar3_effect_mode).set_level(0.35);
id(vbar4_effect_mode).set_level(0.35);
}
if (x.compare(std::string{"Change-Fade-Sound-7-Macro-RB"}) == 0) {
id(vbar1_effect_mode).set_level(0.41);
id(vbar2_effect_mode).set_level(0.41);
id(vbar3_effect_mode).set_level(0.41);
id(vbar4_effect_mode).set_level(0.41);
}
if (x.compare(std::string{"Change-Fade-Sound-8-Macro-RA"}) == 0) {
id(vbar1_effect_mode).set_level(0.47);
id(vbar2_effect_mode).set_level(0.47);
id(vbar3_effect_mode).set_level(0.47);
id(vbar4_effect_mode).set_level(0.47);
}
if (x.compare(std::string{"Change-Fade-Sound-9-Macro-GB"}) == 0) {
id(vbar1_effect_mode).set_level(0.53);
id(vbar2_effect_mode).set_level(0.53);
id(vbar3_effect_mode).set_level(0.53);
id(vbar4_effect_mode).set_level(0.53);
}
if (x.compare(std::string{"Change-Fade-Sound-10-Macro-GA"}) == 0) {
id(vbar1_effect_mode).set_level(0.6);
id(vbar2_effect_mode).set_level(0.6);
id(vbar3_effect_mode).set_level(0.6);
id(vbar4_effect_mode).set_level(0.6);
}
if (x.compare(std::string{"Change-Fade-Sound-11-Macro-BA"}) == 0) {
id(vbar1_effect_mode).set_level(0.66);
id(vbar2_effect_mode).set_level(0.66);
id(vbar3_effect_mode).set_level(0.66);
id(vbar4_effect_mode).set_level(0.66);
}
if (x.compare(std::string{"Change-Fade-Sound-12-Macro-RGB"}) == 0) {
id(vbar1_effect_mode).set_level(0.72);
id(vbar2_effect_mode).set_level(0.72);
id(vbar3_effect_mode).set_level(0.72);
id(vbar4_effect_mode).set_level(0.72);
}
if (x.compare(std::string{"Change-Fade-Sound-13-Macro-RGA"}) == 0) {
id(vbar1_effect_mode).set_level(0.78);
id(vbar2_effect_mode).set_level(0.78);
id(vbar3_effect_mode).set_level(0.78);
id(vbar4_effect_mode).set_level(0.78);
}
if (x.compare(std::string{"Change-Fade-Sound-14-Macro-RBA"}) == 0) {
id(vbar1_effect_mode).set_level(0.85);
id(vbar2_effect_mode).set_level(0.85);
id(vbar3_effect_mode).set_level(0.85);
id(vbar4_effect_mode).set_level(0.85);
}
if (x.compare(std::string{"Change-Fade-Sound-15-Macro-GBA"}) == 0) {
id(vbar1_effect_mode).set_level(0.91);
id(vbar2_effect_mode).set_level(0.91);
id(vbar3_effect_mode).set_level(0.91);
id(vbar4_effect_mode).set_level(0.91);
}
if (x.compare(std::string{"Change-Fade-Sound-16-Macro-RGBA"}) == 0) {
id(vbar1_effect_mode).set_level(0.97);
id(vbar2_effect_mode).set_level(0.97);
id(vbar3_effect_mode).set_level(0.97);
id(vbar4_effect_mode).set_level(0.97);
}
light:
- platform: monochromatic
name: ${friendly_name} Dimmer
output: vbar_groupdim
icon: mdi:blur
default_transition_length: 1s
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: rgbw
name: ${friendly_name} 1
id: dmx_bar_1
red: vbar1_red
green: vbar1_green
blue: vbar1_blue
white: vbar1_amber
icon: mdi:spotlight
default_transition_length: 0.3s
color_interlock: false
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: monochromatic
name: ${friendly_name} 1 Dimmer
output: vbar1_master
icon: mdi:blur
disabled_by_default: true
default_transition_length: 2s
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: rgbw
name: ${friendly_name} 2
id: dmx_bar_2
red: vbar2_red
green: vbar2_green
blue: vbar2_blue
white: vbar2_amber
icon: mdi:spotlight
default_transition_length: 0.3s
color_interlock: false
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: monochromatic
name: ${friendly_name} 2 Dimmer
output: vbar2_master
icon: mdi:blur
disabled_by_default: true
default_transition_length: 2s
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: rgbw
name: ${friendly_name} 3
id: dmx_bar_3
red: vbar3_red
green: vbar3_green
blue: vbar3_blue
white: vbar3_amber
icon: mdi:spotlight
default_transition_length: 0.3s
color_interlock: false
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: monochromatic
name: ${friendly_name} 3 Dimmer
output: vbar3_master
icon: mdi:blur
disabled_by_default: true
default_transition_length: 2s
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: rgbw
name: ${friendly_name} 4
id: dmx_bar_4
red: vbar4_red
green: vbar4_green
blue: vbar4_blue
white: vbar4_amber
icon: mdi:spotlight
default_transition_length: 0.3s
color_interlock: false
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON
- platform: monochromatic
name: ${friendly_name} 4 Dimmer
output: vbar4_master
icon: mdi:blur
disabled_by_default: true
default_transition_length: 2s
gamma_correct: 0
restore_mode: RESTORE_DEFAULT_ON