esphome 2024.7.0b2__py3-none-any.whl → 2024.7.0b3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,10 @@ CONF_I2S_LRCLK_PIN = "i2s_lrclk_pin"
25
25
  CONF_I2S_AUDIO = "i2s_audio"
26
26
  CONF_I2S_AUDIO_ID = "i2s_audio_id"
27
27
 
28
+ CONF_I2S_MODE = "i2s_mode"
29
+ CONF_PRIMARY = "primary"
30
+ CONF_SECONDARY = "secondary"
31
+
28
32
  i2s_audio_ns = cg.esphome_ns.namespace("i2s_audio")
29
33
  I2SAudioComponent = i2s_audio_ns.class_("I2SAudioComponent", cg.Component)
30
34
  I2SAudioIn = i2s_audio_ns.class_("I2SAudioIn", cg.Parented.template(I2SAudioComponent))
@@ -32,6 +36,12 @@ I2SAudioOut = i2s_audio_ns.class_(
32
36
  "I2SAudioOut", cg.Parented.template(I2SAudioComponent)
33
37
  )
34
38
 
39
+ i2s_mode_t = cg.global_ns.enum("i2s_mode_t")
40
+ I2S_MODE_OPTIONS = {
41
+ CONF_PRIMARY: i2s_mode_t.I2S_MODE_MASTER, # NOLINT
42
+ CONF_SECONDARY: i2s_mode_t.I2S_MODE_SLAVE, # NOLINT
43
+ }
44
+
35
45
  # https://github.com/espressif/esp-idf/blob/master/components/soc/{variant}/include/soc/soc_caps.h
36
46
  I2S_PORTS = {
37
47
  VARIANT_ESP32: 2,
@@ -7,6 +7,9 @@ from esphome.components import microphone, esp32
7
7
  from esphome.components.adc import ESP32_VARIANT_ADC1_PIN_TO_CHANNEL, validate_adc_pin
8
8
 
9
9
  from .. import (
10
+ CONF_I2S_MODE,
11
+ CONF_PRIMARY,
12
+ I2S_MODE_OPTIONS,
10
13
  i2s_audio_ns,
11
14
  I2SAudioComponent,
12
15
  I2SAudioIn,
@@ -68,6 +71,9 @@ BASE_SCHEMA = microphone.MICROPHONE_SCHEMA.extend(
68
71
  _validate_bits, cv.enum(BITS_PER_SAMPLE)
69
72
  ),
70
73
  cv.Optional(CONF_USE_APLL, default=False): cv.boolean,
74
+ cv.Optional(CONF_I2S_MODE, default=CONF_PRIMARY): cv.enum(
75
+ I2S_MODE_OPTIONS, lower=True
76
+ ),
71
77
  }
72
78
  ).extend(cv.COMPONENT_SCHEMA)
73
79
 
@@ -107,6 +113,7 @@ async def to_code(config):
107
113
  cg.add(var.set_din_pin(config[CONF_I2S_DIN_PIN]))
108
114
  cg.add(var.set_pdm(config[CONF_PDM]))
109
115
 
116
+ cg.add(var.set_i2s_mode(config[CONF_I2S_MODE]))
110
117
  cg.add(var.set_channel(config[CONF_CHANNEL]))
111
118
  cg.add(var.set_sample_rate(config[CONF_SAMPLE_RATE]))
112
119
  cg.add(var.set_bits_per_sample(config[CONF_BITS_PER_SAMPLE]))
@@ -46,7 +46,7 @@ void I2SAudioMicrophone::start_() {
46
46
  return; // Waiting for another i2s to return lock
47
47
  }
48
48
  i2s_driver_config_t config = {
49
- .mode = (i2s_mode_t) (I2S_MODE_MASTER | I2S_MODE_RX),
49
+ .mode = (i2s_mode_t) (this->i2s_mode_ | I2S_MODE_RX),
50
50
  .sample_rate = this->sample_rate_,
51
51
  .bits_per_sample = this->bits_per_sample_,
52
52
  .channel_format = this->channel_,
@@ -174,8 +174,7 @@ size_t I2SAudioMicrophone::read(int16_t *buf, size_t len) {
174
174
  size_t samples_read = bytes_read / sizeof(int32_t);
175
175
  samples.resize(samples_read);
176
176
  for (size_t i = 0; i < samples_read; i++) {
177
- int32_t temp = reinterpret_cast<int32_t *>(buf)[i] >> 14;
178
- samples[i] = clamp<int16_t>(temp, INT16_MIN, INT16_MAX);
177
+ samples[i] = reinterpret_cast<int32_t *>(buf)[i] >> 16;
179
178
  }
180
179
  memcpy(buf, samples.data(), samples_read * sizeof(int16_t));
181
180
  return samples_read * sizeof(int16_t);
@@ -30,6 +30,8 @@ class I2SAudioMicrophone : public I2SAudioIn, public microphone::Microphone, pub
30
30
  }
31
31
  #endif
32
32
 
33
+ void set_i2s_mode(i2s_mode_t mode) { this->i2s_mode_ = mode; }
34
+
33
35
  void set_channel(i2s_channel_fmt_t channel) { this->channel_ = channel; }
34
36
  void set_sample_rate(uint32_t sample_rate) { this->sample_rate_ = sample_rate; }
35
37
  void set_bits_per_sample(i2s_bits_per_sample_t bits_per_sample) { this->bits_per_sample_ = bits_per_sample; }
@@ -46,6 +48,7 @@ class I2SAudioMicrophone : public I2SAudioIn, public microphone::Microphone, pub
46
48
  bool adc_{false};
47
49
  #endif
48
50
  bool pdm_{false};
51
+ i2s_mode_t i2s_mode_{};
49
52
  i2s_channel_fmt_t channel_;
50
53
  uint32_t sample_rate_;
51
54
  i2s_bits_per_sample_t bits_per_sample_;
@@ -57,7 +57,7 @@ optional<uint8_t> ImprovSerialComponent::read_byte_() {
57
57
  }
58
58
  }
59
59
  break;
60
- #ifdef USE_LOGGER_USB_CDC
60
+ #if defined(USE_LOGGER_USB_CDC) && defined(CONFIG_ESP_CONSOLE_USB_CDC)
61
61
  case logger::UART_SELECTION_USB_CDC:
62
62
  #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
63
63
  if (esp_usb_console_available_for_read()) {
@@ -99,7 +99,7 @@ void ImprovSerialComponent::write_data_(std::vector<uint8_t> &data) {
99
99
  #endif // !USE_ESP32_VARIANT_ESP32C3 && !USE_ESP32_VARIANT_ESP32S2 && !USE_ESP32_VARIANT_ESP32S3
100
100
  uart_write_bytes(this->uart_num_, data.data(), data.size());
101
101
  break;
102
- #ifdef USE_LOGGER_USB_CDC
102
+ #if defined(USE_LOGGER_USB_CDC) && defined(CONFIG_ESP_CONSOLE_USB_CDC)
103
103
  case logger::UART_SELECTION_USB_CDC: {
104
104
  const char *msg = (char *) data.data();
105
105
  esp_usb_console_write_buf(msg, data.size());
@@ -109,6 +109,7 @@ void ImprovSerialComponent::write_data_(std::vector<uint8_t> &data) {
109
109
  #ifdef USE_LOGGER_USB_SERIAL_JTAG
110
110
  case logger::UART_SELECTION_USB_SERIAL_JTAG:
111
111
  usb_serial_jtag_write_bytes((char *) data.data(), data.size(), 20 / portTICK_PERIOD_MS);
112
+ delay(10);
112
113
  usb_serial_jtag_ll_txfifo_flush(); // fixes for issue in IDF 4.4.7
113
114
  break;
114
115
  #endif // USE_LOGGER_USB_SERIAL_JTAG
@@ -357,7 +357,9 @@ CONFIG_SCHEMA = cv.All(
357
357
  {
358
358
  cv.GenerateID(): cv.declare_id(MicroWakeWord),
359
359
  cv.GenerateID(CONF_MICROPHONE): cv.use_id(microphone.Microphone),
360
- cv.Required(CONF_MODELS): cv.ensure_list(MODEL_SCHEMA),
360
+ cv.Required(CONF_MODELS): cv.ensure_list(
361
+ cv.maybe_simple_value(MODEL_SCHEMA, key=CONF_MODEL)
362
+ ),
361
363
  cv.Optional(CONF_ON_WAKE_WORD_DETECTED): automation.validate_automation(
362
364
  single=True
363
365
  ),
esphome/const.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Constants used by esphome."""
2
2
 
3
- __version__ = "2024.7.0b2"
3
+ __version__ = "2024.7.0b3"
4
4
 
5
5
  ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
6
6
  VALID_SUBSTITUTIONS_CHARACTERS = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: esphome
3
- Version: 2024.7.0b2
3
+ Version: 2024.7.0b3
4
4
  Summary: Make creating custom firmwares for ESP32/ESP8266 super easy.
5
5
  Author-email: The ESPHome Authors <esphome@nabucasa.com>
6
6
  License: MIT
@@ -5,7 +5,7 @@ esphome/codegen.py,sha256=LCJVpAwy1L9DTBsIvbgAbHj1TOXUSPgBoN--aio0gBk,1855
5
5
  esphome/config.py,sha256=wztK2UmO7-hc6HFDAi6YWtrPVy5mH0diKuqpsWp4-XA,39616
6
6
  esphome/config_helpers.py,sha256=MKf_wzO35nn41FvigXE0iYKDslPgL2ruf8R-EPtTT2I,3256
7
7
  esphome/config_validation.py,sha256=G79LGVIh5BdpGkzuehkm7Db_llpbC2of4dKqZEpHc3A,64838
8
- esphome/const.py,sha256=NtIcVGsfAcat_0JQxJ86ZH3v2zS3lIygXvzfAyiua7g,38954
8
+ esphome/const.py,sha256=QXPuiRfzBxts2SEE3uaaOGfXjxCEcXvMgPpU5qwqNrA,38954
9
9
  esphome/coroutine.py,sha256=IG2kC92OrenyiRm7Qo9uC-4qU4b4-Lmj0TkMIjRG2RY,9344
10
10
  esphome/cpp_generator.py,sha256=hW2EfubUiildhKXZIdV8Dr3Q9TM5oHybFwiTo5-vEUE,31203
11
11
  esphome/cpp_helpers.py,sha256=KadRBBoo4QRT-VwdWFtvxv_FYjqhZTkBhfMX-JhEMwg,4803
@@ -1110,15 +1110,15 @@ esphome/components/i2c/i2c_bus_arduino.cpp,sha256=VXWH0NcAgkncjiSbpNjOY2GOJopWPM
1110
1110
  esphome/components/i2c/i2c_bus_arduino.h,sha256=7mhPi-tZGVmX9XhmtIBQYv9Of4qTpmhJO-FKQDqsIao,1222
1111
1111
  esphome/components/i2c/i2c_bus_esp_idf.cpp,sha256=UtiYP_soPgE6p22rbRJ67OQDPGsKFYqYL31KSmOCcfI,12912
1112
1112
  esphome/components/i2c/i2c_bus_esp_idf.h,sha256=6h3QKsi2M3AuchqY3qTOJe-FWW6hgA9HfrSFVPCdqag,1454
1113
- esphome/components/i2s_audio/__init__.py,sha256=7cUXPRJWWf9oLGBsjhkyssL7iOhZLyQ5DiGcuGMaqTA,2316
1113
+ esphome/components/i2s_audio/__init__.py,sha256=KG_F3w1nFG-dF9DEjhSl5plwcO_hBmYEU8iIZAljP4E,2580
1114
1114
  esphome/components/i2s_audio/i2s_audio.cpp,sha256=DVthNnLWc_nk0Y5Ck1NyvdKavU9IQ6hcHGE11lMfMQw,734
1115
1115
  esphome/components/i2s_audio/i2s_audio.h,sha256=xZxkC9I0YrqsMlOR5RXhfMC1tVfmkLqNmd__VKRwkyk,1313
1116
1116
  esphome/components/i2s_audio/media_player/__init__.py,sha256=jlk-y5UGX8fc4dsXda2HQNyp4Thy5m-YkLOCsD5ZkZo,3556
1117
1117
  esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp,sha256=OlvkjzYSdaxIjJiQF-BbjThoY91_rvGJ4woRjyB9mwY,7538
1118
1118
  esphome/components/i2s_audio/media_player/i2s_audio_media_player.h,sha256=iUx93Xwi7DgWtyNaHIkJ7FJ2kUK6-fdeTs87opqTcRo,2062
1119
- esphome/components/i2s_audio/microphone/__init__.py,sha256=R4PrvuU8uOiM7hxiDzXtFIq38MRHhyHg3DuyUoPQC4U,3752
1120
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp,sha256=-sPxhn2Q0WO1kLZmBzW5gx5iu55PF0CtWOv7J25qogU,6187
1121
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.h,sha256=Wcivbj_cjOIp3aaKNCIQhiesktv1OWMACbdNCDl0TKc,1494
1119
+ esphome/components/i2s_audio/microphone/__init__.py,sha256=uPZ7e0pGxbNklDqIoqLcTmvhnSTcQ16q3pSDFIgEy70,3982
1120
+ esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp,sha256=LfcloU1ws1AGcm5FCyHCdWnLRunVqJB3iGv_RfYHaOE,6122
1121
+ esphome/components/i2s_audio/microphone/i2s_audio_microphone.h,sha256=V0QfxCYBu9DUoO1Ui0O7zB2iP-9P_wduN3Cf2b27AWI,1586
1122
1122
  esphome/components/i2s_audio/speaker/__init__.py,sha256=0nzQXnjQaYv7YklVp8Landvz57x-bhrLJuta92LiDXk,2724
1123
1123
  esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp,sha256=C4ZN8HTWiwGtOmL1y3ICnoCH1-iLaB2dPKAz3g26wts,8187
1124
1124
  esphome/components/i2s_audio/speaker/i2s_audio_speaker.h,sha256=q2pF17NGG_MCBUJiBPprzT-IKaQylKX988LrQxtLzBU,1756
@@ -1141,7 +1141,7 @@ esphome/components/improv_base/__init__.py,sha256=9r7mI_71pUHiGghXvlHP4nnSklm6wg
1141
1141
  esphome/components/improv_base/improv_base.cpp,sha256=eh-YebkuhEhZktdNz84oSoigtGAQz2LP0c0lqc29-M4,857
1142
1142
  esphome/components/improv_base/improv_base.h,sha256=VOqjBy5U0Sh8tNOYWQPIkIZWwjisZKY1pf65lOO_Q_s,322
1143
1143
  esphome/components/improv_serial/__init__.py,sha256=AFjbmaHHn72e2WUrneWiE3DIBty9btxFjsWgRt2jmoE,1600
1144
- esphome/components/improv_serial/improv_serial_component.cpp,sha256=-q5Y9KCcDDFYUtzNOOiBYOdrrVf2a4DyyQk1xQ-OimA,10297
1144
+ esphome/components/improv_serial/improv_serial_component.cpp,sha256=iKIxHFp4MydwdLnDkeTZKTn79JlKm_WfsaPNbR4eG4w,10404
1145
1145
  esphome/components/improv_serial/improv_serial_component.h,sha256=TNP28Qxc7I8VcRS5C7_aVQaISXBthjR5zVX_wDLGjR8,2220
1146
1146
  esphome/components/ina219/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1147
1147
  esphome/components/ina219/ina219.cpp,sha256=tk0F5y4889lDgfj7XN-P8zQz-5vwDMkRtrv6hil0XPE,6547
@@ -1495,7 +1495,7 @@ esphome/components/mhz19/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
1495
1495
  esphome/components/mhz19/mhz19.cpp,sha256=CBBVBMqGUsrc-4PMOaBDuKCAFNr43Kukt3a018kQI0k,3924
1496
1496
  esphome/components/mhz19/mhz19.h,sha256=DTuwpBz6gAZVn_QIUnmPiE4Y188XYiOS9WxIggcjZJ4,2050
1497
1497
  esphome/components/mhz19/sensor.py,sha256=IwZAf9K8LE3Ang8I53jjr41hpSwsC7qHnEjsOexNp8M,3220
1498
- esphome/components/micro_wake_word/__init__.py,sha256=ysRnDFzi56ypvzMru8lP_JqaeM2Tmb5kpGwo40hYCBg,15820
1498
+ esphome/components/micro_wake_word/__init__.py,sha256=WLqfgLyGTF7S6kwvvOoiyHaxxVRL4u478WUjV9FhnLo,15889
1499
1499
  esphome/components/micro_wake_word/micro_wake_word.cpp,sha256=qj_wsPQY23sg12Wr2nIvitFSvghzfXkBamak7ZPNeAI,15280
1500
1500
  esphome/components/micro_wake_word/micro_wake_word.h,sha256=3Ge-mL0fVeM-s6XdmeoPGATLZ7x8tr73iXEkO9nqLJ4,6091
1501
1501
  esphome/components/micro_wake_word/preprocessor_settings.h,sha256=fz5-wfah78sWnY-iNXuGu6K5TpbGfeQCcgPIdPBNPg4,488
@@ -3119,9 +3119,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
3119
3119
  esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
3120
3120
  esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
3121
3121
  esphome/dashboard/util/text.py,sha256=ENDnfN4O0NdA3CKVJjQYabFbwbrsIhVKrAMQe53qYu4,534
3122
- esphome-2024.7.0b2.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3123
- esphome-2024.7.0b2.dist-info/METADATA,sha256=UFr1ogkAb6DPxpDjjBKl8ax-uyZ4vU1oXGOvIf56U3A,3265
3124
- esphome-2024.7.0b2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
3125
- esphome-2024.7.0b2.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3126
- esphome-2024.7.0b2.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3127
- esphome-2024.7.0b2.dist-info/RECORD,,
3122
+ esphome-2024.7.0b3.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3123
+ esphome-2024.7.0b3.dist-info/METADATA,sha256=e3LWrKNMO9xv3Y6LKKcJCnNzxGQVVig2aZ5AsGfou1c,3265
3124
+ esphome-2024.7.0b3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
3125
+ esphome-2024.7.0b3.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3126
+ esphome-2024.7.0b3.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3127
+ esphome-2024.7.0b3.dist-info/RECORD,,