########################################### ## ## ## filename: base.yaml ## ## description: contains configuration ## ## that will be the same for all the ## ## possible configurations ## ## ## ########################################### esp32: flash_size: 16MB interval: - interval: 1min then: - logger.log: "ESPHome for Button+ v0.2.0_dev" i2c: - id: temperature_sensor sda: GPIO1 scl: GPIO2 - id: buttons sda: GPIO47 scl: GPIO48 frequency: 400khz spi: clk_pin: GPIO36 mosi_pin: GPIO35 globals: - id: actual_page type: int initial_value: '1' - id: page_names type: std::vector initial_value: '{"Page 1"}' - id: active_page_name type: std::string initial_value: "" output: - platform: ledc pin: GPIO3 id: display_main_backlight_pwm inverted: True max_power: 1.0 frequency: 500Hz - platform: ledc pin: GPIO46 id: displays_mini_backlight_pwm inverted: True max_power: 0.6 frequency: 500Hz sensor: - platform: sts3x id: inside_temperature i2c_id: temperature_sensor name: "Temperature" address: 0x4A update_interval: 10s - platform: template name: "Active Page ID" id: active_page_id_ha update_interval: never text_sensor: - platform: template name: "Active Page Name" id: active_page_name_ha update_interval: never light: - platform: neopixelbus id: neopixels type: RGB variant: WS2812 pin: GPIO4 num_leds: 17 - platform: monochromatic output: display_main_backlight_pwm gamma_correct : 2.2 name: "Main Display Backlight" id: display_main_backlight restore_mode: ALWAYS_ON - platform: monochromatic output: displays_mini_backlight_pwm gamma_correct : 2.2 name: "Mini Display Backlight" id: displays_mini_backlight restore_mode: ALWAYS_ON time: - platform: homeassistant id: datetime number: # Creates a number entity in Home Assistant # It sets the menu of the Button Plus - platform: template name: "Menu Selector" id: menu_selector optimistic: true min_value: 1 max_value: ${nr_of_pages} step: 1 on_value: then: - globals.set: id: actual_page value: !lambda 'return x;' - script.execute: update_page_naming - script.execute: update_all script: ###################### ### paging scripts ### ###################### - id: next_page then: - number.increment: id: menu_selector - id: prev_page then: - number.decrement: id: menu_selector - id: update_page_naming then: - lambda: |- id(active_page_name) = id(page_names)[id(actual_page) - 1]; - sensor.template.publish: id: active_page_id_ha state: !lambda 'return id(actual_page);' - text_sensor.template.publish: id: active_page_name_ha state: !lambda 'return id(active_page_name);'