# require light configuration (monochromatic_light.yaml) binary_sensor: - platform: gpio name: "${node_name} IN_01" id: in_01 pin: mcp23xxx: mcp_inputs_1to16 number: 0 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_1 - platform: gpio name: "${node_name} IN_02" id: in_02 pin: mcp23xxx: mcp_inputs_1to16 number: 1 mode: input: true pullup: false inverted: true on_press: - light.toggle: id: led_2 - platform: gpio name: "${node_name} IN_03" id: in_03 pin: mcp23xxx: mcp_inputs_1to16 number: 2 mode: input: true pullup: false inverted: true on_press: - light.toggle: id: led_3 - platform: gpio name: "${node_name} IN_04" id: in_04 pin: mcp23xxx: mcp_inputs_1to16 number: 3 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_4 - platform: gpio name: "${node_name} IN_05" id: in_05 pin: mcp23xxx: mcp_inputs_1to16 number: 4 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_5 - platform: gpio name: "${node_name} IN_06" id: in_06 pin: mcp23xxx: mcp_inputs_1to16 number: 5 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_6 - platform: gpio name: "${node_name} IN_07" id: in_07 pin: mcp23xxx: mcp_inputs_1to16 number: 6 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_7 - platform: gpio name: "${node_name} IN_08" id: in_08 pin: mcp23xxx: mcp_inputs_1to16 number: 7 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_8 - platform: gpio name: "${node_name} IN_09" id: in_09 pin: mcp23xxx: mcp_inputs_1to16 number: 8 mode: input: true pullup: false inverted: true on_press: - while: condition: binary_sensor.is_on: in_09 then: - logger.log: "Dimm light led_4 by -5%" - light.dim_relative: id: led_4 relative_brightness: -5% transition_length: 0.2s - delay: 0.2s - platform: gpio name: "${node_name} IN_10" id: in_10 pin: mcp23xxx: mcp_inputs_1to16 number: 9 mode: input: true pullup: false inverted: true on_press: - while: condition: binary_sensor.is_on: in_10 then: - logger.log: "Dimm light led_4 by -10%" - light.dim_relative: id: led_4 relative_brightness: -10% transition_length: 0.2s - delay: 0.2s - platform: gpio name: "${node_name} IN_11" id: in_11 pin: mcp23xxx: mcp_inputs_1to16 number: 10 mode: input: true pullup: false inverted: true on_press: - while: condition: binary_sensor.is_on: in_11 then: - logger.log: "Dimm light led_4 by 5%" - light.dim_relative: id: led_4 relative_brightness: 5% transition_length: 0.2s - delay: 0.2s - platform: gpio name: "${node_name} IN_12" id: in_12 pin: mcp23xxx: mcp_inputs_1to16 number: 11 mode: input: true pullup: false inverted: true on_press: - while: condition: binary_sensor.is_on: in_12 then: - logger.log: "Dimm light led_4 by 10%" - light.dim_relative: id: led_4 relative_brightness: 10% transition_length: 0.2s - delay: 0.2s - platform: gpio name: "${node_name} IN_13" id: in_13 pin: mcp23xxx: mcp_inputs_1to16 number: 12 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_13 - platform: gpio name: "${node_name} IN_14" id: in_14 pin: mcp23xxx: mcp_inputs_1to16 number: 13 mode: input: true pullup: false inverted: true on_press: - if: condition: light.is_on: led_4 then: - while: condition: binary_sensor.is_on: in_14 then: - logger.log: "Dimm light led_4 by -10%" - light.dim_relative: id: led_4 relative_brightness: -10% transition_length: 0.2s - delay: 0.2s else: - while: condition: binary_sensor.is_on: in_14 then: - logger.log: "Dimm light led_4 by 10%" - light.dim_relative: id: led_4 relative_brightness: 10% transition_length: 0.2s - delay: 0.2s - platform: gpio name: "${node_name} IN_15" id: in_15 pin: mcp23xxx: mcp_inputs_1to16 number: 14 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_15 - platform: gpio name: "${node_name} IN_16" id: in_16 pin: mcp23xxx: mcp_inputs_1to16 number: 15 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_16 - platform: gpio name: "${node_name} IN_17" id: in_17 pin: mcp23xxx: mcp_inputs_17to32 number: 7 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_17 - platform: gpio name: "${node_name} IN_18" id: in_18 pin: mcp23xxx: mcp_inputs_17to32 number: 6 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_18 - platform: gpio name: "${node_name} IN_19" id: in_19 pin: mcp23xxx: mcp_inputs_17to32 number: 5 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_19 - platform: gpio name: "${node_name} IN_20" id: in_20 pin: mcp23xxx: mcp_inputs_17to32 number: 4 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_20 - platform: gpio name: "${node_name} IN_21" id: in_21 pin: mcp23xxx: mcp_inputs_17to32 number: 3 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_21 - platform: gpio name: "${node_name} IN_22" id: in_22 pin: mcp23xxx: mcp_inputs_17to32 number: 2 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_22 - platform: gpio name: "${node_name} IN_23" id: in_23 pin: mcp23xxx: mcp_inputs_17to32 number: 1 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_23 - platform: gpio name: "${node_name} IN_24" id: in_24 pin: mcp23xxx: mcp_inputs_17to32 number: 0 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_24 - platform: gpio name: "${node_name} IN_25" id: in_25 pin: mcp23xxx: mcp_inputs_17to32 number: 8 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_25 - platform: gpio name: "${node_name} IN_26" id: in_26 pin: mcp23xxx: mcp_inputs_17to32 number: 9 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_26 - platform: gpio name: "${node_name} IN_27" id: in_27 pin: mcp23xxx: mcp_inputs_17to32 number: 10 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_27 - platform: gpio name: "${node_name} IN_28" id: in_28 pin: mcp23xxx: mcp_inputs_17to32 number: 11 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_28 - platform: gpio name: "${node_name} IN_29" id: in_29 pin: mcp23xxx: mcp_inputs_17to32 number: 12 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_29 - platform: gpio name: "${node_name} IN_30" id: in_30 pin: mcp23xxx: mcp_inputs_17to32 number: 13 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_30 - platform: gpio name: "${node_name} IN_31" id: in_31 pin: mcp23xxx: mcp_inputs_17to32 number: 14 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_31 - platform: gpio name: "${node_name} IN_32" id: in_32 pin: mcp23xxx: mcp_inputs_17to32 number: 15 mode: input: true pullup: false inverted: true on_press: then: - light.toggle: id: led_32 - platform: gpio name: "${node_name} IN_33" id: in_33 pin: number: GPIO33 mode: input: true pullup: false inverted: true - platform: gpio name: "${node_name} IN_34" id: in_34 pin: number: GPIO17 mode: input: true pullup: false inverted: true - platform: gpio name: "${node_name} IN_35" id: in_35 pin: number: GPIO12 mode: input: true pullup: false inverted: false