Compare commits
	
		
			4 Commits
		
	
	
		
			565df10fe0
			...
			7221213ac4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7221213ac4 | |||
| 28b76d0508 | |||
| 647e6711b8 | |||
| 7d5d7da2e8 | 
							
								
								
									
										276
									
								
								supersensor.yaml
									
									
									
									
									
								
							
							
						
						
									
										276
									
								
								supersensor.yaml
									
									
									
									
									
								
							@@ -27,6 +27,7 @@ esphome:
 | 
				
			|||||||
  project:
 | 
					  project:
 | 
				
			||||||
    name: joshuaboniface.supersensor
 | 
					    name: joshuaboniface.supersensor
 | 
				
			||||||
    version: "2.0"
 | 
					    version: "2.0"
 | 
				
			||||||
 | 
					  min_version: 2025.5.0
 | 
				
			||||||
  on_boot:
 | 
					  on_boot:
 | 
				
			||||||
    - priority: 600
 | 
					    - priority: 600
 | 
				
			||||||
      then:
 | 
					      then:
 | 
				
			||||||
@@ -38,19 +39,9 @@ esphome:
 | 
				
			|||||||
        - light.turn_on:
 | 
					        - light.turn_on:
 | 
				
			||||||
            id: output_led
 | 
					            id: output_led
 | 
				
			||||||
            effect: flash_white
 | 
					            effect: flash_white
 | 
				
			||||||
    - priority: -600
 | 
					
 | 
				
			||||||
      then:
 | 
					preferences:
 | 
				
			||||||
        - wait_until:
 | 
					  flash_write_interval: 15sec
 | 
				
			||||||
            api.connected:
 | 
					 | 
				
			||||||
        - delay: 5s
 | 
					 | 
				
			||||||
        - if:
 | 
					 | 
				
			||||||
            condition:
 | 
					 | 
				
			||||||
              switch.is_on: enable_voice_support
 | 
					 | 
				
			||||||
            then:
 | 
					 | 
				
			||||||
              - logger.log: "Initializing voice assistant on boot"
 | 
					 | 
				
			||||||
              - switch.turn_off: voice_support_active
 | 
					 | 
				
			||||||
              - delay: 2s
 | 
					 | 
				
			||||||
              - switch.turn_on: voice_support_active
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
dashboard_import:
 | 
					dashboard_import:
 | 
				
			||||||
  package_import_url: github://joshuaboniface/supersensor2/supersensor.yaml
 | 
					  package_import_url: github://joshuaboniface/supersensor2/supersensor.yaml
 | 
				
			||||||
@@ -59,8 +50,6 @@ esp32:
 | 
				
			|||||||
  board: esp32dev
 | 
					  board: esp32dev
 | 
				
			||||||
  framework:
 | 
					  framework:
 | 
				
			||||||
    type: esp-idf
 | 
					    type: esp-idf
 | 
				
			||||||
    version: 4.4.8
 | 
					 | 
				
			||||||
    platform_version: 5.4.0
 | 
					 | 
				
			||||||
    sdkconfig_options:
 | 
					    sdkconfig_options:
 | 
				
			||||||
      CONFIG_ESP32_DEFAULT_CPU_FREQ_240: "y"
 | 
					      CONFIG_ESP32_DEFAULT_CPU_FREQ_240: "y"
 | 
				
			||||||
      CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ: "240"
 | 
					      CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ: "240"
 | 
				
			||||||
@@ -259,28 +248,28 @@ script:
 | 
				
			|||||||
            id(supersensor_occupancy).publish_state(new_state);
 | 
					            id(supersensor_occupancy).publish_state(new_state);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
preferences:
 | 
					 | 
				
			||||||
  flash_write_interval: 15sec
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
logger:
 | 
					logger:
 | 
				
			||||||
  level: INFO
 | 
					  level: INFO
 | 
				
			||||||
  baud_rate: 115200
 | 
					  baud_rate: 115200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
api:
 | 
					api:
 | 
				
			||||||
  reboot_timeout: 15min
 | 
					  reboot_timeout: 15min
 | 
				
			||||||
  services:
 | 
					  on_client_connected:
 | 
				
			||||||
    - service: restart_voice_assistant
 | 
					    - script.execute: light_off
 | 
				
			||||||
      then:
 | 
					    - if:
 | 
				
			||||||
        - logger.log: "Manually restarting voice assistant"
 | 
					        condition:
 | 
				
			||||||
        - voice_assistant.stop:
 | 
					          - switch.is_on: enable_voice_support
 | 
				
			||||||
        - delay: 2s
 | 
					        then:
 | 
				
			||||||
        - if:
 | 
					          - micro_wake_word.start:
 | 
				
			||||||
            condition:
 | 
					  on_client_disconnected:
 | 
				
			||||||
              switch.is_on: enable_voice_support
 | 
					    - light.turn_on:
 | 
				
			||||||
            then:
 | 
					        id: output_led
 | 
				
			||||||
              - switch.turn_off: voice_support_active
 | 
					        effect: flash_white
 | 
				
			||||||
              - delay: 1s
 | 
					    - if:
 | 
				
			||||||
              - switch.turn_on: voice_support_active
 | 
					        condition:
 | 
				
			||||||
 | 
					          - switch.is_on: enable_voice_support
 | 
				
			||||||
 | 
					        then:
 | 
				
			||||||
 | 
					          - micro_wake_word.stop:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ota:
 | 
					ota:
 | 
				
			||||||
  platform: esphome
 | 
					  platform: esphome
 | 
				
			||||||
@@ -307,44 +296,7 @@ time:
 | 
				
			|||||||
      then:
 | 
					      then:
 | 
				
			||||||
        - logger.log: "Time synchronized with Home Assistant"
 | 
					        - logger.log: "Time synchronized with Home Assistant"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uart:
 | 
					 | 
				
			||||||
  id: ld2410_uart
 | 
					 | 
				
			||||||
  rx_pin: GPIO19
 | 
					 | 
				
			||||||
  tx_pin: GPIO18
 | 
					 | 
				
			||||||
  baud_rate: 256000
 | 
					 | 
				
			||||||
  data_bits: 8
 | 
					 | 
				
			||||||
  stop_bits: 1
 | 
					 | 
				
			||||||
  parity: NONE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
i2c:
 | 
					 | 
				
			||||||
  sda: GPIO27
 | 
					 | 
				
			||||||
  scl: GPIO26
 | 
					 | 
				
			||||||
  scan: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
i2s_audio:
 | 
					 | 
				
			||||||
  i2s_lrclk_pin: GPIO17 # WS
 | 
					 | 
				
			||||||
  i2s_bclk_pin: GPIO16  # SCK
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
microphone:
 | 
					 | 
				
			||||||
  - platform: i2s_audio
 | 
					 | 
				
			||||||
    id: mic
 | 
					 | 
				
			||||||
    adc_type: external
 | 
					 | 
				
			||||||
    i2s_din_pin: GPIO4 # SD
 | 
					 | 
				
			||||||
    pdm: false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
interval:
 | 
					interval:
 | 
				
			||||||
  - interval: 5s
 | 
					 | 
				
			||||||
    then:
 | 
					 | 
				
			||||||
      - if:
 | 
					 | 
				
			||||||
          condition:
 | 
					 | 
				
			||||||
            and:
 | 
					 | 
				
			||||||
              - switch.is_on: enable_voice_support
 | 
					 | 
				
			||||||
              - switch.is_on: voice_support_active
 | 
					 | 
				
			||||||
              - not: voice_assistant.is_running
 | 
					 | 
				
			||||||
          then:
 | 
					 | 
				
			||||||
            - logger.log: "Voice assistant not running but should be; restarting"
 | 
					 | 
				
			||||||
            - voice_assistant.start_continuous:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Regular state reporting to HASS
 | 
					  # Regular state reporting to HASS
 | 
				
			||||||
  - interval: 30s
 | 
					  - interval: 30s
 | 
				
			||||||
    then:
 | 
					    then:
 | 
				
			||||||
@@ -364,59 +316,72 @@ interval:
 | 
				
			|||||||
            App.safe_reboot();
 | 
					            App.safe_reboot();
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uart:
 | 
				
			||||||
 | 
					  id: ld2410_uart
 | 
				
			||||||
 | 
					  rx_pin: GPIO19
 | 
				
			||||||
 | 
					  tx_pin: GPIO18
 | 
				
			||||||
 | 
					  baud_rate: 256000
 | 
				
			||||||
 | 
					  data_bits: 8
 | 
				
			||||||
 | 
					  stop_bits: 1
 | 
				
			||||||
 | 
					  parity: NONE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					i2c:
 | 
				
			||||||
 | 
					  sda: GPIO27
 | 
				
			||||||
 | 
					  scl: GPIO26
 | 
				
			||||||
 | 
					  scan: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					i2s_audio:
 | 
				
			||||||
 | 
					  - id: i2s_input
 | 
				
			||||||
 | 
					    i2s_lrclk_pin:
 | 
				
			||||||
 | 
					      number: GPIO17 # WS
 | 
				
			||||||
 | 
					    i2s_bclk_pin:
 | 
				
			||||||
 | 
					      number: GPIO16  # SCK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					microphone:
 | 
				
			||||||
 | 
					  - platform: i2s_audio
 | 
				
			||||||
 | 
					    id: mic
 | 
				
			||||||
 | 
					    i2s_audio_id: i2s_input
 | 
				
			||||||
 | 
					    i2s_din_pin: GPIO4 # SD
 | 
				
			||||||
 | 
					    adc_type: external
 | 
				
			||||||
 | 
					    pdm: false
 | 
				
			||||||
 | 
					    channel: left
 | 
				
			||||||
 | 
					
 | 
				
			||||||
micro_wake_word:
 | 
					micro_wake_word:
 | 
				
			||||||
 | 
					  id: mww
 | 
				
			||||||
 | 
					  microphone:
 | 
				
			||||||
 | 
					    microphone: mic
 | 
				
			||||||
 | 
					    gain_factor: 31
 | 
				
			||||||
 | 
					  stop_after_detection: false
 | 
				
			||||||
  models:
 | 
					  models:
 | 
				
			||||||
    - model: hey_jarvis
 | 
					    - model: hey_jarvis
 | 
				
			||||||
 | 
					      id: mww_hey_jarvis
 | 
				
			||||||
 | 
					    - model: hey_mycroft
 | 
				
			||||||
 | 
					      id: mww_hey_mycroft
 | 
				
			||||||
 | 
					    - model: ok_nabu
 | 
				
			||||||
 | 
					      id: mww_okay_nabu
 | 
				
			||||||
 | 
					    - model: alexa
 | 
				
			||||||
 | 
					      id: mww_alexa
 | 
				
			||||||
 | 
					  vad:
 | 
				
			||||||
  on_wake_word_detected:
 | 
					  on_wake_word_detected:
 | 
				
			||||||
    then:
 | 
					    - logger.log: "A wake word was detected!"
 | 
				
			||||||
      - voice_assistant.start:
 | 
					    - if:
 | 
				
			||||||
          wake_word: !lambda return wake_word;
 | 
					        condition:
 | 
				
			||||||
 | 
					          voice_assistant.is_running:
 | 
				
			||||||
# Include the Espressif Audio Development Framework for VAD support
 | 
					        then:
 | 
				
			||||||
esp_adf:
 | 
					          voice_assistant.stop:
 | 
				
			||||||
external_components:
 | 
					    - voice_assistant.start:
 | 
				
			||||||
  - source: github://pr#5230
 | 
					        wake_word: !lambda return wake_word;
 | 
				
			||||||
    components:
 | 
					 | 
				
			||||||
      - esp_adf
 | 
					 | 
				
			||||||
    refresh: 0s
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
voice_assistant:
 | 
					voice_assistant:
 | 
				
			||||||
 | 
					  id: va
 | 
				
			||||||
  microphone: mic
 | 
					  microphone: mic
 | 
				
			||||||
 | 
					  micro_wake_word: mww
 | 
				
			||||||
  use_wake_word: false
 | 
					  use_wake_word: false
 | 
				
			||||||
  noise_suppression_level: 3
 | 
					  noise_suppression_level: 0
 | 
				
			||||||
  auto_gain: 31dBFS
 | 
					  auto_gain: 31 dbfs
 | 
				
			||||||
  volume_multiplier: 8.0
 | 
					  volume_multiplier: 8
 | 
				
			||||||
  id: assist
 | 
					 | 
				
			||||||
  on_error:
 | 
					 | 
				
			||||||
    - logger.log: "voice error"
 | 
					 | 
				
			||||||
    - if:
 | 
					 | 
				
			||||||
        condition:
 | 
					 | 
				
			||||||
          and:
 | 
					 | 
				
			||||||
            - switch.is_on: voice_support_active
 | 
					 | 
				
			||||||
            - not: voice_assistant.is_running
 | 
					 | 
				
			||||||
        then:
 | 
					 | 
				
			||||||
          - voice_assistant.start_continuous:
 | 
					 | 
				
			||||||
  on_end:
 | 
					 | 
				
			||||||
    - logger.log: "voice ended"
 | 
					 | 
				
			||||||
    - if:
 | 
					 | 
				
			||||||
        condition:
 | 
					 | 
				
			||||||
          and:
 | 
					 | 
				
			||||||
            - switch.is_on: voice_support_active
 | 
					 | 
				
			||||||
            - not: voice_assistant.is_running
 | 
					 | 
				
			||||||
        then:
 | 
					 | 
				
			||||||
          - voice_assistant.start_continuous:
 | 
					 | 
				
			||||||
  on_client_connected:
 | 
					 | 
				
			||||||
    - light.turn_off:
 | 
					 | 
				
			||||||
        id: output_led
 | 
					 | 
				
			||||||
        transition_length: 2s
 | 
					 | 
				
			||||||
    - script.execute: light_off
 | 
					 | 
				
			||||||
    - lambda: |-
 | 
					 | 
				
			||||||
        id(voice_support_active).publish_state(true);
 | 
					 | 
				
			||||||
  on_client_disconnected:
 | 
					 | 
				
			||||||
    - light.turn_on:
 | 
					 | 
				
			||||||
        id: output_led
 | 
					 | 
				
			||||||
        effect: flash_white
 | 
					 | 
				
			||||||
  on_wake_word_detected:
 | 
					  on_wake_word_detected:
 | 
				
			||||||
 | 
					    - logger.log: "Wake word detected in VA pipeline"
 | 
				
			||||||
    - light.turn_on:
 | 
					    - light.turn_on:
 | 
				
			||||||
        id: output_led
 | 
					        id: output_led
 | 
				
			||||||
        brightness: 100%
 | 
					        brightness: 100%
 | 
				
			||||||
@@ -424,6 +389,7 @@ voice_assistant:
 | 
				
			|||||||
        green: 0
 | 
					        green: 0
 | 
				
			||||||
        blue: 1
 | 
					        blue: 1
 | 
				
			||||||
  on_listening:
 | 
					  on_listening:
 | 
				
			||||||
 | 
					    - logger.log: "Listening for commands"
 | 
				
			||||||
    - light.turn_on:
 | 
					    - light.turn_on:
 | 
				
			||||||
        id: output_led
 | 
					        id: output_led
 | 
				
			||||||
        brightness: 100%
 | 
					        brightness: 100%
 | 
				
			||||||
@@ -431,14 +397,13 @@ voice_assistant:
 | 
				
			|||||||
        green: 0
 | 
					        green: 0
 | 
				
			||||||
        blue: 1
 | 
					        blue: 1
 | 
				
			||||||
  on_stt_vad_end:
 | 
					  on_stt_vad_end:
 | 
				
			||||||
 | 
					    - logger.log: "Processing STT result"
 | 
				
			||||||
    - light.turn_on:
 | 
					    - light.turn_on:
 | 
				
			||||||
        id: output_led
 | 
					        id: output_led
 | 
				
			||||||
        brightness: 75%
 | 
					        brightness: 75%
 | 
				
			||||||
        red: 0
 | 
					        red: 0
 | 
				
			||||||
        green: 1
 | 
					        green: 1
 | 
				
			||||||
        blue: 1
 | 
					        blue: 1    
 | 
				
			||||||
  on_stt_end:
 | 
					 | 
				
			||||||
    - script.execute: light_off
 | 
					 | 
				
			||||||
  on_tts_start:
 | 
					  on_tts_start:
 | 
				
			||||||
    - if:
 | 
					    - if:
 | 
				
			||||||
        condition:
 | 
					        condition:
 | 
				
			||||||
@@ -685,16 +650,6 @@ sensor:
 | 
				
			|||||||
    update_interval: 5s
 | 
					    update_interval: 5s
 | 
				
			||||||
    entity_category: diagnostic
 | 
					    entity_category: diagnostic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - platform: template
 | 
					 | 
				
			||||||
    name: "ESP32 CPU Frequency"
 | 
					 | 
				
			||||||
    icon: mdi:cpu-32-bit
 | 
					 | 
				
			||||||
    accuracy_decimals: 1
 | 
					 | 
				
			||||||
    unit_of_measurement: MHz
 | 
					 | 
				
			||||||
    update_interval: 5s
 | 
					 | 
				
			||||||
    lambda: |-
 | 
					 | 
				
			||||||
      return ets_get_cpu_frequency();
 | 
					 | 
				
			||||||
    entity_category: diagnostic
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - platform: template
 | 
					  - platform: template
 | 
				
			||||||
    name: "ESP32 Free Memory"
 | 
					    name: "ESP32 Free Memory"
 | 
				
			||||||
    icon: mdi:memory
 | 
					    icon: mdi:memory
 | 
				
			||||||
@@ -718,7 +673,9 @@ binary_sensor:
 | 
				
			|||||||
  - platform: gpio
 | 
					  - platform: gpio
 | 
				
			||||||
    name: "PIR GPIO"
 | 
					    name: "PIR GPIO"
 | 
				
			||||||
    id: pir_gpio
 | 
					    id: pir_gpio
 | 
				
			||||||
    pin: GPIO32
 | 
					    pin:
 | 
				
			||||||
 | 
					      number: GPIO32
 | 
				
			||||||
 | 
					      mode: INPUT_PULLUP
 | 
				
			||||||
    internal: false
 | 
					    internal: false
 | 
				
			||||||
    device_class: motion
 | 
					    device_class: motion
 | 
				
			||||||
    on_press:
 | 
					    on_press:
 | 
				
			||||||
@@ -789,26 +746,9 @@ switch:
 | 
				
			|||||||
    optimistic: true
 | 
					    optimistic: true
 | 
				
			||||||
    restore_mode: RESTORE_DEFAULT_OFF
 | 
					    restore_mode: RESTORE_DEFAULT_OFF
 | 
				
			||||||
    on_turn_on:
 | 
					    on_turn_on:
 | 
				
			||||||
      - switch.turn_on: voice_support_active
 | 
					      - micro_wake_word.start:
 | 
				
			||||||
    on_turn_off:
 | 
					    on_turn_off:
 | 
				
			||||||
      - switch.turn_off: voice_support_active
 | 
					      - micro_wake_word.stop:
 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Active voice support flag/switch
 | 
					 | 
				
			||||||
  - platform: template
 | 
					 | 
				
			||||||
    name: "Voice Support Active"
 | 
					 | 
				
			||||||
    icon: mdi:account-voice
 | 
					 | 
				
			||||||
    id: voice_support_active
 | 
					 | 
				
			||||||
    optimistic: true
 | 
					 | 
				
			||||||
    restore_mode: ALWAYS_OFF
 | 
					 | 
				
			||||||
    entity_category: config
 | 
					 | 
				
			||||||
    on_turn_on:
 | 
					 | 
				
			||||||
      - lambda: id(assist).set_use_wake_word(true);
 | 
					 | 
				
			||||||
      - voice_assistant.stop:
 | 
					 | 
				
			||||||
      - delay: 1s
 | 
					 | 
				
			||||||
      - voice_assistant.start_continuous:
 | 
					 | 
				
			||||||
    on_turn_off:
 | 
					 | 
				
			||||||
      - voice_assistant.stop:
 | 
					 | 
				
			||||||
      - lambda: id(assist).set_use_wake_word(false);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Global enable/disable for presence LED
 | 
					  # Global enable/disable for presence LED
 | 
				
			||||||
  - platform: template
 | 
					  - platform: template
 | 
				
			||||||
@@ -832,12 +772,12 @@ switch:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
number:
 | 
					number:
 | 
				
			||||||
  # Temperature offset:
 | 
					  # Temperature offset:
 | 
				
			||||||
  # A calibration from -10 to +5 for the temperature sensor
 | 
					  # A calibration from -30 to +5 for the temperature sensor
 | 
				
			||||||
  - platform: template
 | 
					  - platform: template
 | 
				
			||||||
    name: "Temperature Offset"
 | 
					    name: "Temperature Offset"
 | 
				
			||||||
    id: temperature_offset_setter
 | 
					    id: temperature_offset_setter
 | 
				
			||||||
    min_value: -10
 | 
					    min_value: -30
 | 
				
			||||||
    max_value: 5
 | 
					    max_value: 10
 | 
				
			||||||
    step: 0.1
 | 
					    step: 0.1
 | 
				
			||||||
    lambda: |-
 | 
					    lambda: |-
 | 
				
			||||||
      return id(temperature_offset);
 | 
					      return id(temperature_offset);
 | 
				
			||||||
@@ -848,12 +788,12 @@ number:
 | 
				
			|||||||
            value: !lambda 'return float(x);'
 | 
					            value: !lambda 'return float(x);'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Humidity offset:
 | 
					  # Humidity offset:
 | 
				
			||||||
  # A calibration from -10 to +10 for the humidity sensor
 | 
					  # A calibration from -20 to +20 for the humidity sensor
 | 
				
			||||||
  - platform: template
 | 
					  - platform: template
 | 
				
			||||||
    name: "Humidity Offset"
 | 
					    name: "Humidity Offset"
 | 
				
			||||||
    id: humidity_offset_setter
 | 
					    id: humidity_offset_setter
 | 
				
			||||||
    min_value: -10
 | 
					    min_value: -20
 | 
				
			||||||
    max_value: 10
 | 
					    max_value: 20
 | 
				
			||||||
    step: 0.1
 | 
					    step: 0.1
 | 
				
			||||||
    lambda: |-
 | 
					    lambda: |-
 | 
				
			||||||
      return id(humidity_offset);
 | 
					      return id(humidity_offset);
 | 
				
			||||||
@@ -951,7 +891,6 @@ number:
 | 
				
			|||||||
        name: "LD2410C Gate8 Still Threshold"
 | 
					        name: "LD2410C Gate8 Still Threshold"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
select:
 | 
					select:
 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Occupancy Detect Mode:
 | 
					  # Occupancy Detect Mode:
 | 
				
			||||||
  # This selector defines the detection mode for the integrated occupancy sensor. Depending on the
 | 
					  # This selector defines the detection mode for the integrated occupancy sensor. Depending on the
 | 
				
			||||||
  # selected option, only the given sensor(s) will be used to judge when occupancy begins (i.e.
 | 
					  # selected option, only the given sensor(s) will be used to judge when occupancy begins (i.e.
 | 
				
			||||||
@@ -1080,6 +1019,39 @@ select:
 | 
				
			|||||||
    distance_resolution:
 | 
					    distance_resolution:
 | 
				
			||||||
      name: "LD2410C Distance Resolution"
 | 
					      name: "LD2410C Distance Resolution"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - platform: template
 | 
				
			||||||
 | 
					    name: "Wake word sensitivity"
 | 
				
			||||||
 | 
					    optimistic: true
 | 
				
			||||||
 | 
					    initial_option: Moderately sensitive
 | 
				
			||||||
 | 
					    restore_value: true
 | 
				
			||||||
 | 
					    entity_category: config
 | 
				
			||||||
 | 
					    options:
 | 
				
			||||||
 | 
					      - Slightly sensitive
 | 
				
			||||||
 | 
					      - Moderately sensitive
 | 
				
			||||||
 | 
					      - Very sensitive
 | 
				
			||||||
 | 
					    on_value:
 | 
				
			||||||
 | 
					      # Sets specific wake word probabilities computed for each particular model
 | 
				
			||||||
 | 
					      # Note probability cutoffs are set as a quantized uint8 value, each comment has the corresponding floating point cutoff
 | 
				
			||||||
 | 
					      # False Accepts per Hour values are tested against all units and channels from the Dinner Party Corpus.
 | 
				
			||||||
 | 
					      # These cutoffs apply only to the specific models included in the firmware: okay_nabu@20241226.3, hey_jarvis@v2, hey_mycroft@v2
 | 
				
			||||||
 | 
					      lambda: |-
 | 
				
			||||||
 | 
					        if (x == "Slightly sensitive") {
 | 
				
			||||||
 | 
					          id(mww_jarvis).set_probability_cutoff(247);       // 0.97 -> 0.563 FAPH on DipCo (Manifest's default)
 | 
				
			||||||
 | 
					          id(mww_hey_mycroft).set_probability_cutoff(253);  // 0.99 -> 0.567 FAPH on DipCo
 | 
				
			||||||
 | 
					          id(mww_okay_nabu).set_probability_cutoff(217);    // 0.85 -> 0.000 FAPH on DipCo (Manifest's default)
 | 
				
			||||||
 | 
					          id(mww_alexa).set_probability_cutoff(217);        // 0.85 -> 0.000 FAPH on DipCo (Manifest's default)
 | 
				
			||||||
 | 
					        } else if (x == "Moderately sensitive") {
 | 
				
			||||||
 | 
					          id(mww_hey_jarvis).set_probability_cutoff(235);   // 0.92 -> 0.939 FAPH on DipCo
 | 
				
			||||||
 | 
					          id(mww_hey_mycroft).set_probability_cutoff(242);  // 0.95 -> 1.502 FAPH on DipCo (Manifest's default)
 | 
				
			||||||
 | 
					          id(mww_okay_nabu).set_probability_cutoff(176);    // 0.69 -> 0.376 FAPH on DipCo
 | 
				
			||||||
 | 
					          id(mww_alexa).set_probability_cutoff(176);        // 0.69 -> 0.376 FAPH on DipCo
 | 
				
			||||||
 | 
					        } else if (x == "Very sensitive") {
 | 
				
			||||||
 | 
					          id(mww_hey_jarvis).set_probability_cutoff(212);   // 0.83 -> 1.502 FAPH on DipCo
 | 
				
			||||||
 | 
					          id(mww_hey_mycroft).set_probability_cutoff(237);  // 0.93 -> 1.878 FAPH on DipCo
 | 
				
			||||||
 | 
					          id(mww_okay_nabu).set_probability_cutoff(143);    // 0.56 -> 0.751 FAPH on DipCo
 | 
				
			||||||
 | 
					          id(mww_alexa).set_probability_cutoff(143);        // 0.56 -> 0.751 FAPH on DipCo
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
text_sensor:
 | 
					text_sensor:
 | 
				
			||||||
  - platform: wifi_info
 | 
					  - platform: wifi_info
 | 
				
			||||||
    ip_address:
 | 
					    ip_address:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user