Migrate integration services (A) to support translations (#96362)

This commit is contained in:
Franck Nijhof 2023-07-11 23:04:27 +02:00 committed by GitHub
parent aea2fc68e7
commit 0ff015c3ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 423 additions and 169 deletions

View File

@ -1,10 +1,6 @@
capture_image: capture_image:
name: Capture image
description: Request a new image capture from a camera device.
fields: fields:
entity_id: entity_id:
name: Entity
description: Entity id of the camera to request an image.
required: true required: true
selector: selector:
entity: entity:
@ -12,31 +8,21 @@ capture_image:
domain: camera domain: camera
change_setting: change_setting:
name: Change setting
description: Change an Abode system setting.
fields: fields:
setting: setting:
name: Setting
description: Setting to change.
required: true required: true
example: beeper_mute example: beeper_mute
selector: selector:
text: text:
value: value:
name: Value
description: Value of the setting.
required: true required: true
example: "1" example: "1"
selector: selector:
text: text:
trigger_automation: trigger_automation:
name: Trigger automation
description: Trigger an Abode automation.
fields: fields:
entity_id: entity_id:
name: Entity
description: Entity id of the automation to trigger.
required: true required: true
selector: selector:
entity: entity:

View File

@ -31,5 +31,41 @@
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
} }
},
"services": {
"capture_image": {
"name": "Capture image",
"description": "Request a new image capture from a camera device.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "Entity id of the camera to request an image."
}
}
},
"change_setting": {
"name": "Change setting",
"description": "Change an Abode system setting.",
"fields": {
"setting": {
"name": "Setting",
"description": "Setting to change."
},
"value": {
"name": "Value",
"description": "Value of the setting."
}
}
},
"trigger_automation": {
"name": "Trigger automation",
"description": "Trigger an Abode automation.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "Entity id of the automation to trigger."
}
}
}
} }
} }

View File

@ -1,65 +1,43 @@
add_url: add_url:
name: Add url
description: Add a new filter subscription to AdGuard Home.
fields: fields:
name: name:
name: Name
description: The name of the filter subscription.
required: true required: true
example: Example example: Example
selector: selector:
text: text:
url: url:
name: Url
description: The filter URL to subscribe to, containing the filter rules.
required: true required: true
example: https://www.example.com/filter/1.txt example: https://www.example.com/filter/1.txt
selector: selector:
text: text:
remove_url: remove_url:
name: Remove url
description: Removes a filter subscription from AdGuard Home.
fields: fields:
url: url:
name: Url
description: The filter subscription URL to remove.
required: true required: true
example: https://www.example.com/filter/1.txt example: https://www.example.com/filter/1.txt
selector: selector:
text: text:
enable_url: enable_url:
name: Enable url
description: Enables a filter subscription in AdGuard Home.
fields: fields:
url: url:
name: Url
description: The filter subscription URL to enable.
required: true required: true
example: https://www.example.com/filter/1.txt example: https://www.example.com/filter/1.txt
selector: selector:
text: text:
disable_url: disable_url:
name: Disable url
description: Disables a filter subscription in AdGuard Home.
fields: fields:
url: url:
name: Url
description: The filter subscription URL to disable.
required: true required: true
example: https://www.example.com/filter/1.txt example: https://www.example.com/filter/1.txt
selector: selector:
text: text:
refresh: refresh:
name: Refresh
description: Refresh all filter subscriptions in AdGuard Home.
fields: fields:
force: force:
name: Force
description: Force update (bypasses AdGuard Home throttling). "true" to force, or "false" to omit for a regular refresh.
default: false default: false
selector: selector:
boolean: boolean:

View File

@ -72,5 +72,61 @@
"name": "Query log" "name": "Query log"
} }
} }
},
"services": {
"add_url": {
"name": "Add URL",
"description": "Add a new filter subscription to AdGuard Home.",
"fields": {
"name": {
"name": "Name",
"description": "The name of the filter subscription."
},
"url": {
"name": "URL",
"description": "The filter URL to subscribe to, containing the filter rules."
}
}
},
"remove_url": {
"name": "Remove URL",
"description": "Removes a filter subscription from AdGuard Home.",
"fields": {
"url": {
"name": "URL",
"description": "The filter subscription URL to remove."
}
}
},
"enable_url": {
"name": "Enable URL",
"description": "Enables a filter subscription in AdGuard Home.",
"fields": {
"url": {
"name": "URL",
"description": "The filter subscription URL to enable."
}
}
},
"disable_url": {
"name": "Disable URL",
"description": "Disables a filter subscription in AdGuard Home.",
"fields": {
"url": {
"name": "URL",
"description": "The filter subscription URL to disable."
}
}
},
"refresh": {
"name": "Refresh",
"description": "Refresh all filter subscriptions in AdGuard Home.",
"fields": {
"force": {
"name": "Force",
"description": "Force update (bypasses AdGuard Home throttling). \"true\" to force, or \"false\" to omit for a regular refresh."
}
}
}
} }
} }

View File

@ -1,19 +1,13 @@
# Describes the format for available ADS services # Describes the format for available ADS services
write_data_by_name: write_data_by_name:
name: Write data by name
description: Write a value to the connected ADS device.
fields: fields:
adsvar: adsvar:
name: ADS variable
description: The name of the variable to write to.
required: true required: true
example: ".global_var" example: ".global_var"
selector: selector:
text: text:
adstype: adstype:
name: ADS type
description: The data type of the variable to write to.
required: true required: true
selector: selector:
select: select:
@ -25,8 +19,6 @@ write_data_by_name:
- "udint" - "udint"
- "uint" - "uint"
value: value:
name: Value
description: The value to write to the variable.
required: true required: true
selector: selector:
number: number:

View File

@ -0,0 +1,22 @@
{
"services": {
"write_data_by_name": {
"name": "Write data by name",
"description": "Write a value to the connected ADS device.",
"fields": {
"adsvar": {
"name": "ADS variable",
"description": "The name of the variable to write to."
},
"adstype": {
"name": "ADS type",
"description": "The data type of the variable to write to."
},
"value": {
"name": "Value",
"description": "The value to write to the variable."
}
}
}
}
}

View File

@ -1,14 +1,10 @@
set_time_to: set_time_to:
name: Set Time To
description: Control timers to turn the system on or off after a set number of minutes
target: target:
entity: entity:
integration: advantage_air integration: advantage_air
domain: sensor domain: sensor
fields: fields:
minutes: minutes:
name: Minutes
description: Minutes until action
required: true required: true
selector: selector:
number: number:

View File

@ -16,5 +16,17 @@
"title": "Connect" "title": "Connect"
} }
} }
},
"services": {
"set_time_to": {
"name": "Set time to",
"description": "Controls timers to turn the system on or off after a set number of minutes.",
"fields": {
"minutes": {
"name": "Minutes",
"description": "Minutes until action."
}
}
}
} }
} }

View File

@ -1,43 +1,29 @@
# Describes the format for available aftership services # Describes the format for available aftership services
add_tracking: add_tracking:
name: Add tracking
description: Add new tracking number to Aftership.
fields: fields:
tracking_number: tracking_number:
name: Tracking number
description: Tracking number for the new tracking
required: true required: true
example: "123456789" example: "123456789"
selector: selector:
text: text:
title: title:
name: Title
description: A custom title for the new tracking
example: "Laptop" example: "Laptop"
selector: selector:
text: text:
slug: slug:
name: Slug
description: Slug (carrier) of the new tracking
example: "USPS" example: "USPS"
selector: selector:
text: text:
remove_tracking: remove_tracking:
name: Remove tracking
description: Remove a tracking number from Aftership.
fields: fields:
tracking_number: tracking_number:
name: Tracking number
description: Tracking number of the tracking to remove
required: true required: true
example: "123456789" example: "123456789"
selector: selector:
text: text:
slug: slug:
name: Slug
description: Slug (carrier) of the tracking to remove
example: "USPS" example: "USPS"
selector: selector:
text: text:

View File

@ -0,0 +1,36 @@
{
"services": {
"add_tracking": {
"name": "Add tracking",
"description": "Adds a new tracking number to Aftership.",
"fields": {
"tracking_number": {
"name": "Tracking number",
"description": "Tracking number for the new tracking."
},
"title": {
"name": "Title",
"description": "A custom title for the new tracking."
},
"slug": {
"name": "Slug",
"description": "Slug (carrier) of the new tracking."
}
}
},
"remove_tracking": {
"name": "Remove tracking",
"description": "Removes a tracking number from Aftership.",
"fields": {
"tracking_number": {
"name": "Tracking number",
"description": "Tracking number of the tracking to remove."
},
"slug": {
"name": "Slug",
"description": "Slug (carrier) of the tracking to remove."
}
}
}
}
}

View File

@ -1,38 +1,28 @@
start_recording: start_recording:
name: Start recording
description: Enable continuous recording.
target: target:
entity: entity:
integration: agent_dvr integration: agent_dvr
domain: camera domain: camera
stop_recording: stop_recording:
name: Stop recording
description: Disable continuous recording.
target: target:
entity: entity:
integration: agent_dvr integration: agent_dvr
domain: camera domain: camera
enable_alerts: enable_alerts:
name: Enable alerts
description: Enable alerts
target: target:
entity: entity:
integration: agent_dvr integration: agent_dvr
domain: camera domain: camera
disable_alerts: disable_alerts:
name: Disable alerts
description: Disable alerts
target: target:
entity: entity:
integration: agent_dvr integration: agent_dvr
domain: camera domain: camera
snapshot: snapshot:
name: Snapshot
description: Take a photo
target: target:
entity: entity:
integration: agent_dvr integration: agent_dvr

View File

@ -16,5 +16,27 @@
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
} }
},
"services": {
"start_recording": {
"name": "Start recording",
"description": "Enables continuous recording."
},
"stop_recording": {
"name": "Stop recording",
"description": "Disables continuous recording."
},
"enable_alerts": {
"name": "Enable alerts",
"description": "Enables alerts."
},
"disable_alerts": {
"name": "Disable alerts",
"description": "Disables alerts."
},
"snapshot": {
"name": "Snapshot",
"description": "Takes a photo."
}
} }
} }

View File

@ -1,30 +1,22 @@
alarm_keypress: alarm_keypress:
name: Key press
description: Send custom keypresses to the alarm.
target: target:
entity: entity:
integration: alarmdecoder integration: alarmdecoder
domain: alarm_control_panel domain: alarm_control_panel
fields: fields:
keypress: keypress:
name: Key press
description: "String to send to the alarm panel."
required: true required: true
example: "*71" example: "*71"
selector: selector:
text: text:
alarm_toggle_chime: alarm_toggle_chime:
name: Toggle Chime
description: Send the alarm the toggle chime command.
target: target:
entity: entity:
integration: alarmdecoder integration: alarmdecoder
domain: alarm_control_panel domain: alarm_control_panel
fields: fields:
code: code:
name: Code
description: A code to toggle the alarm control panel chime with.
required: true required: true
example: 1234 example: 1234
selector: selector:

View File

@ -20,7 +20,9 @@
"error": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
}, },
"create_entry": { "default": "Successfully connected to AlarmDecoder." }, "create_entry": {
"default": "Successfully connected to AlarmDecoder."
},
"abort": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
} }
@ -68,5 +70,27 @@
"loop_rfid": "RF Loop cannot be used without RF Serial.", "loop_rfid": "RF Loop cannot be used without RF Serial.",
"loop_range": "RF Loop must be an integer between 1 and 4." "loop_range": "RF Loop must be an integer between 1 and 4."
} }
},
"services": {
"alarm_keypress": {
"name": "Key press",
"description": "Sends custom keypresses to the alarm.",
"fields": {
"keypress": {
"name": "Key press",
"description": "String to send to the alarm panel."
}
}
},
"alarm_toggle_chime": {
"name": "Toggle chime",
"description": "Sends the alarm the toggle chime command.",
"fields": {
"code": {
"name": "Code",
"description": "Code to toggle the alarm control panel chime with."
}
}
}
} }
} }

View File

@ -1,53 +1,34 @@
# Describes the format for available services for ambiclimate # Describes the format for available services for ambiclimate
set_comfort_mode: set_comfort_mode:
name: Set comfort mode
description: >
Enable comfort mode on your AC.
fields: fields:
name: name:
description: >
String with device name.
required: true required: true
example: Bedroom example: Bedroom
selector: selector:
text: text:
send_comfort_feedback: send_comfort_feedback:
name: Send comfort feedback
description: >
Send feedback for comfort mode.
fields: fields:
name: name:
description: >
String with device name.
required: true required: true
example: Bedroom example: Bedroom
selector: selector:
text: text:
value: value:
description: >
Send any of the following comfort values: too_hot, too_warm, bit_warm, comfortable, bit_cold, too_cold, freezing
required: true required: true
example: bit_warm example: bit_warm
selector: selector:
text: text:
set_temperature_mode: set_temperature_mode:
name: Set temperature mode
description: >
Enable temperature mode on your AC.
fields: fields:
name: name:
description: >
String with device name.
required: true required: true
example: Bedroom example: Bedroom
selector: selector:
text: text:
value: value:
description: >
Target value in celsius
required: true required: true
example: 22 example: 22
selector: selector:

View File

@ -18,5 +18,45 @@
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
"access_token": "Unknown error generating an access token." "access_token": "Unknown error generating an access token."
} }
},
"services": {
"set_comfort_mode": {
"name": "Set comfort mode",
"description": "Enables comfort mode on your AC.",
"fields": {
"name": {
"name": "Device name",
"description": "String with device name."
}
}
},
"send_comfort_feedback": {
"name": "Send comfort feedback",
"description": "Sends feedback for comfort mode.",
"fields": {
"name": {
"name": "[%key:component::ambiclimate::services::set_comfort_mode::fields::name::name%]",
"description": "[%key:component::ambiclimate::services::set_comfort_mode::fields::name::description%]"
},
"value": {
"name": "Comfort value",
"description": "Send any of the following comfort values: too_hot, too_warm, bit_warm, comfortable, bit_cold, too_cold, freezing\n."
}
}
},
"set_temperature_mode": {
"name": "Set temperature mode",
"description": "Enables temperature mode on your AC.",
"fields": {
"name": {
"name": "[%key:component::ambiclimate::services::set_comfort_mode::fields::name::name%]",
"description": "[%key:component::ambiclimate::services::set_comfort_mode::fields::name::description%]"
},
"value": {
"name": "Temperature",
"description": "Target value in celsius."
}
}
}
} }
} }

View File

@ -1,82 +1,53 @@
enable_recording: enable_recording:
name: Enable recording
description: Enable continuous recording to camera storage.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
disable_recording: disable_recording:
name: Disable recording
description: Disable continuous recording to camera storage.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
enable_audio: enable_audio:
name: Enable audio
description: Enable audio stream.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
disable_audio: disable_audio:
name: Disable audio
description: Disable audio stream.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
enable_motion_recording: enable_motion_recording:
name: Enable motion recording
description: Enable recording a clip to camera storage when motion is detected.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
disable_motion_recording: disable_motion_recording:
name: Disable motion recording
description: Disable recording a clip to camera storage when motion is detected.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
goto_preset: goto_preset:
name: Go to preset
description: Move camera to PTZ preset.
fields: fields:
entity_id: entity_id:
description: "Name(s) of the cameras, or 'all' for all cameras."
selector: selector:
entity: entity:
integration: amcrest integration: amcrest
domain: camera domain: camera
preset: preset:
name: Preset
description: Preset number.
required: true required: true
selector: selector:
number: number:
@ -84,18 +55,12 @@ goto_preset:
max: 1000 max: 1000
set_color_bw: set_color_bw:
name: Set color
description: Set camera color mode.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
color_bw: color_bw:
name: Color
description: Color mode.
selector: selector:
select: select:
options: options:
@ -104,40 +69,26 @@ set_color_bw:
- "color" - "color"
start_tour: start_tour:
name: Start tour
description: Start camera's PTZ tour function.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
stop_tour: stop_tour:
name: Stop tour
description: Stop camera's PTZ tour function.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name(s) of the cameras, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
ptz_control: ptz_control:
name: PTZ control
description: Move (Pan/Tilt) and/or Zoom a PTZ camera.
fields: fields:
entity_id: entity_id:
name: Entity
description: "Name of the camera, or 'all' for all cameras."
example: "camera.house_front" example: "camera.house_front"
selector: selector:
text: text:
movement: movement:
name: Movement
description: "Direction to move the camera."
required: true required: true
selector: selector:
select: select:
@ -153,8 +104,6 @@ ptz_control:
- "zoom_in" - "zoom_in"
- "zoom_out" - "zoom_out"
travel_time: travel_time:
name: Travel time
description: "Travel time in fractional seconds: from 0 to 1."
default: .2 default: .2
selector: selector:
number: number:

View File

@ -0,0 +1,130 @@
{
"services": {
"enable_recording": {
"name": "Enable recording",
"description": "Enables continuous recording to camera storage.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "Name(s) of the cameras, or 'all' for all cameras."
}
}
},
"disable_recording": {
"name": "Disable recording",
"description": "Disables continuous recording to camera storage.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"enable_audio": {
"name": "Enable audio",
"description": "Enables audio stream.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"disable_audio": {
"name": "Disable audio",
"description": "Disables audio stream.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"enable_motion_recording": {
"name": "Enables motion recording",
"description": "Enables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"disable_motion_recording": {
"name": "Disables motion recording",
"description": "Disable recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"goto_preset": {
"name": "Go to preset",
"description": "Moves camera to PTZ preset.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
},
"preset": {
"name": "Preset",
"description": "Preset number."
}
}
},
"set_color_bw": {
"name": "Set color",
"description": "Sets camera color mode.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
},
"color_bw": {
"name": "Color",
"description": "Color mode."
}
}
},
"start_tour": {
"name": "Start tour",
"description": "Starts camera's PTZ tour function.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"stop_tour": {
"name": "Stop tour",
"description": "Stops camera's PTZ tour function.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"ptz_control": {
"name": "PTZ control",
"description": "Moves (pan/tilt) and/or zoom a PTZ camera.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
},
"movement": {
"name": "Movement",
"description": "Direction to move the camera."
},
"travel_time": {
"name": "Travel time",
"description": "Travel time in fractional seconds: from 0 to 1."
}
}
}
}
}

View File

@ -1,67 +1,49 @@
# Describes the format for available Android and Fire TV services # Describes the format for available Android and Fire TV services
adb_command: adb_command:
name: ADB command
description: Send an ADB command to an Android / Fire TV device.
target: target:
entity: entity:
integration: androidtv integration: androidtv
domain: media_player domain: media_player
fields: fields:
command: command:
name: Command
description: Either a key command or an ADB shell command.
required: true required: true
example: "HOME" example: "HOME"
selector: selector:
text: text:
download: download:
name: Download
description: Download a file from your Android / Fire TV device to your Home Assistant instance.
target: target:
entity: entity:
integration: androidtv integration: androidtv
domain: media_player domain: media_player
fields: fields:
device_path: device_path:
name: Device path
description: The filepath on the Android / Fire TV device.
required: true required: true
example: "/storage/emulated/0/Download/example.txt" example: "/storage/emulated/0/Download/example.txt"
selector: selector:
text: text:
local_path: local_path:
name: Local path
description: The filepath on your Home Assistant instance.
required: true required: true
example: "/config/www/example.txt" example: "/config/www/example.txt"
selector: selector:
text: text:
upload: upload:
name: Upload
description: Upload a file from your Home Assistant instance to an Android / Fire TV device.
target: target:
entity: entity:
integration: androidtv integration: androidtv
domain: media_player domain: media_player
fields: fields:
device_path: device_path:
name: Device path
description: The filepath on the Android / Fire TV device.
required: true required: true
example: "/storage/emulated/0/Download/example.txt" example: "/storage/emulated/0/Download/example.txt"
selector: selector:
text: text:
local_path: local_path:
name: Local path
description: The filepath on your Home Assistant instance.
required: true required: true
example: "/config/www/example.txt" example: "/config/www/example.txt"
selector: selector:
text: text:
learn_sendevent: learn_sendevent:
name: Learn sendevent
description: Translate a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of calling this service.
target: target:
entity: entity:
integration: androidtv integration: androidtv

View File

@ -59,5 +59,49 @@
"error": { "error": {
"invalid_det_rules": "Invalid state detection rules" "invalid_det_rules": "Invalid state detection rules"
} }
},
"services": {
"adb_command": {
"name": "ADB command",
"description": "Sends an ADB command to an Android / Fire TV device.",
"fields": {
"command": {
"name": "Command",
"description": "Either a key command or an ADB shell command."
}
}
},
"download": {
"name": "Download",
"description": "Downloads a file from your Android / Fire TV device to your Home Assistant instance.",
"fields": {
"device_path": {
"name": "Device path",
"description": "The filepath on the Android / Fire TV device."
},
"local_path": {
"name": "Local path",
"description": "The filepath on your Home Assistant instance."
}
}
},
"upload": {
"name": "Upload",
"description": "Uploads a file from your Home Assistant instance to an Android / Fire TV device.",
"fields": {
"device_path": {
"name": "Device path",
"description": "The filepath on the Android / Fire TV device."
},
"local_path": {
"name": "Local path",
"description": "The filepath on your Home Assistant instance."
}
}
},
"learn_sendevent": {
"name": "Learn sendevent",
"description": "Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of calling this service."
}
} }
} }