From f45785fafece9921e1d2d8053c7c1325e09a604b Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 13 Feb 2020 05:43:44 +0100 Subject: [PATCH] Change defaults of automations to device (#4843) * Change defaults of automations to device * Script too * Update device_automation.ts * Update device_automation.ts --- src/data/device_automation.ts | 40 ++++++++++++------- .../automation/action/ha-automation-action.ts | 4 +- .../condition/ha-automation-condition.ts | 6 +-- .../config/automation/ha-automation-editor.ts | 8 ++-- .../trigger/ha-automation-trigger.ts | 6 +-- src/panels/config/script/ha-script-editor.ts | 3 +- 6 files changed, 41 insertions(+), 26 deletions(-) diff --git a/src/data/device_automation.ts b/src/data/device_automation.ts index 03c5a6870e..f23222f2ac 100644 --- a/src/data/device_automation.ts +++ b/src/data/device_automation.ts @@ -99,7 +99,7 @@ export const deviceAutomationsEqual = ( export const localizeDeviceAutomationAction = ( hass: HomeAssistant, action: DeviceAction -) => { +): string => { const state = action.entity_id ? hass.states[action.entity_id] : undefined; return ( hass.localize( @@ -107,17 +107,19 @@ export const localizeDeviceAutomationAction = ( "entity_name", state ? computeStateName(state) : action.entity_id || "", "subtype", - hass.localize( - `component.${action.domain}.device_automation.action_subtype.${action.subtype}` - ) || action.subtype - ) || `"${action.subtype}" ${action.type}` + action.subtype + ? hass.localize( + `component.${action.domain}.device_automation.action_subtype.${action.subtype}` + ) || action.subtype + : "" + ) || (action.subtype ? `"${action.subtype}" ${action.type}` : action.type!) ); }; export const localizeDeviceAutomationCondition = ( hass: HomeAssistant, condition: DeviceCondition -) => { +): string => { const state = condition.entity_id ? hass.states[condition.entity_id] : undefined; @@ -127,17 +129,22 @@ export const localizeDeviceAutomationCondition = ( "entity_name", state ? computeStateName(state) : condition.entity_id || "", "subtype", - hass.localize( - `component.${condition.domain}.device_automation.condition_subtype.${condition.subtype}` - ) || condition.subtype - ) || `"${condition.subtype}" ${condition.type}` + condition.subtype + ? hass.localize( + `component.${condition.domain}.device_automation.condition_subtype.${condition.subtype}` + ) || condition.subtype + : "" + ) || + (condition.subtype + ? `"${condition.subtype}" ${condition.type}` + : condition.type!) ); }; export const localizeDeviceAutomationTrigger = ( hass: HomeAssistant, trigger: DeviceTrigger -) => { +): string => { const state = trigger.entity_id ? hass.states[trigger.entity_id] : undefined; return ( hass.localize( @@ -145,9 +152,12 @@ export const localizeDeviceAutomationTrigger = ( "entity_name", state ? computeStateName(state) : trigger.entity_id || "", "subtype", - hass.localize( - `component.${trigger.domain}.device_automation.trigger_subtype.${trigger.subtype}` - ) || trigger.subtype - ) || `"${trigger.subtype}" ${trigger.type}` + trigger.subtype + ? hass.localize( + `component.${trigger.domain}.device_automation.trigger_subtype.${trigger.subtype}` + ) || trigger.subtype + : "" + ) || + (trigger.subtype ? `"${trigger.subtype}" ${trigger.type}` : trigger.type!) ); }; diff --git a/src/panels/config/automation/action/ha-automation-action.ts b/src/panels/config/automation/action/ha-automation-action.ts index ac2e45ff10..0be017cf98 100644 --- a/src/panels/config/automation/action/ha-automation-action.ts +++ b/src/panels/config/automation/action/ha-automation-action.ts @@ -13,6 +13,8 @@ import { Action } from "../../../../data/script"; import { HomeAssistant } from "../../../../types"; import "./ha-automation-action-row"; +import { HaDeviceAction } from "./types/ha-automation-action-device_id"; + @customElement("ha-automation-action") export default class HaAutomationAction extends LitElement { @property() public hass!: HomeAssistant; @@ -46,7 +48,7 @@ export default class HaAutomationAction extends LitElement { private _addAction() { const actions = this.actions.concat({ - service: "", + ...HaDeviceAction.defaultConfig, }); fireEvent(this, "value-changed", { value: actions }); diff --git a/src/panels/config/automation/condition/ha-automation-condition.ts b/src/panels/config/automation/condition/ha-automation-condition.ts index 4a25aa36ab..db368c4864 100644 --- a/src/panels/config/automation/condition/ha-automation-condition.ts +++ b/src/panels/config/automation/condition/ha-automation-condition.ts @@ -9,7 +9,7 @@ import { import "@material/mwc-button"; import "../../../../components/ha-card"; -import { HaStateCondition } from "./types/ha-automation-condition-state"; +import { HaDeviceCondition } from "./types/ha-automation-condition-device"; import { fireEvent } from "../../../../common/dom/fire_event"; import { HomeAssistant } from "../../../../types"; @@ -48,8 +48,8 @@ export default class HaAutomationCondition extends LitElement { private _addCondition() { const conditions = this.conditions.concat({ - condition: "state", - ...HaStateCondition.defaultConfig, + condition: "device", + ...HaDeviceCondition.defaultConfig, }); fireEvent(this, "value-changed", { value: conditions }); diff --git a/src/panels/config/automation/ha-automation-editor.ts b/src/panels/config/automation/ha-automation-editor.ts index 968f92af24..4b883b1282 100644 --- a/src/panels/config/automation/ha-automation-editor.ts +++ b/src/panels/config/automation/ha-automation-editor.ts @@ -36,6 +36,8 @@ import "./condition/ha-automation-condition"; import "./trigger/ha-automation-trigger"; import "../../../layouts/hass-tabs-subpage"; import { configSections } from "../ha-panel-config"; +import { HaDeviceAction } from "./action/types/ha-automation-action-device_id"; +import { HaDeviceTrigger } from "./trigger/types/ha-automation-trigger-device"; export class HaAutomationEditor extends LitElement { @property() public hass!: HomeAssistant; @@ -75,7 +77,7 @@ export class HaAutomationEditor extends LitElement { ` : ""}
@@ -273,9 +275,9 @@ export class HaAutomationEditor extends LitElement { "ui.panel.config.automation.editor.default_name" ), description: "", - trigger: [{ platform: "state" }], + trigger: [{ platform: "device", ...HaDeviceTrigger.defaultConfig }], condition: [], - action: [{ service: "" }], + action: [{ ...HaDeviceAction.defaultConfig }], ...initData, }; } diff --git a/src/panels/config/automation/trigger/ha-automation-trigger.ts b/src/panels/config/automation/trigger/ha-automation-trigger.ts index 71f2e303fd..407b495743 100644 --- a/src/panels/config/automation/trigger/ha-automation-trigger.ts +++ b/src/panels/config/automation/trigger/ha-automation-trigger.ts @@ -13,7 +13,7 @@ import { fireEvent } from "../../../../common/dom/fire_event"; import { HomeAssistant } from "../../../../types"; import "./ha-automation-trigger-row"; -import { HaStateTrigger } from "./types/ha-automation-trigger-state"; +import { HaDeviceTrigger } from "./types/ha-automation-trigger-device"; import { Trigger } from "../../../../data/automation"; @customElement("ha-automation-trigger") @@ -47,8 +47,8 @@ export default class HaAutomationTrigger extends LitElement { private _addTrigger() { const triggers = this.triggers.concat({ - platform: "state", - ...HaStateTrigger.defaultConfig, + platform: "device", + ...HaDeviceTrigger.defaultConfig, }); fireEvent(this, "value-changed", { value: triggers }); diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts index b6134d7de3..a27b1a73c3 100644 --- a/src/panels/config/script/ha-script-editor.ts +++ b/src/panels/config/script/ha-script-editor.ts @@ -29,6 +29,7 @@ import { HomeAssistant, Route } from "../../../types"; import "../automation/action/ha-automation-action"; import { computeObjectId } from "../../../common/entity/compute_object_id"; import { configSections } from "../ha-panel-config"; +import { HaDeviceAction } from "../automation/action/types/ha-automation-action-device_id"; export class HaScriptEditor extends LitElement { @property() public hass!: HomeAssistant; @@ -193,7 +194,7 @@ export class HaScriptEditor extends LitElement { this._dirty = initData ? true : false; this._config = { alias: this.hass.localize("ui.panel.config.script.editor.default_name"), - sequence: [{ service: "" }], + sequence: [{ ...HaDeviceAction.defaultConfig }], ...initData, }; }