Compare commits
2 Commits
e224044de3
...
5aa502ea98
Author | SHA1 | Date | |
---|---|---|---|
5aa502ea98 | |||
64cb43dec8 |
@ -36,9 +36,13 @@ esphome:
|
||||
id(pir_presence).publish_state(false);
|
||||
id(light_presence).publish_state(false);
|
||||
id(radar_presence).publish_state(false);
|
||||
- light.turn_on:
|
||||
id: output_led
|
||||
effect: flash_white
|
||||
- priority: -100
|
||||
then:
|
||||
- if:
|
||||
condition:
|
||||
- switch.is_on: enable_voice_support
|
||||
then:
|
||||
- micro_wake_word.start:
|
||||
|
||||
preferences:
|
||||
flash_write_interval: 15sec
|
||||
@ -274,32 +278,32 @@ logger:
|
||||
|
||||
api:
|
||||
reboot_timeout: 15min
|
||||
on_client_connected:
|
||||
- logger.log:
|
||||
format: "Client %s (IP %s) connected to API"
|
||||
args: ["client_info.c_str()", "client_address.c_str()"]
|
||||
- script.execute: light_off
|
||||
- if:
|
||||
condition:
|
||||
lambda: |-
|
||||
return id(enable_voice_support).state &&
|
||||
!id(mww).is_running();
|
||||
then:
|
||||
- micro_wake_word.start:
|
||||
on_client_disconnected:
|
||||
- logger.log:
|
||||
format: "Client %s (IP %s) disconnected from API"
|
||||
args: ["client_info.c_str()", "client_address.c_str()"]
|
||||
- if:
|
||||
condition:
|
||||
lambda: |-
|
||||
return id(enable_voice_support).state &&
|
||||
id(mww).is_running();
|
||||
then:
|
||||
- micro_wake_word.stop:
|
||||
- light.turn_on:
|
||||
id: output_led
|
||||
effect: flash_white
|
||||
# on_client_connected:
|
||||
# - logger.log:
|
||||
# format: "Client %s (IP %s) connected to API"
|
||||
# args: ["client_info.c_str()", "client_address.c_str()"]
|
||||
# - script.execute: light_off
|
||||
# - if:
|
||||
# condition:
|
||||
# lambda: |-
|
||||
# return id(enable_voice_support).state &&
|
||||
# !id(mww).is_running();
|
||||
# then:
|
||||
# - micro_wake_word.start:
|
||||
# on_client_disconnected:
|
||||
# - logger.log:
|
||||
# format: "Client %s (IP %s) disconnected from API"
|
||||
# args: ["client_info.c_str()", "client_address.c_str()"]
|
||||
# - if:
|
||||
# condition:
|
||||
# lambda: |-
|
||||
# return id(enable_voice_support).state &&
|
||||
# id(mww).is_running();
|
||||
# then:
|
||||
# - micro_wake_word.stop:
|
||||
# - light.turn_on:
|
||||
# id: output_led
|
||||
# effect: flash_white
|
||||
|
||||
ota:
|
||||
platform: esphome
|
||||
@ -360,7 +364,7 @@ micro_wake_word:
|
||||
id: mww
|
||||
microphone:
|
||||
microphone: mic
|
||||
gain_factor: 31
|
||||
gain_factor: 4
|
||||
stop_after_detection: false
|
||||
models:
|
||||
- model: github://esphome/micro-wake-word-models/models/v2/hey_jarvis.json
|
||||
@ -388,7 +392,7 @@ voice_assistant:
|
||||
micro_wake_word: mww
|
||||
use_wake_word: false
|
||||
noise_suppression_level: 3
|
||||
auto_gain: 31 dbfs
|
||||
auto_gain: 4 dbfs
|
||||
volume_multiplier: 8
|
||||
on_wake_word_detected:
|
||||
- logger.log: "Wake word detected in VA pipeline"
|
||||
@ -548,7 +552,7 @@ sensor:
|
||||
filters:
|
||||
- offset: !lambda return id(temperature_offset);
|
||||
- sliding_window_moving_average:
|
||||
window_size: 4
|
||||
window_size: 20
|
||||
send_every: 1
|
||||
humidity:
|
||||
name: "SHT45 Relative Humidity"
|
||||
@ -582,18 +586,18 @@ sensor:
|
||||
return (b * alpha) / (a - alpha);
|
||||
update_interval: 15s
|
||||
|
||||
# IAQ Index (1-5, 5=Excellent)
|
||||
# IAQ Index (1-5, 5=Great))
|
||||
- platform: template
|
||||
name: "IAQ Index"
|
||||
id: iaq_index
|
||||
lambda: |-
|
||||
int tvoc = id(sgp30_tvoc).state;
|
||||
int eco2 = id(sgp30_eco2).state;
|
||||
if (tvoc > 2200 || eco2 > 2000) return 1; // Unhealthy
|
||||
if (tvoc > 2200 || eco2 > 2000) return 1; // Bad
|
||||
if (tvoc > 660 || eco2 > 1200) return 2; // Poor
|
||||
if (tvoc > 220 || eco2 > 800) return 3; // Moderate
|
||||
if (tvoc > 220 || eco2 > 800) return 3; / Fair
|
||||
if (tvoc > 65 || eco2 > 500) return 4; // Good
|
||||
return 5; // Excellent
|
||||
return 5; // Great
|
||||
update_interval: 15s
|
||||
|
||||
# Room Health Score (1-4, 4=Optimal)
|
||||
@ -748,11 +752,11 @@ text_sensor:
|
||||
name: "VOC Level"
|
||||
lambda: |-
|
||||
int tvoc = id(sgp30_tvoc).state;
|
||||
if (tvoc < 65) return {"Excellent"};
|
||||
if (tvoc < 65) return {"Great"};
|
||||
if (tvoc < 220) return {"Good"};
|
||||
if (tvoc < 660) return {"Moderate"};
|
||||
if (tvoc < 660) return {"Fair"};
|
||||
if (tvoc < 2200) return {"Poor"};
|
||||
return {"Unhealthy"};
|
||||
return {"Bad"};
|
||||
update_interval: 15s
|
||||
|
||||
# CO2 Level
|
||||
@ -760,11 +764,11 @@ text_sensor:
|
||||
name: "CO2 Level"
|
||||
lambda: |-
|
||||
int eco2 = id(sgp30_eco2).state;
|
||||
if (eco2 < 500) return {"Excellent"};
|
||||
if (eco2 < 500) return {"Great"};
|
||||
if (eco2 < 800) return {"Good"};
|
||||
if (eco2 < 1200) return {"Moderate"};
|
||||
if (eco2 < 1200) return {"Fair"};
|
||||
if (eco2 < 2000) return {"Poor"};
|
||||
return {"Unhealthy"};
|
||||
return {"Bad"};
|
||||
update_interval: 15s
|
||||
|
||||
# IAQ Classification
|
||||
@ -772,11 +776,11 @@ text_sensor:
|
||||
name: "IAQ Classification"
|
||||
lambda: |-
|
||||
int iaq = id(iaq_index).state;
|
||||
if (iaq == 5) return {"Excellent"};
|
||||
if (iaq == 5) return {"Great"};
|
||||
if (iaq == 4) return {"Good"};
|
||||
if (iaq == 3) return {"Moderate"};
|
||||
if (iaq == 3) return {"Fair"};
|
||||
if (iaq == 2) return {"Poor"};
|
||||
return {"Unhealthy"};
|
||||
return {"Bad"};
|
||||
update_interval: 15s
|
||||
|
||||
# Room Health
|
||||
|
Loading…
x
Reference in New Issue
Block a user