# Describes the format for available component services

foursquare:
  checkin:
    description: Check a user into a Foursquare venue.
    fields:
      venueId:
        description: The Foursquare venue where the user is checking in. [Required]
        example: IHR8THISVNU
      eventId:
        description: The event the user is checking in to. [Optional]
        example: UHR8THISVNT
      shout:
        description: A message about your check-in. The maximum length of this field is 140 characters. [Optional]
        example: There are crayons! Crayons!
      mentions:
        description: Mentions in your check-in. This parameter is a semicolon-delimited list of mentions. A single mention is of the form "start,end,userid", where start is the index of the first character in the shout representing the mention, end is the index of the first character in the shout after the mention, and userid is the userid of the user being mentioned. If userid is prefixed with "fbu-", this indicates a Facebook userid that is being mention. Character indices in shouts are 0-based. [Optional]
        example: 5,10,HZXXY3Y;15,20,GZYYZ3Z;25,30,fbu-GZXY13Y
      broadcast:
        description: "Who to broadcast this check-in to. Accepts a comma-delimited list of values: private (off the grid) or public (share with friends), facebook share on facebook, twitter share on twitter, followers share with followers (celebrity mode users only), If no valid value is found, the default is public. [Optional]"
        example: public,twitter
      ll:
        description: Latitude and longitude of the user's location. Only specify this field if you have a GPS or other device reported location for the user at the time of check-in. [Optional]
        example: 33.7,44.2
      llAcc:
        description: Accuracy of the user's latitude and longitude, in meters. [Optional]
        example: 1
      alt:
        description: Altitude of the user's location, in meters. [Optional]
        example: 0
      altAcc:
        description: Vertical accuracy of the user's location, in meters.
        example: 1

microsoft_face:
  create_group:
    description: Create a new person group.
    fields:
      name:
        description: Name of the group.
        example: 'family'
  delete_group:
    description: Delete a new person group.
    fields:
      name:
        description: Name of the group.
        example: 'family'
  train_group:
    description: Train a person group.
    fields:
      group:
        description: Name of the group
        example: 'family'
  create_person:
    description: Create a new person in the group.
    fields:
      name:
        description: Name of the person
        example: 'Hans'
      group:
        description: Name of the group
        example: 'family'
  delete_person:
    description: Delete a person in the group.
    fields:
      name:
        description: Name of the person.
        example: 'Hans'
      group:
        description: Name of the group.
        example: 'family'
  face_person:
    description: Add a new picture to a person.
    fields:
      person:
        description: Name of the person.
        example: 'Hans'
      group:
        description: Name of the group.
        example: 'family'
      camera_entity:
        description: Camera to take a picture.
        example: camera.door

verisure:
  capture_smartcam:
    description: Capture a new image from a smartcam.
    fields:
      device_serial:
        description: The serial number of the smartcam you want to capture an image from.
        example: '2DEU AT5Z'

alert:
  turn_off:
    description: Silence alert's notifications.
    fields:
      entity_id:
        description: Name of the alert to silence.
        example: 'alert.garage_door_open'
  turn_on:
    description: Reset alert's notifications.
    fields:
      entity_id:
        description: Name of the alert to reset.
        example: 'alert.garage_door_open'
  toggle:
    description: Toggle alert's notifications.
    fields:
      entity_id:
        description: Name of the alert to toggle.
        example: 'alert.garage_door_open'

hdmi_cec:
  send_command:
    description: Sends CEC command into HDMI CEC capable adapter.
    fields:
      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"'
      src:
        desctiption: 'Source of command. Could be decimal number or string with hexadeximal notation: "0x10".'
        example: '12 or "0xc"'
      dst:
        description: 'Destination for command. Could be decimal number or string with hexadeximal notation: "0x10".'
        example: '5 or "0x5"'
      cmd:
        description: 'Command itself. Could be decimal number or string with hexadeximal notation: "0x10".'
        example: '144 or "0x90"'
      att:
        description: Optional parameters.
        example: [0, 2]
  update:
    description: Update devices state from network.
  volume:
    description: Increase or decrease volume of system.
    fields:
      up:
        description: Increases volume x levels.
        example: 3
      down:
        description: Decreases volume x levels.
        example: 3
      mute:
        description: Mutes audio system. Value should be on, off or toggle.
        example: "toggle"
  select_device:
    description: Select HDMI device.
    fields:
      device:
        description: Address of device to select. Can be entity_id, physical address or alias from confuguration.
        example: '"switch.hdmi_1" or "1.1.0.0" or "01:10"'
  power_on:
    description: Power on all devices which supports it.
  standby:
    description: Standby all devices which supports it.

ffmpeg:
  start:
    description: Send a start command to a ffmpeg based sensor.
    fields:
      entity_id:
        description: Name(s) of entities that will start. Platform dependent.
        example: 'binary_sensor.ffmpeg_noise'
  stop:
    description: Send a stop command to a ffmpeg based sensor.
    fields:
      entity_id:
        description: Name(s) of entities that will stop. Platform dependent.
        example: 'binary_sensor.ffmpeg_noise'
  restart:
    description: Send a restart command to a ffmpeg based sensor.
    fields:
      entity_id:
        description: Name(s) of entities that will restart. Platform dependent.
        example: 'binary_sensor.ffmpeg_noise'

logger:
  set_default_level:
    description: Set the default log level for components.
    fields:
      level:
        description: Default severity level. Possible values are notset, debug, info, warn, warning, error, fatal, critical
        example: 'debug'
  set_level:
    description: Set log level for components.

hassio:
  host_reboot:
    description: Reboot host computer.
  host_shutdown:
    description: Poweroff host computer.
  host_update:
    description: Update host computer.
    fields:
      version:
        description: Optional or it will be use the latest version.
        example: '0.3'
  supervisor_update:
    description: Update HassIO supervisor.
    fields:
      version:
        description: Optional or it will be use the latest version.
        example: '0.3'
  supervisor_reload:
    description: Reload HassIO supervisor addons/updates/configs.
  homeassistant_update:
    description: Update HomeAssistant docker image.
    fields:
      version:
        description: Optional or it will be use the latest version.
        example: '0.40.1'
  addon_install:
    description: Install a HassIO docker addon.
    fields:
      addon:
        description: Name of addon.
        example: 'smb_config'
      version:
        description: Optional or it will be use the latest version.
        example: '0.2'
  addon_uninstall:
    description: Uninstall a HassIO docker addon.
    fields:
      addon:
        description: Name of addon.
        example: 'smb_config'
  addon_update:
    description: Update a HassIO docker addon.
    fields:
      addon:
        description: Name of addon.
        example: 'smb_config'
      version:
        description: Optional or it will be use the latest version.
        example: '0.2'
  addon_start:
    description: Start a HassIO docker addon.
    fields:
      addon:
        description: Name of addon.
        example: 'smb_config'
  addon_stop:
    description: Stop a HassIO docker addon.
    fields:
      addon:
        description: Name of addon.
        example: 'smb_config'

eight_sleep:
  heat_set:
    description: Set heating level for eight sleep.
    fields:
      entity_id:
        description: Entity id of the bed state to adjust.
        example: 'sensor.eight_left_bed_state'
      target:
        description: Target heating level from 0-100.
        example: 35
      duration:
        description: Duration to heat at the target level in seconds.
        example: 3600

axis:
  vapix_call:
    description: Configure device using Vapix parameter management.
    fields:
      name:
        description: Name of device to Configure. [Required]
        example: M1065-W
      cgi:
        description: Which cgi to call on device. [Optional] Default is 'param.cgi'
        example: 'applications/control.cgi'
      action:
        description: What type of call. [Optional] Default is 'update'
        example: 'start'
      param:
        description: What parameter to operate on. [Required]
        example: 'package=VideoMotionDetection'

apple_tv:
  apple_tv_authenticate:
    description: Start AirPlay device authentication.
    fields:
      entity_id:
        description: Name(s) of entities to authenticate with.
        example: 'media_player.apple_tv'
  apple_tv_scan:
    description: Scan for Apple TV devices.

modbus:
  write_register:
    description: Write to a modbus holding register.
    fields:
      unit:
        description: Address of the modbus unit.
        example: 21
      address:
        description: Address of the holding register to write to.
        example: 0
      value:
        description: Value to write.
        example: 0
  write_coil:
    description: Write to a modbus coil.
    fields:
      unit:
        description: Address of the modbus unit.
        example: 21
      address:
        description: Address of the register to read.
        example: 0
      state:
        description: State to write.
        example: false

wake_on_lan:
  send_magic_packet:
    description: Send a 'magic packet' to wake up a device with 'Wake-On-LAN' capabilities.
    fields:
      mac:
        description: MAC address of the device to wake up.
        example: 'aa:bb:cc:dd:ee:ff'
      broadcast_address:
        description: Optional broadcast IP where to send the magic packet.
        example: '192.168.255.255'

knx:
  group_write:
    description: Turn a light on.
    fields:
      address:
        description: Group address(es) to write to.
        example: '1/1/0'
      data:
        description: KNX data to send.
        example: 1

rflink:
  send_command:
    description: Send device command through RFLink.
    fields:
      device_id:
        description: RFLink device ID.
        example: 'newkaku_0000c6c2_1'

      command:
        description: The command to be sent.
        example: 'on'

abode:
  change_setting:
    description: Change an Abode system setting.
    fields:
      setting:
        description: Setting to change.
        example: 'beeper_mute'
      value:
        description: Value of the setting.
        example: '1'
  capture_image:
    description: Request a new image capture from a camera device.
    fields:
      entity_id:
        description: Entity id of the camera to request an image.
        example: 'camera.downstairs_motion_camera'
  trigger_quick_action:
    description: Trigger an Abode quick action.
    fields:
      entity_id:
        description: Entity id of the quick action to trigger.
        example: 'binary_sensor.home_quick_action'

snips:
  say:
    description: Send a TTS message to Snips.
    fields:
      text:
        description: Text to say.
        example: My name is snips
      site_id:
        description: Site to use to start session, defaults to default (optional)
        example: bedroom
      custom_data:
        description: custom data that will be included with all messages in this session
        example: user=UserName
  say_action:
    description: Send a TTS message to Snips to listen for a response.
    fields:
      text:
        description: Text to say
        example: My name is snips
      site_id:
        description: Site to use to start session, defaults to default (optional)
        example: bedroom
      custom_data:
        description: custom data that will be included with all messages in this session
        example: user=UserName
      can_be_enqueued:
        description: If True, session waits for an open session to end, if False session is dropped if one is running
        example: True
      intent_filter:
        description: Optional Array of Strings - A list of intents names to restrict the NLU resolution to on the first query.
        example: turnOnLights, turnOffLights
  feedback_on:
    description: Turns feedback sounds on.
    fields:
      site_id:
        description: Site to turn sounds on, defaults to all sites (optional)
        example: bedroom
  feedback_off:
    description: Turns feedback sounds off.
    fields:
      site_id:
        description: Site to turn sounds on, defaults to all sites (optional)
        example: bedroom

input_boolean:
  toggle:
    description: Toggles an input boolean.
    fields:
      entity_id:
        description: Entity id of the input boolean to toggle.
        example: 'input_boolean.notify_alerts'
  turn_off:
    description: Turns off an input boolean
    fields:
      entity_id:
        description: Entity id of the input boolean to turn off.
        example: 'input_boolean.notify_alerts'
  turn_on:
    description: Turns on an input boolean.
    fields:
      entity_id:
        description: Entity id of the input boolean to turn on.
        example: 'input_boolean.notify_alerts'

input_text:
  set_value:
    description: Set the value of an input text entity.
    fields:
      entity_id:
        description: Entity id of the input text to set the new value.
        example: 'input_text.text1'
      value:
        description: The target value the entity should be set to.
        example: This is an example text

input_number:
  set_value:
    description: Set the value of an input number entity.
    fields:
      entity_id:
        description: Entity id of the input number to set the new value.
        example: 'input_number.threshold'
      value:
        description: The target value the entity should be set to.
        example: 42
  increment:
    description: Increment the value of an input number entity by its stepping.
    fields:
      entity_id:
        description: Entity id of the input number the should be incremented.
        example: 'input_number.threshold'
  decrement:
    description: Decrement the value of an input number entity by its stepping.
    fields:
      entity_id:
        description: Entity id of the input number the should be decremented.
        example: 'input_number.threshold'

input_select:
  select_option:
    description: Select an option of an input select entity.
    fields:
      entity_id:
        description: Entity id of the input select to select the value.
        example: 'input_select.my_select'
      option:
        description: Option to be selected.
        example: '"Item A"'
  set_options:
    description: Set the options of an input select entity.
    fields:
      entity_id:
        description: Entity id of the input select to set the new options for.
        example: 'input_select.my_select'
      options:
        description: Options for the input select entity.
        example: '["Item A", "Item B", "Item C"]'
  select_previous:
    description: Select the previous options of an input select entity.
    fields:
      entity_id:
        description: Entity id of the input select to select the previous value for.
        example: 'input_select.my_select'
  select_next:
    description: Select the next options of an input select entity.
    fields:
      entity_id:
        description: Entity id of the input select to select the next value for.
        example: 'input_select.my_select'

homeassistant:
  check_config:
    description: Check the Home Assistant configuration files for errors. Errors will be displayed in the Home Assistant log.
  reload_core_config:
    description: Reload the core configuration.
  restart:
    description: Restart the Home Assistant service.
  stop:
    description: Stop the Home Assistant service.
  toggle:
    description: Generic service to toggle devices on/off under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
    fields:
      entity_id:
        description: The entity_id of the device to toggle on/off.
        example: light.living_room
  turn_on:
    description: Generic service to turn devices on under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
    fields:
      entity_id:
        description: The entity_id of the device to turn on.
        example: light.living_room
  turn_off:
    description: Generic service to turn devices off under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
    fields:
      entity_id:
        description: The entity_id of the device to turn off.
        example: light.living_room

xiaomi_aqara:
  play_ringtone:
    description: Play a specific ringtone. The version of the gateway firmware must be 1.4.1_145 at least.
    fields:
      gw_mac:
        description: MAC address of the Xiaomi Aqara Gateway.
        example: 34ce00880088
      ringtone_id:
        description: One of the allowed ringtone ids.
        example: 8
      ringtone_vol:
        description: The volume in percent.
        example: 30
  stop_ringtone:
    description: Stops a playing ringtone immediately.
    fields:
      gw_mac:
        description: MAC address of the Xiaomi Aqara Gateway.
        example: 34ce00880088
  add_device:
    description: Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds. A new device can be added afterwards by pressing the pairing button once.
    fields:
      gw_mac:
        description: MAC address of the Xiaomi Aqara Gateway.
        example: 34ce00880088
  remove_device:
    description: Removes a specific device. The removal is required if a device shall be paired with another gateway.
    fields:
      gw_mac:
        description: MAC address of the Xiaomi Aqara Gateway.
        example: 34ce00880088
      device_id:
        description: Hardware address of the device to remove.
        example: 158d0000000000

shopping_list:
  add_item:
    description: Adds an item to the shopping list.
    fields:
      name:
        description: The name of the item to add.
        example: Beer
  complete_item:
    description: Marks an item as completed in the shopping list. It does not remove the item.
    fields:
      name:
        description: The name of the item to mark as completed.
        example: Beer

nest:
  set_mode:
    description: >
                  Set the home/away mode for a Nest structure.
                  Set to away mode will also set Estimated Arrival Time if provided.
                  Set ETA will cause the thermostat to begin warming or cooling the home before the user arrives.
                  After ETA set other Automation can read ETA sensor as a signal to prepare the home for
                  the user's arrival.
    fields:
      home_mode:
        description: home or away
        example: home
      structure:
        description: Optional structure name. Default set all structures managed by Home Assistant.
        example: My Home
      eta:
        description: Optional Estimated Arrival Time from now.
        example: 0:10
      eta_window:
        description: Optional ETA window. Default is 1 minute.
        example: 0:5
      trip_id:
        description: Optional identity of a trip. Using the same trip_ID will update the estimation.
        example: trip_back_home
