mirror of
https://github.com/esphome/esphome.git
synced 2024-11-21 11:37:27 +01:00
commit
00465f4a6f
@ -204,11 +204,11 @@ void BME68xBSEC2Component::update_subscription_() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BME68xBSEC2Component::run_() {
|
void BME68xBSEC2Component::run_() {
|
||||||
|
this->op_mode_ = this->bsec_settings_.op_mode;
|
||||||
int64_t curr_time_ns = this->get_time_ns_();
|
int64_t curr_time_ns = this->get_time_ns_();
|
||||||
if (curr_time_ns < this->next_call_ns_) {
|
if (curr_time_ns < this->bsec_settings_.next_call) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this->op_mode_ = this->bsec_settings_.op_mode;
|
|
||||||
uint8_t status;
|
uint8_t status;
|
||||||
|
|
||||||
ESP_LOGV(TAG, "Performing sensor run");
|
ESP_LOGV(TAG, "Performing sensor run");
|
||||||
@ -219,9 +219,28 @@ void BME68xBSEC2Component::run_() {
|
|||||||
ESP_LOGW(TAG, "Failed to fetch sensor control settings (BSEC2 error code %d)", this->bsec_status_);
|
ESP_LOGW(TAG, "Failed to fetch sensor control settings (BSEC2 error code %d)", this->bsec_status_);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this->next_call_ns_ = this->bsec_settings_.next_call;
|
|
||||||
|
|
||||||
if (this->bsec_settings_.trigger_measurement) {
|
switch (this->bsec_settings_.op_mode) {
|
||||||
|
case BME68X_FORCED_MODE:
|
||||||
|
bme68x_get_conf(&bme68x_conf, &this->bme68x_);
|
||||||
|
|
||||||
|
bme68x_conf.os_hum = this->bsec_settings_.humidity_oversampling;
|
||||||
|
bme68x_conf.os_temp = this->bsec_settings_.temperature_oversampling;
|
||||||
|
bme68x_conf.os_pres = this->bsec_settings_.pressure_oversampling;
|
||||||
|
bme68x_set_conf(&bme68x_conf, &this->bme68x_);
|
||||||
|
this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
|
||||||
|
this->bme68x_heatr_conf_.heatr_temp = this->bsec_settings_.heater_temperature;
|
||||||
|
this->bme68x_heatr_conf_.heatr_dur = this->bsec_settings_.heater_duration;
|
||||||
|
|
||||||
|
// status = bme68x_set_op_mode(this->bsec_settings_.op_mode, &this->bme68x_);
|
||||||
|
status = bme68x_set_heatr_conf(BME68X_FORCED_MODE, &this->bme68x_heatr_conf_, &this->bme68x_);
|
||||||
|
status = bme68x_set_op_mode(BME68X_FORCED_MODE, &this->bme68x_);
|
||||||
|
this->op_mode_ = BME68X_FORCED_MODE;
|
||||||
|
ESP_LOGV(TAG, "Using forced mode");
|
||||||
|
|
||||||
|
break;
|
||||||
|
case BME68X_PARALLEL_MODE:
|
||||||
|
if (this->op_mode_ != this->bsec_settings_.op_mode) {
|
||||||
bme68x_get_conf(&bme68x_conf, &this->bme68x_);
|
bme68x_get_conf(&bme68x_conf, &this->bme68x_);
|
||||||
|
|
||||||
bme68x_conf.os_hum = this->bsec_settings_.humidity_oversampling;
|
bme68x_conf.os_hum = this->bsec_settings_.humidity_oversampling;
|
||||||
@ -229,22 +248,6 @@ void BME68xBSEC2Component::run_() {
|
|||||||
bme68x_conf.os_pres = this->bsec_settings_.pressure_oversampling;
|
bme68x_conf.os_pres = this->bsec_settings_.pressure_oversampling;
|
||||||
bme68x_set_conf(&bme68x_conf, &this->bme68x_);
|
bme68x_set_conf(&bme68x_conf, &this->bme68x_);
|
||||||
|
|
||||||
switch (this->bsec_settings_.op_mode) {
|
|
||||||
case BME68X_FORCED_MODE:
|
|
||||||
this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
|
|
||||||
this->bme68x_heatr_conf_.heatr_temp = this->bsec_settings_.heater_temperature;
|
|
||||||
this->bme68x_heatr_conf_.heatr_dur = this->bsec_settings_.heater_duration;
|
|
||||||
|
|
||||||
status = bme68x_set_op_mode(this->bsec_settings_.op_mode, &this->bme68x_);
|
|
||||||
status = bme68x_set_heatr_conf(BME68X_FORCED_MODE, &this->bme68x_heatr_conf_, &this->bme68x_);
|
|
||||||
status = bme68x_set_op_mode(BME68X_FORCED_MODE, &this->bme68x_);
|
|
||||||
this->op_mode_ = BME68X_FORCED_MODE;
|
|
||||||
this->sleep_mode_ = false;
|
|
||||||
ESP_LOGV(TAG, "Using forced mode");
|
|
||||||
|
|
||||||
break;
|
|
||||||
case BME68X_PARALLEL_MODE:
|
|
||||||
if (this->op_mode_ != this->bsec_settings_.op_mode) {
|
|
||||||
this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
|
this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
|
||||||
this->bme68x_heatr_conf_.heatr_temp_prof = this->bsec_settings_.heater_temperature_profile;
|
this->bme68x_heatr_conf_.heatr_temp_prof = this->bsec_settings_.heater_temperature_profile;
|
||||||
this->bme68x_heatr_conf_.heatr_dur_prof = this->bsec_settings_.heater_duration_profile;
|
this->bme68x_heatr_conf_.heatr_dur_prof = this->bsec_settings_.heater_duration_profile;
|
||||||
@ -257,19 +260,19 @@ void BME68xBSEC2Component::run_() {
|
|||||||
|
|
||||||
status = bme68x_set_op_mode(BME68X_PARALLEL_MODE, &this->bme68x_);
|
status = bme68x_set_op_mode(BME68X_PARALLEL_MODE, &this->bme68x_);
|
||||||
this->op_mode_ = BME68X_PARALLEL_MODE;
|
this->op_mode_ = BME68X_PARALLEL_MODE;
|
||||||
this->sleep_mode_ = false;
|
|
||||||
ESP_LOGV(TAG, "Using parallel mode");
|
ESP_LOGV(TAG, "Using parallel mode");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BME68X_SLEEP_MODE:
|
case BME68X_SLEEP_MODE:
|
||||||
if (!this->sleep_mode_) {
|
if (this->op_mode_ != this->bsec_settings_.op_mode) {
|
||||||
bme68x_set_op_mode(BME68X_SLEEP_MODE, &this->bme68x_);
|
bme68x_set_op_mode(BME68X_SLEEP_MODE, &this->bme68x_);
|
||||||
this->sleep_mode_ = true;
|
this->op_mode_ = BME68X_SLEEP_MODE;
|
||||||
ESP_LOGV(TAG, "Using sleep mode");
|
ESP_LOGV(TAG, "Using sleep mode");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->bsec_settings_.trigger_measurement && this->bsec_settings_.op_mode != BME68X_SLEEP_MODE) {
|
||||||
uint32_t meas_dur = 0;
|
uint32_t meas_dur = 0;
|
||||||
meas_dur = bme68x_get_meas_dur(this->op_mode_, &bme68x_conf, &this->bme68x_);
|
meas_dur = bme68x_get_meas_dur(this->op_mode_, &bme68x_conf, &this->bme68x_);
|
||||||
ESP_LOGV(TAG, "Queueing read in %uus", meas_dur);
|
ESP_LOGV(TAG, "Queueing read in %uus", meas_dur);
|
||||||
|
@ -113,13 +113,11 @@ class BME68xBSEC2Component : public Component {
|
|||||||
|
|
||||||
struct bme68x_heatr_conf bme68x_heatr_conf_;
|
struct bme68x_heatr_conf bme68x_heatr_conf_;
|
||||||
uint8_t op_mode_; // operating mode of sensor
|
uint8_t op_mode_; // operating mode of sensor
|
||||||
bool sleep_mode_;
|
|
||||||
bsec_library_return_t bsec_status_{BSEC_OK};
|
bsec_library_return_t bsec_status_{BSEC_OK};
|
||||||
int8_t bme68x_status_{BME68X_OK};
|
int8_t bme68x_status_{BME68X_OK};
|
||||||
|
|
||||||
int64_t last_time_ms_{0};
|
int64_t last_time_ms_{0};
|
||||||
uint32_t millis_overflow_counter_{0};
|
uint32_t millis_overflow_counter_{0};
|
||||||
int64_t next_call_ns_{0};
|
|
||||||
|
|
||||||
std::queue<std::function<void()>> queue_;
|
std::queue<std::function<void()>> queue_;
|
||||||
|
|
||||||
|
@ -65,6 +65,9 @@ void ESP32BLETracker::setup() {
|
|||||||
[this](ota::OTAState state, float progress, uint8_t error, ota::OTAComponent *comp) {
|
[this](ota::OTAState state, float progress, uint8_t error, ota::OTAComponent *comp) {
|
||||||
if (state == ota::OTA_STARTED) {
|
if (state == ota::OTA_STARTED) {
|
||||||
this->stop_scan();
|
this->stop_scan();
|
||||||
|
for (auto *client : this->clients_) {
|
||||||
|
client->disconnect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
|
@ -99,14 +99,6 @@ void I2SAudioSpeaker::setup() {
|
|||||||
this->mark_failed();
|
this->mark_failed();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->i2s_event_queue_ = xQueueCreate(I2S_EVENT_QUEUE_COUNT, sizeof(i2s_event_t));
|
|
||||||
|
|
||||||
if (this->i2s_event_queue_ == nullptr) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create I2S event queue");
|
|
||||||
this->mark_failed();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void I2SAudioSpeaker::loop() {
|
void I2SAudioSpeaker::loop() {
|
||||||
@ -339,7 +331,7 @@ void I2SAudioSpeaker::speaker_task(void *params) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void I2SAudioSpeaker::start() {
|
void I2SAudioSpeaker::start() {
|
||||||
if (this->is_failed() || this->status_has_error())
|
if (!this->is_ready() || this->is_failed() || this->status_has_error())
|
||||||
return;
|
return;
|
||||||
if ((this->state_ == speaker::STATE_STARTING) || (this->state_ == speaker::STATE_RUNNING))
|
if ((this->state_ == speaker::STATE_STARTING) || (this->state_ == speaker::STATE_RUNNING))
|
||||||
return;
|
return;
|
||||||
@ -519,7 +511,6 @@ void I2SAudioSpeaker::delete_task_(size_t buffer_size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
xEventGroupSetBits(this->event_group_, SpeakerEventGroupBits::STATE_STOPPED);
|
xEventGroupSetBits(this->event_group_, SpeakerEventGroupBits::STATE_STOPPED);
|
||||||
xQueueReset(this->i2s_event_queue_);
|
|
||||||
|
|
||||||
this->task_created_ = false;
|
this->task_created_ = false;
|
||||||
vTaskDelete(nullptr);
|
vTaskDelete(nullptr);
|
||||||
|
@ -23,7 +23,7 @@ namespace i2s_audio {
|
|||||||
|
|
||||||
class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component {
|
class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component {
|
||||||
public:
|
public:
|
||||||
float get_setup_priority() const override { return esphome::setup_priority::LATE; }
|
float get_setup_priority() const override { return esphome::setup_priority::PROCESSOR; }
|
||||||
|
|
||||||
void setup() override;
|
void setup() override;
|
||||||
void loop() override;
|
void loop() override;
|
||||||
|
@ -180,7 +180,7 @@ void LD2420Component::apply_config_action() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LD2420Component::factory_reset_action() {
|
void LD2420Component::factory_reset_action() {
|
||||||
ESP_LOGCONFIG(TAG, "Setiing factory defaults...");
|
ESP_LOGCONFIG(TAG, "Setting factory defaults...");
|
||||||
if (this->set_config_mode(true) == LD2420_ERROR_TIMEOUT) {
|
if (this->set_config_mode(true) == LD2420_ERROR_TIMEOUT) {
|
||||||
ESP_LOGE(TAG, "LD2420 module has failed to respond, check baud rate and serial connections.");
|
ESP_LOGE(TAG, "LD2420 module has failed to respond, check baud rate and serial connections.");
|
||||||
this->mark_failed();
|
this->mark_failed();
|
||||||
|
@ -38,7 +38,7 @@ void SDMMeter::on_modbus_data(const std::vector<uint8_t> &data) {
|
|||||||
|
|
||||||
ESP_LOGD(
|
ESP_LOGD(
|
||||||
TAG,
|
TAG,
|
||||||
"SDMMeter Phase %c: V=%.3f V, I=%.3f A, Active P=%.3f W, Apparent P=%.3f VA, Reactive P=%.3f VAR, PF=%.3f, "
|
"SDMMeter Phase %c: V=%.3f V, I=%.3f A, Active P=%.3f W, Apparent P=%.3f VA, Reactive P=%.3f var, PF=%.3f, "
|
||||||
"PA=%.3f °",
|
"PA=%.3f °",
|
||||||
i + 'A', voltage, current, active_power, apparent_power, reactive_power, power_factor, phase_angle);
|
i + 'A', voltage, current, active_power, apparent_power, reactive_power, power_factor, phase_angle);
|
||||||
if (phase.voltage_sensor_ != nullptr)
|
if (phase.voltage_sensor_ != nullptr)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
"""Constants used by esphome."""
|
"""Constants used by esphome."""
|
||||||
|
|
||||||
__version__ = "2024.11.0b1"
|
__version__ = "2024.11.0b2"
|
||||||
|
|
||||||
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
||||||
VALID_SUBSTITUTIONS_CHARACTERS = (
|
VALID_SUBSTITUTIONS_CHARACTERS = (
|
||||||
@ -1095,7 +1095,7 @@ UNIT_STEPS = "steps"
|
|||||||
UNIT_VOLT = "V"
|
UNIT_VOLT = "V"
|
||||||
UNIT_VOLT_AMPS = "VA"
|
UNIT_VOLT_AMPS = "VA"
|
||||||
UNIT_VOLT_AMPS_HOURS = "VAh"
|
UNIT_VOLT_AMPS_HOURS = "VAh"
|
||||||
UNIT_VOLT_AMPS_REACTIVE = "VAR"
|
UNIT_VOLT_AMPS_REACTIVE = "var"
|
||||||
UNIT_VOLT_AMPS_REACTIVE_HOURS = "VARh"
|
UNIT_VOLT_AMPS_REACTIVE_HOURS = "VARh"
|
||||||
UNIT_WATT = "W"
|
UNIT_WATT = "W"
|
||||||
UNIT_WATT_HOURS = "Wh"
|
UNIT_WATT_HOURS = "Wh"
|
||||||
|
@ -39,3 +39,10 @@ esp32_ble_tracker:
|
|||||||
- then:
|
- then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
ESP_LOGD("ble_auto", "The scan has ended!");
|
ESP_LOGD("ble_auto", "The scan has ended!");
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: MySSID
|
||||||
|
password: password1
|
||||||
|
|
||||||
|
ota:
|
||||||
|
- platform: esphome
|
||||||
|
Loading…
Reference in New Issue
Block a user