From 280984faf2107ecb30efb9dd6cc2ebc2c57ff3bb Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Wed, 18 Apr 2018 20:28:15 -0500 Subject: [PATCH 1/8] Update doorbird documentation for multiple device support --- source/_components/doorbird.markdown | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 9db3c71d864c..0c8337f377df 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -20,10 +20,16 @@ To connect your device, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry doorbird: - host: DOORBIRD_IP_OR_HOSTNAME - username: YOUR_USERNAME - password: YOUR_PASSWORD - hass_url_override: HASS_IP + - host: DOORBIRD_IP_OR_HOSTNAME + username: YOUR_USERNAME + password: YOUR_PASSWORD + hass_url_override: HASS_IP + name: Front Door + - host: DOORBIRD_IP_OR_HOSTNAME + username: YOUR_USERNAME + password: YOUR_PASSWORD + hass_url_override: HASS_IP + name: Driveway Gate ``` Configuration variables: @@ -31,6 +37,7 @@ Configuration variables: - **host** (*Required*): The LAN IP address or hostname of your device. You can find this by going to the [DoorBird Online check](http://www.doorbird.com/checkonline) and entering the information from the paper that was included in the box. - **username** (*Required*): The username of a non-administrator user account on the device. - **password** (*Required*): The password for the user specified. +- **name** (*Optional*): Custom name for this device. - **doorbell_events** (*Optional*): Setting this to `true` this will register a callback URL with the device so that events can be published to the event bus when the doorbell rings. - **hass_url_override** (*Optional*): If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. @@ -38,9 +45,11 @@ Configuration variables: Enabling `doorbell_events` will delete all other registered push notification services with the device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app.

-### Doorbell Sound Examples +### Using Doorbell Events -You can create an automation that triggers on event `doorbird_doorbell` to play a doorbell sound when the Doorbird button is pressed. This should work with any media player. +Enabling `doorbell_events` will allow you to respond to events from each device independently. Each device is assigned an event identifier based on the order they appear in your config file. + +For the config example above with 2 devices, the identifiers would be `doorbird_1_doorbell` for the Front Door device and `doorbird_2_doorbell` for the Driveway Gate device. See below for an example of how to use an event identifier in an automation. #### Example using SONOS @@ -54,7 +63,7 @@ Automation file: - alias: Doorbird ring trigger: platform: event - event_type: doorbird_doorbell + event_type: doorbird_1_doorbell action: service: script.turn_on entity_id: script.doorbell From b1d9eb586699e1d9d158ecfaad91a8f24e855342 Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Thu, 19 Apr 2018 08:46:17 -0500 Subject: [PATCH 2/8] Update for requested changes on component PR --- source/_components/doorbird.markdown | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 0c8337f377df..168394176c87 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -20,19 +20,20 @@ To connect your device, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry doorbird: - - host: DOORBIRD_IP_OR_HOSTNAME - username: YOUR_USERNAME - password: YOUR_PASSWORD - hass_url_override: HASS_IP - name: Front Door - - host: DOORBIRD_IP_OR_HOSTNAME - username: YOUR_USERNAME - password: YOUR_PASSWORD - hass_url_override: HASS_IP - name: Driveway Gate + devices: + - host: DOORBIRD_IP_OR_HOSTNAME + username: YOUR_USERNAME + password: YOUR_PASSWORD + hass_url_override: HASS_IP + name: Front Door + - host: DOORBIRD_IP_OR_HOSTNAME + username: YOUR_USERNAME + password: YOUR_PASSWORD + hass_url_override: HASS_IP + name: Driveway Gate ``` -Configuration variables: +Device Configuration Variables: - **host** (*Required*): The LAN IP address or hostname of your device. You can find this by going to the [DoorBird Online check](http://www.doorbird.com/checkonline) and entering the information from the paper that was included in the box. - **username** (*Required*): The username of a non-administrator user account on the device. From c2339246ac58051e5fccc3ea081c5bfffd2b8645 Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Fri, 4 May 2018 22:43:03 -0500 Subject: [PATCH 3/8] Update documentation for doorbird binary_sensor --- .../binary_sensor.doorbird.markdown | 20 +++++ source/_components/doorbird.markdown | 79 +------------------ 2 files changed, 24 insertions(+), 75 deletions(-) create mode 100644 source/_components/binary_sensor.doorbird.markdown diff --git a/source/_components/binary_sensor.doorbird.markdown b/source/_components/binary_sensor.doorbird.markdown new file mode 100644 index 000000000000..97dc29bcf7cd --- /dev/null +++ b/source/_components/binary_sensor.doorbird.markdown @@ -0,0 +1,20 @@ +The `doorbird` implementation allows you to use motion and doorbell events from your [DoorBird](http://www.doorbird.com/) device in Home Assistant. + +

+ You must have the [DoorBird component](/components/doorbird/) configured to use this sensor. +

+ +

+Enabling this sensor will delete all registered notification services for each configured device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app. +

+ +To enable event tracking for motion and doorbell events, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: doorbird + monitored_conditions: + - doorbell + - motion +``` diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 168394176c87..6070c601b0f7 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -39,80 +39,9 @@ Device Configuration Variables: - **username** (*Required*): The username of a non-administrator user account on the device. - **password** (*Required*): The password for the user specified. - **name** (*Optional*): Custom name for this device. -- **doorbell_events** (*Optional*): Setting this to `true` this will register a callback URL with the device so that events can be published to the event bus when the doorbell rings. - **hass_url_override** (*Optional*): If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. -

-Enabling `doorbell_events` will delete all other registered push notification services with the device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app. -

- -### Using Doorbell Events - -Enabling `doorbell_events` will allow you to respond to events from each device independently. Each device is assigned an event identifier based on the order they appear in your config file. - -For the config example above with 2 devices, the identifiers would be `doorbird_1_doorbell` for the Front Door device and `doorbird_2_doorbell` for the Driveway Gate device. See below for an example of how to use an event identifier in an automation. - -#### Example using SONOS - -[`SONOS`](http://www.sonos.com) players have features allowing for "snapshotting" the current state of some or all players so those state(s) can be "restored" at a later time. This feature is perfect for implementing a doorbell sound (from Doorbird or any other Doorbell setup for that matter). The [`media_player.sonos`](/components/media_player.sonos/) platform includes the [`SONOS_SNAPSHOT`](/components/media_player.sonos/#service-sonos_snapshot) and [`SONOS_RESTORE`](/components/media_player.sonos/#service-sonos_restore) features. The result of not using these features is any currently playing songs or media will not continue playing after the doorbell sound has played and you will be left with the doorbell sound queued as the last played song. This setup allows for seamless ringing of the doorbell and all SONOS devices continuing nicely on as if nothing had happened. - -The example script below takes a snapshot of three SONOS players that are not currently grouped together, joins the three players in a group (so the sound plays at the same time on all players), plays the doorbell MP3 sound, unjoins the players from the group and finally restores the players to their original state. When the players are grouped they are controlled by refering to the `master`. - -Automation file: - -```yaml -- alias: Doorbird ring - trigger: - platform: event - event_type: doorbird_1_doorbell - action: - service: script.turn_on - entity_id: script.doorbell -``` - -Script file: - -```yaml -doorbell: - alias: Ring Doorbell - sequence: - - service: media_player.sonos_snapshot - data: - entity_id: - - media_player.kitchen - - media_player.master_bedroom - - media_player.study - - service: media_player.sonos_join - data: - master: media_player.study - entity_id: - - media_player.kitchen - - media_player.master_bedroom - - media_player.study - - service: media_player.play_media - data: - entity_id: media_player.study # the group master - media_content_id: http://10.1.1.10/sounds/doorbell.mp3 # this is on a NAS but could be HASS local - media_content_type: music - - service: media_player.volume_set - data: - entity_id: # can still control the volume of grouped players indivdually - - media_player.study - - media_player.kitchen - - media_player.master_bedrom - volume_level: 0.50 - - delay: - seconds: 4 # wait while the sound plays - - service: media_player.sonos_unjoin - data: - entity_id: - - media_player.kitchen - - media_player.master_bedroom - - media_player.study - - service: media_player.sonos_restore - data: - entity_id: - - media_player.kitchen - - media_player.master_bedroom - - media_player.study -``` +The configuration above is used by the other components and does nothing on its own. You must also enable one of the following DoorBird components: +- [Binary Sensor](../binary_sensor.doorbird) - Track motion and doorbell events +- [Camera](../camera.doorbird) - View live and historical event based images +- [Switch](../switch.doorbird) - Enable control of relays and camera night vision \ No newline at end of file From f61881cc9216e691f545bad3934d2d4b725cba3e Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Tue, 22 May 2018 09:53:14 -0500 Subject: [PATCH 4/8] Update documentation --- .../binary_sensor.doorbird.markdown | 20 ------------ source/_components/doorbird.markdown | 31 ++++++++++++++++--- 2 files changed, 26 insertions(+), 25 deletions(-) delete mode 100644 source/_components/binary_sensor.doorbird.markdown diff --git a/source/_components/binary_sensor.doorbird.markdown b/source/_components/binary_sensor.doorbird.markdown deleted file mode 100644 index 97dc29bcf7cd..000000000000 --- a/source/_components/binary_sensor.doorbird.markdown +++ /dev/null @@ -1,20 +0,0 @@ -The `doorbird` implementation allows you to use motion and doorbell events from your [DoorBird](http://www.doorbird.com/) device in Home Assistant. - -

- You must have the [DoorBird component](/components/doorbird/) configured to use this sensor. -

- -

-Enabling this sensor will delete all registered notification services for each configured device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app. -

- -To enable event tracking for motion and doorbell events, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: doorbird - monitored_conditions: - - doorbell - - motion -``` diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 6070c601b0f7..62e7df1ee736 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -24,13 +24,15 @@ doorbird: - host: DOORBIRD_IP_OR_HOSTNAME username: YOUR_USERNAME password: YOUR_PASSWORD - hass_url_override: HASS_IP + hass_url_override: HASS_URL name: Front Door - host: DOORBIRD_IP_OR_HOSTNAME username: YOUR_USERNAME password: YOUR_PASSWORD - hass_url_override: HASS_IP name: Driveway Gate + monitored_conditions: + - doorbell + - motion ``` Device Configuration Variables: @@ -40,8 +42,27 @@ Device Configuration Variables: - **password** (*Required*): The password for the user specified. - **name** (*Optional*): Custom name for this device. - **hass_url_override** (*Optional*): If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. +- **monitored_conditions** (*Optional*): Monitor motion and/or doorbell events for this device. -The configuration above is used by the other components and does nothing on its own. You must also enable one of the following DoorBird components: -- [Binary Sensor](../binary_sensor.doorbird) - Track motion and doorbell events +The configuration above is also used by the following components: - [Camera](../camera.doorbird) - View live and historical event based images -- [Switch](../switch.doorbird) - Enable control of relays and camera night vision \ No newline at end of file +- [Switch](../switch.doorbird) - Enable control of relays and camera night vision + +## Motion and Doorbell Events + +Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file. + +

+Enabling any monitored condition will delete all registered notification services on the doorstation every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app. +

+ +### Automation Example +```yaml +- alias: Doorbird Ring + trigger: + platform: event + event_type: doorbird_side_entry_button + action: + service: light.turn_on + entity_id: light.side_entry_porch +``` \ No newline at end of file From 2e7f36685eaea449db1c558f746363b3a0c101c0 Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Wed, 23 May 2018 15:43:33 -0500 Subject: [PATCH 5/8] Update documentation formatting --- source/_components/doorbird.markdown | 38 +++++++++++++++------ source/_components/switch.doorbird.markdown | 9 +++-- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 62e7df1ee736..e5026d8a5596 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -35,20 +35,38 @@ doorbird: - motion ``` -Device Configuration Variables: - -- **host** (*Required*): The LAN IP address or hostname of your device. You can find this by going to the [DoorBird Online check](http://www.doorbird.com/checkonline) and entering the information from the paper that was included in the box. -- **username** (*Required*): The username of a non-administrator user account on the device. -- **password** (*Required*): The password for the user specified. -- **name** (*Optional*): Custom name for this device. -- **hass_url_override** (*Optional*): If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. -- **monitored_conditions** (*Optional*): Monitor motion and/or doorbell events for this device. +{% configuration %} +host: + description: The LAN IP address or hostname of your device. You can find this by going to the [DoorBird Online check](http://www.doorbird.com/checkonline) and entering the information from the paper that was included in the box. + required: true + type: string +username: + description: The username of a non-administrator user account on the device. + required: true + type: string +password: + description: The password for the user specified. + required: true + type: string +name: + description: Custom name for this device. + required: false + type: string +hass_url_override: + description: If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. + required: false + type: string +monitored_conditions: + description: Monitor motion and/or doorbell events for this device. + required: false + type: string +{% endconfiguration % } The configuration above is also used by the following components: - [Camera](../camera.doorbird) - View live and historical event based images - [Switch](../switch.doorbird) - Enable control of relays and camera night vision -## Motion and Doorbell Events +## {% linkable_title % Motion and Doorbell Events} Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file. @@ -56,7 +74,7 @@ Home Assistant will fire an event any time a `monitored_condition` happens on a Enabling any monitored condition will delete all registered notification services on the doorstation every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app.

-### Automation Example +### {% linkable_title % Automation Example} ```yaml - alias: Doorbird Ring trigger: diff --git a/source/_components/switch.doorbird.markdown b/source/_components/switch.doorbird.markdown index cb5b66db171e..f799f128d42c 100644 --- a/source/_components/switch.doorbird.markdown +++ b/source/_components/switch.doorbird.markdown @@ -30,6 +30,9 @@ switch: - open_door ``` -Configuration variables: - -- **switches** (*Required*): A list of switches to include. Possible entries are `light_on` for control of the IR array and `open_door` for control of an electronic door strike or alarm. +{% configuration %} +switches: + description: A list of switches to include. Possible entries are `light_on` for control of the IR array and `open_door` for control of an electronic door strike or alarm. + required: false + type: list +{% endconfiguration %} From 021bd2360e8a0336cc07b19e861578d7f0a21519 Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Wed, 23 May 2018 16:01:56 -0500 Subject: [PATCH 6/8] Documentation update --- source/_components/doorbird.markdown | 57 ++++++++++++--------- source/_components/switch.doorbird.markdown | 5 ++ 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index e5026d8a5596..3d0da57b33c6 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -36,30 +36,41 @@ doorbird: ``` {% configuration %} -host: - description: The LAN IP address or hostname of your device. You can find this by going to the [DoorBird Online check](http://www.doorbird.com/checkonline) and entering the information from the paper that was included in the box. +devices: + description: List of doorbird devices. required: true - type: string -username: - description: The username of a non-administrator user account on the device. - required: true - type: string -password: - description: The password for the user specified. - required: true - type: string -name: - description: Custom name for this device. - required: false - type: string -hass_url_override: - description: If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. - required: false - type: string -monitored_conditions: - description: Monitor motion and/or doorbell events for this device. - required: false - type: string + type: list + keys: + host: + description: The LAN IP address or hostname of your device. You can find this by going to the [DoorBird Online check](http://www.doorbird.com/checkonline) and entering the information from the paper that was included in the box. + required: true + type: string + username: + description: The username of a non-administrator user account on the device. + required: true + type: string + password: + description: The password for the user specified. + required: true + type: string + name: + description: Custom name for this device. + required: false + type: string + hass_url_override: + description: If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection. + required: false + type: string + monitored_conditions: + description: Monitor motion and/or doorbell events for this device. + required: false + type: string + keys: + doorbell: + description: Monitor doorbell events + motion: + description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app) + {% endconfiguration % } The configuration above is also used by the following components: diff --git a/source/_components/switch.doorbird.markdown b/source/_components/switch.doorbird.markdown index f799f128d42c..fcd862aa9011 100644 --- a/source/_components/switch.doorbird.markdown +++ b/source/_components/switch.doorbird.markdown @@ -35,4 +35,9 @@ switches: description: A list of switches to include. Possible entries are `light_on` for control of the IR array and `open_door` for control of an electronic door strike or alarm. required: false type: list + keys: + light_on: + description: Enable the IR light for 3 minutes. + open_door: + description: Activate DoorBird door relay {% endconfiguration %} From d7ecbd8241ced31c73741dc4974d717e036a3590 Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Sat, 26 May 2018 13:40:32 -0500 Subject: [PATCH 7/8] Closing tag correction --- source/_components/doorbird.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 3d0da57b33c6..88642ddef5a2 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -71,7 +71,7 @@ devices: motion: description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app) -{% endconfiguration % } +{% endconfiguration %} The configuration above is also used by the following components: - [Camera](../camera.doorbird) - View live and historical event based images From 65c8808384b06429240ee99bb53a21a2bb95b9f9 Mon Sep 17 00:00:00 2001 From: Matt Snyder Date: Tue, 29 May 2018 12:21:37 -0500 Subject: [PATCH 8/8] title tag correction? --- source/_components/doorbird.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index 88642ddef5a2..43f30816d941 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -77,7 +77,7 @@ The configuration above is also used by the following components: - [Camera](../camera.doorbird) - View live and historical event based images - [Switch](../switch.doorbird) - Enable control of relays and camera night vision -## {% linkable_title % Motion and Doorbell Events} +## {% linkable_title Motion and Doorbell Events %} Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file. @@ -85,7 +85,7 @@ Home Assistant will fire an event any time a `monitored_condition` happens on a Enabling any monitored condition will delete all registered notification services on the doorstation every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app.

-### {% linkable_title % Automation Example} +### {% linkable_title Automation Example %} ```yaml - alias: Doorbird Ring trigger: