7namespace alarm_control_panel {
92 void play(Ts...
x)
override {
94 auto code = this->code_.optional_value(
x...);
95 if (code.has_value()) {
96 call.set_code(code.value());
112 void play(Ts...
x)
override {
114 auto code = this->code_.optional_value(
x...);
115 if (code.has_value()) {
116 call.set_code(code.value());
132 void play(Ts...
x)
override {
134 auto code = this->code_.optional_value(
x...);
135 if (code.has_value()) {
136 call.set_code(code.value());
virtual void play(Ts... x)=0
Base class for all automation conditions.
AlarmControlPanelCall & triggered()
AlarmControlPanelCall & arm_night()
AlarmControlPanelCall & arm_away()
AlarmControlPanelCall & pending()
AlarmControlPanelCall & arm_home()
AlarmControlPanel * parent_
bool check(Ts... x) override
AlarmControlPanelCondition(AlarmControlPanel *parent)
void add_on_triggered_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel chanes to triggered.
void add_on_state_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel changes.
bool is_state_armed(AlarmControlPanelState state)
void add_on_pending_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel changes to pending.
void add_on_armed_night_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel changes to armed_night.
void add_on_armed_home_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel changes to armed_home.
AlarmControlPanelState get_state() const
Get the state.
void add_on_armed_away_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel changes to armed_away.
void disarm(optional< std::string > code=nullopt)
disarm the alarm
void add_on_ready_callback(std::function< void()> &&callback)
Add a callback for when a ready state changes.
void add_on_cleared_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel clears from triggered.
void add_on_disarmed_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel changes to disarmed.
void add_on_chime_callback(std::function< void()> &&callback)
Add a callback for when a chime zone goes from closed to open.
void add_on_arming_callback(std::function< void()> &&callback)
Add a callback for when the state of the alarm_control_panel chanes to arming.
AlarmControlPanelCall make_call()
Make a AlarmControlPanelCall.
TEMPLATABLE_VALUE(std::string, code) void play(Ts... x) override
ArmAwayAction(AlarmControlPanel *alarm_control_panel)
AlarmControlPanel * alarm_control_panel_
ArmHomeAction(AlarmControlPanel *alarm_control_panel)
TEMPLATABLE_VALUE(std::string, code) void play(Ts... x) override
AlarmControlPanel * alarm_control_panel_
AlarmControlPanel * alarm_control_panel_
TEMPLATABLE_VALUE(std::string, code) void play(Ts... x) override
ArmNightAction(AlarmControlPanel *alarm_control_panel)
ArmedAwayTrigger(AlarmControlPanel *alarm_control_panel)
ArmedHomeTrigger(AlarmControlPanel *alarm_control_panel)
ArmedNightTrigger(AlarmControlPanel *alarm_control_panel)
ArmingTrigger(AlarmControlPanel *alarm_control_panel)
ChimeTrigger(AlarmControlPanel *alarm_control_panel)
ClearedTrigger(AlarmControlPanel *alarm_control_panel)
TEMPLATABLE_VALUE(std::string, code) void play(Ts... x) override
AlarmControlPanel * alarm_control_panel_
DisarmAction(AlarmControlPanel *alarm_control_panel)
DisarmedTrigger(AlarmControlPanel *alarm_control_panel)
PendingAction(AlarmControlPanel *alarm_control_panel)
AlarmControlPanel * alarm_control_panel_
void play(Ts... x) override
PendingTrigger(AlarmControlPanel *alarm_control_panel)
ReadyTrigger(AlarmControlPanel *alarm_control_panel)
StateTrigger(AlarmControlPanel *alarm_control_panel)
void play(Ts... x) override
TriggeredAction(AlarmControlPanel *alarm_control_panel)
AlarmControlPanel * alarm_control_panel_
TriggeredTrigger(AlarmControlPanel *alarm_control_panel)
Providing packet encoding functions for exchanging data with a remote host.