Migrate integration services (G-H) to support translations (#96372)

This commit is contained in:
Franck Nijhof 2023-07-12 12:31:26 +02:00 committed by GitHub
parent a3a2e6cc8d
commit 7bc90297d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 934 additions and 411 deletions

View file

@ -2,21 +2,14 @@
# Describes the format for available services
set_zone_mode:
name: Set zone mode
description: >-
Set the zone to an operating mode.
fields:
entity_id:
name: Entity
description: The zone's entity_id.
required: true
selector:
entity:
integration: geniushub
domain: climate
mode:
name: Mode
description: "One of: off, timer or footprint."
required: true
selector:
select:
@ -26,21 +19,14 @@ set_zone_mode:
- "footprint"
set_zone_override:
name: Set zone override
description: >-
Override the zone's set point for a given duration.
fields:
entity_id:
name: Entity
description: The zone's entity_id.
required: true
selector:
entity:
integration: geniushub
domain: climate
temperature:
name: Temperature
description: The target temperature.
required: true
selector:
number:
@ -49,26 +35,17 @@ set_zone_override:
step: 0.1
unit_of_measurement: "°"
duration:
name: Duration
description: >-
The duration of the override. Optional, default 1 hour, maximum 24 hours.
example: '{"minutes": 135}'
selector:
object:
set_switch_override:
name: Set switch override
description: >-
Override switch for a given duration.
target:
entity:
integration: geniushub
domain: switch
fields:
duration:
name: Duration
description: >-
The duration of the override. Optional, default 1 hour, maximum 24 hours.
example: '{"minutes": 135}'
selector:
object:

View file

@ -0,0 +1,46 @@
{
"services": {
"set_zone_mode": {
"name": "Set zone mode",
"description": "Set the zone to an operating mode.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "The zone's entity_id."
},
"mode": {
"name": "Mode",
"description": "One of: off, timer or footprint."
}
}
},
"set_zone_override": {
"name": "Set zone override",
"description": "Overrides the zone's set point for a given duration.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "The zone's entity_id."
},
"temperature": {
"name": "Temperature",
"description": "The target temperature."
},
"duration": {
"name": "Duration",
"description": "The duration of the override. Optional, default 1 hour, maximum 24 hours."
}
}
},
"set_switch_override": {
"name": "Set switch override",
"description": "Overrides switch for a given duration.",
"fields": {
"duration": {
"name": "Duration",
"description": "The duration of the override. Optional, default 1 hour, maximum 24 hours."
}
}
}
}
}

View file

@ -1,111 +1,75 @@
add_event:
name: Add event
description: Add a new calendar event.
fields:
calendar_id:
name: Calendar ID
description: The id of the calendar you want.
required: true
example: "Your email"
selector:
text:
summary:
name: Summary
description: Acts as the title of the event.
required: true
example: "Bowling"
selector:
text:
description:
name: Description
description: The description of the event. Optional.
example: "Birthday bowling"
selector:
text:
start_date_time:
name: Start time
description: The date and time the event should start.
example: "2019-03-22 20:00:00"
selector:
text:
end_date_time:
name: End time
description: The date and time the event should end.
example: "2019-03-22 22:00:00"
selector:
text:
start_date:
name: Start date
description: The date the whole day event should start.
example: "2019-03-10"
selector:
text:
end_date:
name: End date
description: The date the whole day event should end.
example: "2019-03-11"
selector:
text:
in:
name: In
description: Days or weeks that you want to create the event in.
example: '"days": 2 or "weeks": 2'
selector:
object:
create_event:
name: Create event
description: Add a new calendar event.
target:
entity:
integration: google
domain: calendar
fields:
summary:
name: Summary
description: Acts as the title of the event.
required: true
example: "Bowling"
selector:
text:
description:
name: Description
description: The description of the event. Optional.
example: "Birthday bowling"
selector:
text:
start_date_time:
name: Start time
description: The date and time the event should start.
example: "2022-03-22 20:00:00"
selector:
text:
end_date_time:
name: End time
description: The date and time the event should end.
example: "2022-03-22 22:00:00"
selector:
text:
start_date:
name: Start date
description: The date the whole day event should start.
example: "2022-03-10"
selector:
text:
end_date:
name: End date
description: The date the whole day event should end.
example: "2022-03-11"
selector:
text:
in:
name: In
description: Days or weeks that you want to create the event in.
example: '"days": 2 or "weeks": 2'
selector:
object:
location:
name: Location
description: The location of the event. Optional.
example: "Conference Room - F123, Bldg. 002"
selector:
text:

View file

@ -42,5 +42,83 @@
},
"application_credentials": {
"description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Calendar. You also need to create Application Credentials linked to your Calendar:\n1. Go to [Credentials]({oauth_creds_url}) and click **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **TV and Limited Input devices** for the Application Type.\n\n"
},
"services": {
"add_event": {
"name": "Add event",
"description": "Adds a new calendar event.",
"fields": {
"calendar_id": {
"name": "Calendar ID",
"description": "The id of the calendar you want."
},
"summary": {
"name": "Summary",
"description": "Acts as the title of the event."
},
"description": {
"name": "Description",
"description": "The description of the event. Optional."
},
"start_date_time": {
"name": "Start time",
"description": "The date and time the event should start."
},
"end_date_time": {
"name": "End time",
"description": "The date and time the event should end."
},
"start_date": {
"name": "Start date",
"description": "The date the whole day event should start."
},
"end_date": {
"name": "End date",
"description": "The date the whole day event should end."
},
"in": {
"name": "In",
"description": "Days or weeks that you want to create the event in."
}
}
},
"create_event": {
"name": "Creates event",
"description": "Add a new calendar event.",
"fields": {
"summary": {
"name": "Summary",
"description": "Acts as the title of the event."
},
"description": {
"name": "Description",
"description": "The description of the event. Optional."
},
"start_date_time": {
"name": "Start time",
"description": "The date and time the event should start."
},
"end_date_time": {
"name": "End time",
"description": "The date and time the event should end."
},
"start_date": {
"name": "Start date",
"description": "The date the whole day event should start."
},
"end_date": {
"name": "End date",
"description": "The date the whole day event should end."
},
"in": {
"name": "In",
"description": "Days or weeks that you want to create the event in."
},
"location": {
"name": "Location",
"description": "The location of the event. Optional."
}
}
}
}
}

View file

@ -1,9 +1,5 @@
request_sync:
name: Request sync
description: Send a request_sync command to Google.
fields:
agent_user_id:
name: Agent user ID
description: "Only needed for automations. Specific Home Assistant user id (not username, ID in configuration > users > under username) to sync with Google Assistant. Do not need when you call this service through Home Assistant front end or API. Used in automation script or other place where context.user_id is missing."
selector:
text:

View file

@ -0,0 +1,14 @@
{
"services": {
"request_sync": {
"name": "Request sync",
"description": "Sends a request_sync command to Google.",
"fields": {
"agent_user_id": {
"name": "Agent user ID",
"description": "Only needed for automations. Specific Home Assistant user id (not username, ID in configuration > users > under username) to sync with Google Assistant. Do not need when you call this service through Home Assistant front end or API. Used in automation script or other place where context.user_id is missing."
}
}
}
}
}

View file

@ -1,16 +1,10 @@
send_text_command:
name: Send text command
description: Send a command as a text query to Google Assistant.
fields:
command:
name: Command
description: Command(s) to send to Google Assistant.
example: turn off kitchen TV
selector:
text:
media_player:
name: Media Player Entity
description: Name(s) of media player entities to play response on
example: media_player.living_room_speaker
selector:
entity:

View file

@ -38,5 +38,21 @@
},
"application_credentials": {
"description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Assistant SDK. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and click **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type.\n\n"
},
"services": {
"send_text_command": {
"name": "Send text command",
"description": "Sends a command as a text query to Google Assistant.",
"fields": {
"command": {
"name": "Command",
"description": "Command(s) to send to Google Assistant."
},
"media_player": {
"name": "Media player entity",
"description": "Name(s) of media player entities to play response on."
}
}
}
}
}

View file

@ -1,6 +1,4 @@
set_vacation:
name: Set Vacation
description: Set vacation responder settings for Google Mail.
target:
device:
integration: google_mail
@ -8,46 +6,30 @@ set_vacation:
integration: google_mail
fields:
enabled:
name: Enabled
required: true
default: true
description: Turn this off to end vacation responses.
selector:
boolean:
title:
name: Title
description: The subject for the email
selector:
text:
message:
name: Message
description: Body of the email
required: true
selector:
text:
plain_text:
name: Plain text
default: true
description: Choose to send message in plain text or HTML.
selector:
boolean:
restrict_contacts:
name: Restrict to Contacts
description: Restrict automatic reply to contacts.
selector:
boolean:
restrict_domain:
name: Restrict to Domain
description: Restrict automatic reply to domain. This only affects GSuite accounts.
selector:
boolean:
start:
name: start
description: First day of the vacation
selector:
date:
end:
name: end
description: Last day of the vacation
selector:
date:

View file

@ -37,5 +37,45 @@
"name": "Vacation end date"
}
}
},
"services": {
"set_vacation": {
"name": "Set vacation",
"description": "Sets vacation responder settings for Google Mail.",
"fields": {
"enabled": {
"name": "Enabled",
"description": "Turn this off to end vacation responses."
},
"title": {
"name": "Title",
"description": "The subject for the email."
},
"message": {
"name": "Message",
"description": "Body of the email."
},
"plain_text": {
"name": "Plain text",
"description": "Choose to send message in plain text or HTML."
},
"restrict_contacts": {
"name": "Restrict to contacts",
"description": "Restrict automatic reply to contacts."
},
"restrict_domain": {
"name": "Restrict to domain",
"description": "Restrict automatic reply to domain. This only affects GSuite accounts."
},
"start": {
"name": "Start",
"description": "First day of the vacation."
},
"end": {
"name": "End",
"description": "Last day of the vacation."
}
}
}
}
}

View file

@ -1,23 +1,15 @@
append_sheet:
name: Append to Sheet
description: Append data to a worksheet in Google Sheets.
fields:
config_entry:
name: Sheet
description: The sheet to add data to
required: true
selector:
config_entry:
integration: google_sheets
worksheet:
name: Worksheet
description: Name of the worksheet. Defaults to the first one in the document.
example: "Sheet1"
selector:
text:
data:
name: Data
description: Data to be appended to the worksheet. This puts the values on a new row underneath the matching column (key). Any new key is placed on the top of a new column.
required: true
example: '{"hello": world, "cool": True, "count": 5}'
selector:

View file

@ -31,5 +31,25 @@
},
"application_credentials": {
"description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Sheets. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and click **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type.\n\n"
},
"services": {
"append_sheet": {
"name": "Append to sheet",
"description": "Appends data to a worksheet in Google Sheets.",
"fields": {
"config_entry": {
"name": "Sheet",
"description": "The sheet to add data to."
},
"worksheet": {
"name": "Worksheet",
"description": "Name of the worksheet. Defaults to the first one in the document."
},
"data": {
"name": "Data",
"description": "Data to be appended to the worksheet. This puts the values on a new row underneath the matching column (key). Any new key is placed on the top of a new column."
}
}
}
}
}

View file

@ -1,68 +1,46 @@
# Describes the format for available Elexa Guardians services
pair_sensor:
name: Pair Sensor
description: Add a new paired sensor to the valve controller.
fields:
device_id:
name: Valve Controller
description: The valve controller to add the sensor to
required: true
selector:
device:
integration: guardian
uid:
name: UID
description: The UID of the paired sensor
required: true
example: 5410EC688BCF
selector:
text:
unpair_sensor:
name: Unpair Sensor
description: Remove a paired sensor from the valve controller.
fields:
device_id:
name: Valve Controller
description: The valve controller to remove the sensor from
required: true
selector:
device:
integration: guardian
uid:
name: UID
description: The UID of the paired sensor
required: true
example: 5410EC688BCF
selector:
text:
upgrade_firmware:
name: Upgrade firmware
description: Upgrade the device firmware.
fields:
device_id:
name: Valve Controller
description: The valve controller whose firmware should be upgraded
required: true
selector:
device:
integration: guardian
url:
name: URL
description: The URL of the server hosting the firmware file.
example: https://repo.guardiancloud.services/gvc/fw
selector:
text:
port:
name: Port
description: The port on which the firmware file is served.
example: 443
selector:
number:
min: 1
max: 65535
filename:
name: Filename
description: The firmware filename.
example: latest.bin
selector:
text:

View file

@ -45,5 +45,57 @@
"name": "Valve controller"
}
}
},
"services": {
"pair_sensor": {
"name": "Pair sensor",
"description": "Adds a new paired sensor to the valve controller.",
"fields": {
"device_id": {
"name": "Valve controller",
"description": "The valve controller to add the sensor to."
},
"uid": {
"name": "UID",
"description": "The UID of the paired sensor."
}
}
},
"unpair_sensor": {
"name": "Unpair sensor",
"description": "Removes a paired sensor from the valve controller.",
"fields": {
"device_id": {
"name": "Valve controller",
"description": "The valve controller to remove the sensor from."
},
"uid": {
"name": "UID",
"description": "The UID of the paired sensor."
}
}
},
"upgrade_firmware": {
"name": "Upgrade firmware",
"description": "Upgrades the device firmware.",
"fields": {
"device_id": {
"name": "Valve controller",
"description": "The valve controller whose firmware should be upgraded."
},
"url": {
"name": "URL",
"description": "The URL of the server hosting the firmware file."
},
"port": {
"name": "Port",
"description": "The port on which the firmware file is served."
},
"filename": {
"name": "Filename",
"description": "The firmware filename."
}
}
}
}
}

View file

@ -1,25 +1,17 @@
# Describes the format for Habitica service
api_call:
name: API name
description: Call Habitica API
fields:
name:
name: Name
description: Habitica's username to call for
required: true
example: "xxxNotAValidNickxxx"
selector:
text:
path:
name: Path
description: "Items from API URL in form of an array with method attached at the end. Consult https://habitica.com/apidoc/. Example uses https://habitica.com/apidoc/#api-Task-CreateUserTasks"
required: true
example: '["tasks", "user", "post"]'
selector:
object:
args:
name: Args
description: Any additional JSON or URL parameter arguments. See apidoc mentioned for path. Example uses same API endpoint
example: '{"text": "Use API from Home Assistant", "type": "todo"}'
selector:
object:

View file

@ -11,12 +11,32 @@
"user": {
"data": {
"url": "[%key:common::config_flow::data::url%]",
"name": "Override for Habiticas username. Will be used for service calls",
"api_user": "Habiticas API user ID",
"name": "Override for Habitica\u2019s username. Will be used for service calls",
"api_user": "Habitica\u2019s API user ID",
"api_key": "[%key:common::config_flow::data::api_key%]"
},
"description": "Connect your Habitica profile to allow monitoring of your user's profile and tasks. Note that api_id and api_key must be gotten from https://habitica.com/user/settings/api"
}
}
},
"services": {
"api_call": {
"name": "API name",
"description": "Calls Habitica API.",
"fields": {
"name": {
"name": "Name",
"description": "Habitica's username to call for."
},
"path": {
"name": "Path",
"description": "Items from API URL in form of an array with method attached at the end. Consult https://habitica.com/apidoc/. Example uses https://habitica.com/apidoc/#api-Task-CreateUserTasks."
},
"args": {
"name": "Args",
"description": "Any additional JSON or URL parameter arguments. See apidoc mentioned for path. Example uses same API endpoint."
}
}
}
}
}

View file

@ -1,22 +1,16 @@
sync:
name: Sync
description: Syncs the remote's configuration.
target:
entity:
integration: harmony
domain: remote
change_channel:
name: Change channel
description: Sends change channel command to the Harmony HUB
target:
entity:
integration: harmony
domain: remote
fields:
channel:
name: Channel
description: Channel number to change to
required: true
selector:
number:

View file

@ -41,5 +41,21 @@
}
}
}
},
"services": {
"sync": {
"name": "Sync",
"description": "Syncs the remote's configuration."
},
"change_channel": {
"name": "Change channel",
"description": "Sends change channel command to the Harmony HUB.",
"fields": {
"channel": {
"name": "Channel",
"description": "Channel number to change to."
}
}
}
}
}

View file

@ -1,74 +1,43 @@
power_on:
name: Power on
description: Power on all devices which supports it.
select_device:
name: Select device
description: Select HDMI device.
fields:
device:
name: Device
description: Address of device to select. Can be entity_id, physical address or alias from configuration.
required: true
example: '"switch.hdmi_1" or "1.1.0.0" or "01:10"'
selector:
text:
send_command:
name: Send command
description: Sends CEC command into HDMI CEC capable adapter.
fields:
att:
name: Att
description: Optional parameters.
example: [0, 2]
selector:
object:
cmd:
name: Command
description: 'Command itself. Could be decimal number or string with hexadeximal notation: "0x10".'
example: 144 or "0x90"
selector:
text:
dst:
name: Destination
description: 'Destination for command. Could be decimal number or string with hexadeximal notation: "0x10".'
example: 5 or "0x5"
selector:
text:
raw:
name: Raw
description: >-
Raw CEC command in format "00:00:00:00" where first two digits
are source and destination, second byte is command and optional other bytes
are command parameters. If raw command specified, other params are ignored.
example: '"10:36"'
selector:
text:
src:
name: Source
description: 'Source of command. Could be decimal number or string with hexadeximal notation: "0x10".'
example: 12 or "0xc"
selector:
text:
standby:
name: Standby
description: Standby all devices which supports it.
update:
name: Update
description: Update devices state from network.
volume:
name: Volume
description: Increase or decrease volume of system.
fields:
down:
name: Down
description: Decreases volume x levels.
selector:
number:
min: 1
max: 100
mute:
name: Mute
description: Mutes audio system.
selector:
select:
options:
@ -76,8 +45,6 @@ volume:
- "on"
- "toggle"
up:
name: Up
description: Increases volume x levels.
selector:
number:
min: 1

View file

@ -0,0 +1,70 @@
{
"services": {
"power_on": {
"name": "Power on",
"description": "Power on all devices which supports it."
},
"select_device": {
"name": "Select device",
"description": "Select HDMI device.",
"fields": {
"device": {
"name": "Device",
"description": "Address of device to select. Can be entity_id, physical address or alias from configuration."
}
}
},
"send_command": {
"name": "Send command",
"description": "Sends CEC command into HDMI CEC capable adapter.",
"fields": {
"att": {
"name": "Att",
"description": "Optional parameters."
},
"cmd": {
"name": "Command",
"description": "Command itself. Could be decimal number or string with hexadeximal notation: \"0x10\"."
},
"dst": {
"name": "Destination",
"description": "Destination for command. Could be decimal number or string with hexadeximal notation: \"0x10\"."
},
"raw": {
"name": "Raw",
"description": "Raw CEC command in format \"00:00:00:00\" where first two digits are source and destination, second byte is command and optional other bytes are command parameters. If raw command specified, other params are ignored."
},
"src": {
"name": "Source",
"description": "Source of command. Could be decimal number or string with hexadeximal notation: \"0x10\"."
}
}
},
"standby": {
"name": "Standby",
"description": "Standby all devices which supports it."
},
"update": {
"name": "Update",
"description": "Updates devices state from network."
},
"volume": {
"name": "Volume",
"description": "Increases or decreases volume of system.",
"fields": {
"down": {
"name": "Down",
"description": "Decreases volume x levels."
},
"mute": {
"name": "Mute",
"description": "Mutes audio system."
},
"up": {
"name": "Up",
"description": "Increases volume x levels."
}
}
}
}
}

View file

@ -1,22 +1,14 @@
sign_in:
name: Sign in
description: Sign the controller in to a HEOS account.
fields:
username:
name: Username
description: The username or email of the HEOS account.
required: true
example: "example@example.com"
selector:
text:
password:
name: Password
description: The password of the HEOS account.
required: true
example: "password"
selector:
text:
sign_out:
name: Sign out
description: Sign the controller out of the HEOS account.

View file

@ -15,5 +15,25 @@
"abort": {
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]"
}
},
"services": {
"sign_in": {
"name": "Sign in",
"description": "Signs the controller in to a HEOS account.",
"fields": {
"username": {
"name": "Username",
"description": "The username or email of the HEOS account."
},
"password": {
"name": "Password",
"description": "The password of the HEOS account."
}
}
},
"sign_out": {
"name": "Sign out",
"description": "Signs the controller out of the HEOS account."
}
}
}

View file

@ -1,21 +1,15 @@
boost_heating:
name: Boost Heating (To be deprecated)
description: To be deprecated please use boost_heating_on.
target:
entity:
integration: hive
domain: climate
fields:
time_period:
name: Time Period
description: Set the time period for the boost.
required: true
example: 01:30:00
selector:
time:
temperature:
name: Temperature
description: Set the target temperature for the boost period.
default: 25.0
selector:
number:
@ -24,23 +18,17 @@ boost_heating:
step: 0.5
unit_of_measurement: °
boost_heating_on:
name: Boost Heating On
description: Set the boost mode ON defining the period of time and the desired target temperature for the boost.
target:
entity:
integration: hive
domain: climate
fields:
time_period:
name: Time Period
description: Set the time period for the boost.
required: true
example: 01:30:00
selector:
time:
temperature:
name: Temperature
description: Set the target temperature for the boost period.
default: 25.0
selector:
number:
@ -49,39 +37,27 @@ boost_heating_on:
step: 0.5
unit_of_measurement: °
boost_heating_off:
name: Boost Heating Off
description: Set the boost mode OFF.
fields:
entity_id:
name: Entity ID
description: Select entity_id to turn boost off.
required: true
selector:
entity:
integration: hive
domain: climate
boost_hot_water:
name: Boost Hotwater
description: Set the boost mode ON or OFF defining the period of time for the boost.
fields:
entity_id:
name: Entity ID
description: Select entity_id to boost.
required: true
selector:
entity:
integration: hive
domain: water_heater
time_period:
name: Time Period
description: Set the time period for the boost.
required: true
example: 01:30:00
selector:
time:
on_off:
name: Mode
description: Set the boost function on or off.
required: true
selector:
select:

View file

@ -56,5 +56,63 @@
}
}
}
},
"services": {
"boost_heating": {
"name": "Boost heating (to be deprecated)",
"description": "To be deprecated please use boost_heating_on.",
"fields": {
"time_period": {
"name": "Time period",
"description": "Set the time period for the boost."
},
"temperature": {
"name": "Temperature",
"description": "Set the target temperature for the boost period."
}
}
},
"boost_heating_on": {
"name": "Boost heating on",
"description": "Sets the boost mode ON defining the period of time and the desired target temperature for the boost.",
"fields": {
"time_period": {
"name": "Time Period",
"description": "Set the time period for the boost."
},
"temperature": {
"name": "Temperature",
"description": "Set the target temperature for the boost period."
}
}
},
"boost_heating_off": {
"name": "Boost heating off",
"description": "Sets the boost mode OFF.",
"fields": {
"entity_id": {
"name": "Entity ID",
"description": "Select entity_id to turn boost off."
}
}
},
"boost_hot_water": {
"name": "Boost hotwater",
"description": "Sets the boost mode ON or OFF defining the period of time for the boost.",
"fields": {
"entity_id": {
"name": "Entity ID",
"description": "Select entity_id to boost."
},
"time_period": {
"name": "Time period",
"description": "Set the time period for the boost."
},
"on_off": {
"name": "Mode",
"description": "Set the boost function on or off."
}
}
}
}
}

View file

@ -1,168 +1,112 @@
start_program:
name: Start program
description: Selects a program and starts it.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
program:
name: Program
description: Program to select
example: "Dishcare.Dishwasher.Program.Auto2"
required: true
selector:
text:
key:
name: Option key
description: Key of the option.
example: "BSH.Common.Option.StartInRelative"
selector:
text:
value:
name: Option value
description: Value of the option.
example: 1800
selector:
object:
unit:
name: Option unit
description: Unit for the option.
example: "seconds"
selector:
text:
select_program:
name: Select program
description: Selects a program without starting it.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
program:
name: Program
description: Program to select
example: "Dishcare.Dishwasher.Program.Auto2"
required: true
selector:
text:
key:
name: Option key
description: Key of the option.
example: "BSH.Common.Option.StartInRelative"
selector:
text:
value:
name: Option value
description: Value of the option.
example: 1800
selector:
object:
unit:
name: Option unit
description: Unit for the option.
example: "seconds"
selector:
text:
pause_program:
name: Pause program
description: Pauses the current running program.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
resume_program:
name: Resume program
description: Resumes a paused program.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
set_option_active:
name: Set active program option
description: Sets an option for the active program.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
key:
name: Key
description: Key of the option.
example: "LaundryCare.Dryer.Option.DryingTarget"
required: true
selector:
text:
value:
name: Value
description: Value of the option.
example: "LaundryCare.Dryer.EnumType.DryingTarget.IronDry"
required: true
selector:
object:
set_option_selected:
name: Set selected program option
description: Sets an option for the selected program.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
key:
name: Key
description: Key of the option.
example: "LaundryCare.Dryer.Option.DryingTarget"
required: true
selector:
text:
value:
name: Value
description: Value of the option.
example: "LaundryCare.Dryer.EnumType.DryingTarget.IronDry"
required: true
selector:
object:
change_setting:
name: Change setting
description: Changes a setting.
fields:
device_id:
name: Device ID
description: Id of the device.
required: true
selector:
device:
integration: home_connect
key:
name: Key
description: Key of the setting.
example: "BSH.Common.Setting.ChildLock"
required: true
selector:
text:
value:
name: Value
description: Value of the setting.
example: "true"
required: true
selector:

View file

@ -12,5 +12,133 @@
"create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]"
}
},
"services": {
"start_program": {
"name": "Start program",
"description": "Selects a program and starts it.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
},
"program": {
"name": "Program",
"description": "Program to select."
},
"key": {
"name": "Option key",
"description": "Key of the option."
},
"value": {
"name": "Option value",
"description": "Value of the option."
},
"unit": {
"name": "Option unit",
"description": "Unit for the option."
}
}
},
"select_program": {
"name": "Select program",
"description": "Selects a program without starting it.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
},
"program": {
"name": "Program",
"description": "Program to select."
},
"key": {
"name": "Option key",
"description": "Key of the option."
},
"value": {
"name": "Option value",
"description": "Value of the option."
},
"unit": {
"name": "Option unit",
"description": "Unit for the option."
}
}
},
"pause_program": {
"name": "Pause program",
"description": "Pauses the current running program.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
}
}
},
"resume_program": {
"name": "Resume program",
"description": "Resumes a paused program.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
}
}
},
"set_option_active": {
"name": "Set active program option",
"description": "Sets an option for the active program.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
},
"key": {
"name": "Key",
"description": "Key of the option."
},
"value": {
"name": "Value",
"description": "Value of the option."
}
}
},
"set_option_selected": {
"name": "Set selected program option",
"description": "Sets an option for the selected program.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
},
"key": {
"name": "Key",
"description": "Key of the option."
},
"value": {
"name": "Value",
"description": "Value of the option."
}
}
},
"change_setting": {
"name": "Change setting",
"description": "Changes a setting.",
"fields": {
"device_id": {
"name": "Device ID",
"description": "Id of the device."
},
"key": {
"name": "Key",
"description": "Key of the setting."
},
"value": {
"name": "Value",
"description": "Value of the setting."
}
}
}
}
}

View file

@ -1,18 +1,11 @@
# Describes the format for available HomeKit services
reload:
name: Reload
description: Reload homekit and re-process YAML configuration
reset_accessory:
name: Reset accessory
description: Reset a HomeKit accessory
target:
entity: {}
unpair:
name: Unpair an accessory or bridge
description: Forcefully remove all pairings from an accessory to allow re-pairing. Use this service if the accessory is no longer responsive, and you want to avoid deleting and re-adding the entry. Room locations, and accessory preferences will be lost.
target:
device:
integration: homekit

View file

@ -24,14 +24,14 @@
"data": {
"entities": "Entities"
},
"description": "Select entities from each domain in “{domains}”. The include will cover the entire domain if you do not select any entities for a given domain.",
"description": "Select entities from each domain in \u201c{domains}\u201d. The include will cover the entire domain if you do not select any entities for a given domain.",
"title": "Select the entities to be included"
},
"exclude": {
"data": {
"entities": "[%key:component::homekit::options::step::include::data::entities%]"
},
"description": "All “{domains}” entities will be included except for the excluded entities and categorized entities.",
"description": "All \u201c{domains}\u201d entities will be included except for the excluded entities and categorized entities.",
"title": "Select the entities to be excluded"
},
"cameras": {
@ -68,5 +68,19 @@
"abort": {
"port_name_in_use": "An accessory or bridge with the same name or port is already configured."
}
},
"services": {
"reload": {
"name": "Reload",
"description": "Reloads homekit and re-process YAML-configuration."
},
"reset_accessory": {
"name": "Reset accessory",
"description": "Resets a HomeKit accessory."
},
"unpair": {
"name": "Unpair an accessory or bridge",
"description": "Forcefully removes all pairings from an accessory to allow re-pairing. Use this service if the accessory is no longer responsive, and you want to avoid deleting and re-adding the entry. Room locations, and accessory preferences will be lost."
}
}
}

View file

@ -1,105 +1,73 @@
# Describes the format for available component services
virtualkey:
name: Virtual key
description: Press a virtual key from CCU/Homegear or simulate keypress.
fields:
address:
name: Address
description: Address of homematic device or BidCoS-RF for virtual remote.
required: true
example: BidCoS-RF
selector:
text:
channel:
name: Channel
description: Channel for calling a keypress.
required: true
selector:
number:
min: 1
max: 6
param:
name: Param
description: Event to send i.e. PRESS_LONG, PRESS_SHORT.
required: true
example: PRESS_LONG
selector:
text:
interface:
name: Interface
description: Set an interface value.
example: Interfaces name from config
selector:
text:
set_variable_value:
name: Set variable value
description: Set the name of a node.
fields:
entity_id:
name: Entity
description: Name(s) of homematic central to set value.
selector:
entity:
domain: homematic
name:
name: Name
description: Name of the variable to set.
required: true
example: "testvariable"
selector:
text:
value:
name: Value
description: New value
required: true
example: 1
selector:
text:
set_device_value:
name: Set device value
description: Set a device property on RPC XML interface.
fields:
address:
name: Address
description: Address of homematic device or BidCoS-RF for virtual remote
required: true
example: BidCoS-RF
selector:
text:
channel:
name: Channel
description: Channel for calling a keypress
required: true
selector:
number:
min: 1
max: 6
param:
name: Param
description: Event to send i.e. PRESS_LONG, PRESS_SHORT
required: true
example: PRESS_LONG
selector:
text:
interface:
name: Interface
description: Set an interface value
example: Interfaces name from config
selector:
text:
value:
name: Value
description: New value
required: true
example: 1
selector:
text:
value_type:
name: Value type
description: Type for new value
selector:
select:
options:
@ -110,31 +78,20 @@ set_device_value:
- "string"
reconnect:
name: Reconnect
description: Reconnect to all Homematic Hubs.
set_install_mode:
name: Set install mode
description: Set a RPC XML interface into installation mode.
fields:
interface:
name: Interface
description: Select the given interface into install mode
required: true
example: Interfaces name from config
selector:
text:
mode:
name: Mode
description: 1= Normal mode / 2= Remove exists old links
default: 1
selector:
number:
min: 1
max: 2
time:
name: Time
description: Time to run in install mode
default: 60
selector:
number:
@ -142,47 +99,33 @@ set_install_mode:
max: 3600
unit_of_measurement: seconds
address:
name: Address
description: Address of homematic device or BidCoS-RF to learn
example: LEQ3948571
selector:
text:
put_paramset:
name: Put paramset
description: Call to putParamset in the RPC XML interface
fields:
interface:
name: Interface
description: The interfaces name from the config
required: true
example: wireless
selector:
text:
address:
name: Address
description: Address of Homematic device
required: true
example: LEQ3948571:0
selector:
text:
paramset_key:
name: Paramset key
description: The paramset_key argument to putParamset
required: true
example: MASTER
selector:
text:
paramset:
name: Paramset
description: A paramset dictionary
required: true
example: '{"WEEK_PROGRAM_POINTER": 1}'
selector:
object:
rx_mode:
name: RX mode
description: The receive mode used.
example: BURST
selector:
text:

View file

@ -0,0 +1,126 @@
{
"services": {
"virtualkey": {
"name": "Virtual key",
"description": "Presses a virtual key from CCU/Homegear or simulate keypress.",
"fields": {
"address": {
"name": "Address",
"description": "Address of homematic device or BidCoS-RF for virtual remote."
},
"channel": {
"name": "Channel",
"description": "Channel for calling a keypress."
},
"param": {
"name": "Param",
"description": "Event to send i.e. PRESS_LONG, PRESS_SHORT."
},
"interface": {
"name": "Interface",
"description": "Set an interface value."
}
}
},
"set_variable_value": {
"name": "Set variable value",
"description": "Sets the name of a node.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "Name(s) of homematic central to set value."
},
"name": {
"name": "Name",
"description": "Name of the variable to set."
},
"value": {
"name": "Value",
"description": "New value."
}
}
},
"set_device_value": {
"name": "Set device value",
"description": "Sets a device property on RPC XML interface.",
"fields": {
"address": {
"name": "Address",
"description": "Address of homematic device or BidCoS-RF for virtual remote."
},
"channel": {
"name": "Channel",
"description": "Channel for calling a keypress."
},
"param": {
"name": "Param",
"description": "Event to send i.e. PRESS_LONG, PRESS_SHORT."
},
"interface": {
"name": "Interface",
"description": "Set an interface value."
},
"value": {
"name": "Value",
"description": "New value."
},
"value_type": {
"name": "Value type",
"description": "Type for new value."
}
}
},
"reconnect": {
"name": "Reconnect",
"description": "Reconnects to all Homematic Hubs."
},
"set_install_mode": {
"name": "Set install mode",
"description": "Set a RPC XML interface into installation mode.",
"fields": {
"interface": {
"name": "Interface",
"description": "Select the given interface into install mode."
},
"mode": {
"name": "Mode",
"description": "1= Normal mode / 2= Remove exists old links."
},
"time": {
"name": "Time",
"description": "Time to run in install mode."
},
"address": {
"name": "Address",
"description": "Address of homematic device or BidCoS-RF to learn."
}
}
},
"put_paramset": {
"name": "Put paramset",
"description": "Calls to putParamset in the RPC XML interface.",
"fields": {
"interface": {
"name": "Interface",
"description": "The interfaces name from the config."
},
"address": {
"name": "Address",
"description": "Address of Homematic device."
},
"paramset_key": {
"name": "Paramset key",
"description": "The paramset_key argument to putParamset."
},
"paramset": {
"name": "Paramset",
"description": "A paramset dictionary."
},
"rx_mode": {
"name": "RX mode",
"description": "The receive mode used."
}
}
}
}
}

View file

@ -1,12 +1,8 @@
# Describes the format for available component services
activate_eco_mode_with_duration:
name: Activate eco mode with duration
description: Activate eco mode with period.
fields:
duration:
name: Duration
description: The duration of eco mode in minutes.
required: true
selector:
number:
@ -14,44 +10,30 @@ activate_eco_mode_with_duration:
max: 1440
unit_of_measurement: "minutes"
accesspoint_id:
name: Accesspoint ID
description: The ID of the Homematic IP Access Point
example: 3014xxxxxxxxxxxxxxxxxxxx
selector:
text:
activate_eco_mode_with_period:
name: Activate eco more with period
description: Activate eco mode with period.
fields:
endtime:
name: Endtime
description: The time when the eco mode should automatically be disabled.
required: true
example: 2019-02-17 14:00
selector:
text:
accesspoint_id:
name: Accesspoint ID
description: The ID of the Homematic IP Access Point
example: 3014xxxxxxxxxxxxxxxxxxxx
selector:
text:
activate_vacation:
name: Activate vacation
description: Activates the vacation mode until the given time.
fields:
endtime:
name: Endtime
description: The time when the vacation mode should automatically be disabled.
required: true
example: 2019-09-17 14:00
selector:
text:
temperature:
name: Temperature
description: the set temperature during the vacation mode.
required: true
default: 18
selector:
@ -61,48 +43,32 @@ activate_vacation:
step: 0.5
unit_of_measurement: "°"
accesspoint_id:
name: Accesspoint ID
description: The ID of the Homematic IP Access Point
example: 3014xxxxxxxxxxxxxxxxxxxx
selector:
text:
deactivate_eco_mode:
name: Deactivate eco mode
description: Deactivates the eco mode immediately.
fields:
accesspoint_id:
name: Accesspoint ID
description: The ID of the Homematic IP Access Point
example: 3014xxxxxxxxxxxxxxxxxxxx
selector:
text:
deactivate_vacation:
name: Deactivate vacation
description: Deactivates the vacation mode immediately.
fields:
accesspoint_id:
name: Accesspoint ID
description: The ID of the Homematic IP Access Point
example: 3014xxxxxxxxxxxxxxxxxxxx
selector:
text:
set_active_climate_profile:
name: Set active climate profile
description: Set the active climate profile index.
fields:
entity_id:
name: Entity
description: The ID of the climate entity. Use 'all' keyword to switch the profile for all entities.
required: true
example: climate.livingroom
selector:
text:
climate_profile_index:
name: Climate profile index
description: The index of the climate profile.
required: true
selector:
number:
@ -110,36 +76,24 @@ set_active_climate_profile:
max: 100
dump_hap_config:
name: Dump hap config
description: Dump the configuration of the Homematic IP Access Point(s).
fields:
config_output_path:
name: Config output path
description: (Default is 'Your home-assistant config directory') Path where to store the config.
example: "/config"
selector:
text:
config_output_file_prefix:
name: Config output file prefix
description: Name of the config file. The SGTIN of the AP will always be appended.
example: "hmip-config"
default: "hmip-config"
selector:
text:
anonymize:
name: Anonymize
description: Should the Configuration be anonymized?
default: true
selector:
boolean:
reset_energy_counter:
name: Reset energy counter
description: Reset the energy counter of a measuring entity.
fields:
entity_id:
name: Entity
description: The ID of the measuring entity. Use 'all' keyword to reset all energy counters.
required: true
example: switch.livingroom
selector:

View file

@ -25,5 +25,115 @@
"connection_aborted": "[%key:common::config_flow::error::cannot_connect%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"services": {
"activate_eco_mode_with_duration": {
"name": "Activate eco mode with duration",
"description": "Activates eco mode with period.",
"fields": {
"duration": {
"name": "Duration",
"description": "The duration of eco mode in minutes."
},
"accesspoint_id": {
"name": "Accesspoint ID",
"description": "The ID of the Homematic IP Access Point."
}
}
},
"activate_eco_mode_with_period": {
"name": "Activate eco more with period",
"description": "Activates eco mode with period.",
"fields": {
"endtime": {
"name": "Endtime",
"description": "The time when the eco mode should automatically be disabled."
},
"accesspoint_id": {
"name": "Accesspoint ID",
"description": "The ID of the Homematic IP Access Point."
}
}
},
"activate_vacation": {
"name": "Activate vacation",
"description": "Activates the vacation mode until the given time.",
"fields": {
"endtime": {
"name": "Endtime",
"description": "The time when the vacation mode should automatically be disabled."
},
"temperature": {
"name": "Temperature",
"description": "The set temperature during the vacation mode."
},
"accesspoint_id": {
"name": "Accesspoint ID",
"description": "The ID of the Homematic IP Access Point."
}
}
},
"deactivate_eco_mode": {
"name": "Deactivate eco mode",
"description": "Deactivates the eco mode immediately.",
"fields": {
"accesspoint_id": {
"name": "Accesspoint ID",
"description": "The ID of the Homematic IP Access Point."
}
}
},
"deactivate_vacation": {
"name": "Deactivate vacation",
"description": "Deactivates the vacation mode immediately.",
"fields": {
"accesspoint_id": {
"name": "Accesspoint ID",
"description": "The ID of the Homematic IP Access Point."
}
}
},
"set_active_climate_profile": {
"name": "Set active climate profile",
"description": "Sets the active climate profile index.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "The ID of the climate entity. Use 'all' keyword to switch the profile for all entities."
},
"climate_profile_index": {
"name": "Climate profile index",
"description": "The index of the climate profile."
}
}
},
"dump_hap_config": {
"name": "Dump hap config",
"description": "Dumps the configuration of the Homematic IP Access Point(s).",
"fields": {
"config_output_path": {
"name": "Config output path",
"description": "(Default is 'Your home-assistant config directory') Path where to store the config."
},
"config_output_file_prefix": {
"name": "Config output file prefix",
"description": "Name of the config file. The SGTIN of the AP will always be appended."
},
"anonymize": {
"name": "Anonymize",
"description": "Should the Configuration be anonymized?"
}
}
},
"reset_energy_counter": {
"name": "Reset energy counter",
"description": "Resets the energy counter of a measuring entity.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "The ID of the measuring entity. Use 'all' keyword to reset all energy counters."
}
}
}
}
}

View file

@ -1,16 +1,10 @@
dismiss:
name: Dismiss
description: Dismiss a html5 notification.
fields:
target:
name: Target
description: An array of targets.
example: ["my_phone", "my_tablet"]
selector:
object:
data:
name: Data
description: Extended information of notification. Supports tag.
example: '{ "tag": "tagname" }'
selector:
object:

View file

@ -0,0 +1,18 @@
{
"services": {
"dismiss": {
"name": "Dismiss",
"description": "Dismisses a html5 notification.",
"fields": {
"target": {
"name": "Target",
"description": "An array of targets."
},
"data": {
"name": "Data",
"description": "Extended information of notification. Supports tag."
}
}
}
}
}

View file

@ -1,46 +1,27 @@
clear_traffic_statistics:
name: Clear traffic statistics
description: Clear traffic statistics.
fields:
url:
name: URL
description: URL of router to clear; optional when only one is configured.
example: http://192.168.100.1/
selector:
text:
reboot:
name: Reboot
description: Reboot router.
fields:
url:
name: URL
description: URL of router to reboot; optional when only one is configured.
example: http://192.168.100.1/
selector:
text:
resume_integration:
name: Resume integration
description: Resume suspended integration.
fields:
url:
name: URL
description: URL of router to resume integration for; optional when only one is configured.
example: http://192.168.100.1/
selector:
text:
suspend_integration:
name: Suspend integration
description: >
Suspend integration. Suspending logs the integration out from the router, and stops accessing it.
Useful e.g. if accessing the router web interface from another source such as a web browser is temporarily required.
Invoke the resume_integration service to resume.
fields:
url:
name: URL
description: URL of router to resume integration for; optional when only one is configured.
example: http://192.168.100.1/
selector:
text:

View file

@ -48,5 +48,47 @@
}
}
}
},
"services": {
"clear_traffic_statistics": {
"name": "Clear traffic statistics",
"description": "Clears traffic statistics.",
"fields": {
"url": {
"name": "URL",
"description": "URL of router to clear; optional when only one is configured."
}
}
},
"reboot": {
"name": "Reboot",
"description": "Reboots router.",
"fields": {
"url": {
"name": "URL",
"description": "URL of router to reboot; optional when only one is configured."
}
}
},
"resume_integration": {
"name": "Resume integration",
"description": "Resumes suspended integration.",
"fields": {
"url": {
"name": "URL",
"description": "URL of router to resume integration for; optional when only one is configured."
}
}
},
"suspend_integration": {
"name": "Suspend integration",
"description": "Suspends integration. Suspending logs the integration out from the router, and stops accessing it. Useful e.g. if accessing the router web interface from another source such as a web browser is temporarily required. Invoke the resume_integration service to resume.\n.",
"fields": {
"url": {
"name": "URL",
"description": "URL of router to resume integration for; optional when only one is configured."
}
}
}
}
}

View file

@ -2,61 +2,42 @@
# legacy hue_activate_scene to activate a scene
hue_activate_scene:
name: Activate scene
description: Activate a hue scene stored in the hue hub.
fields:
group_name:
name: Group
description: Name of hue group/room from the hue app.
example: "Living Room"
selector:
text:
scene_name:
name: Scene
description: Name of hue scene from the hue app.
example: "Energize"
selector:
text:
dynamic:
name: Dynamic
description: Enable dynamic mode of the scene (V2 bridges and supported scenes only).
selector:
boolean:
# entity service to activate a Hue scene (V2)
activate_scene:
name: Activate Hue Scene
description: Activate a Hue scene with more control over the options.
target:
entity:
domain: scene
integration: hue
fields:
transition:
name: Transition
description: Transition duration it takes to bring devices to the state
defined in the scene.
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
dynamic:
name: Dynamic
description: Enable dynamic mode of the scene.
selector:
boolean:
speed:
name: Speed
description: Speed of dynamic palette for this scene
advanced: true
selector:
number:
min: 0
max: 100
brightness:
name: Brightness
description: Set brightness for the scene.
advanced: true
selector:
number:

View file

@ -59,7 +59,6 @@
"remote_button_short_release": "\"{subtype}\" released",
"remote_double_button_long_press": "Both \"{subtype}\" released after long press",
"remote_double_button_short_press": "Both \"{subtype}\" released",
"initial_press": "\"{subtype}\" pressed initially",
"repeat": "\"{subtype}\" held down",
"short_release": "\"{subtype}\" released after short press",
@ -79,5 +78,47 @@
}
}
}
},
"services": {
"hue_activate_scene": {
"name": "Activate scene",
"description": "Activates a hue scene stored in the hue hub.",
"fields": {
"group_name": {
"name": "Group",
"description": "Name of hue group/room from the hue app."
},
"scene_name": {
"name": "Scene",
"description": "Name of hue scene from the hue app."
},
"dynamic": {
"name": "Dynamic",
"description": "Enable dynamic mode of the scene (V2 bridges and supported scenes only)."
}
}
},
"activate_scene": {
"name": "Activate Hue scene",
"description": "Activates a Hue scene with more control over the options.",
"fields": {
"transition": {
"name": "Transition",
"description": "Transition duration it takes to bring devices to the state defined in the scene."
},
"dynamic": {
"name": "Dynamic",
"description": "Enable dynamic mode of the scene."
},
"speed": {
"name": "Speed",
"description": "Speed of dynamic palette for this scene."
},
"brightness": {
"name": "Brightness",
"description": "Set brightness for the scene."
}
}
}
}
}