diff --git a/src/more-infos/more-info-alarm_control_panel.html b/src/more-infos/more-info-alarm_control_panel.html
index 512b529b6f..e721cca8a2 100644
--- a/src/more-infos/more-info-alarm_control_panel.html
+++ b/src/more-infos/more-info-alarm_control_panel.html
@@ -9,9 +9,9 @@
-
Disarm
-
Arm Home
-
Arm Away
+
Disarm
+
Arm Home
+
Arm Away
diff --git a/src/more-infos/more-info-alarm_control_panel.js b/src/more-infos/more-info-alarm_control_panel.js
index 80772b0279..72089cfca3 100644
--- a/src/more-infos/more-info-alarm_control_panel.js
+++ b/src/more-infos/more-info-alarm_control_panel.js
@@ -14,14 +14,39 @@ export default new Polymer({
this.callService('alarm_arm_away', {code: this.entered_code});
},
properties: {
+ stateObj: {
+ type: Object,
+ observer: 'stateObjChanged',
+ },
entered_code: {
type: String,
value: '',
},
+ disarm_button_enabled: {
+ type: Boolean,
+ value: false,
+ },
+ arm_home_button_enabled: {
+ type: Boolean,
+ value: false,
+ },
+ arm_away_button_enabled: {
+ type: Boolean,
+ value: false,
+ },
},
enteredCodeChanged(ev) {
this.entered_code = ev.target.value;
},
+ stateObjChanged(newVal) {
+ if (newVal) {
+ this.disarm_button_enabled = newVal.state === 'armed_home' || newVal.state === 'armed_away';
+ this.arm_home_button_enabled = newVal.state === 'disarmed';
+ this.arm_away_button_enabled = newVal.state === 'disarmed';
+ }
+
+ this.async(() => this.fire('iron-resize'), 500);
+ },
callService(service, data) {
const serviceData = data || {};
serviceData.entity_id = this.stateObj.entityId;