diff --git a/_config.yml b/_config.yml index 69312dd7804..ceb7d51b754 100644 --- a/_config.yml +++ b/_config.yml @@ -141,10 +141,10 @@ social: current_major_version: 0 current_minor_version: 57 current_patch_version: 2 -date_released: 2017-11-05 +date_released: 2017-11-11 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0572--november-5" +patch_version_notes: "#release-0573--november-11" # Minor release (Example #release-0431---april-25): diff --git a/source/_addons/git_pull.markdown b/source/_addons/git_pull.markdown index 579ca5ad092..126fab9c1a5 100644 --- a/source/_addons/git_pull.markdown +++ b/source/_addons/git_pull.markdown @@ -44,4 +44,8 @@ Load and update configuration files for Home Assistant from a GIT repository. * **ed25519** * **rsa** - The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol. +The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol. + +

+You should only use this add-on if you do not have an existing configuration or if your existing configuration is already in a git repository. If the script does not find the necessary git files in your configuration folder, it will delete anything that might be there. Please ensure that there is a `.git` folder before using this. You can verify this by listing the items in the configuration folder including hidden files. The command is `ls -a /config`. +

diff --git a/source/_components/device_tracker.huawei_router.markdown b/source/_components/device_tracker.huawei_router.markdown index 42c7b22a4e4..6fb470ea4fb 100644 --- a/source/_components/device_tracker.huawei_router.markdown +++ b/source/_components/device_tracker.huawei_router.markdown @@ -13,7 +13,7 @@ ha_release: 0.51 --- This component offers presence detection by looking at connected devices to a [Huawei router](http://m.huawei.com/enmobile/enterprise/products/network/access/pon-one/hw-371813.htm). -Currently, this was only tested with the Huawei HG8247H (used by Vodafone Portugal). +Currently, this was only tested with the Huawei HG8247H and HG8247Q Smart Router (used by Vodafone Portugal). To use a Huawei router in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown index 74b40f25eed..7e3de32b678 100644 --- a/source/_components/device_tracker.nmap_tracker.markdown +++ b/source/_components/device_tracker.nmap_tracker.markdown @@ -29,7 +29,7 @@ To use this device tracker in your installation, add the following to your `conf # Example configuration.yaml entry device_tracker: - platform: nmap_tracker - hosts: 192.168.1.1/24 + hosts: 192.168.1.0/24 ``` Configuration variables: @@ -47,7 +47,7 @@ A full example for the `nmap` tracker could look like the following sample: # One whole subnet, and skipping two specific IPs. device_tracker: - platform: nmap_tracker - hosts: 192.168.1.1/24 + hosts: 192.168.1.0/24 home_interval: 10 exclude: - 192.168.1.12 @@ -60,7 +60,7 @@ device_tracker: device_tracker: - platform: nmap_tracker hosts: - - 192.168.1.1/24 + - 192.168.1.0/24 - 10.0.0.2 - 10.0.0.15 ``` diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index af017915885..004d92679d7 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -36,3 +36,9 @@ Configuration variables: - **detection_time** (*Optional*): The Unifi component will not return a device that has not been seen by the controller in the last 180 seconds. You can adjust this threshold with this variable and accepts seconds or `00:00:00` time formats. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +

+If you decide to install the Unifi Controller on the same system as your Home Assistant, be aware there may be overlap in ports if you have the MQTT component as well. + +[Related Issue](https://github.com/home-assistant/home-assistant/issues/10507) +

diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index dc48dd837fb..ee89044b2ed 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -101,8 +101,12 @@ automation: ### {% linkable_title Manual Theme Selection %} -When themes are enabled in the `configuration.yaml` file, a new option will show up in the Configuration panel under `configuration.yaml` called "Set a theme." You can then choose any installed theme from the dropdown list and it will be applied immediately. +When themes are enabled in the `configuration.yaml` file, a new option will show up in the Configuration panel under **General** called "Set a theme." You can then choose any installed theme from the dropdown list and it will be applied immediately. +

+ + Set a theme +

## {% linkable_title Loading extra HTML %} @@ -118,4 +122,13 @@ frontend: - /file2.html ``` -Those will be loaded via `` on any page (states and panels) +Those will be loaded via `` on any page (states and panels). + +### {% linkable_title Manual Language Selection %} + +The browser language is automatically detected. To use a different language, go to **General** in the Configuration panel and select a one from "Choose a Language". It will be applied immediately. + +

+ + Choose a Language +

diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/sensor.speedtest.markdown index d9c25821a8a..bc1e8bf9884 100644 --- a/source/_components/sensor.speedtest.markdown +++ b/source/_components/sensor.speedtest.markdown @@ -113,3 +113,5 @@ automation: - When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter. - Entries under `monitored_conditions` only control what entities are available under home-assistant, it does not disable the condition from running. +- If ran frequently, this component has the capability of using a very large amount of data. Frequent updates should be avoided on bandwidth capped connections. +- While running, network usage is fully utilized. This may have a negative affect on other devices in use the network such as gaming consoles or streaming boxes. diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index c3e35ab8fbe..505aeacdb22 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -14,7 +14,7 @@ ha_release: 0.57 The `timer` component aims to simplify automations based on (dynamic) durations. -When a timer finishes or gets cancelled the corresponding events are fired. This allows you to diffferentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been cancelled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion. +When a timer finishes or gets cancelled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been cancelled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion.

With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration. @@ -92,3 +92,42 @@ Select serv
 }
 ```
 
+### {% linkable_title Configuration example %}
+
+```yaml
+# Example configuration.yaml entry
+
+# Set a timer called test to a duration of 30 seconds: 
+timer:
+  test:
+    duration: "Clear". You won't loose any data, as all files are stored in your config-directory +* Right-click on it and select "Action"->"Clear". You won't lose any data, as all files are stored in your config-directory * Start the container again - it will then boot up with the new Home Assistant image +Remark: to restart your Home Assistant within Synology NAS, you just have to do the following: +* Go to the Docker-app and move to "Container"-section +* Right-click on it and select "Action"->"Restart". + ### {% linkable_title Restart %} This will launch Home Assistant and serve the web interface from port 8123 on your Docker host. @@ -74,4 +79,4 @@ This will launch Home Assistant and serve the web interface from port 8123 on yo If you change the configuration you have to restart the server. To do that you have 2 options. 1. You can go to the service developer tool icon service developer tools, select the service `homeassistant/restart` and click "Call Service". - 2. Or you can restart it from an terminal by running `docker restart home-assistant` + 2. Or you can restart it from a terminal by running `docker restart homeassistant` diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index 8c2e52017be..45cb73278a2 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -2,7 +2,7 @@ layout: page title: "Z-Wave Devices - Adding and Removing" description: "How to add and remove Z-Wave devices." -date: 2016-02-27 19:59 +date: 2017-11-08 19:06 sidebar: true comments: false sharing: true @@ -11,17 +11,29 @@ footer: true ## {% linkable_title Adding Non-Secure Devices %} -To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your system, go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend and click the **Add Node** button in the *Z-Wave Network Management* card. This will place the controller in inclusion mode, after which you should activate your device to be included by following the instructions provided with the device. Don't use this for secure devices, since this is likely to limit the features the device supports. +To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your system: + +1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend +2. Click the **Add Node** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode +3. Activate your device to be included by following the instructions provided with the device + +Don't use this for [secure devices](https://home-assistant.io/docs/z-wave/adding/#adding-secure-devices), since this is likely to limit the features the device supports.

-Don't use the OpenZWave control panel (OZWCP), or the physical button on a controller, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports. +Don't use the OpenZWave control panel (OZWCP), **or the physical button on a controller**, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports.

When you add a device, it may initially appear without a specific entity ID (eg `zwave.__`) and without other identifying information. Running a *Heal* should help speed this process up, and you'll need to run a *Heal* anyway so that all the devices in your Z-Wave network learn about the new device. You *might* need to restart Home Assistant (not reboot the system) to have the entity ID fully visible. ## {% linkable_title Adding Secure Devices %} -Security Z-Wave devices require a network key before being added to the network using the **Add Secure Node** button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. Some devices only expose their full capabilities when included this way, you should always read the manual for your device to find out the recommended inclusion method. +Security Z-Wave devices require a network key - you must set the *network_key* configuration variable to use a network key before adding these devices. Some devices only expose their full capabilities when included this way, you should always read the manual for your device to find out the recommended inclusion method. To add (include) a secure Z-Wave device: + +1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend +2. Click the **Add Node Secure** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode +3. Activate your device to be included by following the instructions provided with the device + +### {% linkable_title Network Key %} An easy script to generate a random key: ```bash @@ -39,5 +51,8 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don ## {% linkable_title Removing Devices %} -To remove (exclude) a Z-Wave device from your system, go to the Z-Wave control panel in the Home Assistant frontend and click the **Remove Node** button in the *Z-Wave Network Management* card. This will place the controller in exclusion mode, after which you should activate your device to be excluded by following the instructions provided with the device. +To remove (exclude) a Z-Wave device from your system: +1. Go to the Z-Wave control panel in the Home Assistant frontend +2. Click the **Remove Node** button in the *Z-Wave Network Management* card - this will place the controller in exclusion mode +3. Activate your device to be excluded by following the instructions provided with the device diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index 2327e51117f..48e654ffaa8 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -36,7 +36,8 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **Remove Failed Node** will remove a failed node from the network. The node needs to be on the controller's Failed Node List (marked as `is_failed: true`), otherwise this command will fail. * **Replace Failed Node** will replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail. * **Print Node** prints all state of Z-Wave node to the console log -* **Rename Node** sets a node's name + +* **Rename Node** sets a node's name - this won't happen immediately, and requires you to restart Home Assistant (not reboot) to set the new name * **Heal Node** starts healing of the node.(Update neighbour list and update return routes) diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index f7a219a2fc2..83fa3cad95a 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -156,3 +156,54 @@ Triple tap on|1|4 Triple tap off|2|4 Tap and hold on|1|2 Tap and hold off|2|2 + +### {% linkable_title Fibaro Button FGPB-101-6 v3.2 %} + + + +For the Button, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: + +```xml + + + + + +``` + +Below is a table of the action/scenes for the Button (as a reference for other similar devices): + +**Action**|**scene\_id**|**scene\_data** +:-----:|:-----:|:-----: +Single tap on|1|0 +Double tap on|1|3 +Triple tap on|1|4 + +Tap and hold wakes up the Button. + +### {% linkable_title Aeotec Wallmote %} + + + +For the Aeotec Wallmote, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: + +```xml + + + + + + + + + +``` + +Below is a table of the action/scenes for the Wallmote (as a reference for other similar devices): + +**Action**|**scene\_id**|**scene\_data** +:-----:|:-----:|:-----: +Button one single tap|1|TBC +Button two single tap|2|TBC +Button three single tap|3|TBC +Button four single tap|4|TBC diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 40ef9739c62..338c348d5f0 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -25,7 +25,7 @@ $ sudo /Applications/Python\ x.x/Install\ Certificates.command ```

-The installation of python-openzwave can take half an hour or more on a Raspbery Pi. +The installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspbery Pi.

## {% linkable_title Configuration %} @@ -183,7 +183,9 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don ## {% linkable_title First Run %} -Upon first run, the `zwave` component will take time to initialize entities and entities may appear with incomplete names. Running a network heal may speed up this process. +The (compilation and) installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspbery Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. + +The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. ## {% linkable_title Troubleshooting %} diff --git a/source/_posts/2017-11-04-release-57.markdown b/source/_posts/2017-11-04-release-57.markdown index 0779d7b5a66..dc054b035ce 100644 --- a/source/_posts/2017-11-04-release-57.markdown +++ b/source/_posts/2017-11-04-release-57.markdown @@ -92,6 +92,11 @@ Okay, one more highlight before we'll let you check out the changelog. Contribut - Update frontend with fixes for setting temperature on climate card ([@balloob]) - Fix setting max brightness for TRADFRI ([@ggravlingen] - [#10359]) +## {% linkable_title release 0.57.3 - november 11 %} + +- Tellstick Duo acync callback fix ([@stefan-jonasson] - [#10384]) ([tellstick docs]) +- Fixed update() method and removed `ding` feature from stickupcams/floodlight ([@tchellomello] - [#10428]) ([binary_sensor.ring docs]) ([camera.ring docs]) ([sensor.ring docs]) + ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -643,4 +648,12 @@ Experiencing issues introduced by this release? Please report them in our [issue [wink docs]: https://home-assistant.io/components/wink/ [xiaomi_aqara docs]: https://home-assistant.io/components/xiaomi_aqara/ [ikea email]: https://twitter.com/home_assistant/status/925373865802502144 -[wink-auth]: https://home-assistant.io/components/wink/#authenticate-using-developerwinkcomhttpsdeveloperwinkcom \ No newline at end of file +[wink-auth]: https://home-assistant.io/components/wink/#authenticate-using-developerwinkcomhttpsdeveloperwinkcom +[#10384]: https://github.com/home-assistant/home-assistant/pull/10384 +[#10428]: https://github.com/home-assistant/home-assistant/pull/10428 +[@stefan-jonasson]: https://github.com/stefan-jonasson +[@tchellomello]: https://github.com/tchellomello +[binary_sensor.ring docs]: https://home-assistant.io/components/binary_sensor.ring/ +[camera.ring docs]: https://home-assistant.io/components/camera.ring/ +[sensor.ring docs]: https://home-assistant.io/components/sensor.ring/ +[tellstick docs]: https://home-assistant.io/components/tellstick/ diff --git a/source/_posts/2017-11-10-ttn-with-mqtt.markdown b/source/_posts/2017-11-10-ttn-with-mqtt.markdown new file mode 100644 index 00000000000..d619623c020 --- /dev/null +++ b/source/_posts/2017-11-10-ttn-with-mqtt.markdown @@ -0,0 +1,198 @@ +--- +layout: post +title: "Home Assistant and The Things Network (TTN)" +description: "How to use transfer MQTT messages from The Things Network (TTN) to a local broker." +date: 2017-11-10 14:00:00 +0200 +date_formatted: "November 10, 2017" +author: Fabian Affolter +author_twitter: fabaff +comments: true +categories: How-To +og_image: /images/blog/2017-11-mqtt-ttn/social-ha-ttn.png +--- + +The Home Assistant integration for [The Things Network (TTN)](https://www.thethingsnetwork.org/) uses their [Storage](https://www.thethingsnetwork.org/docs/applications/storage/) feature to get the sensor data. The easiest way to observe TTN sensors would be [MQTT](https://www.thethingsnetwork.org/docs/applications/mqtt/) as it doesn't requires any additional configuration. + +At the moment Home Assistant only supports one [MQTT broker](/docs/mqtt/). This means that you can't subscribe to topics which are located on different brokers. + + + +## {% linkable_title Subscribe to the TTN Broker %} + +To check what your devices are sending, subscribe to the topic `+/devices/+/up` with a command-line tool like `mosquitto_sub`. The `` is the postfix of the **Handler** entry in your **Application overview**. `` is the **Application ID** and `` is your access key. + +```bash +$ mosquitto_sub -v -h .thethings.network -t '+/devices/+/up' -u '' -P '' +{ + "app_id": "ha-demo", + "dev_id": "device01", + "hardware_serial": "AJDJENDNHRBFBBT", + "port": 1, + [...] +``` + +The payload contains details about the device itself and the sensor data. The sensor data is stored in `payload_fields`. Depending on the device configuration it may contain a single value or multiple values. + +## {% linkable_title The relay %} + +To be able to work locally with the MQTT data that is received from the devices connected to TTN, we need to transfer it to the local broker. With this simple script below all messages from a given device are re-published on your local MQTT broker after they are received. Modify the script with your details as outlined in the previous section. + +```python +"""Relay MQTT messages from The Things Network to a local MQTT broker.""" +import paho.mqtt.client as mqtt +import paho.mqtt.publish as publish + +DEVICE_NAME = '' + +TTN_BROKER = '.thethings.network' +TTN_USERNAME = '' +TTN_PASSWORD = '' +TTN_TOPIC = '+/devices/{}/up'.format(DEVICE_NAME) + +LOCAL_BROKER = '192.168.0.2' +LOCAL_TOPIC = 'home/ttn/garden_temp' + + +def on_connect(client, userdata, flags, rc): + """Subscribe to topic after connection to broker is made.""" + print("Connected with result code", str(rc)) + client.subscribe(TTN_TOPIC) + + +def on_message(client, userdata, msg): + """Relay message to a different broker.""" + publish.single( + LOCAL_TOPIC, payload=msg.payload, qos=0, retain=False, + hostname=LOCAL_BROKER, port=1883, client_id='ttn-local', + keepalive=60, will=None, auth=None, tls=None, protocol=mqtt.MQTTv311) + + +client = mqtt.Client() +client.username_pw_set(TTN_USERNAME, password=TTN_PASSWORD) +client.on_connect = on_connect +client.on_message = on_message +client.connect(TTN_BROKER, 1883, 60) + +client.loop_forever() +``` + +Save it and run it. As soon as a MQTT message is received from your device you should see it on your local broker (here 192.168.0.2) if you subscribe to `#` or the topic given in the script above `home/ttn/garden_temp`. + +```bash +$ mosquitto_sub -h 192.168.0.2 -t "#" -d +``` + +## {% linkable_title The sensor %} + +All we would need now, is a [`mqtt` sensor](/components/sensor.mqtt/) with a `value_template`. With a sophisticated custom sensor it would be possible to displaying a little more than just the state. The device is only sending the temperature `{"temperature": 7.5}` but there are other details available which the sensor should show. + +```python +"""Support for The Things Network MQTT sensors.""" +import asyncio +from datetime import timedelta +import json +import logging + +import voluptuous as vol + +import homeassistant.components.mqtt as mqtt +from homeassistant.components.mqtt import CONF_STATE_TOPIC +from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT +from homeassistant.core import callback +import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity import Entity + +_LOGGER = logging.getLogger(__name__) + +DEFAULT_NAME = 'MQTT TTN Sensor' +DEFAULT_FORCE_UPDATE = False +DEPENDENCIES = ['mqtt'] + +PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, + vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string, + +}) + + +@asyncio.coroutine +def async_setup_platform(hass, config, async_add_devices, discovery_info=None): + """Set up the TTN MQTT Sensor.""" + async_add_devices([MqttTtnSensor( + config.get(CONF_NAME), config.get(CONF_STATE_TOPIC), + config.get(CONF_UNIT_OF_MEASUREMENT)) + ]) + + +class MqttTtnSensor(Entity): + """Representation of a sensor.""" + + def __init__(self, name, state_topic, unit_of_measurement): + """Initialize the sensor.""" + self._state = None + self._name = name + self._unit_of_measurement = unit_of_measurement + self._attributes = {} + self._state_topic = state_topic + + def async_added_to_hass(self): + """Subscribe to MQTT events.""" + @callback + def message_received(topic, payload, qos): + """Handle new MQTT messages.""" + + try: + data = json.loads(payload) + except json.JSONDecodeError: + _LOGGER.error("Invalid JSON data received: %s", data) + + self._state = data['payload_fields'][next( + iter(data['payload_fields']))] + self._attributes = data + del self._attributes['payload_fields'] + del self._attributes['metadata'] + self.async_schedule_update_ha_state() + + return mqtt.async_subscribe( + self.hass, self._state_topic, message_received, 0) + + @property + def should_poll(self): + """No polling needed.""" + return False + + @property + def name(self): + """Return the name of the sensor.""" + return self._name + + @property + def unit_of_measurement(self): + """Return the unit this state is expressed in.""" + return self._unit_of_measurement + + @property + def state_attributes(self): + """Return the attributes of the entity.""" + return self._attributes + + @property + def state(self): + """Return the state of the entity.""" + return self._state +``` + +Store it in `/custom_components/sensor/mqtt_ttn.py` and it will handle the messages. + +## {% linkable_title The configuration %} + +Now create the [`mqtt_ttn` sensor](/components/sensor.mqtt/) entry for your device. + +``` +sensor: + - platform: mqtt_ttn + name: TTN Sensor + state_topic: "home/ttn/garden_temp" +``` + +This solution is not production-ready, scalable or stable but it could fill the gape till Home Assistant is able to connect to multiple MQTT brokers. If you have multiple devices relay all messages to your local broker and add an configuration variable to `mqtt_ttn` sensor which allows you to select the device. diff --git a/source/developers/documentation/create_page.markdown b/source/developers/documentation/create_page.markdown index db3ca834c6a..f2bf29dcef1 100644 --- a/source/developers/documentation/create_page.markdown +++ b/source/developers/documentation/create_page.markdown @@ -86,7 +86,7 @@ required: inclusive #=> Inclusive required: exclusive #=> Exclusive required: any string here #=> Any string here ``` -- **`type:`**: The type of the variable. Allowed entries: `string`, `int` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example). +- **`type:`**: The type of the variable. Allowed entries: `string`, `int`, `time`, `template` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example). - **`default:`**: The default value for the variable. ### {% linkable_title Embedding Code %} diff --git a/source/developers/frontend_creating_custom_ui.markdown b/source/developers/frontend_creating_custom_ui.markdown index 85dcae24e46..7a4b8eeb418 100644 --- a/source/developers/frontend_creating_custom_ui.markdown +++ b/source/developers/frontend_creating_custom_ui.markdown @@ -40,7 +40,7 @@ frontend: - /local/custom_ui/state-card-my-custom-light.html ``` -`www\custom_ui\state-card-my-custom-light.html`: +`www/custom_ui/state-card-my-custom-light.html`: ```javascript diff --git a/source/developers/frontend_translation.markdown b/source/developers/frontend_translation.markdown index 8f0090be5ef..e5b12de85f7 100644 --- a/source/developers/frontend_translation.markdown +++ b/source/developers/frontend_translation.markdown @@ -23,6 +23,7 @@ The translation of the Home Assistant frontend is still a work in progress. More 1. Only native speakers should submit translations. 2. Stick to [Material Design guidelines](https://material.io/guidelines/style/writing.html). 3. Don't translate or change proper nouns like `Home Assistant`, `Hass.io` or `Hue`. +4. For a region specific translation, keys that will be the same as the base translation should be filled with `[VOID]`. These will be replaced during our translation build process. ## {% linkable_title Adding a new language %} If your language is not listed you can request it at [GitHub](https://github.com/home-assistant/home-assistant-polymer/issues/new). Please provide both the English name and the native name for your language. For example: diff --git a/source/hassio/zwave.markdown b/source/hassio/zwave.markdown index 119a2928f56..3ffe692ecf5 100644 --- a/source/hassio/zwave.markdown +++ b/source/hassio/zwave.markdown @@ -16,7 +16,9 @@ zwave: usb_path: /dev/ttyACM0 ``` -If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following line into `config.txt`: +### RAZBERRY BOARD + +If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following line into `config.txt` (you have to access that on the SD card directly; simply plug it into your PC and edit it there): ``` dtoverlay=pi3-miniuart-bt @@ -28,7 +30,12 @@ For some devices the `/dev/ttyAMA0` device is not detected by udev and is theref $ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options ``` -After that, you need to change `usb_path` to `/dev/ttyAMA0`. +After that, you need to change `usb_path` to `/dev/ttyAMA0` in your `configuration.yaml`. + +```yaml +zwave: + usb_path: /dev/ttyAMA0 +``` ### HUSBZB-1: diff --git a/source/images/blog/2017-11-mqtt-ttn/social-ha-ttn.png b/source/images/blog/2017-11-mqtt-ttn/social-ha-ttn.png new file mode 100644 index 00000000000..c9de59745a0 Binary files /dev/null and b/source/images/blog/2017-11-mqtt-ttn/social-ha-ttn.png differ diff --git a/source/images/frontend/choose-language.png b/source/images/frontend/choose-language.png new file mode 100644 index 00000000000..38599f7fe44 Binary files /dev/null and b/source/images/frontend/choose-language.png differ diff --git a/source/images/frontend/choose-theme.png b/source/images/frontend/choose-theme.png new file mode 100644 index 00000000000..62b1b2b6be3 Binary files /dev/null and b/source/images/frontend/choose-theme.png differ