From 40e18e493b811b959cc9217db51db4440628f331 Mon Sep 17 00:00:00 2001 From: Commander1024 Date: Sat, 27 May 2023 15:29:36 +0200 Subject: [PATCH] Assistant now working with speaker component, still issues with volume and LED. --- .HA_VERSION | 2 +- esphome/raspiaudio-muse-luxe.yaml | 151 ++++++++++++++++++++++-------- 2 files changed, 113 insertions(+), 40 deletions(-) diff --git a/.HA_VERSION b/.HA_VERSION index 45b7ebb..e109095 100644 --- a/.HA_VERSION +++ b/.HA_VERSION @@ -1 +1 @@ -2023.5.2 \ No newline at end of file +2023.5.4 \ No newline at end of file diff --git a/esphome/raspiaudio-muse-luxe.yaml b/esphome/raspiaudio-muse-luxe.yaml index 6b69963..0a7ee08 100644 --- a/esphome/raspiaudio-muse-luxe.yaml +++ b/esphome/raspiaudio-muse-luxe.yaml @@ -21,11 +21,18 @@ wifi: password: !secret fallback_psk esphome: - name: "${name}" + name: ${name} + friendly_name: ${friendly_name} name_add_mac_suffix: false project: name: raspiaudio.muse-luxe version: "1.0" + min_version: 2023.5.0 + on_boot: + then: + - media_player.volume_set: + id: luxe_out + volume: 50% esp32: board: esp-wrover-kit @@ -46,17 +53,20 @@ captive_portal: improv_serial: external_components: - - source: github://pr#3552 + - source: github://pr#3552 # DAC support https://github.com/esphome/esphome/pull/3552 components: [es8388] refresh: 0s +es8388: + i2s_audio: - i2s_lrclk_pin: GPIO25 i2s_bclk_pin: GPIO5 media_player: - platform: i2s_audio - name: ${friendly_name} + name: None + id: luxe_out dac_type: external i2s_dout_pin: GPIO26 mode: stereo @@ -64,26 +74,79 @@ media_player: number: GPIO21 inverted: true -es8388: +speaker: + - platform: i2s_audio + id: luxe_out_speaker + dac_type: external + i2s_dout_pin: GPIO26 + mode: stereo + +microphone: + - platform: i2s_audio + id: luxe_microphone + i2s_din_pin: GPIO35 + adc_type: external + pdm: false + +voice_assistant: + microphone: luxe_microphone + speaker: luxe_out_speaker + on_start: + - light.turn_on: + id: top_led + blue: 100% + red: 0% + green: 0% + effect: none + on_tts_start: + - light.turn_on: + id: top_led + blue: 60% + red: 20% + green: 20% + effect: none + on_tts_end: + - light.turn_on: + id: top_led + blue: 60% + red: 20% + green: 20% + effect: pulse + on_end: + - delay: 1s + - wait_until: + not: + speaker.is_playing: luxe_out_speaker + - light.turn_off: top_led + on_error: + - light.turn_on: + id: top_led + blue: 0% + red: 100% + green: 0% + effect: none + - delay: 1s + - light.turn_off: top_led sensor: - - platform: adc - pin: GPIO33 - name: ${name} Battery - icon: "mdi:battery-outline" - device_class: voltage - state_class: measurement - unit_of_measurement: V - update_interval: 15s - accuracy_decimals: 3 - attenuation: 11db - raw: true - filters: - - multiply: 0.00173913 # 2300 -> 4, for attenuation 11db, based on Olivier's code - - exponential_moving_average: - alpha: 0.2 - send_every: 2 - - delta: 0.002 + - platform: adc + pin: GPIO33 + name: Battery + icon: "mdi:battery-outline" + device_class: voltage + state_class: measurement + entity_category: diagnostic + unit_of_measurement: V + update_interval: 15s + accuracy_decimals: 3 + attenuation: 11db + raw: true + filters: + - multiply: 0.00173913 # 2300 -> 4, for attenuation 11db, based on Olivier's code + - exponential_moving_average: + alpha: 0.2 + send_every: 2 + - delta: 0.002 binary_sensor: - platform: gpio @@ -93,9 +156,9 @@ binary_sensor: mode: input: true pullup: true - name: ${friendly_name} Volume Up + name: Volume Up on_click: - - media_player.volume_up: + - media_player.volume_up: luxe_out - platform: gpio pin: number: GPIO32 @@ -103,9 +166,9 @@ binary_sensor: mode: input: true pullup: true - name: ${friendly_name} Volume Down + name: Volume Down on_click: - - media_player.volume_down: + - media_player.volume_down: luxe_out - platform: gpio pin: number: GPIO12 @@ -113,23 +176,33 @@ binary_sensor: mode: input: true pullup: true - name: ${friendly_name} Play Button - on_press: - - voice_assistant.start: - on_release: - - voice_assistant.stop: + name: Action + on_multi_click: + - timing: + - ON FOR AT MOST 350ms + - OFF FOR AT LEAST 10ms + then: + - media_player.toggle: luxe_out + - timing: + - ON FOR AT LEAST 350ms + then: + - voice_assistant.start: + - timing: + - ON FOR AT LEAST 350ms + - OFF FOR AT LEAST 10ms + then: + - voice_assistant.stop: + light: - platform: fastled_clockless - name: ${friendly_name} + name: None + id: top_led pin: GPIO22 chipset: SK6812 num_leds: 1 rgb_order: grb - -microphone: - - platform: i2s_audio - id: lux_microphone - i2s_din_pin: GPIO35 - -voice_assistant: - microphone: lux_microphone + gamma_correct: 2.8 + effects: + - pulse: + transition_length: 250ms + update_interval: 250ms