From d8760e23f5ec13c0db3eb75e141c6ec014d71b69 Mon Sep 17 00:00:00 2001 From: Nolan Gilley Date: Tue, 12 Jul 2016 11:49:06 -0400 Subject: [PATCH] add joaoapps join component and platform. (#633) --- source/_components/joaoapps_join.markdown | 51 ++++++++++++++++++ .../_components/notify.joaoapps_join.markdown | 16 ++++++ .../images/supported_brands/joaoapps_join.png | Bin 0 -> 20517 bytes 3 files changed, 67 insertions(+) create mode 100644 source/_components/joaoapps_join.markdown create mode 100644 source/_components/notify.joaoapps_join.markdown create mode 100644 source/images/supported_brands/joaoapps_join.png diff --git a/source/_components/joaoapps_join.markdown b/source/_components/joaoapps_join.markdown new file mode 100644 index 00000000000..827e587dd66 --- /dev/null +++ b/source/_components/joaoapps_join.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Joaoapps Join" +description: "Instructions for how to integrate the Join by Joaoapps service within Home Assistant." +date: 2016-07-12 10:49 +sidebar: true +comments: false +sharing: true +footer: true +logo: joaoapps_join.png +ha_category: Hub +ha_release: "0.24" +--- + + +The Join platform exposes services from [Join](http://joaoapps.com/join). In Home Assistant, the Join features are divided up in two locations, the Join component, and the Join notify platform. The notify platform allows us to send messages to Join devices, the the component allows us to access the other special features that Join offers. + +In the configuartion.yaml you need to provide the device id of the target device. If you want to send to a group of devices, you need to provide an api key. You can find you device id and api key [here](https://joinjoaomgcd.appspot.com/). + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +notify: + - platform: joaoapps_join + device_id: d5asdfasdf54645h45h368761dfe5gt8a + name: droid *optional + api_key: asd97823jb628a34fwsdfwefd5384345tf2d *optional + +joaoapps_join: + device_id: group.android + name: droid + api_key: asd97823jb628a34fwsdfwefd5384345tf2d +``` + +The notify service has a few optional parameters such as icon and smallicon. You can use them like so: + +```json +{"message":"Hello!","title":"From Hass","data":{"icon":"https://goo.gl/KVqcYi","smallicon":"http://goo.gl/AU4Wf1"}} +``` + +The services exposed in the joaoapps_join component can be used with the service data described below: + +| Service | Data | +|------------------------------ |------------------------------------------------------------------ | +| joaoapps_join/ring | | +| joaoapps_join/send_sms | {"number":"5553334444", "message":"Hello!"} | +| joaoapps_join/send_tasker | {"command":"test"} | +| joaoapps_join/send_url | {"url":"http://google.com"} | +| joaoapps_join/send_wallpaper | {"url":"http://www.planwallpaper.com/static/images/ZhGEqAP.jpg"} | +| joaoapps_join/send_file | {"url":"http://download.thinkbroadband.com/5MB.zip"} | + diff --git a/source/_components/notify.joaoapps_join.markdown b/source/_components/notify.joaoapps_join.markdown new file mode 100644 index 00000000000..46e3c5e3701 --- /dev/null +++ b/source/_components/notify.joaoapps_join.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Join Notify" +description: "Instructions how to setup the Join notification platform within Home Assistant." +date: 2016-07-12 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: joaoapps_join.png +ha_category: Notify +ha_release: "0.24" +--- + +See the [Joaoapps Join component page](/components/joaoapps/) for information how to get the join notify platform running. + diff --git a/source/images/supported_brands/joaoapps_join.png b/source/images/supported_brands/joaoapps_join.png new file mode 100644 index 0000000000000000000000000000000000000000..28fa7c48b29bff93c1a45c17afe6969e199cccda GIT binary patch literal 20517 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

*FYyQ-}Xw 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