mirror of
https://github.com/esphome/esphome.git
synced 2024-11-30 02:34:12 +01:00
commit
f408f1a368
6 changed files with 24 additions and 14 deletions
|
@ -2,11 +2,13 @@ from esphome.components import esp32_ble_tracker, esp32_ble_client
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
from esphome.const import CONF_ACTIVE, CONF_ID
|
from esphome.const import CONF_ACTIVE, CONF_ID
|
||||||
|
from esphome.components.esp32 import add_idf_sdkconfig_option
|
||||||
|
|
||||||
AUTO_LOAD = ["esp32_ble_client", "esp32_ble_tracker"]
|
AUTO_LOAD = ["esp32_ble_client", "esp32_ble_tracker"]
|
||||||
DEPENDENCIES = ["api", "esp32"]
|
DEPENDENCIES = ["api", "esp32"]
|
||||||
CODEOWNERS = ["@jesserockz"]
|
CODEOWNERS = ["@jesserockz"]
|
||||||
|
|
||||||
|
CONF_CACHE_SERVICES = "cache_services"
|
||||||
CONF_CONNECTIONS = "connections"
|
CONF_CONNECTIONS = "connections"
|
||||||
MAX_CONNECTIONS = 3
|
MAX_CONNECTIONS = 3
|
||||||
|
|
||||||
|
@ -47,6 +49,9 @@ CONFIG_SCHEMA = cv.All(
|
||||||
{
|
{
|
||||||
cv.GenerateID(): cv.declare_id(BluetoothProxy),
|
cv.GenerateID(): cv.declare_id(BluetoothProxy),
|
||||||
cv.Optional(CONF_ACTIVE, default=False): cv.boolean,
|
cv.Optional(CONF_ACTIVE, default=False): cv.boolean,
|
||||||
|
cv.SplitDefault(CONF_CACHE_SERVICES, esp32_idf=True): cv.All(
|
||||||
|
cv.only_with_esp_idf, cv.boolean
|
||||||
|
),
|
||||||
cv.Optional(CONF_CONNECTIONS): cv.All(
|
cv.Optional(CONF_CONNECTIONS): cv.All(
|
||||||
cv.ensure_list(CONNECTION_SCHEMA),
|
cv.ensure_list(CONNECTION_SCHEMA),
|
||||||
cv.Length(min=1, max=MAX_CONNECTIONS),
|
cv.Length(min=1, max=MAX_CONNECTIONS),
|
||||||
|
@ -72,4 +77,7 @@ async def to_code(config):
|
||||||
cg.add(var.register_connection(connection_var))
|
cg.add(var.register_connection(connection_var))
|
||||||
await esp32_ble_tracker.register_client(connection_var, connection_conf)
|
await esp32_ble_tracker.register_client(connection_var, connection_conf)
|
||||||
|
|
||||||
|
if config.get(CONF_CACHE_SERVICES):
|
||||||
|
add_idf_sdkconfig_option("CONFIG_BT_GATTC_CACHE_NVS_FLASH", True)
|
||||||
|
|
||||||
cg.add_define("USE_BLUETOOTH_PROXY")
|
cg.add_define("USE_BLUETOOTH_PROXY")
|
||||||
|
|
|
@ -27,10 +27,10 @@ DEFAULT_DELAY = "2ms"
|
||||||
CONFIG_SCHEMA = cv.Schema(
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
{
|
{
|
||||||
cv.GenerateID(): cv.declare_id(CD74HC4067Component),
|
cv.GenerateID(): cv.declare_id(CD74HC4067Component),
|
||||||
cv.Required(CONF_PIN_S0): pins.internal_gpio_output_pin_schema,
|
cv.Required(CONF_PIN_S0): pins.gpio_output_pin_schema,
|
||||||
cv.Required(CONF_PIN_S1): pins.internal_gpio_output_pin_schema,
|
cv.Required(CONF_PIN_S1): pins.gpio_output_pin_schema,
|
||||||
cv.Required(CONF_PIN_S2): pins.internal_gpio_output_pin_schema,
|
cv.Required(CONF_PIN_S2): pins.gpio_output_pin_schema,
|
||||||
cv.Required(CONF_PIN_S3): pins.internal_gpio_output_pin_schema,
|
cv.Required(CONF_PIN_S3): pins.gpio_output_pin_schema,
|
||||||
cv.Optional(
|
cv.Optional(
|
||||||
CONF_DELAY, default=DEFAULT_DELAY
|
CONF_DELAY, default=DEFAULT_DELAY
|
||||||
): cv.positive_time_period_milliseconds,
|
): cv.positive_time_period_milliseconds,
|
||||||
|
|
|
@ -19,22 +19,22 @@ class CD74HC4067Component : public Component {
|
||||||
void activate_pin(uint8_t pin);
|
void activate_pin(uint8_t pin);
|
||||||
|
|
||||||
/// set the pin connected to multiplexer control pin 0
|
/// set the pin connected to multiplexer control pin 0
|
||||||
void set_pin_s0(InternalGPIOPin *pin) { this->pin_s0_ = pin; }
|
void set_pin_s0(GPIOPin *pin) { this->pin_s0_ = pin; }
|
||||||
/// set the pin connected to multiplexer control pin 1
|
/// set the pin connected to multiplexer control pin 1
|
||||||
void set_pin_s1(InternalGPIOPin *pin) { this->pin_s1_ = pin; }
|
void set_pin_s1(GPIOPin *pin) { this->pin_s1_ = pin; }
|
||||||
/// set the pin connected to multiplexer control pin 2
|
/// set the pin connected to multiplexer control pin 2
|
||||||
void set_pin_s2(InternalGPIOPin *pin) { this->pin_s2_ = pin; }
|
void set_pin_s2(GPIOPin *pin) { this->pin_s2_ = pin; }
|
||||||
/// set the pin connected to multiplexer control pin 3
|
/// set the pin connected to multiplexer control pin 3
|
||||||
void set_pin_s3(InternalGPIOPin *pin) { this->pin_s3_ = pin; }
|
void set_pin_s3(GPIOPin *pin) { this->pin_s3_ = pin; }
|
||||||
|
|
||||||
/// set the delay needed after an input switch
|
/// set the delay needed after an input switch
|
||||||
void set_switch_delay(uint32_t switch_delay) { this->switch_delay_ = switch_delay; }
|
void set_switch_delay(uint32_t switch_delay) { this->switch_delay_ = switch_delay; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
InternalGPIOPin *pin_s0_;
|
GPIOPin *pin_s0_;
|
||||||
InternalGPIOPin *pin_s1_;
|
GPIOPin *pin_s1_;
|
||||||
InternalGPIOPin *pin_s2_;
|
GPIOPin *pin_s2_;
|
||||||
InternalGPIOPin *pin_s3_;
|
GPIOPin *pin_s3_;
|
||||||
/// the currently active pin
|
/// the currently active pin
|
||||||
uint8_t active_pin_;
|
uint8_t active_pin_;
|
||||||
uint32_t switch_delay_;
|
uint32_t switch_delay_;
|
||||||
|
|
|
@ -398,11 +398,11 @@ spiffs, data, spiffs, 0x391000, 0x00F000
|
||||||
|
|
||||||
IDF_PARTITIONS_CSV = """\
|
IDF_PARTITIONS_CSV = """\
|
||||||
# Name, Type, SubType, Offset, Size, Flags
|
# Name, Type, SubType, Offset, Size, Flags
|
||||||
nvs, data, nvs, , 0x4000,
|
|
||||||
otadata, data, ota, , 0x2000,
|
otadata, data, ota, , 0x2000,
|
||||||
phy_init, data, phy, , 0x1000,
|
phy_init, data, phy, , 0x1000,
|
||||||
app0, app, ota_0, , 0x1C0000,
|
app0, app, ota_0, , 0x1C0000,
|
||||||
app1, app, ota_1, , 0x1C0000,
|
app1, app, ota_1, , 0x1C0000,
|
||||||
|
nvs, data, nvs, , 0x6d000,
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,9 @@ void BLEClientBase::release_services() {
|
||||||
for (auto &svc : this->services_)
|
for (auto &svc : this->services_)
|
||||||
delete svc; // NOLINT(cppcoreguidelines-owning-memory)
|
delete svc; // NOLINT(cppcoreguidelines-owning-memory)
|
||||||
this->services_.clear();
|
this->services_.clear();
|
||||||
|
#ifndef CONFIG_BT_GATTC_CACHE_NVS_FLASH
|
||||||
esp_ble_gattc_cache_clean(this->remote_bda_);
|
esp_ble_gattc_cache_clean(this->remote_bda_);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t esp_gattc_if,
|
bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t esp_gattc_if,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""Constants used by esphome."""
|
"""Constants used by esphome."""
|
||||||
|
|
||||||
__version__ = "2022.12.0b4"
|
__version__ = "2022.12.0b5"
|
||||||
|
|
||||||
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue