mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-10 10:56:49 +00:00
Merge branch 'master' into next
Conflicts: source/_components/camera.netatmo.markdown source/_components/rollershutter.wink.markdown source/_components/sensor.netatmo.markdown source/_components/sensor.snmp.markdown source/_posts/2016-06-18-pandora-bt-home-hub-5-and-local-file-camera.markdown source/index.html
This commit is contained in:
commit
d8de600fe3
@ -13,7 +13,7 @@
|
|||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-weight: bold;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.front-install {
|
.front-install {
|
||||||
@ -59,6 +59,19 @@
|
|||||||
padding: 4px 0px 12px;
|
padding: 4px 0px 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.links {
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-left: -8px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 500;
|
||||||
|
text-transform: uppercase;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.frontpage {
|
.frontpage {
|
||||||
@ -69,10 +82,15 @@
|
|||||||
.release-date {
|
.release-date {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.blog-date {
|
.recent-posts {
|
||||||
white-space: nowrap;
|
margin-bottom: 16px;
|
||||||
|
|
||||||
|
.blog-date {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.supported-brands {
|
.supported-brands {
|
||||||
|
@ -240,7 +240,7 @@ Custom slot type for script support.
|
|||||||
Add a sample utterance:
|
Add a sample utterance:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
RunScriptIntent run {Scene}
|
RunScriptIntent run {Script}
|
||||||
```
|
```
|
||||||
|
|
||||||
Then add the intent to your Alexa Section in your HA config file:
|
Then add the intent to your Alexa Section in your HA config file:
|
||||||
|
@ -10,12 +10,13 @@ footer: true
|
|||||||
logo: enocean.png
|
logo: enocean.png
|
||||||
ha_category: Binary Sensor
|
ha_category: Binary Sensor
|
||||||
ha_release: 0.21
|
ha_release: 0.21
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
---
|
---
|
||||||
|
|
||||||
This can typically be one of those batteryless wall switches. Currently only one type has been tested: Eltako FT55. Other devices will most likely not work without changing the Home-Asisstant code.
|
This can typically be one of those batteryless wall switches. Currently only one type has been tested: Eltako FT55. Other devices will most likely not work without changing the Home-Asisstant code.
|
||||||
|
|
||||||
|
|
||||||
To use your EnOcean device, you first have to set up your [EnOcean hub](../enocean) and then add the following to your `configuration.yaml` file:
|
To use your EnOcean device, you first have to set up your [EnOcean hub](/components/enocean/) and then add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
|
@ -8,12 +8,24 @@ comments: false
|
|||||||
sharing: true
|
sharing: true
|
||||||
footer: true
|
footer: true
|
||||||
ha_category: Binary Sensor
|
ha_category: Binary Sensor
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `rest` binary sensor platform is consuming a given endpoint which is exposed by a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) of a device, an application, or a web service. The binary sensor has support for GET and POST requests.
|
The `rest` binary sensor platform is consuming a given endpoint which is exposed by a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) of a device, an application, or a web service. The binary sensor has support for GET and POST requests.
|
||||||
|
|
||||||
|
The JSON messages can contain different values like `1`, `"1"`, `TRUE`, `true`, `on`, or `open`. If the value is nested then use a [template](/topics/templating/).
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "Binary sensor",
|
||||||
|
"state": {
|
||||||
|
"open": "true",
|
||||||
|
"timestamp": "2016-06-20 15:42:52.926733"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request:
|
To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: netatmo.png
|
logo: netatmo.png
|
||||||
ha_category: Camera
|
ha_category: Camera
|
||||||
ha_release: "0.2x"
|
ha_release: "0.22"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,12 +22,12 @@ To enable the conversion option in your installation, add the following to your
|
|||||||
conversation:
|
conversation:
|
||||||
```
|
```
|
||||||
|
|
||||||
When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to [the demo](/demo/) using Chrome to see it in action.
|
When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to [the demo](/demo/) using Chrome or Chromium to see it in action.
|
||||||
|
|
||||||
<p class='img'>
|
<p class='img'>
|
||||||
<img src="/images/screenshots/voice-commands.png" />
|
<img src="/images/screenshots/voice-commands.png" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
Apple iPhones do not support this feature in any browser.
|
Apple iPhones do not support this feature in any browser.
|
||||||
</p>
|
</p>
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: avm.png
|
logo: avm.png
|
||||||
ha_category: Presence Detection
|
ha_category: Presence Detection
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: icloud.png
|
logo: icloud.png
|
||||||
ha_category: Presence Detection
|
ha_category: Presence Detection
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,13 +36,13 @@ device_tracker:
|
|||||||
|
|
||||||
Once tracked, a file will be created in your config dir called `known_devices.yaml`. Edit this file to adjust which devices to be tracked. Here you can also setup a URL for each device to be used as the entity picture and set whether the device will be show in the UI when in the away state.
|
Once tracked, a file will be created in your config dir called `known_devices.yaml`. Edit this file to adjust which devices to be tracked. Here you can also setup a URL for each device to be used as the entity picture and set whether the device will be show in the UI when in the away state.
|
||||||
|
|
||||||
Multiple device trackers can be used in parallel, such as [Owntracks](/components/device_tracker.owntracks/) and [Nmap](/components/device_tracker.nmap_scanner/). The state of the device will be determined by the source that reported last. Device tracker will look for global settings (track_new_devices, consider_home and home_interval) under the configuration of the first platform.
|
Multiple device trackers can be used in parallel, such as [Owntracks](/components/device_tracker.owntracks/) and [Nmap](/components/device_tracker.nmap_scanner/). The state of the device will be determined by the source that reported last. Device tracker will look for global settings (`track_new_devices`, `consider_home`, and `home_interval`) under the configuration of the first platform.
|
||||||
|
|
||||||
The optional `consider_home` entry is useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. `consider_home` helps prevent false alarms in presence detection when using IP scanners such as nmap.
|
The optional `consider_home` entry is useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. `consider_home` helps prevent false alarms in presence detection when using IP scanners such as nmap.
|
||||||
|
|
||||||
To add Nmap tracking just add the MAC address to the OwnTracks or iCloud device `mac:` configuration. To use both OwnTracks and Nmap you could use the following example:
|
To add Nmap tracking just add the MAC address to the OwnTracks or iCloud device `mac:` configuration. To use both OwnTracks and Nmap you could use the following example:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
owntracksdevicename:
|
owntracksdevicename:
|
||||||
name: Friendly Name!
|
name: Friendly Name!
|
||||||
mac: EA:AA:55:E7:C6:94
|
mac: EA:AA:55:E7:C6:94
|
||||||
|
@ -15,7 +15,7 @@ featured: true
|
|||||||
|
|
||||||
As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (`192.168.1.1/24`) and the range notation (`192.168.1.1-255`).
|
As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (`192.168.1.1/24`) and the range notation (`192.168.1.1-255`).
|
||||||
|
|
||||||
If you're on Debian or Ubuntu, you might have to install the packages for arp and nmap. Do so by running `apt-get install net-tools nmap`.
|
If you're on Debian or Ubuntu, you might have to install the packages for `arp` and `nmap`. Do so by running `apt-get install net-tools nmap`. On a Fedora host run `sudo dnf -y install nmap`.
|
||||||
|
|
||||||
To use this device tracker in your installation, add the following to your `configuration.yaml` file:
|
To use this device tracker in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ footer: true
|
|||||||
logo: mqtt.png
|
logo: mqtt.png
|
||||||
ha_category: Garage Door
|
ha_category: Garage Door
|
||||||
ha_release: 0.18
|
ha_release: 0.18
|
||||||
|
ha_iot_class: depends
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ Configuration variables:
|
|||||||
|
|
||||||
- **[alias]** (*Required*): Alias for the input.
|
- **[alias]** (*Required*): Alias for the input.
|
||||||
- **name** (*Optional*): Friendly name of the input.
|
- **name** (*Optional*): Friendly name of the input.
|
||||||
- **options** array (*Optional*): List of options to choose from
|
- **options** array: List of options to choose from
|
||||||
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
||||||
- **icon** (*Optional*): Icon for entry.
|
- **icon** (*Optional*): Icon for entry.
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ footer: true
|
|||||||
logo: mqtt.png
|
logo: mqtt.png
|
||||||
ha_category: Lock
|
ha_category: Lock
|
||||||
ha_release: 0.15
|
ha_release: 0.15
|
||||||
|
ha_iot_class: depends
|
||||||
---
|
---
|
||||||
|
|
||||||
The `mqtt` lock platform let you control your MQTT enabled locks.
|
The `mqtt` lock platform let you control your MQTT enabled locks.
|
||||||
|
@ -11,6 +11,7 @@ logo: mqtt.png
|
|||||||
ha_category: Hub
|
ha_category: Hub
|
||||||
featured: true
|
featured: true
|
||||||
ha_release: pre 0.7
|
ha_release: pre 0.7
|
||||||
|
ha_iot_class: depends
|
||||||
---
|
---
|
||||||
|
|
||||||
MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things" connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport.
|
MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things" connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport.
|
||||||
|
@ -15,7 +15,7 @@ featured: true
|
|||||||
The Nest component is the main component to integrate all Nest related platforms. Besides this component you will have to setup your thermostat and any connected sensors separately.
|
The Nest component is the main component to integrate all Nest related platforms. Besides this component you will have to setup your thermostat and any connected sensors separately.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configurayion.yaml entry
|
# Example configuration.yaml entry
|
||||||
nest:
|
nest:
|
||||||
username: USERNAME
|
username: USERNAME
|
||||||
password: PASSWORD
|
password: PASSWORD
|
||||||
|
@ -10,6 +10,7 @@ footer: true
|
|||||||
logo: mqtt.png
|
logo: mqtt.png
|
||||||
ha_category: Rollershutter
|
ha_category: Rollershutter
|
||||||
ha_release: 0.9
|
ha_release: 0.9
|
||||||
|
ha_iot_class: depends
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ ha_category: Rollershutter
|
|||||||
ha_release: 0.22
|
ha_release: 0.22
|
||||||
---
|
---
|
||||||
|
|
||||||
The Wink rollershutter platform allows you to control your [Wink](http://www.wink.com/) enabled rollershutters. It supports Wink shades / blinds / rollershutters such as the Bali Somfy or Lutron Serena blinds.
|
The `wink` rollershutter platform allows you to control your [Wink](http://www.wink.com/) enabled rollershutters. It supports Wink shades/blinds/rollershutters such as the Bali Somfy or Lutron Serena blinds.
|
||||||
|
|
||||||
The Wink API currently doesn't provide status for shades.
|
The Wink API currently doesn't provide status for shades.
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: command_line.png
|
logo: command_line.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
|
ha_release: pre 0.7
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
@ -82,6 +83,16 @@ You can see directly in the frontend (**Developer tools** -> **About**) what rel
|
|||||||
name: HA release
|
name: HA release
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### {% linkable_title Read value out of a remote text file %}
|
||||||
|
|
||||||
|
If you own a devices which are storing values in text files which are accessible over HTTP then you can use the same approach as shown in the previous section. Instead of looking at the JSON response we directly grab the sensor's value.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- platform: command_line
|
||||||
|
command: python3 -c "import requests; print(requests.get('http://remote-host/sensor_data.txt').text)"
|
||||||
|
name: File value
|
||||||
|
```
|
||||||
|
|
||||||
### {% linkable_title Use an external script %}
|
### {% linkable_title Use an external script %}
|
||||||
|
|
||||||
The example is doing the same as the [aREST sensor](/components/sensor.arest/) but with an external Python script. It should give you an idea about interacting with devices which are exposing a RESTful API.
|
The example is doing the same as the [aREST sensor](/components/sensor.arest/) but with an external Python script. It should give you an idea about interacting with devices which are exposing a RESTful API.
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: dweet.png
|
logo: dweet.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
The `dweet` sensor platform allows you to get details from your devices which are publishing their values to [Dweet.io](https://dweet.io/).
|
The `dweet` sensor platform allows you to get details from your devices which are publishing their values to [Dweet.io](https://dweet.io/).
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: eliq.png
|
logo: eliq.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ footer: true
|
|||||||
logo: mqtt.png
|
logo: mqtt.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_release: 0.7
|
ha_release: 0.7
|
||||||
|
ha_iot_class: depends
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: page
|
layout: page
|
||||||
title: "Netatmo Sensor"
|
title: "Netatmo Sensor"
|
||||||
description: "Instructions how to integrate Netatmo sensors into Home Assistant."
|
description: "Instructions how to integrate Netatmo sensors into Home Assistant."
|
||||||
date: 2016-06-02 08:10
|
date: 2016-06-23 11:10
|
||||||
sidebar: true
|
sidebar: true
|
||||||
comments: false
|
comments: false
|
||||||
sharing: true
|
sharing: true
|
||||||
@ -31,12 +31,24 @@ sensor:
|
|||||||
- rain
|
- rain
|
||||||
- sum_rain_1
|
- sum_rain_1
|
||||||
- sum_rain_24
|
- sum_rain_24
|
||||||
|
- wifi_status
|
||||||
module_name2:
|
module_name2:
|
||||||
- temperature
|
- temperature
|
||||||
|
- battery_vp
|
||||||
|
- min_temp
|
||||||
|
- max_temp
|
||||||
rainmeter_name3:
|
rainmeter_name3:
|
||||||
- rain
|
- rain
|
||||||
- sum_rain_1
|
- sum_rain_1
|
||||||
- sum_rain_24
|
- sum_rain_24
|
||||||
|
- battery_vp
|
||||||
|
- rf_status
|
||||||
|
windmodule_name4:
|
||||||
|
- WindAngle
|
||||||
|
- WindStrength
|
||||||
|
- GustAngle
|
||||||
|
- GustStrength
|
||||||
|
- rf_status
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
@ -52,6 +64,15 @@ Configuration variables:
|
|||||||
- **rain**: Estimated rainfall for today in mm.
|
- **rain**: Estimated rainfall for today in mm.
|
||||||
- **sum_rain_1**: Rainfall in the last hour in mm.
|
- **sum_rain_1**: Rainfall in the last hour in mm.
|
||||||
- **sum_rain_24**: Rainfall in mm from 00:00am - 23:59pm.
|
- **sum_rain_24**: Rainfall in mm from 00:00am - 23:59pm.
|
||||||
|
- **WindAngle**: Wind angle
|
||||||
|
- **WingStrength**: Wind strength
|
||||||
|
- **GustAngle**: Wind gust angle
|
||||||
|
- **GustStrength**: Wind gust strength
|
||||||
|
- **min_temp**: Min temperature for today
|
||||||
|
- **max_temp**: Max temperature for today
|
||||||
|
- **rf_status**: Current radio status per module. (90=low, 60=highest)
|
||||||
|
- **wifi_status**: Wifi status per Base station
|
||||||
|
- **battery_vp**: Current battery status per module.
|
||||||
|
|
||||||
### {% linkable_title Find your modules name %}
|
### {% linkable_title Find your modules name %}
|
||||||
|
|
||||||
@ -62,6 +83,3 @@ You have to provide these name in your Home Assistant configuration file.
|
|||||||
<img src='/images/screenshots/netatmo_module.png' />
|
<img src='/images/screenshots/netatmo_module.png' />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class='note'>
|
|
||||||
The Home Assistant NetAtmo platform has only be tested with the classic indoor, outdoor module and rainmeter. There is no support for the windmeter module at this time because developers does not own these modules.
|
|
||||||
</p>
|
|
||||||
|
@ -10,7 +10,7 @@ footer: true
|
|||||||
logo: network-snmp.png
|
logo: network-snmp.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_iot_class: "Local Polling"
|
ha_iot_class: "Local Polling"
|
||||||
ha_release: "0.21"
|
ha_release: "0.22"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: torque.png
|
logo: torque.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
The `torque` platform will allow you to monitor [Torque](http://torque-bhp.com/) data relayed from a bluetooth OBD2 stick via the Torque mobile application.
|
The `torque` platform will allow you to monitor [Torque](http://torque-bhp.com/) data relayed from a bluetooth OBD2 stick via the Torque mobile application.
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: twitch.png
|
logo: twitch.png
|
||||||
ha_category: Sensor
|
ha_category: Sensor
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ footer: true
|
|||||||
logo: mqtt.png
|
logo: mqtt.png
|
||||||
ha_category: Switch
|
ha_category: Switch
|
||||||
ha_release: 0.7
|
ha_release: 0.7
|
||||||
|
ha_iot_class: depends
|
||||||
---
|
---
|
||||||
|
|
||||||
The `mqtt` switch platform let you control your MQTT enabled light.
|
The `mqtt` switch platform let you control your MQTT enabled light.
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: heatmiser.png
|
logo: heatmiser.png
|
||||||
ha_category: Thermostat
|
ha_category: Thermostat
|
||||||
ha_release: 0.10
|
ha_release: "0.10"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
95
source/_cookbook/apache_configuration.markdown
Normal file
95
source/_cookbook/apache_configuration.markdown
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Apache Configuration"
|
||||||
|
description: "Configure Apache to work with home assistant as a subdomain"
|
||||||
|
date: 2016-06-20 13:05
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Infrastructure
|
||||||
|
---
|
||||||
|
|
||||||
|
This is an example about how you can configure Apache to act as a proxy for home assistant.
|
||||||
|
|
||||||
|
This is useful if you want to have:
|
||||||
|
|
||||||
|
* a subdomain redirecting to your home assistant instance
|
||||||
|
* several subdomain for several instance
|
||||||
|
* HTTPS redirection
|
||||||
|
|
||||||
|
#### {% linkable_title Subdomain %}
|
||||||
|
|
||||||
|
So you already have a working Apache server available at example.org.
|
||||||
|
Your home assistant is correctly working on this web server and available at localhost:8123
|
||||||
|
|
||||||
|
To be able to access to your home assistant instance by using https://home.example.org, add to following file into `/etc/httpd/conf/extra/hass.conf`
|
||||||
|
|
||||||
|
```apacheconf
|
||||||
|
<VirtualHost *:443>
|
||||||
|
ProxyPreserveHost On
|
||||||
|
ProxyRequests Off
|
||||||
|
ServerName home.example.org
|
||||||
|
ProxyPass / http://localhost:8123/
|
||||||
|
ProxyPassReverse / http://localhost:8123/
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
|
||||||
|
and make sure that this file is read by apache's main configiuration file `/etc/httpd/conf/httpd.conf`
|
||||||
|
|
||||||
|
```apacheconf
|
||||||
|
...
|
||||||
|
Include conf/extra/hass.conf
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
If you don't want HTTPS, you can change `<VirtualHost *:443>` to `<VirtualHost *:80>` or better consider redirecting all HTTP to HTTPS.
|
||||||
|
|
||||||
|
|
||||||
|
#### {% linkable_title Multiple Instance %}
|
||||||
|
|
||||||
|
You already have home assistant running on localhost:8123 and available at home.example.org as describe before.
|
||||||
|
The configuration file for this home assistant is available in `/home/alice/.homeassistant/configuration.yaml`
|
||||||
|
|
||||||
|
You want another instance available at https://countryside.example.org
|
||||||
|
|
||||||
|
You can either :
|
||||||
|
* Create a new user, `bob`, to hold the configuration file in `/home/bob/.homeassistant/configuration.yaml` and run home assistant as this new user
|
||||||
|
* Create another configuration directory in `/home/alice/.homeassistan2/configuration.yaml` and run home assistant using `hass --config /home/alice/.homeassistant2/`
|
||||||
|
|
||||||
|
In both solution, change port number used by modifying `configuration.yaml`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
http:
|
||||||
|
server_port: 8124
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Start home assistant: Now, you have another instance running on localhost:8124
|
||||||
|
|
||||||
|
To access this instance by using https://countryside.example.org add to `/etc/httpd/conf/extra/hass.conf`
|
||||||
|
|
||||||
|
```apacheconf
|
||||||
|
<VirtualHost *:443>
|
||||||
|
ProxyPreserveHost On
|
||||||
|
ProxyRequests Off
|
||||||
|
ServerName countryside.example.org
|
||||||
|
ProxyPass / http://localhost:8124/
|
||||||
|
ProxyPassReverse / http://localhost:8124/
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### {% linkable_title HTTP to HTTPS redirection %}
|
||||||
|
|
||||||
|
Add to your `/etc/httpd/conf/extra/hass.conf`
|
||||||
|
|
||||||
|
```apacheconf
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName example.org
|
||||||
|
ServerSignature Off
|
||||||
|
|
||||||
|
RewriteEngine on
|
||||||
|
RewriteCond %{HTTPS} !=on
|
||||||
|
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [NE,R,L]
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
@ -25,10 +25,10 @@ automation:
|
|||||||
entity_id: binary_sensor.PIR1
|
entity_id: binary_sensor.PIR1
|
||||||
state: 'on'
|
state: 'on'
|
||||||
condition:
|
condition:
|
||||||
- platform: state
|
- condition: state
|
||||||
entity_id: switch.AlmAct1
|
entity_id: switch.AlmAct1
|
||||||
state: 'on'
|
state: 'on'
|
||||||
- platform: state
|
- condition: state
|
||||||
entity_id: script.alarm_room1
|
entity_id: script.alarm_room1
|
||||||
state: 'off'
|
state: 'off'
|
||||||
action:
|
action:
|
||||||
@ -52,7 +52,7 @@ automation:
|
|||||||
entity_id: switch.REL1
|
entity_id: switch.REL1
|
||||||
state: 'off'
|
state: 'off'
|
||||||
condition:
|
condition:
|
||||||
platform: state
|
condition: state
|
||||||
entity_id: switch.AlmSnd1
|
entity_id: switch.AlmSnd1
|
||||||
state: 'off'
|
state: 'off'
|
||||||
action:
|
action:
|
||||||
|
@ -19,7 +19,7 @@ automation:
|
|||||||
event: sunset
|
event: sunset
|
||||||
offset: "-00:45:00"
|
offset: "-00:45:00"
|
||||||
condition:
|
condition:
|
||||||
platform: state
|
condition: state
|
||||||
entity_id: group.all_devices
|
entity_id: group.all_devices
|
||||||
state: home
|
state: home
|
||||||
action:
|
action:
|
||||||
|
@ -29,7 +29,7 @@ automation:
|
|||||||
minutes: '/2'
|
minutes: '/2'
|
||||||
seconds: 0
|
seconds: 0
|
||||||
condition:
|
condition:
|
||||||
platform: state
|
condition: state
|
||||||
entity_id: input_boolean.loop_livingcolors
|
entity_id: input_boolean.loop_livingcolors
|
||||||
state: 'on'
|
state: 'on'
|
||||||
action:
|
action:
|
||||||
|
12
source/_cookbook/configuration_yaml_by_cbulock.markdown
Normal file
12
source/_cookbook/configuration_yaml_by_cbulock.markdown
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Configuration.yaml by cbulock"
|
||||||
|
description: ""
|
||||||
|
date: 2016-06-29 15:30
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Example configuration.yaml
|
||||||
|
ha_external_link: https://github.com/cbulock/home-assistant-configs
|
||||||
|
---
|
@ -8,6 +8,6 @@ comments: false
|
|||||||
sharing: true
|
sharing: true
|
||||||
footer: true
|
footer: true
|
||||||
ha_category: Example configuration.yaml
|
ha_category: Example configuration.yaml
|
||||||
ha_external_link: https://github.com/danichispa/homeassistant
|
ha_external_link: https://github.com/danichispa/hass
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ automation:
|
|||||||
entity_id: media_player.htpc
|
entity_id: media_player.htpc
|
||||||
from: 'playing'
|
from: 'playing'
|
||||||
condition:
|
condition:
|
||||||
- platform: state
|
- condition: state
|
||||||
entity_id: sun.sun
|
entity_id: sun.sun
|
||||||
state: 'below_horizon'
|
state: 'below_horizon'
|
||||||
action:
|
action:
|
||||||
@ -70,7 +70,7 @@ automation:
|
|||||||
entity_id: media_player.htpc
|
entity_id: media_player.htpc
|
||||||
to: 'playing'
|
to: 'playing'
|
||||||
condition:
|
condition:
|
||||||
- platform: state
|
- condition: state
|
||||||
entity_id: sun.sun
|
entity_id: sun.sun
|
||||||
state: 'below_horizon'
|
state: 'below_horizon'
|
||||||
action:
|
action:
|
||||||
|
@ -75,3 +75,96 @@ automation:
|
|||||||
data:
|
data:
|
||||||
entity_id: media_player.nursery
|
entity_id: media_player.nursery
|
||||||
```
|
```
|
||||||
|
A little bit more complex example that uses [`input_select`](/components/input_select/) and template do decide what and in which [Chromecast](components/media_player.cast/) play.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
input_select:
|
||||||
|
radio_station:
|
||||||
|
name: Radio Station
|
||||||
|
options:
|
||||||
|
- Z88.3
|
||||||
|
- Virgin
|
||||||
|
- RMC
|
||||||
|
- rmcHQ
|
||||||
|
- 105
|
||||||
|
- None
|
||||||
|
initial: None
|
||||||
|
icon: mdi:radio
|
||||||
|
radio_player:
|
||||||
|
name: Radio Player
|
||||||
|
options:
|
||||||
|
- Mansarda
|
||||||
|
- Doccia
|
||||||
|
- Bed
|
||||||
|
- Bath
|
||||||
|
- Salotto
|
||||||
|
- Salotto Video
|
||||||
|
- None
|
||||||
|
initial: None
|
||||||
|
icon: mdi:airplay
|
||||||
|
|
||||||
|
automation:
|
||||||
|
- alias: Stop Streaming Radio
|
||||||
|
trigger:
|
||||||
|
- platform: state
|
||||||
|
entity_id: input_select.radio_station
|
||||||
|
to: "None"
|
||||||
|
action:
|
||||||
|
service: media_player.turn_off
|
||||||
|
data_template:
|
||||||
|
entity_id: >{% raw %}
|
||||||
|
{% if is_state("input_select.radio_player", "Mansarda") %}{% endraw %}
|
||||||
|
media_player.bed_2{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Doccia") %}{% endraw %}
|
||||||
|
media_player.bed_3{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Bed") %}{% endraw %}
|
||||||
|
media_player.bed{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Bath") %}{% endraw %}
|
||||||
|
media_player.bath{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Salotto") %}{% endraw %}
|
||||||
|
media_player.salotto{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Salotto Video") %}{% endraw %}
|
||||||
|
media_player.salotto_video{% raw %}
|
||||||
|
{% else %}{% endraw %}
|
||||||
|
none{% raw %}
|
||||||
|
{% endif %}{% endraw %}
|
||||||
|
|
||||||
|
- alias: Stream Radio - Template
|
||||||
|
trigger:
|
||||||
|
- platform: state
|
||||||
|
entity_id: input_select.radio_station
|
||||||
|
action:
|
||||||
|
- service: media_player.play_media
|
||||||
|
data_template:
|
||||||
|
entity_id: >{% raw %}
|
||||||
|
{% if is_state("input_select.radio_player", "Mansarda") %}{% endraw %}
|
||||||
|
media_player.bed_2{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Doccia") %}{% endraw %}
|
||||||
|
media_player.bed_3{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Bed") %}{% endraw %}
|
||||||
|
media_player.bed{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Bath") %}{% endraw %}
|
||||||
|
media_player.bath{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Salotto") %}{% endraw %}
|
||||||
|
media_player.salotto{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_player", "Salotto Video") %}{% endraw %}
|
||||||
|
media_player.salotto_video{% raw %}
|
||||||
|
{% else %}{% endraw %}
|
||||||
|
none{% raw %}
|
||||||
|
{% endif %}{% endraw %}
|
||||||
|
media_content_id: >{% raw %}
|
||||||
|
{% if is_state("input_select.radio_station", "Z88.3") %}{% endraw %}
|
||||||
|
http://ice.zradio.org/z/high.mp3{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_station", "Virgin") %}{% endraw %}
|
||||||
|
http://icecast.unitedradio.it/Virgin.mp3{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_station", "RMC") %}{% endraw %}
|
||||||
|
http://icecast.unitedradio.it/RMC.mp3{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_station", "rmcHQ") %}{% endraw %}
|
||||||
|
http://icecast.unitedradio.it/rmcHQ.mp3{% raw %}
|
||||||
|
{%-elif is_state("input_select.radio_station", "105") %}{% endraw %}
|
||||||
|
http://icecast.unitedradio.it/Radio105.mp3{% raw %}
|
||||||
|
{% else %}{% endraw %}
|
||||||
|
none{% raw %}
|
||||||
|
{% endif %}{% endraw %}
|
||||||
|
media_content_type: 'audio/mp4'
|
||||||
|
```
|
||||||
|
@ -61,22 +61,22 @@ script:
|
|||||||
entity_id: switch.killhass
|
entity_id: switch.killhass
|
||||||
|
|
||||||
automation:
|
automation:
|
||||||
- alias: "Restart HA if WeMo switch isn't found after 15 minutes"
|
- alias: "Restart HA if WeMo switch isn't found after 15 minutes"
|
||||||
trigger:
|
trigger:
|
||||||
platform: state
|
platform: state
|
||||||
entity_id: device_tracker.wemo
|
entity_id: device_tracker.wemo
|
||||||
from: 'not_home'
|
from: 'not_home'
|
||||||
to: 'home'
|
to: 'home'
|
||||||
condition:
|
condition:
|
||||||
- platform: template
|
- condition: template
|
||||||
value_template: {% raw %}'{% if states.switch.wemo %}false{% else %}true{% endif %}'{% endraw %}
|
value_template: {% raw %}'{% if states.switch.wemo %}false{% else %}true{% endif %}'{% endraw %}
|
||||||
- platform: state
|
- condition: state
|
||||||
entity_id: script.restarthawemo
|
entity_id: script.restarthawemo
|
||||||
state: 'off'
|
state: 'off'
|
||||||
action:
|
action:
|
||||||
service: homeassistant.turn_on
|
service: homeassistant.turn_on
|
||||||
entity_id: script.restarthawemo
|
entity_id: script.restarthawemo
|
||||||
- alias: 'Stop HA'
|
- alias: 'Stop HA'
|
||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: switch.KillHass
|
entity_id: switch.KillHass
|
||||||
@ -88,7 +88,7 @@ automation:
|
|||||||
platform: template
|
platform: template
|
||||||
value_template: {% raw %}'{% if states.switch.wemo %}true{% else %}false{% endif %}'{% endraw %}
|
value_template: {% raw %}'{% if states.switch.wemo %}true{% else %}false{% endif %}'{% endraw %}
|
||||||
condition:
|
condition:
|
||||||
platform: state
|
condition: state
|
||||||
entity_id: script.restarthawemo
|
entity_id: script.restarthawemo
|
||||||
state: 'on'
|
state: 'on'
|
||||||
action:
|
action:
|
||||||
|
@ -64,6 +64,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>{% active_link {{site_root}}/topics/ Advanced Topics %}</li>
|
<li>{% active_link {{site_root}}/topics/ Advanced Topics %}</li>
|
||||||
<li>{% active_link /getting-started/android/ Add to Android Homescreen %}</li>
|
<li>{% active_link /getting-started/android/ Add to Android Homescreen %}</li>
|
||||||
|
<li>{% active_link /getting-started/browsers/ Browser Compatibility List %}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
<meta property="og:type" content="{% if page.categories %}article{% else %}website{% endif %}">
|
<meta property="og:type" content="{% if page.categories %}article{% else %}website{% endif %}">
|
||||||
<meta property="og:description" content="{{ fb_description | truncate:200 }}">
|
<meta property="og:description" content="{{ fb_description | truncate:200 }}">
|
||||||
<meta property="og:image" content="{{ social_image }}">
|
<meta property="og:image" content="{{ social_image }}">
|
||||||
|
{% comment %}{% if page.og_image %}summary_large_image{% else %}summary{% endif %}{% endcomment %}
|
||||||
<meta name="twitter:card" content="{% if page.og_image %}summary_large_image{% else %}summary{% endif %}">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:site" content="@{{ site.social.twitter.account }}">
|
<meta name="twitter:site" content="@{{ site.social.twitter.account }}">
|
||||||
{% if page.author_twitter %}<meta name="twitter:creator" content="@{{ page.author_twitter }}">{% endif %}
|
{% if page.author_twitter %}<meta name="twitter:creator" content="@{{ page.author_twitter }}">{% endif %}
|
||||||
<meta name="twitter:title" content="{% if post.title %}{{ post.title }}{% elsif page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
|
<meta name="twitter:title" content="{% if post.title %}{{ post.title }}{% elsif page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
|
||||||
|
@ -39,9 +39,12 @@ I've been using Adafruit for my shopping:
|
|||||||
|
|
||||||
_Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable._
|
_Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable._
|
||||||
|
|
||||||
<p class='note'>
|
### {% linkable_title Alternatives %}
|
||||||
Adafruit has stopped selling the HDC1008. One possible replacement is the [BME280](https://www.adafruit.com/product/2652). Adjusted sketch to work with the BME280 can be found [here](https://gist.github.com/mtl010957/9ee85fb404f65e15c440b08c659c0419).
|
|
||||||
</p>
|
Since this article has been published the HDC1008 has been discontinued. Updated sketches are available for the following alternatives:
|
||||||
|
|
||||||
|
- [DHT22 sensor](https://www.adafruit.com/product/385) and [updated sketch](https://gist.github.com/balloob/1176b6d87c2816bd07919ce6e29a19e9).
|
||||||
|
- [BME280 sensor](https://www.adafruit.com/product/2652) and [updated sketch](https://gist.github.com/mtl010957/9ee85fb404f65e15c440b08c659c0419).
|
||||||
|
|
||||||
### {% linkable_title Connections %}
|
### {% linkable_title Connections %}
|
||||||
|
|
||||||
@ -111,7 +114,8 @@ void setup() {
|
|||||||
if (!hdc.begin()) {
|
if (!hdc.begin()) {
|
||||||
Serial.println("Couldn't find sensor!");
|
Serial.println("Couldn't find sensor!");
|
||||||
while (1);
|
while (1);
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void setup_wifi() {
|
void setup_wifi() {
|
||||||
delay(10);
|
delay(10);
|
||||||
@ -153,7 +157,8 @@ void reconnect() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool checkBound(float newValue, float prevValue, float maxDiff) {
|
bool checkBound(float newValue, float prevValue, float maxDiff) {
|
||||||
return newValue < prevValue - maxDiff || newValue > prevValue + maxDiff;
|
return !isnan(newValue) &&
|
||||||
|
(newValue < prevValue - maxDiff || newValue > prevValue + maxDiff);
|
||||||
}
|
}
|
||||||
|
|
||||||
long lastMsg = 0;
|
long lastMsg = 0;
|
||||||
|
@ -94,8 +94,8 @@ The final step is to point Home Assistant at the generated certificates. Before
|
|||||||
```yaml
|
```yaml
|
||||||
http:
|
http:
|
||||||
api_password: YOUR_SECRET_PASSWORD
|
api_password: YOUR_SECRET_PASSWORD
|
||||||
ssl_certificate: /etc/letsencrypt/live/hass.example.com/fullchain.pem
|
ssl_certificate: /etc/letsencrypt/live/hass-example.duckdns.org/fullchain.pem
|
||||||
ssl_key: /etc/letsencrypt/live/hass.example.com/privkey.pem
|
ssl_key: /etc/letsencrypt/live/hass-example.duckdns.org/privkey.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
You can now navigate to https://hass-example.duckdns.org and enjoy encryption!
|
You can now navigate to https://hass-example.duckdns.org and enjoy encryption!
|
||||||
|
@ -40,6 +40,24 @@ Another cool addition is the local file camera. This seems very basic at first b
|
|||||||
- Component [shell command] can now use templates to render arguments ([@partofthething])
|
- Component [shell command] can now use templates to render arguments ([@partofthething])
|
||||||
- Rollershutter: [Wink] is now supported ([@philk])
|
- Rollershutter: [Wink] is now supported ([@philk])
|
||||||
- Alexa: Updated [documentation][alexa] to show how to call scripts and scenes (@acockburn)
|
- Alexa: Updated [documentation][alexa] to show how to call scripts and scenes (@acockburn)
|
||||||
|
- Sensor: [SNMP] is now supported ([@fabaff])
|
||||||
|
- Sensor: Support for Swiss hydrological data ([@fabaff])
|
||||||
|
|
||||||
|
### {% linkable_title Breaking change %}
|
||||||
|
|
||||||
|
- The new Netatmo support caused us to change how Netatmo are configured. It's now done via it's own component.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
netatmo:
|
||||||
|
api_key: API_KEY
|
||||||
|
secret_key: SECRET_KEY
|
||||||
|
username: username
|
||||||
|
password: password
|
||||||
|
```
|
||||||
|
|
||||||
|
### {% linkable_title Hotfix 0.22.1 - June 20 %}
|
||||||
|
|
||||||
|
- Insteon Hub lights will load again
|
||||||
|
|
||||||
[@acockburn]: https://github.com/acockburn/
|
[@acockburn]: https://github.com/acockburn/
|
||||||
[@arsaboo]: https://github.com/arsaboo/
|
[@arsaboo]: https://github.com/arsaboo/
|
||||||
@ -56,6 +74,7 @@ Another cool addition is the local file camera. This seems very basic at first b
|
|||||||
[@persandstrom]: https://github.com/persandstrom/
|
[@persandstrom]: https://github.com/persandstrom/
|
||||||
[@philk]: https://github.com/philk/
|
[@philk]: https://github.com/philk/
|
||||||
[@wind-rider]: https://github.com/wind/
|
[@wind-rider]: https://github.com/wind/
|
||||||
|
[@fabaff]: https://github.com/fabaff/
|
||||||
[AsusWRT]: /components/device_tracker.asuswrt/
|
[AsusWRT]: /components/device_tracker.asuswrt/
|
||||||
[BT Home Hub 5]: /components/device_tracker.bt_home_hub_5/
|
[BT Home Hub 5]: /components/device_tracker.bt_home_hub_5/
|
||||||
[Cast]: /components/media_player.cast/
|
[Cast]: /components/media_player.cast/
|
||||||
@ -72,3 +91,4 @@ Another cool addition is the local file camera. This seems very basic at first b
|
|||||||
[All-in-One installer]: /getting-started/installation-raspberry-pi-all-in-one/
|
[All-in-One installer]: /getting-started/installation-raspberry-pi-all-in-one/
|
||||||
[standalone Raspberry Pi installation guide]: /getting-started/installation-raspberry-pi/
|
[standalone Raspberry Pi installation guide]: /getting-started/installation-raspberry-pi/
|
||||||
[Voltage sensor]: /components/sensor.bloomsky/
|
[Voltage sensor]: /components/sensor.bloomsky/
|
||||||
|
[SNMP]: /components/sensor.snmp/
|
||||||
|
122
source/_posts/2016-06-23-usb-webcams-and-home-assistant.markdown
Normal file
122
source/_posts/2016-06-23-usb-webcams-and-home-assistant.markdown
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "Using USB webcams with Home Assistant"
|
||||||
|
description: "A how-to how to repurpose your old USB webcams and integrate them into Home Assistant."
|
||||||
|
date: 2016-06-23 06:00:00 +0000
|
||||||
|
date_formatted: "June 23, 2016"
|
||||||
|
author: Fabian Affolter
|
||||||
|
author_twitter: fabaff
|
||||||
|
comments: true
|
||||||
|
categories: How-To
|
||||||
|
og_image: /images/blog/2016-06-cranberry/social.png
|
||||||
|
---
|
||||||
|
|
||||||
|
<img src='/images/blog/2016-06-cranberry/motion.png' style='clear: right; border:none; box-shadow: none; float: right; margin-bottom: 12px;' width='200' />
|
||||||
|
In the past month I was thinking about ways to integrate USB webcams into Home Assistant again. The main reason was that this would give those devices a second life and enable one to benefit from low-cost video surveillance. There are a couple of options available like [pygame](http://www.pygame.org/hifi.html) or [SimpleCV](http://www.simplecv.org/) but I never finished something. With the [Local File camera platform](https://home-assistant.io/components/camera.local_file/) by [Landrash](https://github.com/Landrash) and [motion](http://lavrsen.dk/foswiki/bin/view/Motion/WebHome) you could integrate a local USB webcam with a few very easy steps.
|
||||||
|
|
||||||
|
In this blog post I am using a Fedora 24 (will most likely work on other distributions too) installation with Home Assistant 0.22.1 on a Foxconn nT-330i with an old [Logitech QuickCam Orbit AF](http://support.logitech.com/en_us/product/quickcam-sphere-af) and a [Logitech HD Webcam C270](http://support.logitech.com/en_us/product/hd-webcam-c270). As a start only the Quickcam is used. No multi-camera setup for now.
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
Check first if the your operating system lists your cameras.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ lsusb
|
||||||
|
[...]
|
||||||
|
Bus 002 Device 016: ID 046d:08cc Logitech, Inc. Mic (PTZ)
|
||||||
|
[...]
|
||||||
|
```
|
||||||
|
|
||||||
|
The camera we are going to use is available at `/dev/video1`. The C270 is the one on `/dev/video0`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ls -al /dev/video*
|
||||||
|
crw-rw----+ 1 root video 81, 0 Jun 23 08:05 /dev/video0
|
||||||
|
crw-rw----+ 1 root video 81, 1 Jun 23 08:36 /dev/video1
|
||||||
|
```
|
||||||
|
|
||||||
|
We need an additional software part to handle the cameras. [motion](http://lavrsen.dk/foswiki/bin/view/Motion/WebHome) is capable of monitoring the video signal from USB and network cameras, do motion detection, and other nifty stuff like saving images, add text, or basic image manipulations. Make sure that you have the [RPM Fusion respository](http://rpmfusion.org/) enabled.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo dnf -y install motion
|
||||||
|
```
|
||||||
|
|
||||||
|
For our setup we need to modify the file `/etc/motion/motion.conf`. For now the most important parameters are `videodevice`, `snapshot_interval`, and `target_dir`. The other settings can be left to their defaults. We are going to use the device `/dev/video1`, use a 30 seconds interval, and set the path to `/tmp`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[...]
|
||||||
|
###########################################################
|
||||||
|
# Capture device options
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# Videodevice to be used for capturing (default /dev/video0)
|
||||||
|
# for FreeBSD default is /dev/bktr0
|
||||||
|
videodevice /dev/video1
|
||||||
|
|
||||||
|
[..]
|
||||||
|
############################################################
|
||||||
|
# Snapshots (Traditional Periodic Webcam File Output)
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# Make automated snapshot every N seconds (default: 0 = disabled)
|
||||||
|
snapshot_interval 30
|
||||||
|
|
||||||
|
[...]
|
||||||
|
############################################################
|
||||||
|
# Target Directories and filenames For Images And Films
|
||||||
|
# For the options snapshot_, picture_, movie_ and timelapse_filename
|
||||||
|
# you can use conversion specifiers
|
||||||
|
# %Y = year, %m = month, %d = date,
|
||||||
|
# %H = hour, %M = minute, %S = second,
|
||||||
|
# %v = event, %q = frame number, %t = thread (camera) number,
|
||||||
|
# %D = changed pixels, %N = noise level,
|
||||||
|
# %i and %J = width and height of motion area,
|
||||||
|
# %K and %L = X and Y coordinates of motion center
|
||||||
|
# %C = value defined by text_event
|
||||||
|
# Quotation marks round string are allowed.
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# Target base directory for pictures and films
|
||||||
|
# Recommended to use absolute path. (Default: current working directory)
|
||||||
|
target_dir /tmp
|
||||||
|
|
||||||
|
[...]
|
||||||
|
```
|
||||||
|
|
||||||
|
It's suggested that you adjust at least `width` and `height` to get a bigger image from your camera. If you are done, fire up `motion`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo motion
|
||||||
|
[0] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
|
||||||
|
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "sdl_threadnr"
|
||||||
|
[0] [NTC] [ALL] motion_startup: Motion 3.3.0 Started
|
||||||
|
[0] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion.log)
|
||||||
|
```
|
||||||
|
|
||||||
|
Your `target_dir` will start filling up with images from your camera. `motion` will create a symlink called `lastsnap.jpg` which always point to the latest snapshot. We will setup the [Local File camera platform](https://home-assistant.io/components/camera.local_file/) to use this file.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
camera:
|
||||||
|
- platform: local_file
|
||||||
|
name: Cranberry cam
|
||||||
|
file_path: /tmp/lastsnap.jpg
|
||||||
|
```
|
||||||
|
|
||||||
|
<p class='img'>
|
||||||
|
<img src='/images/blog/2016-06-cranberry/cam.png' />
|
||||||
|
The "Cranberry cam" in action
|
||||||
|
</p>
|
||||||
|
|
||||||
|
The machine with the attached USB camera will become a webcam server as well because `motion`'s built-in HTTP server is enabled by default. This means that you could connect your USB webcams to a different machine in your network, run `motion` there, adjust your firewall rules, and use Home Assistant to display the videos. Just check http://[IP of your webcam host]:8081/ to see the stream. This required more powerful hardware than using snapshots, of course.
|
||||||
|
|
||||||
|
In a scenario like this needs a [Generic MJPEG IP Camera ](https://home-assistant.io/components/camera.mjpeg/) in your `configuration.yaml` file.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
camera:
|
||||||
|
- platform: mjpeg
|
||||||
|
mjpeg_url: http://[IP of your webcam host]:8081
|
||||||
|
name: Cranberry Live cam
|
||||||
|
```
|
||||||
|
|
||||||
|
[motion](http://lavrsen.dk/foswiki/bin/view/Motion/WebHome) is a powerful tool and this blog post only showed two very simple use cases. Take a look at the [documentation](http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionGuide) of `motion` to unleash its potential.
|
||||||
|
|
@ -19,16 +19,19 @@ This page contains a list of people who have contributed in one way or another t
|
|||||||
|
|
||||||
(in alphabetical order)
|
(in alphabetical order)
|
||||||
|
|
||||||
|
- [Adam Mills](https://github.com/armills)
|
||||||
- [Adrien Brault](https://github.com/adrienbrault)
|
- [Adrien Brault](https://github.com/adrienbrault)
|
||||||
- [Alex Harvey](https://github.com/infamy)
|
|
||||||
- [Alexander Fortin](https://github.com/shaftoe)
|
- [Alexander Fortin](https://github.com/shaftoe)
|
||||||
|
- [Alex Harvey](https://github.com/infamy)
|
||||||
- [Allan Glen](https://github.com/allanglen)
|
- [Allan Glen](https://github.com/allanglen)
|
||||||
- [amorsillo](https://github.com/fignuts)
|
- [amorsillo](https://github.com/fignuts)
|
||||||
- [Andrew](https://github.com/aoakeson)
|
- [Andrew](https://github.com/aoakeson)
|
||||||
- [Andrew LeCody](https://github.com/aceat64)
|
- [Andrew LeCody](https://github.com/aceat64)
|
||||||
- [Andy Loughran](https://github.com/andylockran)
|
- [Andy Loughran](https://github.com/andylockran)
|
||||||
- [andythigpen](https://github.com/andythigpen)
|
- [andythigpen](https://github.com/andythigpen)
|
||||||
|
- [Antonio Párraga Navarro](https://github.com/aparraga)
|
||||||
- [Ardi Mehist](https://github.com/omgapuppy)
|
- [Ardi Mehist](https://github.com/omgapuppy)
|
||||||
|
- [arsaboo](https://github.com/arsaboo/)
|
||||||
- [Arthur Leonard Andersen](https://github.com/leoc)
|
- [Arthur Leonard Andersen](https://github.com/leoc)
|
||||||
- [Austin](https://github.com/trainman419)
|
- [Austin](https://github.com/trainman419)
|
||||||
- [Azelphur](https://github.com/Azelphur)
|
- [Azelphur](https://github.com/Azelphur)
|
||||||
@ -43,10 +46,13 @@ This page contains a list of people who have contributed in one way or another t
|
|||||||
- [Chris Mulder](https://github.com/chrisvis)
|
- [Chris Mulder](https://github.com/chrisvis)
|
||||||
- [Christian Braedstrup](https://github.com/LinuxChristian)
|
- [Christian Braedstrup](https://github.com/LinuxChristian)
|
||||||
- [coteyr](https://github.com/coteyr/)
|
- [coteyr](https://github.com/coteyr/)
|
||||||
|
- [Dale Higgs](https://github.com/dale3h)
|
||||||
- [Dan Cinnamon](https://github.com/Cinntax)
|
- [Dan Cinnamon](https://github.com/Cinntax)
|
||||||
|
- [Daniel](https://github.com/danielperna84)
|
||||||
- [Daniel Iversen](https://github.com/danielhiversen)
|
- [Daniel Iversen](https://github.com/danielhiversen)
|
||||||
- [Daniel J. Kemp](https://github.com/danieljkemp/)
|
- [Daniel J. Kemp](https://github.com/danieljkemp/)
|
||||||
- [Dan Smith](https://github.com/kk7ds)
|
- [Dan Smith](https://github.com/kk7ds)
|
||||||
|
- [Dan Sullivan](https://github.com/dansullivan86/)
|
||||||
- [Daren Lord](https://github.com/Xorso)
|
- [Daren Lord](https://github.com/Xorso)
|
||||||
- [Dean Galvin](https://github.com/FreekingDean)
|
- [Dean Galvin](https://github.com/FreekingDean)
|
||||||
- [Dennis Karpienski](https://github.com/TheRealLink)
|
- [Dennis Karpienski](https://github.com/TheRealLink)
|
||||||
@ -77,6 +83,8 @@ This page contains a list of people who have contributed in one way or another t
|
|||||||
- [Jan Harkes](https://github.com/jaharkes)
|
- [Jan Harkes](https://github.com/jaharkes)
|
||||||
- [Jan-Preben Mossin](https://github.com/jpmossin)
|
- [Jan-Preben Mossin](https://github.com/jpmossin)
|
||||||
- [Jaret Stezelberger](https://github.com/DesignFirst)
|
- [Jaret Stezelberger](https://github.com/DesignFirst)
|
||||||
|
- [Jean-Philippe Bouillot](https://github.com/Jypy)
|
||||||
|
- [Jeffrey Lin](https://github.com/linjef/)
|
||||||
- [Jeffrey Tang](https://github.com/Qrtn)
|
- [Jeffrey Tang](https://github.com/Qrtn)
|
||||||
- [Jeff Schroeder](https://github.com/SEJeff)
|
- [Jeff Schroeder](https://github.com/SEJeff)
|
||||||
- [Joel Asher Friedman](https://github.com/joelash)
|
- [Joel Asher Friedman](https://github.com/joelash)
|
||||||
@ -96,6 +104,7 @@ This page contains a list of people who have contributed in one way or another t
|
|||||||
- [kennedyshead](https://github.com/kennedyshead)
|
- [kennedyshead](https://github.com/kennedyshead)
|
||||||
- [kixam](https://github.com/kixam)
|
- [kixam](https://github.com/kixam)
|
||||||
- [Kyle Hendricks](https://github.com/kylehendricks)
|
- [Kyle Hendricks](https://github.com/kylehendricks)
|
||||||
|
- [Lewis Juggins](https://github.com/lwis/)
|
||||||
- [Luca Soldi](https://github.com/LucaSoldi)
|
- [Luca Soldi](https://github.com/LucaSoldi)
|
||||||
- [Lukas Hetzenecker](https://github.com/lukas-hetzenecker)
|
- [Lukas Hetzenecker](https://github.com/lukas-hetzenecker)
|
||||||
- [Magnus Knutas](https://github.com/MagnusKnutas)
|
- [Magnus Knutas](https://github.com/MagnusKnutas)
|
||||||
@ -106,6 +115,7 @@ This page contains a list of people who have contributed in one way or another t
|
|||||||
- [Markus Stenberg](https://github.com/fingon)
|
- [Markus Stenberg](https://github.com/fingon)
|
||||||
- [Martin Hjelmare](https://github.com/MartinHjelmare)
|
- [Martin Hjelmare](https://github.com/MartinHjelmare)
|
||||||
- [Matteo Lampugnani](https://github.com/t30)
|
- [Matteo Lampugnani](https://github.com/t30)
|
||||||
|
- [Matthew Treinish](https://github.com/mtreinish/)
|
||||||
- [Michael Arnauts](https://github.com/michaelarnauts)
|
- [Michael Arnauts](https://github.com/michaelarnauts)
|
||||||
- [Michael Auchter](https://github.com/auchter)
|
- [Michael Auchter](https://github.com/auchter)
|
||||||
- [Michael Gilbert](https://github.com/Zyell)
|
- [Michael Gilbert](https://github.com/Zyell)
|
||||||
@ -121,6 +131,7 @@ This page contains a list of people who have contributed in one way or another t
|
|||||||
- [Oliver van Porten](https://github.com/mcdeck)
|
- [Oliver van Porten](https://github.com/mcdeck)
|
||||||
- [Øystein Hansen](https://github.com/oeysteinhansen)
|
- [Øystein Hansen](https://github.com/oeysteinhansen)
|
||||||
- [Pascal Bach](https://github.com/bachp)
|
- [Pascal Bach](https://github.com/bachp)
|
||||||
|
- [Pascal Vizeli](https://github.com/pvizeli)
|
||||||
- [Per Sandström](https://github.com/persandstrom)
|
- [Per Sandström](https://github.com/persandstrom)
|
||||||
- [Philip Lundrigan](https://github.com/philipbl)
|
- [Philip Lundrigan](https://github.com/philipbl)
|
||||||
- [Piratonym](https://github.com/Piratonym)
|
- [Piratonym](https://github.com/Piratonym)
|
||||||
|
@ -13,50 +13,68 @@ Home Assistant requires a web browser to show the frontend. Not all browsers inc
|
|||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
We would appriciate if you help to keep this page up-to-date and add feedback.
|
We would appreciate if you help to keep this page up-to-date and add feedback.
|
||||||
|
|
||||||
## {% linkable_title Microsoft Windows %}
|
## {% linkable_title Microsoft Windows %}
|
||||||
|
|
||||||
| Browser | Release | State | Comments |
|
| Browser | Release | State | Comments |
|
||||||
| :------------------ |:---------------|:-----------|:-------------------------|
|
| :------------------------ |:---------------|:-----------|:-------------------------|
|
||||||
| Internet Explorer | 11 | partically | Streaming updates not working. Display issues |
|
| Internet Explorer ([IE]) | 11 | partially | Streaming updates not working. Display issues |
|
||||||
| Microsoft Edge | deli. Win 10 | partically | Streaming updates not working. |
|
| Microsoft [Edge] | deli. Win 10 | partially | Streaming updates not working. |
|
||||||
| Chrome | 50.0.2661.102 | works | |
|
| [Chrome] | 50.0.2661.102 | works | |
|
||||||
| Firefox | 43.0.1 | works | |
|
| [Firefox] | 43.0.1 | works | |
|
||||||
| Iridium | 48.2 | works | |
|
| [Iridium] | 48.2 | works | |
|
||||||
|
|
||||||
## {% linkable_title MacOS %}
|
## {% linkable_title MacOS %}
|
||||||
|
|
||||||
| Browser | Release | State | Comments |
|
| Browser | Release | State | Comments |
|
||||||
| :------------------ |:---------------|:-----------|:-------------------------|
|
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||||
| Safari | | works | |
|
| [Safari] | | works | |
|
||||||
|
|
||||||
## {% linkable_title Linux %}
|
## {% linkable_title Linux %}
|
||||||
|
|
||||||
| Browser | Release | State | Comments |
|
| Browser | Release | State | Comments |
|
||||||
| :------------------ |:---------------|:-----------|:-------------------------|
|
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||||
| Firefox | 46.0.1 | works | |
|
| [Firefox] | 47.0 | works | |
|
||||||
| Midori | 0.5.11 | works | |
|
| [Midori] | 0.5.11 | works | |
|
||||||
| Chromium | 50.0.2661.102 | works | |
|
| [Chromium] | 50.0.2661.102 | works | |
|
||||||
| Conkeror | 1.0.2 | works | |
|
| [Conkeror] | 1.0.2 | works | |
|
||||||
| Konqueror | | unknown | |
|
| [Konqueror] | | unknown | |
|
||||||
| Uzbl | 0.9.0 | works | |
|
| [Uzbl] | 0.9.0 | works | |
|
||||||
| Opera | | unknown | |
|
| [Opera] | | unknown | |
|
||||||
| Lynx | 2.12 | fails | loads empty page |
|
| [Lynx] | 2.12 | fails | loads empty page |
|
||||||
| elinks | | fails | page with manifest and import |
|
| [elinks] | | fails | page with manifest and import |
|
||||||
| w3m | 0.5.3 | fails | display the icon shown while loading HA |
|
| [w3m] | 0.5.3 | fails | display the icon shown while loading HA |
|
||||||
|
| [Epiphany] | 3.18.5 | works | |
|
||||||
|
|
||||||
|
|
||||||
## {% linkable_title Android %}
|
## {% linkable_title Android %}
|
||||||
|
|
||||||
| Browser | Release | State | Comments |
|
| Browser | Release | State | Comments |
|
||||||
| :------------------ |:---------------|:-----------|:-------------------------|
|
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||||
| Chrome | 50.0.2661.89 | works | |
|
| [Chrome] | 50.0.2661.89 | works | |
|
||||||
| Firefox | 46.0.1 | works | |
|
| [Firefox] | 46.0.1 | works | |
|
||||||
|
|
||||||
## {% linkable_title iOS %}
|
## {% linkable_title iOS %}
|
||||||
|
|
||||||
| Browser | Release | State | Comments |
|
| Browser | Release | State | Comments |
|
||||||
| :------------------ |:---------------|:-----------|:-------------------------|
|
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||||
| Safari | | unknown | |
|
| [Safari] | | unknown | |
|
||||||
|
|
||||||
|
|
||||||
|
[Firefox]: https://www.mozilla.org/en-US/firefox/
|
||||||
|
[Midori]: http://midori-browser.org/
|
||||||
|
[Chrome]: https://www.google.com/chrome/
|
||||||
|
[Iridium]: https://iridiumbrowser.de/
|
||||||
|
[Opera]: http://www.opera.com/
|
||||||
|
[Edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
|
||||||
|
[IE]: http://windows.microsoft.com/en-us/internet-explorer/download-ie
|
||||||
|
[Safari]: http://www.apple.com/safari/
|
||||||
|
[Chromium]: https://www.chromium.org/
|
||||||
|
[Conkeror]: http://conkeror.org/
|
||||||
|
[Konqueror]: https://konqueror.org/
|
||||||
|
[Uzbl]: http://www.uzbl.org/
|
||||||
|
[Lynx]: http://lynx.browser.org/
|
||||||
|
[elinks]: http://elinks.or.cz/
|
||||||
|
[w3m]: http://w3m.sourceforge.net/
|
||||||
|
[Epiphany]: https://wiki.gnome.org/Apps/Web
|
||||||
|
@ -17,7 +17,9 @@ The only requirement is that you have a Raspberry Pi with a fresh installation o
|
|||||||
```bash
|
```bash
|
||||||
$ wget -Nnv https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && bash hass_rpi_installer.sh
|
$ wget -Nnv https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && bash hass_rpi_installer.sh
|
||||||
```
|
```
|
||||||
*Note this command is one line and not run as sudo*
|
<p class='note warning'>
|
||||||
|
Note this command is one-line and not run as sudo.
|
||||||
|
</p>
|
||||||
|
|
||||||
Installation will take approx. 1-2 hours depending on the Raspberry Pi model the installer is being run against. The installer will identitfy what Raspberry PI hardware revision you are using and adjust commands accordingly. A complete log of the install is located at: `/home/pi/fabric-home-assistant/installation_report.txt` The installer has been updated to simply log any errors encountered, but resume installing. Please consult the "installation report" if your install encountered issues.
|
Installation will take approx. 1-2 hours depending on the Raspberry Pi model the installer is being run against. The installer will identitfy what Raspberry PI hardware revision you are using and adjust commands accordingly. A complete log of the install is located at: `/home/pi/fabric-home-assistant/installation_report.txt` The installer has been updated to simply log any errors encountered, but resume installing. Please consult the "installation report" if your install encountered issues.
|
||||||
|
|
||||||
@ -25,8 +27,11 @@ Installation will take approx. 1-2 hours depending on the Raspberry Pi model the
|
|||||||
|
|
||||||
Once rebooted, your Raspberry Pi will be up and running with Home Assistant. You can access it at [http://your_raspberry_pi_ip:8123](http://your_raspberry_pi_ip:8123).
|
Once rebooted, your Raspberry Pi will be up and running with Home Assistant. You can access it at [http://your_raspberry_pi_ip:8123](http://your_raspberry_pi_ip:8123).
|
||||||
|
|
||||||
The Home Assistant configuration is located at `/home/hass/.homeassistant`. The virtualenv with the Home Assistant installation is located at `/srv/hass/hass_venv`. As part of the secure installation, a new user is added to your Raspberry Pi to run Home Assistant as named, **hass**. This is a system account and does not have login or other abilities by design. When editing your configuration.yaml files, you will need to run the commands with "sudo" or by switching user.
|
The Home Assistant configuration is located at `/home/hass/.homeassistant`. The [virtualenv](https://virtualenv.pypa.io/en/latest/) with the Home Assistant installation is located at `/srv/hass/hass_venv`. As part of the secure installation, a new user (**hass**) is added to your Raspberry Pi to run Home Assistant. This is a system account and does not have login or other abilities by design. When editing your `configuration.yaml` files, you will need to run the commands with `sudo` or by switching user.
|
||||||
*Windows users* - Setting up WinSCP to allow this seemlessly is detailed below.
|
|
||||||
|
<p class='note note'>
|
||||||
|
*Windows users*: Setting up WinSCP to allow this seemlessly is at the end of this page.
|
||||||
|
</p>
|
||||||
|
|
||||||
By default, installation makes use of a Python Virtualenv. If you wish to not follow this recommendation, you may add the flag `-n` to the end of the install command specified above.
|
By default, installation makes use of a Python Virtualenv. If you wish to not follow this recommendation, you may add the flag `-n` to the end of the install command specified above.
|
||||||
|
|
||||||
@ -43,21 +48,24 @@ The All-In-One Installer script will do the following automatically:
|
|||||||
* Build openzwave-control-panel in `/srv/hass/src/open-zwave-control-panel`
|
* Build openzwave-control-panel in `/srv/hass/src/open-zwave-control-panel`
|
||||||
* Add both Home Assistant and Mosquitto to systemd services to start at boot
|
* Add both Home Assistant and Mosquitto to systemd services to start at boot
|
||||||
|
|
||||||
|
### {% linkable_title Upgrading %}
|
||||||
|
|
||||||
To upgrade the All-In-One setup manually:
|
To upgrade the All-In-One setup manually:
|
||||||
|
|
||||||
* Login to Raspberry Pi ```ssh pi@your_raspberry_pi_ip```
|
* Login to Raspberry Pi `ssh pi@your_raspberry_pi_ip`
|
||||||
* Change to hass user `sudo su -s /bin/bash hass`
|
* Change to hass user `sudo su -s /bin/bash hass`
|
||||||
* Change to virtual enviroment `source /srv/hass/hass_venv/bin/activate`
|
* Change to virtual enviroment `source /srv/hass/hass_venv/bin/activate`
|
||||||
* Update HA `pip3 install --upgrade homeassistant`
|
* Update HA `pip3 install --upgrade homeassistant`
|
||||||
|
|
||||||
To upgrade with fabric:
|
To upgrade with fabric:
|
||||||
|
|
||||||
* Login to Raspberry Pi ```ssh pi@your_raspberry_pi_ip```
|
* Login to Raspberry Pi `ssh pi@your_raspberry_pi_ip`
|
||||||
* Change to `cd ~/fabric-home-assistant`
|
* Change to `cd ~/fabric-home-assistant`
|
||||||
* Run `fab upgrade_homeassistant`
|
* Run `fab upgrade_homeassistant`
|
||||||
|
|
||||||
To launch the OZWCP webapp:
|
### {% linkable_title Using the OZWCP web application %}
|
||||||
|
|
||||||
|
To launch the OZWCP web application:
|
||||||
|
|
||||||
* Login to Raspberry Pi `ssh pi@your_raspberry_pi_ip`
|
* Login to Raspberry Pi `ssh pi@your_raspberry_pi_ip`
|
||||||
* Change to the ozwcp directory `cd /srv/hass/src/open-zwave-control-panel/`
|
* Change to the ozwcp directory `cd /srv/hass/src/open-zwave-control-panel/`
|
||||||
@ -65,7 +73,10 @@ To launch the OZWCP webapp:
|
|||||||
* Open a web browser to `http://your_pi_ip:8888`
|
* Open a web browser to `http://your_pi_ip:8888`
|
||||||
* Specify your zwave controller, for example `/dev/ttyACM0` and hit initialize
|
* Specify your zwave controller, for example `/dev/ttyACM0` and hit initialize
|
||||||
|
|
||||||
*don't check the USB box regardless of using a USB based device*
|
<p class='note warning'>
|
||||||
|
Don't check the USB box regardless of using a USB based device.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
### {% linkable_title WinSCP %}
|
||||||
|
|
||||||
*Windows Users* - Please note that after running the installer, you will need to modify settings allowing you to "switch users" to edit your configuration files. The needed change within WinSCP is: Environment -> SCP/Shell -> Shell and set it to `sudo su -`.
|
If you are Windows users who is using [WinSCP](https://winscp.net/), please note that after running the installer, you will need to modify settings allowing you to "switch users" to edit your configuration files. The needed change within WinSCP is: **Environment** -> **SCP/Shell** -> **Shell** and set it to `sudo su -`.
|
||||||
|
@ -15,11 +15,11 @@ A `Vagrantfile` is avalable into `virtualization/vagrant` folder for quickly spi
|
|||||||
Vagrant is intended for testing/development only. It is NOT recommended for permanent installations.
|
Vagrant is intended for testing/development only. It is NOT recommended for permanent installations.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Install Vagrant
|
## {% linkable_title Install Vagrant %}
|
||||||
|
|
||||||
You must have [Vagrant](https://www.vagrantup.com/downloads.html) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) installed on your workstation.
|
You must have [Vagrant](https://www.vagrantup.com/downloads.html) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) installed on your workstation.
|
||||||
|
|
||||||
## Get Home Assistant source code
|
## {% linkable_title Get Home Assistant source code %}
|
||||||
|
|
||||||
Download the home-assistant source code by either downloading the .zip file from [GitHub releases page](https://github.com/home-assistant/home-assistant/releases), or by using [Git](https://git-scm.com/)
|
Download the home-assistant source code by either downloading the .zip file from [GitHub releases page](https://github.com/home-assistant/home-assistant/releases), or by using [Git](https://git-scm.com/)
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ cd home-assistant/virtualization/vagrant
|
|||||||
The following instructions will assume you changed your working directory to be home-assistant/virtualization/vagrant. This is mandatory because Vagrant will look for informations about the running VM inside that folder and won't work otherwise
|
The following instructions will assume you changed your working directory to be home-assistant/virtualization/vagrant. This is mandatory because Vagrant will look for informations about the running VM inside that folder and won't work otherwise
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Create the Vagrant VM and start Home Assistant
|
## {% linkable_title Create the Vagrant VM and start Home Assistant %}
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
vagrant up
|
vagrant up
|
||||||
@ -40,7 +40,7 @@ vagrant up
|
|||||||
|
|
||||||
This will download + start a virtual machine using Virtualbox, which will internally setup the development environment necessary to start Home Assistant process and run test suite as well. After the VM has started succesfully, Home Assistant frontend will be accessible locally from your browser at [http://localhost:8123](http://localhost:8123)
|
This will download + start a virtual machine using Virtualbox, which will internally setup the development environment necessary to start Home Assistant process and run test suite as well. After the VM has started succesfully, Home Assistant frontend will be accessible locally from your browser at [http://localhost:8123](http://localhost:8123)
|
||||||
|
|
||||||
## Stopping Vagrant
|
## {% linkable_title Stopping Vagrant %}
|
||||||
|
|
||||||
To shutdown the Vagrant host:
|
To shutdown the Vagrant host:
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ vagrant halt
|
|||||||
|
|
||||||
To start it again, just run `vagrant up`
|
To start it again, just run `vagrant up`
|
||||||
|
|
||||||
## Restarting Home Assistant process to test changes
|
## {% linkable_title Restarting Home Assistant process to test changes %}
|
||||||
|
|
||||||
The root `home-assistant` directory on your workstation will be mirrored with `/home-assistant` inside the VM. In `virtualization/vagrant` there's also a `config` folder that you can use to drop configuration files ([here](https://home-assistant.io/getting-started/configuration/) you can find more information on how to configure HASS).
|
The root `home-assistant` directory on your workstation will be mirrored with `/home-assistant` inside the VM. In `virtualization/vagrant` there's also a `config` folder that you can use to drop configuration files ([here](https://home-assistant.io/getting-started/configuration/) you can find more information on how to configure HASS).
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ Any changes made to the local directory on your workstation will be available fr
|
|||||||
touch restart ; vagrant provision
|
touch restart ; vagrant provision
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run test suite (Tox)
|
## {% linkable_title Run test suite (Tox) %}
|
||||||
|
|
||||||
To run tests against your changes:
|
To run tests against your changes:
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ To run tests against your changes:
|
|||||||
touch run_tests ; vagrant provision
|
touch run_tests ; vagrant provision
|
||||||
```
|
```
|
||||||
|
|
||||||
## Cleanup
|
## {% linkable_title Cleanup %}
|
||||||
|
|
||||||
To completely remove the VM:
|
To completely remove the VM:
|
||||||
|
|
||||||
|
@ -10,12 +10,14 @@ footer: true
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
To update Home Assistant to the latest release when available, run:
|
The default way to update Home Assistant to the latest release, when available, is:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ pip3 install --upgrade homeassistant
|
$ pip3 install --upgrade homeassistant
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Different installation methods as [Raspberry Pi All-In-One Installer](/getting-started/installation-raspberry-pi-all-in-one/#upgrading), [Vagrant](/getting-started/installation-vagrant/), or [Virtualenv](/getting-started/installation-virtualenv/#upgrading-home-assistant) may have a alternative way for updating Home Assistant.
|
||||||
|
|
||||||
After updating, restart Home Assistant for the changes to take effect. This means that you have to restart `hass` itself or the [autostarting](/getting-started/autostart/) daemon if you use any.
|
After updating, restart Home Assistant for the changes to take effect. This means that you have to restart `hass` itself or the [autostarting](/getting-started/autostart/) daemon if you use any.
|
||||||
|
|
||||||
|
|
||||||
|
BIN
source/images/blog/2016-06-cranberry/cam.png
Normal file
BIN
source/images/blog/2016-06-cranberry/cam.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 550 KiB |
BIN
source/images/blog/2016-06-cranberry/motion.png
Normal file
BIN
source/images/blog/2016-06-cranberry/motion.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
BIN
source/images/blog/2016-06-cranberry/social.png
Normal file
BIN
source/images/blog/2016-06-cranberry/social.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
@ -11,17 +11,30 @@ description: Open-source home automation platform running on Python 3. Track and
|
|||||||
hide_github_edit: true
|
hide_github_edit: true
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="grid-wrapper frontpage">
|
<div class="frontpage">
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<div class="grid__item one-third lap-one-third palm-one-whole">
|
<div class="grid__item one-third lap-one-third palm-one-whole">
|
||||||
<div class='current-version material-card text'>
|
<div class='current-version material-card text'>
|
||||||
<h1>Current: 0.22</h1>
|
<h1>Current Version: 0.22.1</h1>
|
||||||
Released: <span class='release-date'>June 18, 2016</span><br>
|
Released: <span class='release-date'>June 20, 2016</span>
|
||||||
<a href='/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/'>Release notes</a>
|
|
||||||
|
<div class='links'>
|
||||||
|
<a href='/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/'>Release notes</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='join-community material-card text'>
|
||||||
|
<h1>Join The Community</h1>
|
||||||
|
We love to help & talk home automation.
|
||||||
|
|
||||||
|
<div class='links'>
|
||||||
|
<a href='https://community.home-assistant.io'>Forums</a>
|
||||||
|
<a href='https://gitter.im/home-assistant/home-assistant'>Chat</a>
|
||||||
|
<a href='https://gitter.im/home-assistant/home-assistant/devs'>Dev Chat</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid__item two-thirds lap-two-thirds palm-one-whole">
|
<div class="grid__item two-thirds lap-two-thirds palm-one-whole">
|
||||||
<div class='material-card text'>
|
<div class='recent-posts material-card text'>
|
||||||
<h1>Recent Blog Posts</h1>
|
<h1>Recent Blog Posts</h1>
|
||||||
|
|
||||||
{% for post in site.posts limit: 3 %}
|
{% for post in site.posts limit: 3 %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user