ESP32-S3-BOX-3
-
- Moderátor
- Příspěvky: 738
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 84 poděkování
- Dostal poděkování: 175 poděkování
Re: ESP32-S3-BOX-3
Super, jak máš nastaveného asistenta? Konkrétně jaké TTS?
Snad za chvíli dodám upravený yaml s funkčním displejem, displej má reset na GPIO48, ale vypadá to že opravdu v obrácené polaritě. Ještě ladím.
Snad za chvíli dodám upravený yaml s funkčním displejem, displej má reset na GPIO48, ale vypadá to že opravdu v obrácené polaritě. Ještě ladím.
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Aktivní autor
- Příspěvky: 66
- Registrován: 11. květen 2022, 18:54
- Dal poděkování: 61 poděkování
- Dostal poděkování: 8 poděkování
-
- Moderátor
- Příspěvky: 738
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 84 poděkování
- Dostal poděkování: 175 poděkování
Re: ESP32-S3-BOX-3
Dávám pracovní verzi s displejem. Nejsem grafik, takže gradient pozadí je asi maximum.
Ještě upravuji aby to trochu vypadalo, aby se tam texty vešly celé. Jak se mi to povede tak kód opět dám sem do tématu.
Jak psal janchan tak zvukový výstup by měl být funkční při použití TTS Nabu Casa a funguje mi i přes piper Při výskytu některých chyb o kterých si myslím že by se mohl vzpamatovat sám - se snažím o restart voice assistenta - posílám "start_continuous"
Viz podmínky v lambda pověšené na on_error komponenty.
To si myslím že v průběhu vývoje komponenty voice_assistant bude nadbytečné a možná i kontraproduktivní. Očekávám chování že pokud nastane nějaká recoverable chyba tak komponenta to udělá sama, jen zaloguje a zkusí obnovit. Tak jako je to dávno třeba u I2C sběrnice.
Ještě upravuji aby to trochu vypadalo, aby se tam texty vešly celé. Jak se mi to povede tak kód opět dám sem do tématu.
Jak psal janchan tak zvukový výstup by měl být funkční při použití TTS Nabu Casa a funguje mi i přes piper Při výskytu některých chyb o kterých si myslím že by se mohl vzpamatovat sám - se snažím o restart voice assistenta - posílám "start_continuous"
Viz podmínky v lambda pověšené na on_error komponenty.
To si myslím že v průběhu vývoje komponenty voice_assistant bude nadbytečné a možná i kontraproduktivní. Očekávám chování že pokud nastane nějaká recoverable chyba tak komponenta to udělá sama, jen zaloguje a zkusí obnovit. Tak jako je to dávno třeba u I2C sběrnice.
Kód: Vybrat vše
esphome:
name: s3box3
friendly_name: S3box3
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32s3box
framework:
type: esp-idf
sdkconfig_options:
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
# Enable logging
logger:
hardware_uart: USB_SERIAL_JTAG
level: DEBUG
logs:
component: ERROR
# Enable Home Assistant API
api:
encryption:
key: "jgVfSe0zIPTlfAEeM2zt5k2exvNL+6LK10sqsQ9qS3k="
ota:
password: "94431478a5e4b99a956cb61f1a9dcda8"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "S3Box3 Fallback Hotspot"
password: "sDHiUghr0220"
captive_portal:
time:
- platform: homeassistant
id: hatime
timezone: Europe/Prague
# dashboard_import:
# package_import_url: github://esphome/firmware/voice-assistant/esp32-s3-box.yaml@main
binary_sensor:
- platform: gpio
pin:
number: GPIO1
inverted: true
name: "Mute"
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: true
name: Top Left Button
disabled_by_default: true
on_click:
- if:
condition:
switch.is_off: use_wake_word
then:
- if:
condition: voice_assistant.is_running
then:
- voice_assistant.stop:
- script.execute: reset_led
else:
- voice_assistant.start:
else:
- voice_assistant.stop
- delay: 1s
- script.execute: reset_led
- script.wait: reset_led
- voice_assistant.start_continuous:
- platform: status
id: api_connection
filters:
- delayed_on: 1s
on_press:
- if:
condition:
switch.is_on: use_wake_word
then:
- voice_assistant.start_continuous:
on_release:
- if:
condition:
switch.is_on: use_wake_word
then:
- voice_assistant.stop:
output:
- platform: ledc
pin: GPIO47
id: backlight_output
light:
- platform: monochromatic
output: backlight_output
name: LCD Backlight
id: led
restore_mode: ALWAYS_OFF
disabled_by_default: true
default_transition_length: 0s
effects:
- pulse:
name: "Slow Pulse"
transition_length: 250ms
update_interval: 250ms
- pulse:
name: "Fast Pulse"
transition_length: 50ms
update_interval: 50ms
microphone:
- platform: esp_adf
id: box_mic
speaker:
- platform: esp_adf
id: box_speaker
voice_assistant:
id: va
microphone: box_mic
speaker: box_speaker
use_wake_word: true
noise_suppression_level: 2
auto_gain: 31dBFS
volume_multiplier: 2.0
vad_threshold: 3
on_listening:
- light.turn_on:
id: led
brightness: 100%
effect: "Slow Pulse"
on_tts_start:
- light.turn_on:
id: led
brightness: 75%
effect: "Slow Pulse"
- text_sensor.template.publish:
id: line2
state: !lambda return x;
on_end:
- delay: 100ms
- wait_until:
not:
speaker.is_playing:
- script.execute: reset_led
on_error:
- light.turn_on:
id: led
brightness: 50%
effect: "Fast Pulse"
- delay: 1s
- script.execute: reset_led
- script.wait: reset_led
- lambda: |-
if (code == "wake-provider-missing" || code == "wake-engine-missing") {
id(use_wake_word).turn_off();
}
if (message == "Could not request start.") {
id(restart_script).execute();
}
if (message == "Unexpected error during wake-word-detection") {
id(restart_script).execute();
}
- text_sensor.template.publish:
id: line4
state: !lambda return code;
- text_sensor.template.publish:
id: line5
state: !lambda return message;
on_stt_end:
- text_sensor.template.publish:
id: line1
state: !lambda return x;
on_tts_end:
- text_sensor.template.publish:
id: line3
state: !lambda return x;
on_client_connected:
- if:
condition:
switch.is_on: use_wake_word
then:
- voice_assistant.start_continuous:
- script.execute: reset_led
on_client_disconnected:
- if:
condition:
switch.is_on: use_wake_word
then:
- voice_assistant.stop:
- light.turn_off: led
script:
- id: reset_led
then:
- if:
condition:
switch.is_on: use_wake_word
then:
- light.turn_on:
id: led
brightness: 25%
effect: none
else:
- light.turn_off: led
- id: restart_script
then:
- voice_assistant.stop
- delay: 1s
- text_sensor.template.publish:
id: line4
state: " "
- text_sensor.template.publish:
id: line5
state: " "
- voice_assistant.start_continuous
switch:
- platform: template
name: Use wake word
id: use_wake_word
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
on_turn_on:
- lambda: id(va).set_use_wake_word(true);
- if:
condition:
not:
- voice_assistant.is_running
then:
- voice_assistant.start_continuous
- script.execute: reset_led
on_turn_off:
- voice_assistant.stop
- lambda: id(va).set_use_wake_word(false);
- script.execute: reset_led
external_components:
# - source: github://pr#5230
source: github://kiklhorn/esphome
components: esp_adf
refresh: 0s
esp_adf:
# board: esp32s3box3
board: esp32s3box
psram:
mode: octal
speed: 120MHz
font:
- file: "gfonts://Roboto Condensed"
glyphs: "!%()+,-/_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZŽŠČŘĎŤŇĚÁÍÉÓÚŮÝ abcdefghijklmnopqrstuvwxyzμžščřďťňáěíóúůý₂³"
id: font1
size: 20
text_sensor:
- id: line0
platform: template
on_value:
then:
- component.update: my_display
- id: line1
platform: template
on_value:
then:
- component.update: my_display
- id: line2
platform: template
on_value:
then:
- component.update: my_display
- id: line3
platform: template
on_value:
then:
- component.update: my_display
- id: line4
platform: template
on_value:
then:
- component.update: my_display
- id: line5
platform: template
on_value:
then:
- component.update: my_display
spi:
clk_pin: GPIO7
mosi_pin: GPIO6
display:
- platform: ili9xxx
model: S3BOX
update_interval: 30s
id: my_display
# backlight_pin: GPIO4 #tento parametr mohu vynechat, a na GPIO4 pověsit PWM a řídit jas
cs_pin: GPIO5
dc_pin: GPIO4
# reset_pin: GPIO48 #Negation needed... ignore
# https://esphome.io/api/light__state_8cpp_source
lambda: |-
for(auto i = 0; i<240; i++) {it.horizontal_line(0,i,320, my_blue.fade_to_white(i));}
it.rectangle(0, 0, it.get_width(), it.get_height(),color_red);
it.printf(60, 10, id(font1), "ESP32-S3-BOX-3");
it.strftime(it.get_width()-2, 10, id(font1), color_green, TextAlign::TOP_RIGHT, "%H:%M", id(hatime).now());
auto ledcolor = Color(id(led).remote_values.get_red()*255, id(led).remote_values.get_green()*255, id(led).remote_values.get_blue()*255);
bool ledstatus = id(led).remote_values.get_state();
int x = 2, y = 43, offs = 34;
it.filled_circle(25, 25, 15, ledstatus ? ledcolor : color_black);
it.printf(30, 0, id(font1), "%s", id(line0).state.c_str());
it.printf(x, y, id(font1), "%s", id(line1).state.c_str());
it.printf(x, y=y+offs, id(font1), "%s", id(line2).state.c_str());
it.printf(x, y=y+offs, id(font1), "%s", id(line3).state.c_str());
it.printf(x, y=y+offs, id(font1), color_red, "%s", id(line4).state.c_str());
it.printf(x, y=y+offs, id(font1), color_red, "%s", id(line5).state.c_str());
color:
- id: color_red
red: 1
green: 0
blue: 0
- id: color_green
red: 0
green: 1
blue: 0
- id: color_black
red: 0
green: 0
blue: 0
- id: my_blue
blue: 100%
- id: my_red
red: 100%
- id: my_green
green: 70%
- id: my_white
red: 100%
blue: 100%
green: 100%
- id: my_yellow
hex: ffff00
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Aktivní autor
- Příspěvky: 66
- Registrován: 11. květen 2022, 18:54
- Dal poděkování: 61 poděkování
- Dostal poděkování: 8 poděkování
Re: ESP32-S3-BOX-3
Ahoj díky.
Nahrán nový yaml.
Hlasové příkazy funkční.
Nyní se ale zadrhává při odpovědi stavu příkazu.
Místo zhasnuto vysloví jen "Z" a dál nic
U příkazu rozsviť odpoví jen "R", místo rozsvíceno
Místo Omlouvám se, ale nerozumím, vysloví "O .. ale nerozumím"
Na začátku věty se pokaždé na malou chvilku zadrhne.
V předchozí verzi tento problém nebyl.
Nevím jestli to má souvislost, ale v logu ESP se mi ukazuje info o "pipeline". To však nepoužívám, a nemám ani nainstalováno.
A pokud to jde, tak prosím aby se na displeji nezobrazovala IP adresa.
Nahrán nový yaml.
Hlasové příkazy funkční.
Nyní se ale zadrhává při odpovědi stavu příkazu.
Místo zhasnuto vysloví jen "Z" a dál nic
U příkazu rozsviť odpoví jen "R", místo rozsvíceno
Místo Omlouvám se, ale nerozumím, vysloví "O .. ale nerozumím"
Na začátku věty se pokaždé na malou chvilku zadrhne.
V předchozí verzi tento problém nebyl.
Nevím jestli to má souvislost, ale v logu ESP se mi ukazuje info o "pipeline". To však nepoužívám, a nemám ani nainstalováno.
Kód: Vybrat vše
[17:33:23][D][voice_assistant:159]: Starting Microphone
[17:33:23][D][voice_assistant:395]: State changed from START_MICROPHONE to STARTING_MICROPHONE
[17:33:24][D][esp-idf:000]: W (1657801) AUDIO_PIPELINE: There are no listener registered
[17:33:24][D][esp-idf:000]: I (1657805) AUDIO_PIPELINE: audio_pipeline_unlinked
[17:33:24][D][esp-idf:000]: W (1657811) AUDIO_ELEMENT: [i2s] Element has not create when AUDIO_ELEMENT_TERMINATE
[17:33:24][D][esp-idf:000]: I (1657817) I2S: DMA queue destroyed
[17:33:24][D][esp-idf:000]: W (1657826) AUDIO_ELEMENT: [filter] Element has not create when AUDIO_ELEMENT_TERMINATE
[17:33:24][D][esp-idf:000]: W (1657832) AUDIO_ELEMENT: [raw] Element has not create when AUDIO_ELEMENT_TERMINATE
[17:33:24][D][esp-idf:000]: I (1657846) I2S: DMA Malloc info, datalen=blocksize=512, dma_buf_count=8
[17:33:24][D][esp-idf:000]: I (1657852) I2S: I2S0, MCLK output by GPIO2
[17:33:24][D][esp-idf:000]: I (1657858) ESP32_S3_BOX: I2S0, MCLK output by GPIO0
[17:33:24][D][esp-idf:000]: I (1657867) AUDIO_PIPELINE: link el->rb, el:0x3d036e04, tag:i2s, rb:0x3d037218
[17:33:24][D][esp-idf:000]: I (1657873) AUDIO_PIPELINE: link el->rb, el:0x3d036f78, tag:filter, rb:0x3d039258
[17:33:24][D][esp-idf:000]: I (1657879) AUDIO_ELEMENT: [i2s-0x3d036e04] Element task created
[17:33:24][D][esp-idf:000]: I (1657885) AUDIO_THREAD: The filter task allocate stack on external memory
[17:33:24][D][esp-idf:000]: I (1657892) AUDIO_ELEMENT: [filter-0x3d036f78] Element task created
[17:33:24][D][esp-idf:000]: I (1657899) AUDIO_ELEMENT: [raw-0x3d0370a8] Element task created
[17:33:24][D][esp-idf:000]: I (1657905) AUDIO_PIPELINE: Func:audio_pipeline_run, Line:359, MEM Total:16619827 Bytes, Inter:84924 Bytes, Dram:84924 Bytes
[17:33:24][D][esp-idf:000]: I (1657911) AUDIO_ELEMENT: [i2s] AEL_MSG_CMD_RESUME,state:1
[17:33:24][D][esp-idf:000]: I (1657917) AUDIO_ELEMENT: [filter] AEL_MSG_CMD_RESUME,state:1
[17:33:24][D][esp-idf:000]: I (1657925) RSP_FILTER: sample rate of source data : 16000, channel of source data : 2, sample rate of destination data : 16000, channel of destination data : 1
[17:33:24][D][esp-idf:000]: I (1657930) AUDIO_PIPELINE: Pipeline started
-
- Moderátor
- Příspěvky: 738
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 84 poděkování
- Dostal poděkování: 175 poděkování
Re: ESP32-S3-BOX-3
IP je stejně jen na LAN... Zakomentuj nebo smaž blok
Zvuk:
Zkus si pohrát s - zakomentovat vždy celý blok.
a případně zakomentovatnebo
A dej vědět jestli a co z toho na ten zvuk pomohlo
Kód: Vybrat vše
on_tts_end:
- text_sensor.template.publish:
id: line3
state: !lambda return x;
Zkus si pohrát s
Kód: Vybrat vše
- text_sensor.template.publish:
a případně zakomentovat
Kód: Vybrat vše
if (message == "Could not request start.") {
id(restart_script).execute();
}
Kód: Vybrat vše
if (message == "Unexpected error during wake-word-detection") {
id(restart_script).execute();
}
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Aktivní autor
- Příspěvky: 66
- Registrován: 11. květen 2022, 18:54
- Dal poděkování: 61 poděkování
- Dostal poděkování: 8 poděkování
Re: ESP32-S3-BOX-3
IP adresa odstraněna.
Se zvukem je to ale stále stejné, nic z toho co jsi mi napověděl nepomohlo.
Ještě jsem zjistil jednu věc. Pokud horním tlačítkem vypnu mic, tak po opětovném zapnutí už box "neslyší".
Musím box ručně bočním tlačítkem resetovat.
Se zvukem je to ale stále stejné, nic z toho co jsi mi napověděl nepomohlo.
Ještě jsem zjistil jednu věc. Pokud horním tlačítkem vypnu mic, tak po opětovném zapnutí už box "neslyší".
Musím box ručně bočním tlačítkem resetovat.
-
- Moderátor
- Příspěvky: 738
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 84 poděkování
- Dostal poděkování: 175 poděkování
Re: ESP32-S3-BOX-3
Můžeš zkusit...
Nahrát původní kód. vyzkoušet, přidat spi, vyzkoušet, přidat display bez lambda části, vyzkoušet... a zjistit kdy začne problém se zvukem.
Na mute se podívám časem, řeším teď lepší výpisy na displej.
Nahrát původní kód. vyzkoušet, přidat spi, vyzkoušet, přidat display bez lambda části, vyzkoušet... a zjistit kdy začne problém se zvukem.
Na mute se podívám časem, řeším teď lepší výpisy na displej.
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Aktivní autor
- Příspěvky: 66
- Registrován: 11. květen 2022, 18:54
- Dal poděkování: 61 poděkování
- Dostal poděkování: 8 poděkování
Re: ESP32-S3-BOX-3
Nahraný původní kód, vyzkoušeno - zvuk OK,
Přidáno spi, vyzkoušno - zvuk OK.
Přidán display bez lambda části, vyzkoušeno - začne se v odpovědích zadrhávat.
Přidáno spi, vyzkoušno - zvuk OK.
Přidán display bez lambda části, vyzkoušeno - začne se v odpovědích zadrhávat.
-
- Moderátor
- Příspěvky: 738
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 84 poděkování
- Dostal poděkování: 175 poděkování
Re: ESP32-S3-BOX-3
Super, tak podezření se potvrdilo, tohle já asi nevyřeším. Jedině pokud existuje nějaká jednoduchá cesta jak říct aby se o displej staralo druhé procesorové jádro.
Možná, když už máme url audia (ta line3), tak jej vzít a zavolat nějaký media player v homeassistant a předat mu url k přehrání.
Možná, když už máme url audia (ta line3), tak jej vzít a zavolat nějaký media player v homeassistant a předat mu url k přehrání.
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
- Pete30
- Moderátor
- Příspěvky: 2901
- Registrován: 30. září 2020, 20:33
- Dal poděkování: 152 poděkování
- Dostal poděkování: 319 poděkování
Re: ESP32-S3-BOX-3
Jo to už jsem zmínil v jiném vlákně, hodit pod
předání na jiný media_player, vyzkoušeno a funguje dobře.
A vypnout ten repro v box3.
Také bych chtěl testovat, ale stále jsem čekatel, tak nadcházející týden snad už ano
Kód: Vybrat vše
on_tts_start:
A vypnout ten repro v box3.
Také bych chtěl testovat, ale stále jsem čekatel, tak nadcházející týden snad už ano

Pokud nejsem přítomen tak jsem na rybách 
