diff --git a/.gitignore b/.gitignore index cb51595..ae2f781 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,3 @@ Nextion2Text.* #dev nspanel_esphome_prebuilt*.bin -/prebuilt diff --git a/prebuilt/.gitignore b/prebuilt/.gitignore new file mode 100644 index 0000000..3a5e9d2 --- /dev/null +++ b/prebuilt/.gitignore @@ -0,0 +1,6 @@ +# Gitignore settings for ESPHome +# This is an example and may include too much for your use-case. +# You can modify this file to suit your needs. +/.esphome/ +/secrets.yaml +*.bin diff --git a/prebuilt/nspanel_esphome_prebuilt.yaml b/prebuilt/nspanel_esphome_prebuilt.yaml new file mode 100644 index 0000000..df932ce --- /dev/null +++ b/prebuilt/nspanel_esphome_prebuilt.yaml @@ -0,0 +1,133 @@ +######################## +##### EXPERIMENTAL ##### +######################## + +##################################################################################################### +##### NSPANEL ESPHOME created by Blackymas - https://github.com/Blackymas/NSPanel_HA_Blueprint ##### +##### ESPHOME PRE-BUILT ##### +##### PLEASE only make changes if it is necessary and also the required knowledge is available. ##### +##### For normal use with the Blueprint, no changes are necessary. ##### +##################################################################################################### +--- +substitutions: + device_name: nspanel + wifi_ssid: nspanel + wifi_password: NSPanel_Blueprint + pre_built: "true" + +##### External components ##### +external_components: + - source: github://pr#5586 # Remove this and update min ver when that PR is released + components: + - ota_http + refresh: 300s + +packages: + core_package: !include ../esphome/nspanel_esphome_core.yaml # Core package + upload_tft_package: !include ../esphome/nspanel_esphome_addon_upload_tft.yaml # Core package + +api: + services: + - service: firmware_update + variables: + url: string + then: + - ota_http.flash: + url: !lambda return url.c_str(); + verify_ssl: false + - lambda: |- + static const char *const TAG = "prebuilt.button.bt_firmware_update"; + ESP_LOGE(TAG, "Firmware update failed!"); +button: + - name: Factory reset + platform: factory_reset + disabled_by_default: true + internal: false + + - id: bt_firmware_update + name: Firmware update + platform: template + on_press: + then: + - ota_http.flash: + url: !lambda return id(firmware_url).state; + verify_ssl: false + - lambda: |- + static const char *const TAG = "prebuilt.button.bt_firmware_update"; + ESP_LOGE(TAG, "Firmware update failed!"); + +# In combination with the `ap` this allows the user +# to provision wifi credentials to the device. +captive_portal: + +dashboard_import: + package_import_url: github://Blackymas/NSPanel_HA_Blueprint/esphome/nspanel_esphome_prebuilt.yaml + import_full_config: false + +esp32: + framework: + type: esp-idf + +# Sets up Bluetooth LE (Only on ESP32) to allow the user +# to provision wifi credentials to the device. +esp32_improv: + authorizer: none + +esphome: + name_add_mac_suffix: true + project: + name: esphome.NSPanel_HA_Blueprint + version: "${version}" + on_boot: + - priority: 602.0 + then: + - text_sensor.template.publish: + id: firmware_url + state: https://raw.githubusercontent.com/Blackymas/NSPanel_HA_Blueprint/main/esphome/nspanel_esphome_prebuilt.bin + +# Sets up the improv via serial client for Wi-Fi provisioning +improv_serial: + +logger: + baud_rate: 115200 + +ota: + id: my_ota + password: !remove + +ota_http: + +script: + - id: !extend watchdog + then: + - lambda: |- + static const char *const TAG = "prebuilt.script.watchdog"; + ESP_LOGI(TAG, "Pre-built version: ${pre_built}"); + +select: + - id: !extend tft_file_model + platform: template + options: + - "NSPanel Blank" + - "NSPanel EU" + - "NSPanel US" + - "NSPanel US Landscape" + - "NSPanel EU (CJK languages)" + - "NSPanel US (CJK languages)" + - "NSPanel US Landscape (CJK languages)" + initial_option: "NSPanel Blank" + +text_sensor: + - id: firmware_url + name: Firmware update - URL + platform: template + update_interval: 60s + internal: true + +web_server: + id: web_server_std + +wifi: + ap: {} + power_save_mode: LIGHT # To make it compatible with BLE +...