diff --git a/esphome/esp-bedside-panel.yaml b/esphome/esp-bedside-panel.yaml index e69de29..b11298b 100644 --- a/esphome/esp-bedside-panel.yaml +++ b/esphome/esp-bedside-panel.yaml @@ -0,0 +1,260 @@ +#:########################################################################################:# +# TITLE: ESP BEDSIDE PANEL +# zorruno.com layout v1.1 2026 +#:########################################################################################:# +# REPO: +# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-bedside-panel.yaml +#:########################################################################################:# +# VERSIONS: +# V0.2 2026-07-14 Added ESP32 hosted WiFi via ESP32-C6 co-processor +# V0.1 2026-07-14 Initial ESPHome bring-up for Guition JC1060P470C_I_W_Y ESP32-P4 panel +#:########################################################################################:# +# HARDWARE: +# - Guition JC1060P470C_I_W_Y +# - 7 inch 1024x600 capacitive touch display +# - ESP32-P4 main processor +# - ESP32-C6 wireless co-processor +# - 100 Mbps Ethernet +# - Dual USB-C ports +# - Camera, speaker connector, microSD and RTC features present on board +# +# Known / likely hardware details: +# - Display driver: JD9165 / JC1060P470 MIPI-DSI model +# - Touch controller: GT911 +# - Backlight PWM pin appears to be GPIO23 in community examples +# - Touch I2C appears to be GPIO7 SDA / GPIO8 SCL in community examples +#:########################################################################################:# +# OPERATION NOTES: +# - This is still a first-stage ESPHome bring-up file. +# - Flash this to the ESP32-P4 side of the board. +# - This version is intended to confirm: +# - ESPHome compile +# - USB flashing +# - Serial logging +# - WiFi connection via ESP32-C6 hosted co-processor +# - Home Assistant API connection +# - OTA becomes available after first successful network connection +# - This version intentionally does not yet configure: +# - Ethernet +# - Display +# - Touchscreen +# - LVGL +# - Backlight +# - Ambient light sensor +# - RTC +# - Camera +#:########################################################################################:# +# OFFLINE NOTES: +# - This version has no local control logic yet. +# - This version does not require Home Assistant to boot. +# - Serial logs are the main proof-of-life test if WiFi does not connect. +# - Home Assistant API will connect only once hosted WiFi is working. +#:########################################################################################:# + +#:########################################################################################:# +# SUBSTITUTIONS: +# Specific device variable substitutions +# If NOT using a secrets file, just replace these with the passwords etc (in quotes) +#:########################################################################################:# +substitutions: + # Device Naming + device_name: "esp-bedside-panel" + friendly_name: "ESP Bedside Panel" + description_comment: "Guition JC1060P470C_I_W_Y ESP32-P4 7 inch bedside control panel. Initial ESPHome WiFi bring-up. (Layout V1.1)" + device_area: "Bedroom" # Allows ESP device to be automatically linked to an 'Area' in Home Assistant. + + # Project Naming + project_name: "Guition.JC1060P470C_I_W_Y" # Project Details + project_version: "v0.2" # Project V denotes release of yaml file, allowing checking of deployed vs latest version + + # Passwords & Secrets + api_key: !secret esp-api_key # unfortunately you can't use substitutions inside secrets names + ota_pass: !secret esp-ota_pass # unfortunately you can't use substitutions inside secrets names + + # Device Settings + log_level: "INFO" # Define logging level: NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE + update_interval: "60s" # update time for general sensors etc + +#:########################################################################################:# +# PACKAGES: +# Included Common Packages +# https://esphome.io/components/packages.html +#:########################################################################################:# +packages: + #### WIFI, Network DHCP, Fallback AP, Safemode #### + # NOTE: + # This board does not have native WiFi in the ESP32-P4 itself. + # The esp32_hosted section below exposes the ESP32-C6 co-processor as WiFi. + common_wifi: !include + file: common/network_common_dhcp.yaml + vars: + local_device_name: "${device_name}" + local_ota_pass: "${ota_pass}" + + #### HOME ASSISTANT API (choose encryption or no encryption options) #### + common_api: !include + file: common/api_common.yaml + #file: common/api_common_noencryption.yaml + vars: + local_api_key: "${api_key}" + + #### MQTT #### + # NOTE: + # Leave MQTT disabled for initial bring-up. Add later if needed. + #common_mqtt: !include + # file: common/mqtt_common.yaml + # vars: + # local_device_name: "${device_name}" + + #### WEB PORTAL #### + # NOTE: + # Leave disabled until WiFi/API are confirmed. + #common_webportal: !include common/webportal_common_nopass.yaml + + #### SNTP (Only use if you want/need accurate timeclocks) #### + # NOTE: + # For the clock page later, we will probably use Home Assistant time first. + #common_sntp: !include common/sntp_common.yaml + + #### DIAGNOSTICS Sensors #### + # NOTE: + # Keep common diagnostic packages disabled until first WiFi/API connection works. + #diag_basic: !include common/include_basic_diag_sensors.yaml + #diag_more: !include common/include_more_diag_sensors.yaml + #diag_debug: !include common/include_debug_diag_sensors.yaml + #diag_resetcount: !include common/include_resetcount_diag_sensors.yaml + +#:########################################################################################:# +# ESPHOME: +# https://esphome.io/components/esphome.html +#:########################################################################################:# +esphome: + name: "${device_name}" + friendly_name: "${friendly_name}" + comment: "${description_comment}" # Appears on the esphome page in HA + area: "${device_area}" + project: + name: "${project_name}" + version: "${project_version}" + +#:########################################################################################:# +# ESP PLATFORM AND FRAMEWORK: +# https://esphome.io/components/esp32.html +#:########################################################################################:# +esp32: + variant: ESP32P4 + engineering_sample: true + cpu_frequency: 360MHz + flash_size: 16MB + framework: + type: esp-idf + advanced: + enable_idf_experimental_features: yes + sdkconfig_options: + CONFIG_SPIRAM_XIP_FROM_PSRAM: "y" + +#:########################################################################################:# +# PSRAM: +# https://esphome.io/components/psram.html +#:########################################################################################:# +psram: + speed: 200MHz + +#:########################################################################################:# +# ESP32 HOSTED WIFI COPROCESSOR: +# https://esphome.io/components/esp32_hosted.html +#:########################################################################################:# +esp32_hosted: + variant: ESP32C6 + reset_pin: 54 + cmd_pin: 19 + clk_pin: 18 + d0_pin: 14 + d1_pin: 15 + d2_pin: 16 + d3_pin: 17 + active_high: true + +#:########################################################################################:# +# ESP LDO: +# Required by known ESP32-P4 display examples for this board family +#:########################################################################################:# +esp_ldo: + - channel: 3 + voltage: 2.5V + +#:########################################################################################:# +# LOGGER: +# https://esphome.io/components/logger.html +#:########################################################################################:# +logger: + level: "${log_level}" # INFO Level suggested, or DEBUG for testing + baud_rate: 115200 + hardware_uart: USB_SERIAL_JTAG + #tx_buffer_size: 64 + +#:########################################################################################:# +# HOME ASSISTANT API: +#:########################################################################################:# +api: + on_client_connected: + then: + - logger.log: + level: INFO + format: "API connected: ESP Bedside Panel is online" + + on_client_disconnected: + then: + - logger.log: + level: WARN + format: "API disconnected: ESP Bedside Panel is offline from Home Assistant" + +#:########################################################################################:# +# OTA: +# https://esphome.io/components/ota/esphome.html +#:########################################################################################:# +ota: + - platform: esphome + password: "${ota_pass}" + +#:########################################################################################:# +# TIME: +# https://esphome.io/components/time/homeassistant.html +#:########################################################################################:# +time: + - platform: homeassistant + id: ha_time + +#:########################################################################################:# +# SENSORS: +# https://esphome.io/components/sensor/ +#:########################################################################################:# +sensor: + - platform: uptime + name: "${friendly_name} Uptime" + id: uptime_sensor + update_interval: "${update_interval}" + + - platform: wifi_signal + name: "${friendly_name} WiFi Signal" + id: wifi_signal_sensor + update_interval: "${update_interval}" + +#:########################################################################################:# +# TEXT SENSOR COMPONENT: +# https://esphome.io/components/text_sensor/ +#:########################################################################################:# +text_sensor: + - platform: version + name: "${friendly_name} ESPHome Version" + hide_timestamp: true + + - platform: wifi_info + ip_address: + name: "${friendly_name} IP Address" + ssid: + name: "${friendly_name} Connected SSID" + bssid: + name: "${friendly_name} Connected BSSID" + mac_address: + name: "${friendly_name} MAC Address" \ No newline at end of file