diff --git a/homeassistant/components/debugpy/services.yaml b/homeassistant/components/debugpy/services.yaml index 6bf9ad67288..c864684226f 100644 --- a/homeassistant/components/debugpy/services.yaml +++ b/homeassistant/components/debugpy/services.yaml @@ -1,3 +1,4 @@ # Describes the format for available Remote Python Debugger services start: + name: Start description: Start the Remote Python Debugger diff --git a/homeassistant/components/demo/services.yaml b/homeassistant/components/demo/services.yaml index aed23eed95a..a09b4498035 100644 --- a/homeassistant/components/demo/services.yaml +++ b/homeassistant/components/demo/services.yaml @@ -1,2 +1,3 @@ randomize_device_tracker_data: + name: Randomize device tracker data description: Demonstrates using a device tracker to see where devices are located diff --git a/homeassistant/components/denonavr/services.yaml b/homeassistant/components/denonavr/services.yaml index d79652dd1f8..cea14a8b361 100644 --- a/homeassistant/components/denonavr/services.yaml +++ b/homeassistant/components/denonavr/services.yaml @@ -1,15 +1,22 @@ # Describes the format for available denonavr services get_command: + name: Get command description: "Send a generic HTTP get command." + target: + entity: + integration: denonavr + domain: media_player fields: - entity_id: - description: Name(s) of the denonavr entities where to run the API method. - example: "media_player.living_room_receiver" command: + name: Command description: Endpoint of the command, including associated parameters. example: "/goform/formiPhoneAppDirect.xml?RCKSK0410370" + required: true + selector: + text: set_dynamic_eq: + name: Set dynamic equalizer description: "Enable or disable DynamicEQ." target: entity: @@ -23,6 +30,7 @@ set_dynamic_eq: selector: boolean: update_audyssey: + name: Update audyssey description: "Update Audyssey settings." target: entity: diff --git a/homeassistant/components/dominos/services.yaml b/homeassistant/components/dominos/services.yaml index 93f8b2851f1..6a354bc3a63 100644 --- a/homeassistant/components/dominos/services.yaml +++ b/homeassistant/components/dominos/services.yaml @@ -1,6 +1,10 @@ order: + name: Order description: Places a set of orders with Dominos Pizza. fields: order_entity_id: + name: Order Entity description: The ID (as specified in the configuration) of an order to place. If provided as an array, all of the identified orders will be placed. example: dominos.medium_pan + selector: + text: diff --git a/homeassistant/components/duckdns/services.yaml b/homeassistant/components/duckdns/services.yaml index e0ba27390df..6c8b5af8199 100644 --- a/homeassistant/components/duckdns/services.yaml +++ b/homeassistant/components/duckdns/services.yaml @@ -1,6 +1,11 @@ set_txt: + name: Set TXT description: Set the TXT record of your DuckDNS subdomain. fields: txt: + name: TXT description: Payload for the TXT record. + required: true example: "This domain name is reserved for use in documentation" + selector: + text: diff --git a/homeassistant/components/dynalite/services.yaml b/homeassistant/components/dynalite/services.yaml index afdb01bf351..7aee7627f14 100644 --- a/homeassistant/components/dynalite/services.yaml +++ b/homeassistant/components/dynalite/services.yaml @@ -1,26 +1,54 @@ request_area_preset: + name: Request area preset description: "Requests Dynalite to report the preset for an area." fields: host: description: "Host gateway IP to send to or all configured gateways if not specified." example: "192.168.0.101" + selector: + text: area: description: "Area to request the preset reported" + required: true example: 2 + selector: + number: + min: 1 + max: 9999 channel: - description: "Channel to request the preset to be reported from. Default is channel 1" + description: "Channel to request the preset to be reported from." example: 1 + default: 1 + selector: + number: + min: 1 + max: 9999 request_channel_level: + name: Request channel level description: "Requests Dynalite to report the level of a specific channel." fields: host: + name: Host description: "Host gateway IP to send to or all configured gateways if not specified." example: "192.168.0.101" + selector: + text: area: + name: Area description: "Area for the requested channel" + required: true example: 2 + selector: + number: + min: 1 + max: 9999 channel: + name: Channel description: "Channel to request the level for." + required: true example: 1 - + selector: + number: + min: 1 + max: 9999 diff --git a/homeassistant/components/dyson/services.yaml b/homeassistant/components/dyson/services.yaml index f96aa9315c1..6f6bc2d9c8a 100644 --- a/homeassistant/components/dyson/services.yaml +++ b/homeassistant/components/dyson/services.yaml @@ -1,64 +1,115 @@ # Describes the format for available fan services set_night_mode: + name: Set night mode description: Set the fan in night mode. + target: + entity: + integration: dyson + domain: fan fields: - entity_id: - description: Name(s) of the entities to enable/disable night mode - example: "fan.living_room" night_mode: + name: Night mode description: Night mode status + required: true example: true + selector: + boolean: set_auto_mode: + name: Set auto mode description: Set the fan in auto mode. + target: + entity: + integration: dyson + domain: fan fields: - entity_id: - description: Name(s) of the entities to enable/disable auto mode - example: "fan.living_room" auto_mode: + name: Auto Mode description: Auto mode status + required: true example: true + selector: + boolean: set_angle: + name: Set angle description: Set the oscillation angle of the selected fan(s). + target: + entity: + integration: dyson + domain: fan fields: - entity_id: - description: Name(s) of the entities for which to set the angle - example: "fan.living_room" angle_low: + name: Angle low description: The angle at which the oscillation should start + required: true example: 1 + selector: + number: + min: 5 + max: 355 + unit_of_measurement: '°' angle_high: + name: Angle high description: The angle at which the oscillation should end + required: true example: 255 + selector: + number: + min: 5 + max: 355 + unit_of_measurement: '°' set_flow_direction_front: + name: Set flow direction front description: Set the fan flow direction. + target: + entity: + integration: dyson + domain: fan fields: - entity_id: - description: Name(s) of the entities to set frontal flow direction for - example: "fan.living_room" flow_direction_front: + name: Flow direction front description: Frontal flow direction + required: true example: true + selector: + boolean: set_timer: + name: Set timer description: Set the sleep timer. + target: + entity: + integration: dyson + domain: fan fields: - entity_id: - description: Name(s) of the entities to set the sleep timer for - example: "fan.living_room" timer: + name: Timer description: The value in minutes to set the timer to, 0 to disable it + required: true example: 30 + selector: + number: + min: 0 + max: 720 + unit_of_measurement: minutes set_speed: + name: Set speed description: Set the exact speed of the fan. + target: + entity: + integration: dyson + domain: fan fields: - entity_id: - description: Name(s) of the entities to set the speed for - example: "fan.living_room" dyson_speed: + name: Speed description: Speed + required: true example: 1 + selector: + number: + min: 1 + max: 10 diff --git a/homeassistant/components/ebusd/services.yaml b/homeassistant/components/ebusd/services.yaml index eee9896da10..dc356bec226 100644 --- a/homeassistant/components/ebusd/services.yaml +++ b/homeassistant/components/ebusd/services.yaml @@ -1,6 +1,11 @@ write: + name: Write description: Call ebusd write command. fields: call: + name: Call description: Property name and value to set + required: true example: '{"name": "Hc1MaxFlowTempDesired", "value": 21}' + selector: + object: diff --git a/homeassistant/components/eight_sleep/services.yaml b/homeassistant/components/eight_sleep/services.yaml index 05354bccc68..7ef2f22d298 100644 --- a/homeassistant/components/eight_sleep/services.yaml +++ b/homeassistant/components/eight_sleep/services.yaml @@ -1,12 +1,33 @@ heat_set: + name: Heat set description: Set heating/cooling level for eight sleep. fields: duration: + name: Duration description: Duration to heat/cool at the target level in seconds. + required: true example: 3600 + selector: + number: + min: 0 + max: 28800 + unit_of_measurement: seconds entity_id: + name: Entity description: Entity id of the bed state to adjust. + required: true example: sensor.eight_left_bed_state + selector: + entity: + integration: eight_sleep + domain: sensor target: + name: Target description: Target cooling/heating level from -100 to 100. + required: true example: 35 + selector: + number: + min: -100 + max: 100 + unit_of_measurement: '°' diff --git a/homeassistant/components/elkm1/services.yaml b/homeassistant/components/elkm1/services.yaml index 9f9fb2c39e5..f380e4f4b18 100644 --- a/homeassistant/components/elkm1/services.yaml +++ b/homeassistant/components/elkm1/services.yaml @@ -1,126 +1,228 @@ alarm_bypass: + name: Alarm bypass description: Bypass all zones for the area. + target: + entity: + integration: elkm1 + domain: alarm_control_panel fields: - entity_id: - description: Name of alarm control panel to bypass. - example: "alarm_control_panel.main" code: + name: Code description: An code to authorize the bypass of the alarm control panel. + required: true example: 4242 + selector: + text: alarm_clear_bypass: + name: Alarm clear bypass description: Remove bypass on all zones for the area. + target: + entity: + integration: elkm1 + domain: alarm_control_panel fields: - entity_id: - description: Name of alarm control panel to clear bypass. - example: "alarm_control_panel.main" code: + name: Code description: An code to authorize the bypass clear of the alarm control panel. + required: true example: 4242 + selector: + text: alarm_arm_home_instant: + name: Alarm are home instant description: Arm the ElkM1 in home instant mode. + target: + entity: + integration: elkm1 + domain: alarm_control_panel fields: - entity_id: - description: Name of alarm control panel to arm. - example: "alarm_control_panel.main" code: + name: Code description: An code to arm the alarm control panel. + required: true example: 1234 + selector: + text: alarm_arm_night_instant: + name: Alarm arm night instant description: Arm the ElkM1 in night instant mode. + target: + entity: + integration: elkm1 + domain: alarm_control_panel fields: - entity_id: - description: Name of alarm control panel to arm. - example: "alarm_control_panel.main" code: + name: Code description: An code to arm the alarm control panel. + required: true example: 1234 + selector: + text: alarm_arm_vacation: + name: Alarm arm vacation description: Arm the ElkM1 in vacation mode. + target: + entity: + integration: elkm1 + domain: alarm_control_panel fields: - entity_id: - description: Name of alarm control panel to arm. - example: "alarm_control_panel.main" code: + name: Code description: An code to arm the alarm control panel. + required: true example: 1234 + selector: + text: alarm_display_message: + name: Alarm display message description: Display a message on all of the ElkM1 keypads for an area. + target: + entity: + integration: elkm1 + domain: alarm_control_panel fields: - entity_id: - description: Name of alarm control panel to display messages on. - example: "alarm_control_panel.main" clear: - description: 0=clear message, 1=clear message with * key, 2=Display until timeout; default 2 + name: Clear + description: 0=clear message, 1=clear message with * key, 2=Display until timeout example: 1 + default: 2 + selector: + number: + min: 0 + max: 2 beep: - description: 0=no beep, 1=beep; default 0 + name: Beep + description: 0=no beep, 1=beep example: 1 + default: 0 + selector: + boolean: timeout: - description: Time to display message, 0=forever, max 65535, default 0 + name: Timeout + description: Time to display message, 0=forever, max 65535 example: 4242 + default: 0 + selector: + number: + min: 0 + max: 65535 line1: - description: Up to 16 characters of text (truncated if too long). Default blank. - example: The answer to life, + name: Line 1 + description: Up to 16 characters of text (truncated if too long). + example: The answer to life. + default: '' + selector: + text: line2: - description: Up to 16 characters of text (truncated if too long). Default blank. + name: Line 2 + description: Up to 16 characters of text (truncated if too long). example: the universe, and everything. + default: '' + selector: + text: set_time: + name: Set time description: Set the time for the panel. fields: prefix: + name: Prefix description: Prefix for the panel. example: gatehouse + selector: + text: speak_phrase: + name: Speak phrase description: Speak a phrase. See list of phrases in ElkM1 ASCII Protocol documentation. fields: number: + name: Phrase number description: Phrase number to speak. + required: true example: 42 + selector: + text: + prefix: + name: Prefix + description: Prefix to identify panel when multiple panels configured. + example: gatehouse + default: "" + selector: + text: speak_word: + name: Speak word description: Speak a word. See list of words in ElkM1 ASCII Protocol documentation. fields: number: + name: Word number description: Word number to speak. + required: true example: 142 + selector: + number: + min: 1 + max: 473 + prefix: + name: Prefix + description: Prefix to identify panel when multiple panels configured. + example: gatehouse + default: "" + selector: + text: sensor_counter_refresh: + name: Sensor counter refresh description: Refresh the value of a counter from the panel. - fields: - entity_id: - description: Name of counter to refresh. - example: "sensor.counting_sheep" + target: + entity: + integration: elkm1 + domain: sensor sensor_counter_set: + name: Sensor counter set description: Set the value of a counter on the panel. + target: + entity: + integration: elkm1 + domain: sensor fields: - entity_id: - description: Name of counter to set. - example: "sensor.test42" value: + name: Value description: Value to set the counter to. + required: true example: 4242 + selector: + number: + min: 0 + max: 65536 sensor_zone_bypass: + name: Sensor zone bypass description: Bypass zone. + target: + entity: + integration: elkm1 + domain: sensor fields: - entity_id: - description: Name of zone to bypass. - example: "sensor.window42" code: + name: Code description: An code to authorize the bypass of the zone. + required: true example: 4242 + selector: + text: sensor_zone_trigger: + name: Sensor zone trigger description: Trigger zone. - fields: - entity_id: - description: Name of zone to trigger. - example: "sensor.motion42" + target: + entity: + integration: elkm1 + domain: sensor diff --git a/homeassistant/components/envisalink/services.yaml b/homeassistant/components/envisalink/services.yaml index e9229ad838d..57c64e0c54a 100644 --- a/homeassistant/components/envisalink/services.yaml +++ b/homeassistant/components/envisalink/services.yaml @@ -1,25 +1,47 @@ # Describes the format for available Envisalink services. alarm_keypress: + name: Alarm keypress description: Send custom keypresses to the alarm. fields: entity_id: + name: Entity description: Name of the alarm control panel to trigger. + required: true example: "alarm_control_panel.downstairs" + selector: + entity: + integration: envisalink + domain: alarm_control_panel keypress: + name: Keypress description: "String to send to the alarm panel (1-6 characters)." + required: true example: "*71" + selector: + text: invoke_custom_function: + name: Invoke custom function description: > Allows users with DSC panels to trigger a PGM output (1-4). Note that you need to specify the alarm panel's "code" parameter for this to work. fields: partition: + name: Partition description: > The alarm panel partition to trigger the PGM output on. Typically this is just "1". + required: true example: "1" + selector: + text: pgm: - description: The PGM number to trigger on the alarm panel. This will be 1-4. + name: PGM + description: The PGM number to trigger on the alarm panel. + required: true example: "2" + selector: + number: + min: 1 + max: 4 diff --git a/homeassistant/components/epson/services.yaml b/homeassistant/components/epson/services.yaml index a463cd35512..37add1bc202 100644 --- a/homeassistant/components/epson/services.yaml +++ b/homeassistant/components/epson/services.yaml @@ -1,9 +1,15 @@ select_cmode: + name: Select color mode description: Select Color mode of Epson projector + target: + entity: + integration: epson + domain: media_player fields: - entity_id: - description: Name of projector - example: "media_player.epson_projector" cmode: + name: Color mode description: Name of Cmode + required: true example: "cinema" + selector: + text: diff --git a/homeassistant/components/evohome/services.yaml b/homeassistant/components/evohome/services.yaml index 04f7a3ac2aa..5a6993f6ad7 100644 --- a/homeassistant/components/evohome/services.yaml +++ b/homeassistant/components/evohome/services.yaml @@ -2,52 +2,95 @@ # Describes the format for available services set_system_mode: + name: Set system mode description: >- Set the system mode, either indefinitely, or for a specified period of time, after which it will revert to Auto. Not all systems support all modes. fields: mode: - description: "One of: Auto, AutoWithEco, Away, DayOff, HeatingOff, or Custom." + name: Mode + description: "Mode to set thermostat." example: Away + selector: + select: + options: + - 'Auto' + - 'AutoWithEco' + - 'Away' + - 'Custom' + - 'DayOff' + - 'HeatingOff' period: + name: Period description: >- A period of time in days; used only with Away, DayOff, or Custom. The system will revert to Auto at midnight (up to 99 days, today is day 1). example: '{"days": 28}' + selector: + object: duration: + name: Duration description: The duration in hours; used only with AutoWithEco (up to 24 hours). example: '{"hours": 18}' + selector: + object: reset_system: + name: Reset system description: >- Set the system to Auto mode and reset all the zones to follow their schedules. Not all Evohome systems support this feature (i.e. AutoWithReset mode). refresh_system: + name: Refresh system description: >- Pull the latest data from the vendor's servers now, rather than waiting for the next scheduled update. set_zone_override: + name: Set zone override description: >- Override a zone's setpoint, either indefinitely, or for a specified period of time, after which it will revert to following its schedule. fields: entity_id: + name: Entity description: The entity_id of the Evohome zone. + required: true example: climate.bathroom + selector: + entity: + integration: evohome + domain: climate setpoint: + name: Setpoint description: The temperature to be used instead of the scheduled setpoint. + required: true example: 5.0 + selector: + number: + min: 4.0 + max: 35.0 + step: 0.1 duration: + name: Duration description: >- The zone will revert to its schedule after this time. If 0 the change is until the next scheduled setpoint. example: '{"minutes": 135}' + selector: + object: clear_zone_override: + name: Clear zone override description: Set a zone to follow its schedule. fields: entity_id: + name: Entity description: The entity_id of the zone. + required: true example: climate.bathroom + selector: + entity: + integration: evohome + domain: climate