diff --git a/source/_integrations/blink.markdown b/source/_integrations/blink.markdown index ddeb12925ff..ba101e55373 100644 --- a/source/_integrations/blink.markdown +++ b/source/_integrations/blink.markdown @@ -22,7 +22,17 @@ You will need your Blink login information (username, which is usually your emai ## Configuration -To enable devices linked in your [Blink](https://blinkforhome.com) account, add the following to your `configuration.yaml` file: +The preferred method for setting this up is by using the configuration flow. Go to the integrations page in your configuration and click on new integration -> Blink. When you are prompted for your pin, there are (currently) two possibilities: + +1. You are sent an email asking for you to allow Home Assistant to access Blink. In this case, leave the pin field blank and hit `Submit`. + +2. You are sent an email containing a 2FA pin. In this case, please enter the pin and hit `Submit`. + +Your integration will then set up. Given that setup is asynchronous, you may see your sensors before they have finished extracting data from the Blink servers. After a few minutes (at most) this information should populate. + +Existing YAML will be converted to this flow but will be removed in a future version. This is due to Blink's migration to 2FA which is rolling out this year, and which YAML cannot support. + +If you'd like to continue using YAML until it is fully removed, you can use the following example: ```yaml # Example configuration.yaml entry @@ -30,7 +40,6 @@ blink: username: YOUR_USERNAME password: YOUR_PASSWORD ``` - {% configuration %} username: description: The username for accessing your Blink account. @@ -44,44 +53,14 @@ scan_interval: description: How frequently to query for new data. Defaults to 300 seconds (5 minutes). required: false type: integer -binary_sensors: - description: Binary sensor configuration options. - required: false - type: map - keys: - monitored_conditions: - description: The conditions to create sensors from. - required: false - type: list - default: all (`motion_enabled`, `motion_detected`) -sensors: - description: Sensor configuration options. - required: false - type: map - keys: - monitored_conditions: - description: The conditions to create sensors from. - required: false - type: list - default: all (`battery`, `temperature`, `wifi_strength`) -offset: - description: How far back in time (minutes) to look for motion. Motion is determined if a new video has been recorded between now and the last time you refreshed plus this offset. - required: false - type: integer - default: 1 -mode: - description: Set to 'legacy' to enable use of old API endpoint subdomains (APIs can differ based on region, so use this if you are having issues with the integration). - required: false - type: string - default: not set {% endconfiguration %} -Once Home Assistant starts, the `blink` integration will create the following platforms: +Once Home Assistant starts and you authenticate access, the `blink` integration will create the following platforms: - An `alarm_control_panel` to arm/disarm the whole blink system (note, `alarm_arm_home` is not implemented and will not actually do anything, despite it being an option in the GUI). - A `camera` for each camera linked to your Blink sync module. -- A `sensor` per camera for every item listed in `monitored_conditions` (if no items specified in your `configuration.yaml`, all of them will be added by default). -- A `binary_sensor` for each item listed in `monitored_conditions` (if no items specified in your `configuration.yaml`, all of them will be added by default). +- A `sensor` per camera for temperature, wifi strength, and battery status +- A `binary_sensor` motion detection and camera armed status Since the cameras are battery operated, setting the `scan_interval` must be done with care so as to not drain the battery too quickly, or hammer Blink's servers with too many API requests. The cameras can be manually updated via the `trigger_camera` service which will ignore the throttling caused by `scan_interval`. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended. @@ -95,15 +74,6 @@ blink: username: YOUR_USERNAME password: YOUR_PASSWORD scan_interval: 300 - binary_sensors: - monitored_conditions: - - motion_enabled - - motion_detected - sensors: - monitored_conditions: - - battery - - temperature - - wifi_strength ``` ## Services @@ -140,6 +110,14 @@ homeassistant: - '/path/to/whitelist' ``` +### `blink.send_pin` + +Send a new pin to blink. Since Blink's 2FA implementation is new and changing, this is to allow the integration to continue to work with user intervention. The intent is to handle all of this behind the scenes, but until the login implementation is settled this was added. To use it, you simply call the service with the pin you receive from Blink as the payload (for a simple "Allow this Device" email, you may keep the `pin` value empty). + +| Service Data Attribute | Optional | Description | +| ---------------------- | -------- | ---------------------------- | +| `pin` | no | 2FA Pin received from blink. | + ### Other Services In addition to the services mentioned above, there are generic `camera` and `alarm_control_panel` services available for use as well. The `camera.enable_motion_detection` and `camera.disable_motion_detection` services allow for individual cameras to be enabled and disabled, respectively, within the Blink system. The `alarm_control_panel.alarm_arm_away` and `alarm_control_panel.alarm_disarm` services allow for the whole system to be armed and disarmed, respectively.