* Configure nest pubsub subscriber automatically Update the config flow to configure the nest pubsub subscriber automatically. After completing the authentication step, the user is now asked for the google cloud console ID, which is needed to create a subscription. Home Assistant manages the lifecycle of a subscription only when it is created by the ConfigFlow. Otherwise (if specified in configuration.yaml) it treats it similarly as before. These are the considerations or failure modes taken into account: - Subscription is created with reasonable default values as previously recommended (e.g. retion only keeps 5-15 minutes of backlog messages) - Subscriptions are created with a naming scheme that makes it clear they came from home assistant, and with a random string - Subscriptions are cleaned up when the ConfigEntry is removed. If removal fails, a subscription that is orphaned will be deleted after 30 days - If the subscription gets into a bad state or deleted, the user can go through the re-auth flow to re-create it. - Users can still specifcy a CONF_SUBSCRIBER_ID in the configuration.yaml, and skip automatic subscriber creation * Remove unnecessary nest config flow diffs and merge in upstream changes * Incorporate review feedback into nest subscription config flow * Update text wording in nest config flow
71 lines
2.9 KiB
JSON
71 lines
2.9 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"pick_implementation": {
|
|
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]"
|
|
},
|
|
"auth": {
|
|
"title": "Link Google Account",
|
|
"description": "To link your Google account, [authorize your account]({url}).\n\nAfter authorization, copy-paste the provided Auth Token code below.",
|
|
"data": {
|
|
"code": "[%key:common::config_flow::data::access_token%]"
|
|
}
|
|
},
|
|
"pubsub": {
|
|
"title": "Configure Google Cloud",
|
|
"description": "Visit the [Cloud Console]({url}) to find your Google Cloud Project ID.",
|
|
"data": {
|
|
"cloud_project_id": "Google Cloud Project ID"
|
|
}
|
|
},
|
|
"reauth_confirm": {
|
|
"title": "[%key:common::config_flow::title::reauth%]",
|
|
"description": "The Nest integration needs to re-authenticate your account"
|
|
},
|
|
"init": {
|
|
"title": "Authentication Provider",
|
|
"description": "[%key:common::config_flow::title::oauth2_pick_implementation%]",
|
|
"data": {
|
|
"flow_impl": "Provider"
|
|
}
|
|
},
|
|
"link": {
|
|
"title": "Link Nest Account",
|
|
"description": "To link your Nest account, [authorize your account]({url}).\n\nAfter authorization, copy-paste the provided PIN code below.",
|
|
"data": {
|
|
"code": "[%key:common::config_flow::data::pin%]"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"timeout": "Timeout validating code",
|
|
"invalid_pin": "Invalid [%key:common::config_flow::data::pin%]",
|
|
"unknown": "[%key:common::config_flow::error::unknown%]",
|
|
"internal_error": "Internal error validating code",
|
|
"bad_project_id": "Please enter a valid Cloud Project ID (check Cloud Console)",
|
|
"wrong_project_id": "Please enter a valid Cloud Project ID (found Device Access Project ID)",
|
|
"subscriber_error": "Unknown subscriber error, see logs"
|
|
},
|
|
"abort": {
|
|
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]",
|
|
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
|
|
"authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]",
|
|
"unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]",
|
|
"no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]",
|
|
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
|
|
"invalid_access_token": "[%key:common::config_flow::error::invalid_access_token]"
|
|
},
|
|
"create_entry": {
|
|
"default": "[%key:common::config_flow::create_entry::authenticated%]"
|
|
}
|
|
},
|
|
"device_automation": {
|
|
"trigger_type": {
|
|
"camera_person": "Person detected",
|
|
"camera_motion": "Motion detected",
|
|
"camera_sound": "Sound detected",
|
|
"doorbell_chime": "Doorbell pressed"
|
|
}
|
|
}
|
|
}
|