From 5eacfab5a4c4bce28b5fb3f0ef12a4a697d2c46b Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Tue, 24 Sep 2019 16:34:41 -0400 Subject: [PATCH 1/5] Add Apprise notification integration --- source/_components/apprise.markdown | 70 ++++++++++++++++++++ source/_includes/custom/grid_item_left.html | 3 + source/images/supported_brands/apprise.png | Bin 0 -> 27015 bytes 3 files changed, 73 insertions(+) create mode 100644 source/_components/apprise.markdown create mode 100644 source/images/supported_brands/apprise.png diff --git a/source/_components/apprise.markdown b/source/_components/apprise.markdown new file mode 100644 index 000000000000..ba6b706468cb --- /dev/null +++ b/source/_components/apprise.markdown @@ -0,0 +1,70 @@ +--- +title: "Apprise" +description: "Instructions on how to add Apprise notifications to Home Assistant." +logo: apprise.png +ha_category: + - Notifications +ha_release: 0.8.0 +redirect_from: + - /components/notify.apprise/ +--- + +The [Apprise service](https://github.com/caronc/apprise/) is a all-in-on solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio etc. + +To use Apprise supported notifications, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry using URLs +notify: + - platform: apprise + url: YOUR_APPRISE_URLS +``` + +You can also pre-define your own configuration files while storing them either remotely and/or locally. Simply just use the `config` option. +```yaml +# Example configuration.yaml entry using externally located Apprise +# Configuration Files/Sites: +notify: + - platform: apprise + config: YOUR_APPRISE_CONFIG_URLS +``` + +There is no restriction to the number of URLs or Apprise Configuration locations you wish to define. You can also use both of the lines in conjunction with one another: +```yaml +# Example configuration.yaml entry using all options +notify: + - platform: apprise + config: YOUR_APPRISE_CONFIG_URLS + url: YOUR_APPRISE_URLS +``` + +{% configuration %} +name: + description: The notifier will bind to the service `notify.NAME`. + required: false + type: string + default: notify +url: + description: One or more Apprise URLs + required: false + type: string +config: + description: One or more Apprise Configuration URLs + required: false + type: string +{% endconfiguration %} + +#### Example service call + +```yaml +- service: notify.apprise + data: + message: "A message from Home Assistant" +``` + +### Notes +There are almost 50 supported Notification services supported by Apprise. Each has their own tweaks and customizations you can leverage. +* For instructions on how to construct the URLs, visit [here](https://github.com/caronc/apprise/wiki#notification-services). +* For instructions on how you can customize your own Apprise configuration files (referenced through the `config` directive), checkout the following: + * [Text Formatted URLs](https://github.com/caronc/apprise/wiki/config_text) + * [YAML Formatted URLs](https://github.com/caronc/apprise/wiki/config_yaml) diff --git a/source/_includes/custom/grid_item_left.html b/source/_includes/custom/grid_item_left.html index 53c4edbd4bfa..5c90d6700e5d 100644 --- a/source/_includes/custom/grid_item_left.html +++ b/source/_includes/custom/grid_item_left.html @@ -41,6 +41,9 @@

Observe

Arduino + + Apprise + diff --git a/source/images/supported_brands/apprise.png b/source/images/supported_brands/apprise.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc869a1aeaba19c76179c1acea78a488568537f GIT binary patch literal 27015 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 literal 0 HcmV?d00001 From dd346ea08cd2ea98e4d49ba9cce1ceb7761d0a4b Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Tue, 24 Sep 2019 20:13:45 -0400 Subject: [PATCH 2/5] updated to accomodate code review --- source/_components/apprise.markdown | 4 +--- source/_includes/custom/grid_item_left.html | 3 --- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/source/_components/apprise.markdown b/source/_components/apprise.markdown index ba6b706468cb..cdb0dd2d0a3a 100644 --- a/source/_components/apprise.markdown +++ b/source/_components/apprise.markdown @@ -4,9 +4,7 @@ description: "Instructions on how to add Apprise notifications to Home Assistant logo: apprise.png ha_category: - Notifications -ha_release: 0.8.0 -redirect_from: - - /components/notify.apprise/ +ha_release: "0.100" --- The [Apprise service](https://github.com/caronc/apprise/) is a all-in-on solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio etc. diff --git a/source/_includes/custom/grid_item_left.html b/source/_includes/custom/grid_item_left.html index 5c90d6700e5d..53c4edbd4bfa 100644 --- a/source/_includes/custom/grid_item_left.html +++ b/source/_includes/custom/grid_item_left.html @@ -41,9 +41,6 @@

Observe

Arduino - - Apprise - From 242044ec6d08c2aaf8b1cb4073a93eb81092e333 Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Mon, 14 Oct 2019 17:27:03 -0400 Subject: [PATCH 3/5] updated to reference apprise tagging support --- source/_components/apprise.markdown | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/_components/apprise.markdown b/source/_components/apprise.markdown index cdb0dd2d0a3a..11ada1623ce8 100644 --- a/source/_components/apprise.markdown +++ b/source/_components/apprise.markdown @@ -60,8 +60,20 @@ config: message: "A message from Home Assistant" ``` +If you're using configuration files to store your Apprise URLs in, then you have the added bonus of associating tags with them. By default Apprise in Home Assistant will only notify the elements that have no tags associated with them. You can optionally focus on only notifying a specifc services based on the tag(s) you assigned them like so: +```yaml +- service: notify.apprise + data: + message: "A message from Home Assistant" + target: [ + "tag_name1", + ] +``` + +The tag `all` is reserved to notify absolutely everything whether you have a tag associated with a URL or not. + ### Notes -There are almost 50 supported Notification services supported by Apprise. Each has their own tweaks and customizations you can leverage. +There are over 50 supported Notification services supported by Apprise. Each has their own tweaks and customizations you can leverage. * For instructions on how to construct the URLs, visit [here](https://github.com/caronc/apprise/wiki#notification-services). * For instructions on how you can customize your own Apprise configuration files (referenced through the `config` directive), checkout the following: * [Text Formatted URLs](https://github.com/caronc/apprise/wiki/config_text) From 7ff39965a41bcd6f7ff45666fbac9827163e25ac Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Mon, 14 Oct 2019 19:07:40 -0400 Subject: [PATCH 4/5] ha_version + grammer as per code review --- source/_components/apprise.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/apprise.markdown b/source/_components/apprise.markdown index 11ada1623ce8..cd4f84090233 100644 --- a/source/_components/apprise.markdown +++ b/source/_components/apprise.markdown @@ -4,10 +4,10 @@ description: "Instructions on how to add Apprise notifications to Home Assistant logo: apprise.png ha_category: - Notifications -ha_release: "0.100" +ha_release: "0.101" --- -The [Apprise service](https://github.com/caronc/apprise/) is a all-in-on solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio etc. +The [Apprise service](https://github.com/caronc/apprise/) is an all-in-one solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio etc. To use Apprise supported notifications, add the following to your `configuration.yaml` file: From 583b0a6b0a7cb35a0bd7221f68c4397e417c7026 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 16 Oct 2019 22:19:01 +0200 Subject: [PATCH 5/5] :pencil2: Tweaks --- source/_components/apprise.markdown | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/source/_components/apprise.markdown b/source/_components/apprise.markdown index cd4f84090233..082997a01e06 100644 --- a/source/_components/apprise.markdown +++ b/source/_components/apprise.markdown @@ -7,7 +7,7 @@ ha_category: ha_release: "0.101" --- -The [Apprise service](https://github.com/caronc/apprise/) is an all-in-one solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio etc. +The [Apprise service](https://github.com/caronc/apprise/) is an all-in-one solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio, etc. To use Apprise supported notifications, add the following to your `configuration.yaml` file: @@ -18,7 +18,8 @@ notify: url: YOUR_APPRISE_URLS ``` -You can also pre-define your own configuration files while storing them either remotely and/or locally. Simply just use the `config` option. +You can also pre-define your own configuration files while storing them either remotely or locally. Simply just use the `config` option. + ```yaml # Example configuration.yaml entry using externally located Apprise # Configuration Files/Sites: @@ -27,7 +28,8 @@ notify: config: YOUR_APPRISE_CONFIG_URLS ``` -There is no restriction to the number of URLs or Apprise Configuration locations you wish to define. You can also use both of the lines in conjunction with one another: +There is no restriction on the number of URLs or Apprise Configuration locations you wish to define. You can also use both of the lines in conjunction with one another: + ```yaml # Example configuration.yaml entry using all options notify: @@ -60,7 +62,8 @@ config: message: "A message from Home Assistant" ``` -If you're using configuration files to store your Apprise URLs in, then you have the added bonus of associating tags with them. By default Apprise in Home Assistant will only notify the elements that have no tags associated with them. You can optionally focus on only notifying a specifc services based on the tag(s) you assigned them like so: +If you're using configuration files to store your Apprise URLs in, then you have the added bonus of associating tags with them. By default, Apprise in Home Assistant will only notify the elements that have no tags associated with them. You can optionally focus on only notifying a specific service based on the tag(s) you assigned them like so: + ```yaml - service: notify.apprise data: @@ -70,11 +73,13 @@ If you're using configuration files to store your Apprise URLs in, then you have ] ``` -The tag `all` is reserved to notify absolutely everything whether you have a tag associated with a URL or not. +The tag `all` is reserved to notify absolutely everything, whether you have a tag associated with a URL or not. ### Notes -There are over 50 supported Notification services supported by Apprise. Each has their own tweaks and customizations you can leverage. -* For instructions on how to construct the URLs, visit [here](https://github.com/caronc/apprise/wiki#notification-services). -* For instructions on how you can customize your own Apprise configuration files (referenced through the `config` directive), checkout the following: - * [Text Formatted URLs](https://github.com/caronc/apprise/wiki/config_text) - * [YAML Formatted URLs](https://github.com/caronc/apprise/wiki/config_yaml) + +There are over 50 supported Notification services supported by Apprise. Each has their own tweaks and customizations you can leverage. + +- For instructions on how to construct the URLs, visit [here](https://github.com/caronc/apprise/wiki#notification-services). +- For instructions on how you can customize your own Apprise configuration files (referenced through the `config` directive), check out the following: + - [Text Formatted URLs](https://github.com/caronc/apprise/wiki/config_text) + - [YAML Formatted URLs](https://github.com/caronc/apprise/wiki/config_yaml)