substitutions: name: boneio-dr-8ch-03 friendly_name: 'BoneIO Dimmer LED' serial_prefix: 'dim' #Don't change it. esphome: name: '${name}' friendly_name: '${friendly_name}' name_add_mac_suffix: true project: name: boneio.dimmer-led version: '0.3' esp32: board: esp32dev framework: type: esp-idf external_components: - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 components: [lm75] packages: internals_packages: url: https://github.com/boneIO-eu/esphome ref: v1.7.1 files: [ 'devices/serial_no.yaml', 'devices/dimmer_i2c.yaml', 'devices/dimmer_ina219.yaml', 'boards/dimmer_output.yaml', ] ethernet: id: eth type: LAN8720 mdc_pin: GPIO23 mdio_pin: GPIO18 clk: pin: GPIO0 mode: CLK_EXT_IN phy_addr: 1 power_pin: GPIO16 dashboard_import: package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest import_full_config: true pcf8574: - id: 'pcf_inputs' address: 0x38 logger: api: reboot_timeout: 0s ota: - platform: esphome - platform: web_server web_server: port: 80 local: true text_sensor: - platform: version name: 'boneio-dimmer- Version' icon: mdi:cube-outline entity_category: diagnostic - platform: ethernet_info ip_address: entity_category: diagnostic name: boneio-dimmer IP - platform: template name: 'Hostname' id: hostname entity_category: diagnostic lambda: |- return std::string(id(eth).get_use_address()); update_interval: 5min binary_sensor: - platform: gpio name: 'IN_01' id: in_01 pin: pcf8574: pcf_inputs number: 1 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_01 then: - if: condition: lambda: 'return id(chl_01).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chl_01 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chl_01 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chl_01 invalid_cooldown: 0.5s - platform: gpio name: 'IN_02' id: in_02 pin: pcf8574: pcf_inputs number: 2 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_02 then: - if: condition: lambda: 'return id(chl_02).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chl_02 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chl_02 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chl_02 invalid_cooldown: 0.5s - platform: gpio name: 'IN_03' id: in_03 pin: pcf8574: pcf_inputs number: 3 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_03 then: - if: condition: lambda: 'return id(chl_03).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chl_03 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chl_03 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chl_03 invalid_cooldown: 0.5s - platform: gpio name: 'IN_04' id: in_04 pin: pcf8574: pcf_inputs number: 4 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_04 then: - if: condition: lambda: 'return id(chl_04).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chl_04 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chl_04 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chl_04 invalid_cooldown: 0.5s - platform: gpio name: 'IN_05' id: in_05 pin: number: 36 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_05 then: - if: condition: lambda: 'return id(chr_01).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chr_01 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chr_01 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chr_01 invalid_cooldown: 0.5s - platform: gpio name: 'IN_06' id: in_06 pin: number: 39 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_06 then: - if: condition: lambda: 'return id(chr_02).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chr_02 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chr_02 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chr_02 invalid_cooldown: 0.5s - platform: gpio name: 'IN_07' id: in_07 pin: number: 34 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_07 then: - if: condition: lambda: 'return id(chr_03).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chr_03 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chr_03 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chr_03 invalid_cooldown: 0.5s - platform: gpio name: 'IN_08' id: in_08 pin: number: 35 mode: input: true inverted: true on_multi_click: - timing: - ON for at least 0.7s then: - while: condition: binary_sensor.is_on: in_08 then: - if: condition: lambda: 'return id(chr_04).current_values.get_brightness() >= 0.90f;' then: - light.turn_on: id: chr_04 brightness: 5% transition_length: 0.2s else: - light.dim_relative: id: chr_04 relative_brightness: 5% transition_length: 0.2s - delay: 200ms invalid_cooldown: 0.5s - timing: #single click - ON for at most 0.4s - OFF for at least 0.1s then: light.toggle: chr_04 invalid_cooldown: 0.5s light: - platform: monochromatic output: chl01 name: 'CHL 01' id: chl_01 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chl02 name: 'CHL 02' id: chl_02 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chl03 name: 'CHL 03' id: chl_03 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chl04 name: 'CHL 04' id: chl_04 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chr01 name: 'CHR 01' id: chr_01 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chr02 name: 'CHR 02' id: chr_02 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chr03 name: 'CHR 03' id: chr_03 default_transition_length: 2s gamma_correct: 0 - platform: monochromatic output: chr04 name: 'CHR 04' id: chr_04 default_transition_length: 2s gamma_correct: 0 sensor: - platform: lm75 id: boneIO_temp name: 'Temperature' update_interval: 30s entity_category: diagnostic on_value_range: - above: 70.0 then: - switch.turn_on: buzzer - below: 70.0 then: - switch.turn_off: buzzer switch: - platform: gpio id: buzzer name: 'Buzzer' pin: pcf8574: pcf_inputs number: 0 mode: output: true inverted: true