From ef51f29e28f3653d19b37da7109d0cd9755f3fb2 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 8 Oct 2019 10:25:57 +0200 Subject: [PATCH] Add report state toggle for Google (#3855) --- src/data/cloud.ts | 2 ++ .../config/cloud/account/cloud-google-pref.ts | 33 +++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/data/cloud.ts b/src/data/cloud.ts index 0755aafcc7..5d5baef8eb 100644 --- a/src/data/cloud.ts +++ b/src/data/cloud.ts @@ -36,6 +36,7 @@ export interface CloudPreferences { [entityId: string]: AlexaEntityConfig; }; alexa_report_state: boolean; + google_report_state: boolean; } export type CloudStatusLoggedIn = CloudStatusBase & { @@ -96,6 +97,7 @@ export const updateCloudPref = ( google_enabled?: CloudPreferences["google_enabled"]; alexa_enabled?: CloudPreferences["alexa_enabled"]; alexa_report_state?: CloudPreferences["alexa_report_state"]; + google_report_state?: CloudPreferences["google_report_state"]; google_secure_devices_pin?: CloudPreferences["google_secure_devices_pin"]; } ) => diff --git a/src/panels/config/cloud/account/cloud-google-pref.ts b/src/panels/config/cloud/account/cloud-google-pref.ts index 4f7a7ae1c7..fdb446197f 100644 --- a/src/panels/config/cloud/account/cloud-google-pref.ts +++ b/src/panels/config/cloud/account/cloud-google-pref.ts @@ -38,6 +38,7 @@ export class CloudGooglePref extends LitElement { const { google_enabled, + google_report_state, google_secure_devices_pin, } = this.cloudStatus.prefs; @@ -51,7 +52,7 @@ export class CloudGooglePref extends LitElement {
@@ -85,6 +86,17 @@ export class CloudGooglePref extends LitElement { > ${google_enabled ? html` +

Enable State Reporting

+

+ If you enable state reporting, Home Assistant will send + all state changes of exposed entities to Google. This + allows you to always see the latest states in the Google app. +

+ +
${this.hass!.localize( "ui.panel.config.cloud.account.google.enter_pin_info" @@ -127,7 +139,7 @@ export class CloudGooglePref extends LitElement { `; } - private async _toggleChanged(ev) { + private async _enableToggleChanged(ev) { const toggle = ev.target as HaSwitch; try { await updateCloudPref(this.hass!, { [toggle.id]: toggle.checked! }); @@ -137,6 +149,23 @@ export class CloudGooglePref extends LitElement { } } + private async _reportToggleChanged(ev) { + const toggle = ev.target as HaSwitch; + try { + await updateCloudPref(this.hass!, { + google_report_state: toggle.checked!, + }); + fireEvent(this, "ha-refresh-cloud-status"); + } catch (err) { + alert( + `Unable to ${toggle.checked ? "enable" : "disable"} report state. ${ + err.message + }` + ); + toggle.checked = !toggle.checked; + } + } + private async _pinChanged(ev) { const input = ev.target as PaperInputElement; try {