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