--- # Sonoff NSPanel with the native Lovelace UI (randybb/esphome-nspanel-lovelace-native). # The device file adds the cards, buttons and relays: # packages: # common: !include common/common.yaml # nspanel: !include # file: common/nspanel.yaml # vars: # temperature_entity: sensor.zigbee_bedroom_temperature # nspanel_lovelace: # cards: [...] defaults: temperature_name: Temperature ntc_reference_temperature: 25°C esphome: on_boot: then: - switch.turn_off: screen_power - delay: 1s - switch.turn_on: screen_power - delay: 2s - lambda: 'id(nspanel_id).set_display_dim(5, 80);' esp32: variant: esp32 toolchain: esp-idf framework: type: esp-idf advanced: flash_chip: generic minimum_chip_revision: 3.0 sram1_as_iram: true packages: popup: !include nspanel_popup.yaml external_components: - source: type: git url: https://github.com/randybb/esphome-nspanel-lovelace-native ref: devices refresh: 0s components: [nspanel_lovelace] api: homeassistant_services: true homeassistant_states: true actions: - action: play_rtttl variables: song: string then: - rtttl.play: rtttl: !lambda 'return song;' - action: notify variables: heading: string message: string song: string then: - lambda: 'id(nspanel_id).notify_on_screensaver(heading, message, 10000);' - rtttl.play: rtttl: !lambda 'return song;' - action: notify_fullscreen variables: title: string description: string button1: string button2: string timeout: int icon: string then: - lambda: 'id(nspanel_id).notify_on_screensaver(title, description, timeout);' - rtttl.play: "scale_up:d=32,o=5,b=100:c,c#,d#,e,f#,g#,a#,b" uart: id: display_uart tx_pin: 16 rx_pin: 17 baud_rate: 115200 nspanel_lovelace: id: nspanel_id sleep_timeout: 10 experimental_vertical_ui: true locale: language: sk temperature_unit: celcius screensaver: time_id: ha_time time_format: '%H:%M' date_format: '%A, %d. %b. %Y' weather: entity_id: sensor.weather_forecast_daily icon_color: [255, 255, 255] entities: - entity_id: ${temperature_entity} icon: value: home-thermometer-outline color: [255, 255, 255] precision: 1 output: - platform: ledc id: buzzer_out pin: number: 21 switch: - platform: gpio name: Screen Power id: screen_power entity_category: config pin: number: 4 inverted: true restore_mode: ALWAYS_ON rtttl: id: buzzer output: buzzer_out sensor: - platform: adc id: ntc_source pin: 38 update_interval: 5min attenuation: 12db - platform: resistance id: resistance_sensor sensor: ntc_source configuration: DOWNSTREAM resistor: 11.2kOhm - platform: ntc name: ${temperature_name} id: temperature sensor: resistance_sensor calibration: b_constant: 3950 reference_temperature: ${ntc_reference_temperature} reference_resistance: 10kOhm text_sensor: - platform: homeassistant id: name_day entity_id: sensor.nameday_sk on_value: - lambda: |- id(nspanel_id).set_time_format("%H:%M~" + x); id(nspanel_id).update_time(); # HMI protocol version reported by the TFT on startup (52/53 for this UI) - platform: template name: TFT Version entity_category: diagnostic update_interval: 60s lambda: |- using esphome::nspanel_lovelace::Configuration; const auto ver = Configuration::get_version(); if (ver == 0) return {"unknown"}; return {std::to_string(ver) + " (" + Configuration::get_model_str() + ")"};