mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-16 13:56:53 +00:00
typos fixed (#6582)
This commit is contained in:
parent
59c1717020
commit
d3589d9518
@ -14,7 +14,7 @@ featured: false
|
||||
You should not use this if you are also using the [DuckDNS add-on]. The DuckDNS add-on has integrated Let's Encrypt support.
|
||||
</p>
|
||||
|
||||
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This addon will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. This add-on uses port 80 to verify the certificate request. You will need to stop all other add-ons that also use this port.
|
||||
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This add-on will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. This add-on uses port 80 to verify the certificate request. You will need to stop all other add-ons that also use this port.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -43,7 +43,7 @@ If you use another port such as `8123` or an SSL proxy, change the port number.
|
||||
|
||||
## {% linkable_title Enabling auto-renewals %}
|
||||
|
||||
Out of the box, the add-on will not automatically renew your certificate. In fact, it only starts, tries to get/renew your certificte, and then stops. It's up to you to manually start it again whenever your certificate comes close to expiry.
|
||||
Out of the box, the add-on will not automatically renew your certificate. In fact, it only starts, tries to get/renew your certificate, and then stops. It's up to you to manually start it again whenever your certificate comes close to expiry.
|
||||
|
||||
However, you can automate this process using Home Assistant.
|
||||
|
||||
|
@ -10,7 +10,7 @@ footer: true
|
||||
featured: true
|
||||
---
|
||||
|
||||
This addon allows you to set up a [Samba](https://samba.org/) server to access Hass.io folders using Windows network shares.
|
||||
This add-on allows you to set up a [Samba](https://samba.org/) server to access Hass.io folders using Windows network shares.
|
||||
|
||||
```json
|
||||
{
|
||||
|
@ -15,7 +15,7 @@ The Snips add-on depends on the Mosquitto add on to bridge to Home Assistant, so
|
||||
|
||||
Home Assistant comes with certain Intents builtin to handle common tasks. A complete list of Intents can be found in this wiki [Hass Snips Bundle](https://github.com/tschmidty69/hass-snips-bundle-intents/wiki).
|
||||
|
||||
The Snips addon by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled.
|
||||
The Snips add-on by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled.
|
||||
|
||||
If using a USB microphone and speakers plugged into the Raspberry Pi output, Snips will work without any change to the configuration. Trying saying things like:
|
||||
|
||||
@ -71,7 +71,7 @@ There is an active [discord](https://discordapp.com/invite/3939Kqx) channel for
|
||||
|
||||
### {% linkable_title Examples %}
|
||||
|
||||
So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your HassIO installation using the Samba addon.
|
||||
So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your HassIO installation using the Samba add-on.
|
||||
|
||||
Next create a weather sensor, e.g., one for (Dark Sky)[/components/sensor.darksky/] and put the `api_key` in your `secrets.yaml` file.
|
||||
|
||||
|
@ -35,7 +35,7 @@ To start this add-on for the first time, you either need to include a key (enclo
|
||||
|
||||
The username for login over SSH is `root`. The complete login command is `ssh root@hassio.local`.
|
||||
|
||||
After logging in, you will find yourself in this add-ons container. The Home Assistant configuration directory is mounted on the path `/config`.
|
||||
After logging in, you will find yourself in this add-on's container. The Home Assistant configuration directory is mounted on the path `/config`.
|
||||
|
||||
Configuration variables:
|
||||
|
||||
|
@ -163,7 +163,7 @@ eg:
|
||||
$ sudo fail2ban-client set ha unbanip xxx.xxx.xxx.xxx
|
||||
```
|
||||
|
||||
Fail2ban should now be configured and running, if an IP address is banned you will recieve an email with WHOIS details about the IP address that attempted to connect, if not you will need configure Postfix or another MTA (Mail Transport Agent).
|
||||
Fail2ban should now be configured and running, if an IP address is banned you will receive an email with WHOIS details about the IP address that attempted to connect, if not you will need configure Postfix or another MTA (Mail Transport Agent).
|
||||
|
||||
If you want to read more about `fail2ban`, some links are below:
|
||||
|
||||
|
@ -10,7 +10,7 @@ footer: true
|
||||
ha_category: User Interface
|
||||
---
|
||||
|
||||
Using the [generic camera platform] you can present any image on the internet as a camera. Starting release 0.27 these urls can also be based on a template. This example uses this functionality to point a generic camera at the Google Maps static image API and pass in the location of a device.
|
||||
Using the [generic camera platform] you can present any image on the internet as a camera. Starting release 0.27 these URLs can also be based on a template. This example uses this functionality to point a generic camera at the Google Maps static image API and pass in the location of a device.
|
||||
|
||||
As of June 2018, Google has changed the API limits for static maps. You now need to have a Google Maps API key. Instructions for registering a key can be found [here](https://github.com/googlemaps/google-maps-services-python#api-keys). Replace `YOUR_API_KEY` with the key you registered.
|
||||
|
||||
|
@ -25,7 +25,7 @@ Two Docker instances for MQTT
|
||||
|
||||
All Docker configuration files are on my NAS so the Docker containers can be destroyed without affecting my actual configuration files.
|
||||
|
||||
#### Docker setup for the mosquitto internal instance. No authentication for use with the MQTT bridge.
|
||||
#### Docker setup for the Mosquitto internal instance. No authentication for use with the MQTT bridge.
|
||||
|
||||
```bash
|
||||
$ docker run -ti -p 1883:1883 \
|
||||
@ -56,7 +56,7 @@ persistence_file mosquitto.db
|
||||
try_private true
|
||||
address 10.0.0.20:1884
|
||||
start_type automatic
|
||||
sername test
|
||||
username test
|
||||
password test
|
||||
notifications true
|
||||
topic owntracks/# in
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Perform actions based on input select"
|
||||
description: "Example playing media to chromecast based on input select element"
|
||||
description: "Example playing media to Chromecast based on input select element"
|
||||
date: 2016-03-07 12:05
|
||||
sidebar: true
|
||||
comments: false
|
||||
|
@ -14,7 +14,7 @@ Asterisk Voicemail integration allows Home Assistant to view, listen to and dele
|
||||
There are two components to the integration:
|
||||
|
||||
- A server that runs on the Asterisk PBX host and communicates over an open port.
|
||||
- A client which can request inormation from the server.
|
||||
- A client which can request information from the server.
|
||||
|
||||
Both parts are necessary for Asterisk voicemail integration.
|
||||
|
||||
@ -64,7 +64,7 @@ Before beginning make sure that you have the following:
|
||||
- **port** (*Optional*): The port to listen on for client requests. Defaults to 12345.
|
||||
- **password** (*Required*): A password shared between client and server. Use only alpha-numeric characters and spaces
|
||||
- **mbox\_path** (*Required*): The path to the storage location of mailbox files. This is typically `/var/spool/asterisk/voicemail/default/<mailbox>/`
|
||||
- **cache\_file** (*Required*): A fully-qualified path to a file thht can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache`
|
||||
- **cache\_file** (*Required*): A fully-qualified path to a file that can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache`
|
||||
- **google\_key** (*Required*): Your 40 characters Google API key.
|
||||
- **cdr** (*Optional*): Where to find CDR data. Supports various SQL databases as well as a file log. Configuring the CDR will enable the `asterisk_cdr` platfom.
|
||||
|
||||
|
@ -15,7 +15,7 @@ The core of Home Assistant is the event bus. The event bus allows any component
|
||||
Home Assistant contains a few built-in events that are used to coordinate between various components.
|
||||
|
||||
### {% linkable_title Event `homeassistant_start` %}
|
||||
Event `homeassistant_start` is fired when all components from the configuration have been intitialized. This is the event that will start the timer firing off `time_changed` events.
|
||||
Event `homeassistant_start` is fired when all components from the configuration have been initialized. This is the event that will start the timer firing off `time_changed` events.
|
||||
|
||||
<p class='note warning'>
|
||||
Starting 0.42, it is no longer possible to listen for event `homeassistant_start`. Use the 'homeassistant' [platform](/docs/automation/trigger) instead.
|
||||
|
@ -95,7 +95,7 @@ if __name__ == '__main__':
|
||||
print(get_current_occasion(OCCASIONS))
|
||||
```
|
||||
|
||||
This script will output "work_morning" from 06:00-07:10 during weekdays (monday-friday), "weekday" during all other time from monday-friday and "weekend" on saturdays and sundays. Adjust according to your needs. To create the sensor, just add it like this:
|
||||
This script will output "work_morning" from 06:00-07:10 during weekdays (Monday-Friday), "weekday" during all other time from Monday-Friday and "weekend" on Saturdays and Sundays. Adjust according to your needs. To create the sensor, just add it like this:
|
||||
|
||||
```yaml
|
||||
sensor:
|
||||
|
@ -89,7 +89,7 @@ switch: !include switches.yaml
|
||||
device_tracker: !include device_tracker.yaml
|
||||
```
|
||||
|
||||
Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like greek, don't worry about it.
|
||||
Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like Greek, don't worry about it.
|
||||
|
||||
Alright, so we've got the single components and the include statements in the base file, what goes in those extra files?
|
||||
|
||||
|
@ -26,7 +26,7 @@ notify:
|
||||
- A **component** provides the core logic for some functionality (like `notify` provides sending notifications).
|
||||
- A **platform** makes the connection to a specific software or hardware platform (like `pushbullet` works with the service from pushbullet.com).
|
||||
|
||||
The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. If you specify duplicate keys, the last value for a key is used. This is somewhat similar to a Hashtable or more specifically a dictionary in Python. These can be nested as well.
|
||||
The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. If you specify duplicate keys, the last value for a key is used. This is somewhat similar to a Hash table or more specifically a dictionary in Python. These can be nested as well.
|
||||
|
||||
Note that indentation is an important part of specifying relationships using YAML. Things that are indented are nested "inside" things that are one level higher. So in the above example, `platform: pushbullet` is a property of (nested inside) the `notify` component.
|
||||
|
||||
|
@ -502,7 +502,7 @@ If duration is supplied as a parameter, the callback will not fire unless the st
|
||||
<do some useful work here>
|
||||
```
|
||||
|
||||
(Scheduler callbacks are documented in detail laer in this document)
|
||||
(Scheduler callbacks are documented in detail later in this document)
|
||||
|
||||
##### {% linkable_title \*\*kwargs %}
|
||||
|
||||
@ -937,14 +937,14 @@ The handle returned when the scheduler call was made.
|
||||
time, interval, kwargs = self.info_timer(handle)
|
||||
```
|
||||
|
||||
### {% linkable_title Scheduler Ransomization %}
|
||||
### {% linkable_title Scheduler Randomization %}
|
||||
|
||||
All of the scheduler calls above support 2 additional optional arguments, `random_start` and `random_end`. Using these arguments it is possible to randomize the firing of callbacks to the degree desired by setting the appropriate number of seconds with the parameters.
|
||||
|
||||
- `random_start` - start of range of the random time
|
||||
- `random_end` - end of range of the random time
|
||||
|
||||
`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the spcified amount. If not specified, they will default to `0`.
|
||||
`random_start` must always be numerically lower than `random_end`, they can be negative to denote a random offset before and event, or positive to denote a random offset after an event. The event would be an absolute or relative time or sunrise/sunset depending on which scheduler call you use and these values affect the base time by the specified amount. If not specified, they will default to `0`.
|
||||
|
||||
For example:
|
||||
|
||||
@ -1164,7 +1164,7 @@ self.call_service("notify/notify", title = "Hello", message = "Hello World")
|
||||
```
|
||||
### {% linkable_title turn_on() %}
|
||||
|
||||
This is a convenience function for the `homassistant.turn_on` function. It is able to turn on pretty much anything in Home Assistant that can be turned on or run:
|
||||
This is a convenience function for the `homeassistant.turn_on` function. It is able to turn on pretty much anything in Home Assistant that can be turned on or run:
|
||||
|
||||
- Lights
|
||||
- Switches
|
||||
@ -1197,13 +1197,13 @@ A comma separated list of key value pairs to allow specification of parameters o
|
||||
|
||||
```python
|
||||
self.turn_on("switch.patio_lights")
|
||||
self.turn_on("scene.bedrrom_on")
|
||||
self.turn_on("scene.bedroom_on")
|
||||
self.turn_on("light.office_1", color_name = "green")
|
||||
```
|
||||
|
||||
### {% linkable_title turn_off() %}
|
||||
|
||||
This is a convenience function for the `homassistant.turn_off` function. Like `homeassistant.turn_on`, it is able to turn off pretty much anything in Home Assistant that can be turned off.
|
||||
This is a convenience function for the `homeassistant.turn_off` function. Like `homeassistant.turn_on`, it is able to turn off pretty much anything in Home Assistant that can be turned off.
|
||||
|
||||
#### {% linkable_title Synopsis %}
|
||||
|
||||
@ -1230,7 +1230,7 @@ self.turn_off("light.office_1")
|
||||
|
||||
### {% linkable_title toggle() %}
|
||||
|
||||
This is a convenience function for the `homassistant.toggle` function. It is able to flip the state of pretty much anything in Home Assistant that can be turned on or off.
|
||||
This is a convenience function for the `homeassistant.toggle` function. It is able to flip the state of pretty much anything in Home Assistant that can be turned on or off.
|
||||
|
||||
#### {% linkable_title Synopsis %}
|
||||
|
||||
@ -1850,7 +1850,7 @@ if self.now_is_between("sunset - 00:45:00", "sunrise + 00:45:00"):
|
||||
|
||||
### {% linkable_title friendly_name() %}
|
||||
|
||||
`frindly_name()` will return the Friendly Name of an entity if it has one.
|
||||
`friendly_name()` will return the Friendly Name of an entity if it has one.
|
||||
|
||||
#### {% linkable_title Synopsis %}
|
||||
|
||||
@ -2096,7 +2096,7 @@ $ appdaemon -e "2016-06-06 10:10:00"
|
||||
...
|
||||
```
|
||||
|
||||
The `-e` flag is most useful when used in conjuntion with the -s flag and optionally the `-t` flag. For example, to run from just before sunset, for an hour, as fast as possible:
|
||||
The `-e` flag is most useful when used in conjunction with the -s flag and optionally the `-t` flag. For example, to run from just before sunset, for an hour, as fast as possible:
|
||||
|
||||
```bash
|
||||
$ appdaemon -s "2016-06-06 19:16:00" -s "2016-06-06 20:16:00" -t 0
|
||||
|
@ -26,7 +26,7 @@ In the example above you would use:
|
||||
$ docker run -d -v /Users/foo/ha-config:/conf --name appdaemon appdaemon:latest
|
||||
```
|
||||
|
||||
Where you place the `conf` and `conf/apps` directory is up to you - it can be in downloaded repostory, or anywhere else on the host, as long as you use the correct mapping in the `docker run` command.
|
||||
Where you place the `conf` and `conf/apps` directory is up to you - it can be in downloaded repository, or anywhere else on the host, as long as you use the correct mapping in the `docker run` command.
|
||||
|
||||
You can inspect the logs as follows:
|
||||
|
||||
|
@ -12,7 +12,7 @@ redirect_from: /ecosystem/appdaemon/tutorial/
|
||||
|
||||
## {% linkable_title Another Take on Automation %}
|
||||
|
||||
If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a lightswitch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation in bring this all together in the vast and chaotic ecosystem that is the "Internet of Things".
|
||||
If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a light switch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation in bring this all together in the vast and chaotic ecosystem that is the "Internet of Things".
|
||||
|
||||
So given the importance of Automation, what should Automation allow us to do? I am a pragmatist at heart so I judge individual systems by the ease of accomplishing a few basic but representative tasks:
|
||||
|
||||
@ -82,7 +82,7 @@ This is also fairly easy to achieve with Home Assistant automations, but we are
|
||||
|
||||
### Motion Light
|
||||
|
||||
Our next example is to turn on a light when motion is detected and it is dark, and turn it off after a period of time. This time, the `initialize()` function registers a callback on a state change (of the motion sensor) rather than a specific time. We tell AppDaemon that we are only interested in state changesd where the motion detector comes on by adding an additional parameter to the callback registration - `new = "on"`. When the motion is detected, the callack function `motion()` is called, and we check whether or not the sun has set using a built-in convenience function: `sun_down()`. Next, we turn the light on with `turn_on()`, then set a timer using `run_in()` to turn the light off after 60 seconds, which is another call to the scheduler to execute in a set time from now, which results in `AppDaemon` calling `light_off()` 60 seconds later using the `turn_off()` call to actually turn the light off. This is still pretty simple in code terms:
|
||||
Our next example is to turn on a light when motion is detected and it is dark, and turn it off after a period of time. This time, the `initialize()` function registers a callback on a state change (of the motion sensor) rather than a specific time. We tell AppDaemon that we are only interested in state changesd where the motion detector comes on by adding an additional parameter to the callback registration - `new = "on"`. When the motion is detected, the callback function `motion()` is called, and we check whether or not the sun has set using a built-in convenience function: `sun_down()`. Next, we turn the light on with `turn_on()`, then set a timer using `run_in()` to turn the light off after 60 seconds, which is another call to the scheduler to execute in a set time from now, which results in `AppDaemon` calling `light_off()` 60 seconds later using the `turn_off()` call to actually turn the light off. This is still pretty simple in code terms:
|
||||
|
||||
```python
|
||||
import appdaemon.appapi as appapi
|
||||
@ -132,9 +132,9 @@ class MotionLights(appapi.AppDaemon):
|
||||
|
||||
Of course if I wanted to make this App or its predecessor reusable I would have provide parameters for the sensor, the light to activate on motion, the warning light and even the number of flashes and delay between flashes.
|
||||
|
||||
In addition, Apps can write to `AppDaemon`'s logfiles, and there is a system of constraints that allows yout to control when and under what circumstances Apps and callbacks are active to keep the logic clean and simple.
|
||||
In addition, Apps can write to `AppDaemon`'s logfiles, and there is a system of constraints that allows you to control when and under what circumstances Apps and callbacks are active to keep the logic clean and simple.
|
||||
|
||||
I have spent the last few weeks moving all of my (fairly complex) automations over to `APPDaemon` and so far it is working very reliably.
|
||||
I have spent the last few weeks moving all of my (fairly complex) automations over to `AppDaemon` and so far it is working very reliably.
|
||||
|
||||
Some people will maybe look at all of this and say "what use is this, I can already do all of this", and that is fine, as I said this is an alternative not a replacement, but I am hopeful that for some users this will seem a more natural, powerful and nimble way of building potentially very complex automations.
|
||||
|
||||
|
@ -16,4 +16,4 @@ To update AppDaemon after I have released new code, just run the following comma
|
||||
$ sudo pip3 install --upgrade appdaemon
|
||||
```
|
||||
|
||||
If you are using docker, rerun the steps to grab the latestdocker image.
|
||||
If you are using docker, rerun the steps to grab the latest docker image.
|
||||
|
@ -35,7 +35,7 @@ Some best practices to consider before putting your configuration on GitHub:
|
||||
|
||||
### {% linkable_title Step 1: Installing and Initializing Git %}
|
||||
|
||||
In order to put your configuration on GitHub, you must install the Git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubunutu or any Debian-based system) *Note: this isn't required in Hass.io, it's included as default so proceed to step 2*:
|
||||
In order to put your configuration on GitHub, you must install the Git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubuntu or any Debian-based system) *Note: this isn't required in Hass.io, it's included as default so proceed to step 2*:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
@ -140,7 +140,7 @@ Every time you run this script, you will be prompted for a comment to describe t
|
||||
[Travis CI](https://travis-ci.org) is a continuous integration testing system that runs every time the code in your repository is updated and allows you to validate that your code works on a fresh install.
|
||||
|
||||
- [Authorize Travis CI](https://travis-ci.org/auth) to have access to your GitHub repositories.
|
||||
- Create the build script that travis will run to test your repository.
|
||||
- Create the build script that Travis will run to test your repository.
|
||||
- Create a dummy `secrets.yaml` for Travis.
|
||||
|
||||
Example .travis.yml
|
||||
|
@ -27,7 +27,7 @@ This guide was added by mf_social on 16/03/2017 and was valid at the time of wri
|
||||
* You have a basic understanding of the phrases I have used so far.
|
||||
* You are not currently running anything on port 80 on your network (you'd know if you were).
|
||||
* If you are not using Home Assistant on a Debian/Raspian/Hassbian system you will be able to convert any of the terminology I use in to the correct syntax for your system.
|
||||
* You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is innacurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols.
|
||||
* You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is inaccurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols.
|
||||
* Each step presumes you have fully completed the previous step successfully, so if you did an earlier step following a different guide, please ensure that you have not missed anything out that may affect the step you have jumped to, and ensure that you adapt any commands to take in to account different file placements from other guides.
|
||||
|
||||
Steps we will take:
|
||||
@ -113,7 +113,7 @@ static routers=192.168.0.1 <---- Your router's IP address
|
||||
static domain_name_servers=192.168.0.1 <---- Your router's IP address
|
||||
```
|
||||
|
||||
It is important to note that the first three bytes of your static IP address and your router's IP address should be the same, eg:
|
||||
It is important to note that the first three bytes of your static IP address and your router's IP address should be the same, e.g.:
|
||||
|
||||
```text
|
||||
Router: 192.168.0.1
|
||||
@ -179,9 +179,9 @@ http://203.0.113.12:8123
|
||||
|
||||
Can you see your Home Assistant instance? If not, your router may not support 'loopback' - try the next step anyway and if that works, and this one still doesn't, just remember that you cannot use loopback, so will have to use internal addresses when you're on your home network. More on this later on if it's relevant to you.
|
||||
|
||||
Just to verify this isn't some kind of witchcraft that is actually using your internal network, pick up your phone, disconnect it from your wifi so that you are on your mobile data and not connected to the home network, put the same URL in the browser on your phone.
|
||||
Just to verify this isn't some kind of witchcraft that is actually using your internal network, pick up your phone, disconnect it from your WiFi so that you are on your mobile data and not connected to the home network, put the same URL in the browser on your phone.
|
||||
|
||||
Can you see it now, from a device that is definitely not connected to your local network? Excellent! You now have a remotely accesible Home Assistant instance.
|
||||
Can you see it now, from a device that is definitely not connected to your local network? Excellent! You now have a remotely accessible Home Assistant instance.
|
||||
|
||||
But what if your external IP changes? Plus, remembering all those numbers is pretty hard, isn't it? Read on to get yourself set up with a word-based URL at DuckDNS that will track any changes to your IP address so you don't have to stress anymore.
|
||||
|
||||
@ -222,7 +222,7 @@ What now happens behind the scenes is this:
|
||||
|
||||
Did it work? Super!
|
||||
|
||||
You now have a remotely accesible Home Assistant instance that has a text-based URL and will not drop out if your service provider changes your IP. But, it is only as secure as the password you set, which can be snooped during your session by a malicious hacker with relative ease. So we need to set up some encryption with TLS/SSL, read on to find out how.
|
||||
You now have a remotely accessible Home Assistant instance that has a text-based URL and will not drop out if your service provider changes your IP. But, it is only as secure as the password you set, which can be snooped during your session by a malicious hacker with relative ease. So we need to set up some encryption with TLS/SSL, read on to find out how.
|
||||
|
||||
### {% linkable_title 4 - Obtain a TLS/SSL certificate from Let's Encrypt %}
|
||||
|
||||
|
@ -12,7 +12,7 @@ redirect_from: /cookbook/tls_domain_certificate/
|
||||
|
||||
If your Home Assistant instance is only accessible from your local network you can still protect the communication between your browsers and the frontend with SSL/TLS. You can use [Self-sign certificate](/cookbook/tls_self_signed_certificate/) but your browser will present a warning and some https-only features might not work.
|
||||
|
||||
### {% linkable_title Prerequirement for this guide %}
|
||||
### {% linkable_title Requirement for this guide %}
|
||||
|
||||
* Your Home Assistant instance is not exposed to the internet. If it is - use [this guide]({{site_root}}/blog/2015/12/13/setup-encryption-using-lets-encrypt/)
|
||||
* You control a public domain name. The domain doesn't have to point to a site. A domain controlled by a *trusted* friend will do. (A friend you trust not to MITM you)
|
||||
@ -45,7 +45,7 @@ Once this is deployed,
|
||||
Press Enter to Continue
|
||||
```
|
||||
|
||||
* Deploy the value to TXT field using your domain registar.
|
||||
* Deploy the value to TXT field using your domain registrar.
|
||||
* Go to a site that queries domain record. For example [this one](https://mxtoolbox.com/TXTLookup.aspx) and look if it sees your brand new TXT field (Don't forget to enter the full domain: `_acme-challenge.mydomain.com`)
|
||||
* Press Enter at certbot prompt.
|
||||
|
||||
|
@ -20,7 +20,7 @@ Change to your Home Assistant [configuration directory](/getting-started/configu
|
||||
|
||||
The certificate **must** be `.pem` extension.
|
||||
|
||||
If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the cetificate creation process, then:
|
||||
If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the certificate creation process, then:
|
||||
|
||||
* Send **only** the `certificate.pem` file to the iOS device, using airdrop or other transfer method.
|
||||
* Open the `.pem` file on the iOS device, follow the prompts to trust and install it.
|
||||
|
@ -10,7 +10,7 @@ footer: true
|
||||
redirect_from: /ecosystem/scenegen/
|
||||
---
|
||||
|
||||
Scenegen is a scene generation tool for [Home Assistant](/) home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant's RESTFul API so can be run from anywhere. It currently supports lights and switches only.
|
||||
Scenegen is a scene generation tool for [Home Assistant](/) home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant's RESTful API so can be run from anywhere. It currently supports lights and switches only.
|
||||
|
||||
## {% linkable_title Installation %}
|
||||
|
||||
@ -86,7 +86,7 @@ entities:
|
||||
brightness: 28
|
||||
```
|
||||
|
||||
This output can be cut and pasted into your configuration.yaml file as required (ensuring correct indentatation of course).
|
||||
This output can be cut and pasted into your configuration.yaml file as required (ensuring correct indentation of course).
|
||||
|
||||
Scenegen supports all documented effects for lights including transitions and flash effects, however generally it is easier to run scenegen to get the basic setup and add any effects manually later.
|
||||
|
||||
|
@ -10,7 +10,7 @@ footer: true
|
||||
redirect_from: /getting-started/browsers/
|
||||
---
|
||||
|
||||
Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doen't mean that older or newer releases not work.
|
||||
Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doesn't mean that older or newer releases not work.
|
||||
|
||||
If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time.
|
||||
|
||||
|
@ -53,7 +53,7 @@ As Synology within DSM now supports Docker (with a neat UI), you can simply inst
|
||||
The steps would be:
|
||||
* Install "Docker" package on your Synology NAS
|
||||
* Launch Docker-app and move to "Registry"-section
|
||||
* Find "homeassistant/home-assistant" within registry and click on "Download". Choose the "latest" tag, this will make verison updates easier later on.
|
||||
* Find "homeassistant/home-assistant" within registry and click on "Download". Choose the "latest" tag, this will make version updates easier later on.
|
||||
* Wait for some time until your NAS has pulled the image
|
||||
* Move to the "Image"-section of the Docker-app
|
||||
* Click on "Launch"
|
||||
@ -185,7 +185,7 @@ $ docker-compose restart
|
||||
|
||||
### {% linkable_title Exposing Devices %}
|
||||
|
||||
In order to use Z-Wave, ZigBbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command:
|
||||
In order to use Z-Wave, ZigBee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command:
|
||||
|
||||
```bash
|
||||
$ docker run -d --name="home-assistant" -v /path/to/your/config:/config \
|
||||
|
@ -46,7 +46,7 @@ Make `/etc/rc.local` executable so it runs on startup
|
||||
# chmod 755 /etc/rc.local
|
||||
```
|
||||
|
||||
Finally restart the jail from the Freenas GUI.
|
||||
Finally restart the jail from the FreeNAS GUI.
|
||||
|
||||
<p class='note'>
|
||||
USB Z-wave sticks may give `dmesg` warnings similar to "data interface 1, has no CM over data, has no break". This doesn't impact the function of the Z-wave stick in Hass. Just make sure the proper `/dev/cu*` is used in the Home Assistant `configuration.yaml` file.
|
||||
|
@ -40,7 +40,7 @@ The following extras are included on the image:
|
||||
|
||||
### {% linkable_title Wireless Network %}
|
||||
|
||||
After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up Wifi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this:
|
||||
After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up WiFi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this:
|
||||
|
||||
```conf
|
||||
country=SE
|
||||
@ -55,7 +55,7 @@ network={
|
||||
|
||||
You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements).
|
||||
|
||||
If you are running in trouble with your Wifi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command:
|
||||
If you are running in trouble with your WiFi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command:
|
||||
|
||||
```bash
|
||||
$ sudo rfkill list
|
||||
|
@ -12,7 +12,7 @@ redirect_from: /getting-started/installation-virtualenv/
|
||||
|
||||
If you already have Python 3.5.3 or later installed, you can easily give Home Assistant a spin.
|
||||
|
||||
It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most unix like systems.
|
||||
It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
|
||||
|
||||
_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`.)_
|
||||
|
||||
|
@ -59,7 +59,7 @@ mqtt:
|
||||
|
||||
### {% linkable_title Run your own %}
|
||||
|
||||
Along with the embedded broker this is the most private option, but it requires a bit more work. There are multiple free and open-source brokers to pick from: eg. [Mosquitto](http://mosquitto.org/), [EMQ](http://emqtt.io/), or [Mosca](http://www.mosca.io/).
|
||||
Along with the embedded broker this is the most private option, but it requires a bit more work. There are multiple free and open-source brokers to pick from: e.g. [Mosquitto](http://mosquitto.org/), [EMQ](http://emqtt.io/), or [Mosca](http://www.mosca.io/).
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -98,7 +98,7 @@ protocol:
|
||||
type: string
|
||||
certificate:
|
||||
required: false
|
||||
description: Path to the certificate file, eg. `/home/user/.homeassistant/server.crt`.
|
||||
description: Path to the certificate file, e.g. `/home/user/.homeassistant/server.crt`.
|
||||
type: string
|
||||
tls_insecure:
|
||||
required: false
|
||||
|
@ -24,7 +24,7 @@ Don't use this for [secure devices](/docs/z-wave/adding/#adding-secure-devices),
|
||||
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.
|
||||
</p>
|
||||
|
||||
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.
|
||||
When you add a device, it may initially appear without a specific entity ID (e.g. `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 Network Key %}
|
||||
|
||||
|
@ -70,7 +70,7 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro
|
||||
* **retries** How many retries have been made to send messages to this node
|
||||
* **sentCnt** How many messages have been sent to the node
|
||||
* **sentFailed** How many messages that were sent weren't acknowledged
|
||||
* **sentTS** The date and time the last message was sent to the ndoe
|
||||
* **sentTS** The date and time the last message was sent to the node
|
||||
* **wake_up_interval** *Battery powered devices only* - the wakeup interval of the device, in seconds
|
||||
|
||||
<p class='note'>
|
||||
@ -82,7 +82,7 @@ Battery powered devices need to be awake before you can use the Z-Wave control p
|
||||
This is a dropdown where you can select all the entities of this node. Once selected you can then use:
|
||||
|
||||
* **Refresh Entity** to refresh just that entity's values
|
||||
* **Entity Attributes** to display the attributes of that entity (eg its friendly name, the ID of the node, etc)
|
||||
* **Entity Attributes** to display the attributes of that entity (e.g. its friendly name, the ID of the node, etc)
|
||||
|
||||
Here you can mark a device as requiring polling so the controller is aware of changes because the device doesn't send updates itself. Do see the information on [polling here](/docs/z-wave/devices/#polling), since excessive polling can break your Z-Wave network.
|
||||
|
||||
@ -130,7 +130,7 @@ Set the new selection by pressing the **Set Protection** button.
|
||||
|
||||
## {% linkable_title Node user codes %}
|
||||
|
||||
If your node has user codes, you can set and delete them. The format is raw hex Ascii code. Below the input you will see your actual code. For normal nodes this is as follows:
|
||||
If your node has user codes, you can set and delete them. The format is raw hex ASCII code. Below the input you will see your actual code. For normal nodes this is as follows:
|
||||
```yaml
|
||||
\x30 = 0
|
||||
\x31 = 1
|
||||
@ -144,7 +144,7 @@ If your node has user codes, you can set and delete them. The format is raw hex
|
||||
\x39 = 9
|
||||
```
|
||||
Some non compliant device like tag readers, have implemented to use raw hex code.
|
||||
Please refer to a hex ascii table to set your code. Example: http://www.asciitable.com/
|
||||
Please refer to a hex ASCII table to set your code. Example: http://www.asciitable.com/
|
||||
|
||||
Here is a small Python program than will take numbers on the command line and print the correct sequence for compliant devices:
|
||||
|
||||
|
@ -73,7 +73,7 @@ crw-rw---- 1 root dialout 204, 64 Sep 2 14:38 /dev/ttyAMA0
|
||||
at this point simply add your user (homeassistant) to the dialout group:
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G dialout homeassistant
|
||||
$ sudo usermod -a -G dialout homeassistant
|
||||
```
|
||||
|
||||
Finally, reboot again to make those changes active. It's has been tested on hassbian and has been reported that this is also required on the Pi2.
|
||||
|
@ -104,7 +104,7 @@ device_config / device_config_domain / device_config_glob:
|
||||
type: integer
|
||||
default: 2
|
||||
invert_openclose_buttons:
|
||||
description: Inverts function of the open and close buttons for the cover domain. This will not invert the positon and state reporting.
|
||||
description: Inverts function of the open and close buttons for the cover domain. This will not invert the position and state reporting.
|
||||
required: false
|
||||
type: boolean
|
||||
default: False
|
||||
|
@ -17,7 +17,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al
|
||||
| add_node_secure | Put the Z-Wave controller in secure inclusion mode. Allows you to add a new device with secure communications to the Z-Wave network. |
|
||||
| cancel_command | Cancels a running Z-Wave command. If you have started an add_node or remove_node command, and decide you are not going to do it, then this must be used to stop the inclusion/exclusion command. |
|
||||
| change_association | Add or remove an association in the Z-Wave network |
|
||||
| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. |
|
||||
| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can re-figure out optimal routing. |
|
||||
| heal_node | Tells the controller to "heal" a specific node on the network. Requires `node_id` field. You can also force return route update with `return_routes` field.
|
||||
| print_config_parameter | Prints Z-Wave node's config parameter value to the (console) log. |
|
||||
| print_node | Print all states of Z-Wave node. |
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Join Home Assistant iOS beta"
|
||||
description: "Invititation to join the Home Assistant iOS beta."
|
||||
description: "Invitation to join the Home Assistant iOS beta."
|
||||
release_date: 2016-10-24 15:00:00 -0700
|
||||
sidebar: true
|
||||
comments: false
|
||||
|
@ -82,7 +82,7 @@ Picture card config:
|
||||
|
||||
## {% linkable_title Icons %}
|
||||
|
||||
If you define an icon the title will be used as a tooltip.
|
||||
If you define an icon the title will be used as a tool-tip.
|
||||
|
||||
### {% linkable_title Example %}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user