Projet voice control

J’avais en effet pris le media_player de l’autre ESP !
J’ai corrigé mais rien n’y fait, media_player: media_sat1 non plus mais à partir du moment ou même dans les services le media_player ne fonctionne pas, ça me semble compliqué qu’il fonctionne sur voice_assistant: :frowning:

Il prends bien ma commande :

 on_boot:
      - delay: 10s
      - media_player.volume_set:
          id: media_sat1
          volume: 50%

image

Bob

  on_tts_end:
    - homeassistant.service:
        service: media_player.play_media
        data:
          entity_id: media_player.esp32_psram_voice_control_2_media_sat1 #denon_avc_x3700h mibox3  freebox_player_2
          media_content_id: !lambda 'return x;'
          media_content_type: music
          announce: "true"
    - delay : 8s
    - homeassistant.service:
       service: tts.clear_cache

Logs:

[19:07:36][W][component:214]: Component i2s_audio.media_player took a long time for an operation (0.53 s).
[19:07:36][W][component:215]: Components should block for at most 20-30ms.

Décidemment, quand ca veut pas :thinking:

j’essaierai un code yaml purement media_player ( sans voice assistant ni autre fioriture) dans un premier temps pour voir si même symptôme i2S.

Tu peux aussi essayer en splittant ton I2S en 2 ( 1 pour mic et l’autre pour media_player) , et en recablant bien sur.

C’est quel modèle exact ton ESP ?

Comme tu dis :slight_smile:
Mon ESP32 :

J’aurai plus de temps demain, je dois filer…
Merci encore :wink:
Bob

Ca à l’air d’être un esp32-S2 non ?

Note
Support for ESP32 variants such as the S2, S3 and C3 is still in development and there could be issues.

ESP32 Platform — ESPHome

peut-être faut-il ajouter « variant » ou essayer un autre framework

j’ai un esp32-S3 T-Display-s3 et j’ai c’est config dans mon yaml:

esp32:
  board: esp32-s3-devkitc-1
  variant: esp32s3
  framework:
    type: arduino
  flash_size: 16MB
1 « J'aime »

c’est un esp32 , pas S2.

Merci à vous, je teste ça demain :smiley:
Bob

Bonjour,
Je vais regarder en fonction du lien Git de @WarC0zes, peut être changer de GPIO, sinon je ne vois pas trop que faire. C’est surprenant que le media_player soit disponible, que je puisse modifier le niveau de sortie souhaité mais qu’aucun son ne sorte, ni suite à une commande vocale, ni depuis l’appel de service des outils de dev TTS qui me met pourtant OK lors de l’appel.
Bob

Bon, pas moyen d’avoir de media_player sur mon ESP, pourtant reconnu dans les entités, avec le speaker peu d’option, temps de réaction trop long (PI 4) même si certaines commandes fonctionnent et message de retour aléatoire sur speaker, merci pour tout mais pour l’instant je vais cliquer sur mes petits interrupteurs Aqara ;-), j’ai vu des sujets sur https et wifi mais pour l’instant tout ça me semble un peu jeune, ou bien je suis trop vieux :rofl:
Bob

Hello @Bob

Tu as essayé en ne faisant qu’un media player de ton ESP ( sans voice assistant) ?
Histoire d’avoir une base fonctionnelle pour cette partie

Je vais tester demain midi et je te dis :wink:
Bob

Ta vu quoi de possible avec les petits interrupteur aqara ?

Bonjour,
@WarC0zes : Mes interrupteurs ou cube Aqara me permettent de piloter toutes mes lampes.

J’ai enlevé le micro de mon montage et voici le YAML de mon ESP:

esphome:
  name: esp32-psram-voice-control-2
  friendly_name: Esp32 Psram Voice Control 2


esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: debug

# Enable Home Assistant API
api:
  encryption:
    key: "gDrtxsGTMhxxxxxxxxxxxxxxx110AGjOhvdY="

ota:
  password: "6e630exxxxxxxxxxxxxxd7d59f97"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.47
    gateway: 192.168.1.254
    subnet: 255.255.255.0  

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Psram-Voice-Control-2"
    password: "Oklxxxxer2hj"

captive_portal:

debug:
  update_interval: 5s

text_sensor:
  - platform: debug
    device:
      name: "Device Info"
    reset_reason:
      name: "Reset Reason"

sensor:
  - platform: debug
    free:
      name: "Heap Free"
    block:
      name: "Heap Max Block"
    loop_time:
      name: "Loop Time"
    #psram:
    #  name: "Free PSRAM"

# voice assistant
i2s_audio:
  - id: i2s_in
    i2s_lrclk_pin: GPIO26   #WS / LRC
    i2s_bclk_pin: GPIO25    #SCK /BCLK

media_player:
  - platform: i2s_audio
    id: media_sat2
    name: "media_sat2"
    i2s_dout_pin: GPIO27
    dac_type: external
    mode: mono
            
switch:
  - platform: gpio
    name: "LedVerte"
    id: led
    pin: 21
  - platform: gpio
    name: "LedIo23"
    id: reveil
    pin: 23


web_server:
  port: 80

Mes entités: LED OK
image

Le journal après appel du service TTS:

Esp32 Psram Voice Control 2 media_sat2 changé en Inactif déclenché par le service Text-to-speech (TTS): Say a TTS message with google_translate
12:59:35 - Il y a 13 secondes - MassimoHome
Esp32 Psram Voice Control 2 media_sat2 changé en Lecture en cours déclenché par le service Text-to-speech (TTS): Say a TTS message with google_translate
12:59:35 - Il y a 14 secondes - MassimoHome

Log ESP :

[13:02:33][I][app:102]: ESPHome version 2023.12.5 compiled on Jan 11 2024, 12:56:56
[13:02:33][C][wifi:573]: WiFi:
[13:02:33][C][wifi:405]:   Local MAC: 34:98:7A:6C:0D:74
[13:02:33][C][wifi:410]:   SSID: [redacted]
[13:02:33][C][wifi:411]:   IP Address: 192.168.1.47
[13:02:33][C][wifi:413]:   BSSID: [redacted]
[13:02:33][C][wifi:414]:   Hostname: 'esp32-psram-voice-control-2'
[13:02:33][C][wifi:416]:   Signal strength: -56 dB ▂▄▆█
[13:02:33][C][wifi:420]:   Channel: 6
[13:02:33][C][wifi:421]:   Subnet: 255.255.255.0
[13:02:33][C][wifi:422]:   Gateway: 192.168.1.254
[13:02:33][C][wifi:423]:   DNS1: 0.0.0.0
[13:02:33][C][wifi:424]:   DNS2: 0.0.0.0
[13:02:33][C][logger:443]: Logger:
[13:02:33][C][logger:444]:   Level: DEBUG
[13:02:33][C][logger:445]:   Log Baud Rate: 115200
[13:02:33][C][logger:447]:   Hardware UART: UART0
[13:02:33][C][switch.gpio:068]: GPIO Switch 'LedVerte'
[13:02:33][C][switch.gpio:091]:   Restore Mode: always OFF
[13:02:33][C][switch.gpio:031]:   Pin: GPIO21
[13:02:33][C][switch.gpio:068]: GPIO Switch 'LedIo23'
[13:02:33][C][switch.gpio:091]:   Restore Mode: always OFF
[13:02:33][C][switch.gpio:031]:   Pin: GPIO23
[13:02:33][C][captive_portal:088]: Captive Portal:
[13:02:33][C][web_server:168]: Web Server:
[13:02:33][C][web_server:169]:   Address: 192.168.1.47:80
[13:02:34][C][mdns:115]: mDNS:
[13:02:34][C][mdns:116]:   Hostname: esp32-psram-voice-control-2
[13:02:34][C][ota:097]: Over-The-Air Updates:
[13:02:34][C][ota:098]:   Address: 192.168.1.47:3232
[13:02:34][C][ota:101]:   Using Password.
[13:02:34][C][api:139]: API Server:
[13:02:34][C][api:140]:   Address: 192.168.1.47:6053
[13:02:34][C][api:142]:   Using noise encryption: YES
[13:02:34][C][debug:064]: Debug component:
[13:02:34][C][debug:066]:   Device info 'Device Info'
[13:02:34][C][debug:066]:     Icon: 'mdi:chip'
[13:02:34][C][debug:069]:   Free space on heap 'Heap Free'
[13:02:34][C][debug:069]:     State Class: ''
[13:02:34][C][debug:069]:     Unit of Measurement: 'B'
[13:02:34][C][debug:069]:     Accuracy Decimals: 0
[13:02:34][C][debug:069]:     Icon: 'mdi:counter'
[13:02:34][C][debug:070]:   Largest free heap block 'Heap Max Block'
[13:02:34][C][debug:070]:     State Class: ''
[13:02:34][C][debug:070]:     Unit of Measurement: 'B'
[13:02:34][C][debug:070]:     Accuracy Decimals: 0
[13:02:34][C][debug:070]:     Icon: 'mdi:counter'
[13:02:34][D][debug:076]: ESPHome version 2023.12.5
[13:02:34][D][debug:080]: Free Heap Size: 204920 bytes
[13:02:34][D][debug:110]: Flash Chip: Size=4096kB Speed=40MHz Mode=DIO
[13:02:34][D][debug:159]: Chip: Model=ESP32, Features=WIFI_BGN,BLE,BT, Cores=2, Revision=3
[13:02:34][D][debug:167]: ESP-IDF Version: v4.4.2
[13:02:34][D][debug:172]: EFuse MAC: 34:98:7A:6C:0D:74
[13:02:34][D][debug:272]: Reset Reason: Software Reset CPU
[13:02:34][D][debug:317]: Wakeup Reason: Unknown
[13:02:34][D][text_sensor:064]: 'Device Info': Sending state '2023.12.5|Flash: 4096kB Speed:40MHz Mode:DIO|Chip: ESP32 Features:WIFI_BGN,BLE,BT, Cores:2 Revision:3|ESP-IDF: v4.4.2|EFuse MAC: 34:98:7A:6C:0D:74|Reset: Software Reset CPU|Wakeup: Unknown'
[13:02:34][D][text_sensor:064]: 'Reset Reason': Sending state 'Software Reset CPU'
[13:02:34][C][audio:203]: Audio:
[13:02:34][C][audio:225]:   External DAC channels: 2
[13:02:34][C][audio:226]:   I2S DOUT Pin: 27
................
[13:03:30][D][sensor:094]: 'Loop Time': Sending state 37.00000 ms with 0 decimals of accuracy
[13:03:34][D][media_player:059]: 'media_sat2' - Setting
[13:03:34][D][media_player:066]:   Media URL: https://mondomaine.fr/api/tts_proxy/411a4c0509c549d4498a201dd82b20da580b4edd_fr-fr_-_google_translate.mp3
[13:03:34][W][component:214]: Component i2s_audio.media_player took a long time for an operation (0.53 s).
[13:03:34][W][component:215]: Components should block for at most 20-30ms.
[13:03:35][W][component:214]: Component i2s_audio.media_player took a long time for an operation (0.49 s).
[13:03:35][W][component:215]: Components should block for at most 20-30ms.

Mais toujours pas de son :upside_down_face:
Le fichier mp3 est bien créé suite à l’appel du service TTS dans : \192.168.1.32\config\tts
Bob

Hello @bob,

Ca pourrait être un pb de ssl :thinking:
Ca fait pas longtemps que j’ai débuté avec ESPHome mais il me semble avoir vu des articles traitant de pb media_player liés aux connexions ssl
En local, tu te connecte bien sans erreur à ton HA via son adresse IP en Http ? de l’exterieur en Https via nom de domaine ?

J’ai aussi vu quelques allusions au https, je me connecte toujours en https avec mon nom de domaine, même depuis chez moi.
Il me semble qu’en http avec IP:8123 ça ne fonctionne pas mais je testerai ce soir.
Bob

Perso, j’utilise l’addon NGINX Home Assistant SSL proxy ( pas NGINX proxy manager) pour splitter l’accès local en Http et le distant en https.
C’est super simple à mettre en place

1 « J'aime »

J’ajouterai l’adresse local pour voir :

Bob

J’ai la même config avec NGINX Home Assistant SSL proxy, http en local et https en extérieur.
Pareil, pour éviter des soucis avec des intégrations en local, qu’avec que le https j’avais des problèmes de connexions.

1 « J'aime »

OK, je vais tester l’addon NGINX Home Assistant SSL proxy en rentrant.
Merci
Bob

Bonsoir,

peu de temps et pas envie de perdre mon accès :wink:

Donc dans la configuration de l’Addon je mets juste mon domaine ?

Dans le configuration.yaml:

je remplace :

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem
  ip_ban_enabled: true
  login_attempts_threshold: 5

Par :

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
  ip_ban_enabled: true
  login_attempts_threshold: 5

En remplaçant l’IP par mon IP fixe freebox, ou l’IP locale ?
Je suis développeur mais pas champion en réseau :wink:

PS : je n’ai pas d’accès avec 192.168.1.32:8123
Merci
Bob