Espressif: ESP32-S3-BOX und HomeAssistant / ESPHome – Ergänzung

Von | Juni 23, 2023

Im letzten Beitrag habe ich die „ESP32-S3-Box“ als interessante Ergänzung für HomeAssistant und ESPHome bereits vorgestellt – und auch darüber geschrieben, dass ich es mit dem Setup LEIDER nicht hinbekommen habe, das Display – welches eines der Hauptgründe (neben potentiellen Features wie Voice-Control) für die Anschaffung war.

Nun haben die Entwickler rund um das ESPHome Projekt allerdings vor einiger Zeit bereits damit begonnen, die ESP32-S3-Box gezielt zu implementieren… aktuell ist zwar vieles noch nicht umgesetzt – und das, was umgesetzt wurde ist noch BETA, aber mit der erst veröffentlichten Version ESPHome 2023.06 ist es jetzt zumindest möglich, das Display zu Nutzen.

An dieser Stelle möchte ich daher einfach mal wieder meine Aktuelle Konfiguration teilen, so, wie das Gerät gerade im Einsatz ist…

esphome:
  name: esp32-box
  friendly_name: ESP32 Box

esp32:
  board: esp32s3box
  #board: esp32-s3-devkitc-1
  framework:
    type: arduino
    version: 2.0.6

spi:
  clk_pin: GPIO7
  mosi_pin: GPIO6

light:
#  - platform: rgb
#    name: RGB LED
#    red: rgb_red
#    green: rgb_green
#    blue: rgb_blue
  - platform: monochromatic
    output: lcd_backlight
    name: "LCD Backlight"
    restore_mode: ALWAYS_ON

output:
#  - platform: ledc
#    id: rgb_red
#    pin: GPIO39
#  - platform: ledc
#    id: rgb_green
#    pin: GPIO40
#  - platform: ledc
#    id: rgb_blue
#    pin: GPIO41
  - platform: ledc
    pin: GPIO45
    id: lcd_backlight

display:
  - platform: ili9xxx
    model: S3BOX
    cs_pin: GPIO5
    dc_pin: GPIO4
    reset_pin: GPIO48
    id: lcd
    lambda: |-
      it.fill(Color(255, 255, 255));
      it.strftime(160, 85, id(font_time), Color::BLACK, TextAlign::CENTER, "%H:%M:%S", id(time_ha).now());
      it.strftime(160, 170, id(font_date), Color::BLACK, TextAlign::CENTER, "%d.%m.%Y", id(time_ha).now(

font:
  - file: "gfonts://Roboto"
    id: font_time
    size: 60
    glyphs: "0123456789:"
  - file: "gfonts://Roboto"
    id: font_date
    size: 50
    glyphs: "0123456789."
  - file: "gfonts://Roboto"
    id: font_small
    size: 20

time:
  - platform: homeassistant
    id: time_ha
    timezone: Europe/Berlin

# Enable Home Assistant API
api:
  encryption:
    key: !secret encryption_key

ota:
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Box Fallback Hotspot"
    password: !secret hotspot_wifi_password

bluetooth_proxy:
  active: true

button:
  - platform: restart
    name: "Restart Device"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: IP Address
    ssid:
      name: Connected SSID
    bssid:
      name: Connected BSSID
    mac_address:
      name: Mac Wifi Address
    scan_results:
      name: Latest Scan Results

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s

  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: internal_temperature
    name: "Internal Temperature"
    entity_category: "diagnostic"

captive_portal:Code-Sprache: PHP (php)

Hier wird mir im Grunde ein Bluetooth-Proxy bereitgestellt, welcher mir die aktuelle Uhrzeit und das Datum anzeigt.
Die Datums – bzw. Zeitinformationen bekommt das Gerät von HomeAssistant über die API mitgeteilt… sofern keine Verbindung besteht, wird hier daher die „Laufzeit“ dargestellt, aber sobald HomeAssistant die Verbindung mit dem ESP bekommt, wird die Anzeige angepasst.

Zudem liefert das Gerät die Interne Temperatur als Diagnose-Info, kann aus HomeAssistant heraus Neugestartet werden und das Backlight des Displays lässt sich ein- und ausschalten.

Der Auskommentierte Part bei „output“ und „lights“ betrifft die beigelegte RGB-LED, welche, sofern angeschlossen ebenfalls aus HomeAssistant heraus angesteuert werden kann.

Da der Grund für die Anschaffung aber das Unauffällige Design ist – es liegt eben keine Entwicklerplatine in der Gegend herum – möchte ich bei diesen Geräten auf externe Sensoren oder Komponenten verzichten, sofern man diese nicht auch irgendwie Sinnvoll „verstecken“ kann… Und zusätzlich wüsste ich nicht, was ich mit der RGB-LED überhaupt machen sollte 😀

Die nächsten Optionen sind dann, dass auch der Touchscreen, das Mikrofon und die Speaker vollständig implementiert werden.
In wie weit dies aber mit den derzeit in Github verfügbaren Konfigurationen bereits der Fall ist, kann ich jetzt noch nicht sagen.
Da die ganzen Bereiche hier noch in der Entwicklung sind, und ich den Bluetooth-Proxy wirklich brauche, kann ich leider nicht all zu viele Experimente damit machen.

Und hier nun noch eine kleine Vorschau, wie das Gerät nun im Einsatz aussieht – und, wie es sich in HomeAssistant zeigt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert