Add AV Mute switch
This commit is contained in:
parent
f72e0ea591
commit
5d39f2979c
|
@ -19,6 +19,9 @@ CONFIG_SCHEMA = cv.Schema(
|
|||
cv.Optional("BTAUDIO"): switch.switch_schema(
|
||||
tw7100Switch
|
||||
),
|
||||
cv.Optional("MUTE"): switch.switch_schema(
|
||||
tw7100Switch
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -37,3 +40,9 @@ async def to_code(config):
|
|||
cg.add(switch_.set_cmd("BTAUDIO"))
|
||||
cg.add(switch_.set_tw7100_parent(parent))
|
||||
cg.add(parent.set_set_btaudio(switch_))
|
||||
|
||||
if "MUTE" in config:
|
||||
switch_ = await switch.new_switch(config["MUTE"])
|
||||
cg.add(switch_.set_cmd("MUTE"))
|
||||
cg.add(switch_.set_tw7100_parent(parent))
|
||||
cg.add(parent.set_set_mute(switch_))
|
||||
|
|
|
@ -26,6 +26,10 @@ void tw7100Switch::write_state(bool state) {
|
|||
sprintf(param, "%02d", state);
|
||||
ESP_LOGV(TAG, "pushing back cmd %s with param %s", cmd_.c_str(), param);
|
||||
parent_->push_cmd(cmd_, param);
|
||||
} else if (cmd_ == "MUTE") {
|
||||
std::string param = state ? "ON" : "OFF";
|
||||
ESP_LOGV(TAG, "pushing back cmd %s with param %s", cmd_.c_str(), param.c_str());
|
||||
parent_->push_cmd(cmd_, param);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ std::vector<std::string> pwr_on_query_cmds{
|
|||
"AUDIOOUT?",
|
||||
*/
|
||||
//
|
||||
// "MUTE?", // TODO: implement parser
|
||||
"MUTE?",
|
||||
// Environment settings
|
||||
/*
|
||||
"HREVERSE?",
|
||||
|
@ -246,6 +246,9 @@ void tw7100Component::update_sensor(std::pair<std::string, std::string> data) {
|
|||
auto call = source_select_->make_call();
|
||||
call.set_option(source_select_->sources[value_string]);
|
||||
call.perform();
|
||||
} else if (cmd == "MUTE") {
|
||||
ESP_LOGV(TAG, "updating mute switch with value %s", value_string);
|
||||
mute_switch_->publish_state(value_string == "ON");
|
||||
} else {
|
||||
ESP_LOGW(TAG, "Command %s unknown, skipping updating sensor with value", cmd.c_str());
|
||||
}
|
||||
|
|
2
tw7100.h
2
tw7100.h
|
@ -41,6 +41,7 @@ class tw7100Component : public PollingComponent, public uart::UARTDevice {
|
|||
void set_serial(text_sensor::TextSensor *serial) { this->serial_ = serial; }
|
||||
void set_set_power(switch_::Switch *switch_) { this->power_switch_ = switch_; }
|
||||
void set_set_btaudio(switch_::Switch *switch_) { this->btaudio_switch_ = switch_; }
|
||||
void set_set_mute(switch_::Switch *switch_) { this->mute_switch_ = switch_; }
|
||||
void set_set_source(tw7100::tw7100Select *source_) { this->source_select_ = source_; }
|
||||
void set_set_luminance(tw7100::tw7100Select *luminance_) { this->luminance_select_ = luminance_; }
|
||||
|
||||
|
@ -54,6 +55,7 @@ class tw7100Component : public PollingComponent, public uart::UARTDevice {
|
|||
text_sensor::TextSensor *serial_{nullptr};
|
||||
switch_::Switch *power_switch_{nullptr};
|
||||
switch_::Switch *btaudio_switch_{nullptr};
|
||||
switch_::Switch *mute_switch_{nullptr};
|
||||
tw7100::tw7100Select *source_select_{nullptr};
|
||||
tw7100::tw7100Select *luminance_select_{nullptr};
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue