various updates

This commit is contained in:
2026-09-07 11:37:56 -04:00
parent 9995fb29ff
commit fc91437228
81 changed files with 1478 additions and 1437 deletions
Binary file not shown.
Binary file not shown.
+16
View File
@@ -0,0 +1,16 @@
{
"type": "micro",
"wake_word": "Alexa",
"author": "Kevin Ahrendt",
"website": "https://www.kevinahrendt.com/",
"model": "alexa.tflite",
"trained_languages": ["en"],
"version": 2,
"micro": {
"probability_cutoff": 0.9,
"sliding_window_size": 5,
"feature_step_size": 10,
"tensor_arena_size": 22348,
"minimum_esphome_version": "2024.7.0"
}
}
Binary file not shown.
@@ -1,9 +1,12 @@
esphome:
name: tab2
friendly_name: M5Stack Tab5 2
name: dickhead
friendly_name: Dickhead
on_boot:
# Set the charing icon to the correct state on boot
# Set the charging icon to the correct state on boot
- then:
- logger.log: "Delaying backlight initialization"
- delay: 2s
- logger.log: "End delay"
- if:
condition:
lambda: return id(charging).state;
@@ -17,6 +20,7 @@ esphome:
esp32:
board: esp32-p4-evboard
flash_size: 16MB
cpu_frequency: 360MHz
framework:
type: esp-idf
advanced:
@@ -36,6 +40,7 @@ esp32_hosted:
logger:
hardware_uart: USB_SERIAL_JTAG
level: DEBUG
psram:
mode: hex
@@ -53,8 +58,8 @@ ota:
platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ssid: !secret mobile_wifi_ssid
password: !secret mobile_wifi_pass
fast_connect: true
on_connect:
- lvgl.label.update:
@@ -63,15 +68,50 @@ wifi:
- select.set:
id: dac_output
option: "LINE1"
- lvgl.label.update:
id: lbl_ip
text: !lambda return id(ip_addr).state;
- lvgl.label.update:
id: lbl_ap
text: !lambda return id(ssid).state;
on_disconnect:
- lvgl.label.update:
id: lbl_status
text: "DISCONNECTED"
# ap:
# password: !secret hotspot_password
# ap_timeout: 90s
ap:
password: !secret hotspot_password
ap_timeout: 30s
# captive_portal:
captive_portal:
text_sensor:
- platform: wifi_info
ip_address:
id: ip_addr
name: Device IP Address
address_0:
name: Device IP Address 0
address_1:
name: Device IP Address 1
address_2:
name: Device IP Address 2
address_3:
name: Device IP Address 3
address_4:
name: Device IP Address 4
ssid:
id: ssid
name: Device Connected SSID
bssid:
name: Device Connected BSSID
mac_address:
name: Device Mac Wifi Address
scan_results:
name: Device Latest Scan Results
dns_address:
name: Device DNS Address
power_save_mode:
name: Device Wifi Power Save Mode
time:
- platform: sntp
@@ -82,14 +122,13 @@ time:
- 1.pool.ntp.org
- 2.pool.ntp.org
# wireguard:
# address: !secret tab1_wg_ip
# private_key: !secret tab1_wg_pk
# peer_endpoint: !secret wg_host
# peer_public_key: !secret wg_pubkey
# # Optional keepalive (disabled by default)
# peer_persistent_keepalive: 25s
wireguard:
address: !secret tab1_wg_ip
private_key: !secret tab1_wg_pk
peer_endpoint: !secret wg_host
peer_public_key: !secret wg_pubkey
netmask: 0.0.0.0
peer_persistent_keepalive: 25s
i2c:
- id: bsp_bus
@@ -196,6 +235,39 @@ binary_sensor:
pin:
pi4ioe5v6408: pi4ioe1
number: 7
- platform: lvgl
widget: volume_up_widget
name: Volume Up Button
on_press:
then:
- logger.log: "Button pressed"
- media_player.volume_up:
id: tab5_media_player
- delay: 100ms
- lvgl.label.update:
id: lbl_volume
text: !lambda return to_string(int(id(tab5_media_player).volume * 100));
- light.turn_on:
id: backlight
brightness: !lambda |-
float current_value = id(backlight).current_values.get_brightness();
return current_value < 0.6 ? 0.6 : current_value + 0.2;
- platform: lvgl
widget: volume_down_widget
name: Volume Down Button
on_press:
then:
- logger.log: "Button pressed"
- media_player.volume_down:
id: tab5_media_player
- lvgl.label.update:
id: lbl_volume
text: !lambda return to_string(int(id(tab5_media_player).volume * 100));
- light.turn_on:
id: backlight
brightness: !lambda |-
float current_value = id(backlight).current_values.get_brightness();
return current_value < 0.6 ? 0.6 : current_value - 0.2;
sensor:
- platform: ina226
@@ -255,8 +327,8 @@ touchscreen:
- logger.log: "LVGL resuming"
- lvgl.resume:
- light.turn_on: backlight
on_release:
- media_player.stop:
# on_release:
# - media_player.stop:
esp_ldo:
- voltage: 2.5V
@@ -287,7 +359,7 @@ light:
restore_mode: ALWAYS_ON
default_transition_length: 250ms
initial_state:
brightness: "100%"
brightness: "50%"
image:
defaults:
@@ -318,20 +390,41 @@ lvgl:
transition_length: 15s
- lvgl.pause:
widgets:
- obj:
align: TOP_MID
width: 100%
height: 100%
layout:
type: flex
flex_flow: column
flex_align_main: START
flex_align_track: center
flex_align_cross: center
widgets:
- label:
align: TOP_MID
id: lbl_status
text_font: montserrat_48
text: "CONNECTING..."
- label:
align: TOP_MID
id: lbl_ap
text_font: montserrat_22
text: "CONNECTING..."
- label:
align: TOP_MID
id: lbl_ip
text_font: montserrat_22
text: "CONNECTING..."
- image:
id: listen_icon_widget
src: va_idle
align: CENTER
- label:
align: TOP_MID
id: lbl_status
text_font: montserrat_48
text: "CONNECTING..."
- label:
align: BOTTOM_LEFT
id: lbl_version
text_font: montserrat_12
text: "v0.5"
text: "v0.6"
- label:
align: BOTTOM_RIGHT
id: lbl_battery
@@ -341,21 +434,38 @@ lvgl:
id: charging_icon_widget
src: charging_icon
align: TOP_RIGHT
- slider:
id: backlight_slider
- button:
id: volume_up_widget
widgets:
- label:
text: "\uF028"
text_font: montserrat_48
text_align: CENTER
align: CENTER
x: 20
y: 50
width: 30
height: 220
y: 20
width: 100
height: 100
pad_all: 8
min_value: 0
max_value: 255
on_release:
- homeassistant.action:
action: light.turn_on
data:
entity_id: light.backlight
brightness: !lambda return int(x);
- button:
id: volume_down_widget
widgets:
- label:
text: "\uF027"
text_font: montserrat_48
text_align: CENTER
align: CENTER
x: 20
y: 140
width: 100
height: 100
pad_all: 8
- label:
x: 20
y: 260
id: lbl_volume
text_font: montserrat_28
text: !lambda return "%.1f",to_string(id(tab5_media_player).volume);
# The DAC Output select needs to be manually (or with an automation) changed to `LINE1` for the onboard speaker
select:
@@ -414,7 +524,7 @@ speaker:
audio_dac: es8388_dac
dac_type: external
channel: mono
buffer_duration: 100ms
buffer_duration: 60000ms
bits_per_sample: 16bit
sample_rate: 48000
@@ -429,9 +539,12 @@ media_player:
micro_wake_word:
id: mww
models:
- okay_nabu
- hey_mycroft
- hey_jarvis
- model:
type: local
path: alexa.json
id: alexa
probability_cutoff: 0.97
sliding_window_size: 5
on_wake_word_detected:
- voice_assistant.start:
wake_word: !lambda return wake_word;
+7
View File
@@ -56,6 +56,13 @@ Make sure your permissions are set correctly
sudo usermod -a -G dialout ducoterra
```
or on Kinoite
```bash
grep -E '^dialout:' /usr/lib/group | sudo tee -a /etc/group
sudo usermod -aG dialout $USER
```
Then "run" your config file
```bash
+16
View File
@@ -0,0 +1,16 @@
{
"type": "micro",
"wake_word": "hey dick head",
"author": "peenfart",
"website": "https://www.kevinahrendt.com/",
"model": "./hey_dick_head.tflite",
"trained_languages": ["en"],
"version": 2,
"micro": {
"probability_cutoff": 0.97,
"sliding_window_size": 5,
"feature_step_size": 10,
"tensor_arena_size": 22860,
"minimum_esphome_version": "2024.7"
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.