mirror of
https://github.com/esphome/esphome.git
synced 2024-12-01 03:04:12 +01:00
Merge branch 'dev' into dev
This commit is contained in:
commit
51a8837b5d
5 changed files with 31 additions and 5 deletions
|
@ -101,7 +101,7 @@ RUN --mount=type=tmpfs,target=/root/.cargo if [ "$TARGETARCH$TARGETVARIANT" = "a
|
||||||
&& /platformio_install_deps.py /platformio.ini --libraries
|
&& /platformio_install_deps.py /platformio.ini --libraries
|
||||||
|
|
||||||
# Avoid unsafe git error when container user and file config volume permissions don't match
|
# Avoid unsafe git error when container user and file config volume permissions don't match
|
||||||
RUN git config --system --add safe.directory '/config/*'
|
RUN git config --system --add safe.directory '*'
|
||||||
|
|
||||||
|
|
||||||
# ======================= docker-type image =======================
|
# ======================= docker-type image =======================
|
||||||
|
|
|
@ -80,6 +80,17 @@ void DateCall::validate_() {
|
||||||
|
|
||||||
void DateCall::perform() {
|
void DateCall::perform() {
|
||||||
this->validate_();
|
this->validate_();
|
||||||
|
ESP_LOGD(TAG, "'%s' - Setting", this->parent_->get_name().c_str());
|
||||||
|
|
||||||
|
if (this->year_.has_value()) {
|
||||||
|
ESP_LOGD(TAG, " Year: %d", *this->year_);
|
||||||
|
}
|
||||||
|
if (this->month_.has_value()) {
|
||||||
|
ESP_LOGD(TAG, " Month: %d", *this->month_);
|
||||||
|
}
|
||||||
|
if (this->day_.has_value()) {
|
||||||
|
ESP_LOGD(TAG, " Day: %d", *this->day_);
|
||||||
|
}
|
||||||
this->parent_->control(*this);
|
this->parent_->control(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,11 @@ void I2SAudioMediaPlayer::control(const media_player::MediaPlayerCall &call) {
|
||||||
this->start();
|
this->start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->state == media_player::MEDIA_PLAYER_STATE_ANNOUNCING) {
|
||||||
|
this->is_announcement_ = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (call.get_volume().has_value()) {
|
if (call.get_volume().has_value()) {
|
||||||
this->volume = call.get_volume().value();
|
this->volume = call.get_volume().value();
|
||||||
this->set_volume_(volume);
|
this->set_volume_(volume);
|
||||||
|
@ -171,9 +176,8 @@ void I2SAudioMediaPlayer::start_() {
|
||||||
if (this->current_url_.has_value()) {
|
if (this->current_url_.has_value()) {
|
||||||
this->audio_->connecttohost(this->current_url_.value().c_str());
|
this->audio_->connecttohost(this->current_url_.value().c_str());
|
||||||
this->state = media_player::MEDIA_PLAYER_STATE_PLAYING;
|
this->state = media_player::MEDIA_PLAYER_STATE_PLAYING;
|
||||||
if (this->is_announcement_.has_value()) {
|
if (this->is_announcement_) {
|
||||||
this->state = this->is_announcement_.value() ? media_player::MEDIA_PLAYER_STATE_ANNOUNCING
|
this->state = media_player::MEDIA_PLAYER_STATE_ANNOUNCING;
|
||||||
: media_player::MEDIA_PLAYER_STATE_PLAYING;
|
|
||||||
}
|
}
|
||||||
this->publish_state();
|
this->publish_state();
|
||||||
}
|
}
|
||||||
|
@ -202,6 +206,7 @@ void I2SAudioMediaPlayer::stop_() {
|
||||||
this->high_freq_.stop();
|
this->high_freq_.stop();
|
||||||
this->state = media_player::MEDIA_PLAYER_STATE_IDLE;
|
this->state = media_player::MEDIA_PLAYER_STATE_IDLE;
|
||||||
this->publish_state();
|
this->publish_state();
|
||||||
|
this->is_announcement_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
media_player::MediaPlayerTraits I2SAudioMediaPlayer::get_traits() {
|
media_player::MediaPlayerTraits I2SAudioMediaPlayer::get_traits() {
|
||||||
|
|
|
@ -78,7 +78,7 @@ class I2SAudioMediaPlayer : public Component, public media_player::MediaPlayer,
|
||||||
HighFrequencyLoopRequester high_freq_;
|
HighFrequencyLoopRequester high_freq_;
|
||||||
|
|
||||||
optional<std::string> current_url_{};
|
optional<std::string> current_url_{};
|
||||||
optional<bool> is_announcement_{};
|
bool is_announcement_{false};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace i2s_audio
|
} // namespace i2s_audio
|
||||||
|
|
|
@ -84,6 +84,16 @@ bool ESPTime::strptime(const std::string &time_to_parse, ESPTime &esp_time) {
|
||||||
esp_time.hour = hour;
|
esp_time.hour = hour;
|
||||||
esp_time.minute = minute;
|
esp_time.minute = minute;
|
||||||
esp_time.second = second;
|
esp_time.second = second;
|
||||||
|
} else if (sscanf(time_to_parse.c_str(), "%04hu-%02hhu-%02hhu %02hhu:%02hhu %n", &year, &month, &day, // NOLINT
|
||||||
|
&hour, // NOLINT
|
||||||
|
&minute, &num) == 5 && // NOLINT
|
||||||
|
num == time_to_parse.size()) {
|
||||||
|
esp_time.year = year;
|
||||||
|
esp_time.month = month;
|
||||||
|
esp_time.day_of_month = day;
|
||||||
|
esp_time.hour = hour;
|
||||||
|
esp_time.minute = minute;
|
||||||
|
esp_time.second = 0;
|
||||||
} else if (sscanf(time_to_parse.c_str(), "%02hhu:%02hhu:%02hhu %n", &hour, &minute, &second, &num) == 3 && // NOLINT
|
} else if (sscanf(time_to_parse.c_str(), "%02hhu:%02hhu:%02hhu %n", &hour, &minute, &second, &num) == 3 && // NOLINT
|
||||||
num == time_to_parse.size()) {
|
num == time_to_parse.size()) {
|
||||||
esp_time.hour = hour;
|
esp_time.hour = hour;
|
||||||
|
|
Loading…
Reference in a new issue