diff --git a/_config.yml b/_config.yml index 635d460a087..77420e296da 100644 --- a/_config.yml +++ b/_config.yml @@ -141,9 +141,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 73 -current_patch_version: 2 -date_released: 2018-07-16 +current_minor_version: 74 +current_patch_version: 0 +date_released: 2018-07-20 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_components/alarm_control_panel.homematicip_cloud.markdown b/source/_components/alarm_control_panel.homematicip_cloud.markdown new file mode 100644 index 00000000000..c4e06783b8e --- /dev/null +++ b/source/_components/alarm_control_panel.homematicip_cloud.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "HomematicIP Cloud Alarm Control Panel" +description: "Instructions on how to integrate HomematicIP alarm control panel into Home Assistant." +date: 2018-05-18 22:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematicip_cloud.png +ha_category: Sensor +ha_release: 0.73 +ha_iot_class: "Cloud Push" +--- + +The `homematicip_cloud` alarm_control_panel platform allows you to control your [HomematicIP](https://www.homematic-ip.com) `Security Zones` through Home Assistant. + +This component will automatically add `Security Zones` configured in your HomematicIP cloud. + +Please refer to the +[component](/components/homematicip_cloud/) configuration on how to setup HomematicIP Cloud. diff --git a/source/_components/auth.markdown b/source/_components/auth.markdown new file mode 100644 index 00000000000..96d0ab055a2 --- /dev/null +++ b/source/_components/auth.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "Auth" +description: "This component is responsible for providing the authentication endpoints." +date: 2018-03-19 21:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Other +ha_release: 0.73 +--- + +This component creates the endpoints for the authentication system that is built into Home Assistant. There are no configuration options for this component directly as it relies on the auth system in the core. diff --git a/source/_components/binary_sensor.hikvision.markdown b/source/_components/binary_sensor.hikvision.markdown index 7e931302716..97c63757163 100644 --- a/source/_components/binary_sensor.hikvision.markdown +++ b/source/_components/binary_sensor.hikvision.markdown @@ -18,7 +18,7 @@ The Hikvision Binary Sensor is a platform that parses the event stream of a [Hik The platform will automatically add all sensors to Home Assistant that are configured within the camera/nvr interface to "Notify the surveillance center" as a trigger. If you would like to hide a sensor type you can do so by either unchecking "Notify the surveillance center" in the camera configuration or by using the "ignored" customize option detailed below.
-In order for the sensors to work the hikvision user must have the 'Remote: Notify Surveillance Center/Trigger Alarm Output' permission which can be enabled from the user management section of the web interface. Also the 'WEB Authentication' needs to be set to 'digest/basic' in the security/authentication section. +In order for the sensors to work the hikvision user must have the 'Remote: Notify Surveillance Center/Trigger Alarm Output' permission which can be enabled from the user management section of the web interface. Also the 'WEB Authentication' needs to be set to 'digest/basic' in the security/authentication section.
For example, if you configure a camera with the name "Front Porch" that has motion detection and line crossing events enabled to notify the surveillance center the following binary sensors will be added to Home Assistant: @@ -44,6 +44,7 @@ This platform should work with all Hikvision cameras and nvrs, and has been conf - DS-2CD2032-I - DS-2CD2042WD-I - DS-2CD2142FWD-I +- DS-2CD2155FWD-IS To enable this sensor, the following lines are required in your `configuration.yaml` file: diff --git a/source/_components/camera.push.markdown b/source/_components/camera.push.markdown new file mode 100644 index 00000000000..c70dee014c0 --- /dev/null +++ b/source/_components/camera.push.markdown @@ -0,0 +1,77 @@ +--- +layout: page +title: "Push" +description: "Instructions how to use Push Camera within Home Assistant." +date: 2018-06-26 23:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: camcorder.png +ha_category: Camera +ha_iot_class: "Local Push" +ha_release: 0.74 +--- + +The `push` camera platform allows you to integrate images sent over HTTP POST to Home Assistant as a camera. External applications/daemons/scripts are therefore able to "stream" images through Home Assistant. + +Optionally the Push Camera can **buffer** a given number of images, creating an animation of the detected motion after the event has been recorded. + +Images are cleared on new events, and events are separated by a soft (configurable) **timeout**. + +## Integration with motionEye + +The `push` camera can as an example be used with [motionEye](https://github.com/ccrisan/motioneye/wiki) a web frontend for the motion daemon. motionEye is usually configured to save/record files ***only*** when motion is detected. It provides a hook to run a command whenever an image is saved, which can be used together with cURL to send the motion detected images to the `push` camera, as shown in this example: + +In motionEye, under **File Storage -> Run A Command** type in: +```bash +curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/camera_push/camera.push_camera +``` + +Please take note that you might need to add `-H "x-ha-access: YOUR_PASSWORD"` if you have API authentication enabled. + +Optionally configure motionEye to save only motion triggered images by going into **Still Images -> Capture Mode** and setting **Motion Triggered**. Tune your preferences under **Motion Detection**. + +In this setup, you can configure the push camera to continuously replay the last motion triggered event using a configuration such as: + +```yaml +camera: + - platform: push + name: MotionEye Outdoor + buffer: 3 + timeout: 5 +``` + +## {% linkable_title Configuration %} + +To enable this camera in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: push + name: My Push Camera +``` + +{% configuration %} +name: + description: The name you would like to give to the camera. + required: false + default: Push Camera + type: string +buffer: + description: Number of images to buffer per event. Be conservative, large buffers will starve your system memory. + required: false + default: 1 + type: string +timeout: + description: Amount of time after which the event is considered to have finished. + required: false + default: 5 seconds + type: time +field: + description: HTTP POST field containing the image file + required: false + default: image + type: string +{% endconfiguration %} diff --git a/source/_components/cloudflare.markdown b/source/_components/cloudflare.markdown new file mode 100644 index 00000000000..c088bc1e8f0 --- /dev/null +++ b/source/_components/cloudflare.markdown @@ -0,0 +1,58 @@ +--- +layout: page +title: "Cloudflare" +description: "Automatically update your Cloudflare DNS records." +date: 2018-07-10 20:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: cloudflare.png +ha_category: Utility +featured: false +ha_release: 0.74 +--- + +With the `cloudflare` component can you keep your Cloudflare records up to date. + +The component will run every hour, but can also be started manually by using the service `cloudflare.update_records` under services. + +## {% linkable_title Setup %} + +You will find your global API key in your Cloudflare account settings. + +## {% linkable_title Configuration %} + +To use the component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +cloudflare: + email: user@example.com + api_key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41 + zone: example.com + records: + - bin + - www +``` + +{% configuration cloudflare %} +email: + description: The email address for your Cloudflare account. + required: true + type: string +api_key: + description: The global API key for your Cloudflare account. + required: true + type: string +zone: + description: The DNS zone you want to update. + required: true + type: string +records: + description: A list of records you want to update. + required: true + type: list +{% endconfiguration %} + +This platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address. diff --git a/source/_components/image_processing.facebox.markdown b/source/_components/image_processing.facebox.markdown index 480606b6ea1..ebb9892aad8 100644 --- a/source/_components/image_processing.facebox.markdown +++ b/source/_components/image_processing.facebox.markdown @@ -87,6 +87,47 @@ Use the `image_processing.detect_face` events to trigger automations, and breako ``` {% endraw %} +## {% linkable_title Service `facebox_teach_face` %} + +The service `facebox_teach_face` can be used to teach Facebox faces. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | Entity ID of Facebox entity. +| `name` | no | The name to associate with a face. +| `file_path` | no | The path to the image file. + +A valid service data example: + +{% raw %} +```yaml +{ + "entity_id": "image_processing.facebox_local_file", + "name": "superman", + "file_path": "/images/superman_1.jpeg" +} +``` +{% endraw %} + +An `image_processing.teach_classifier` event is fired for each service call, providing feedback on whether teaching has been successful or unsuccessful. In the unsuccessful case, the `message` field of the `event_data` will contain information on the cause of failure, and a warning is also published in the logs. An automation can be used to receive alerts on teaching, for example, the following automation will send a notification with the teaching image and a message describing the status of the teaching: + +```yaml +- id: '11200961111' + alias: Send facebox teaching result + trigger: + platform: event + event_type: image_processing.teach_classifier + event_data: + classifier: facebox + action: + service: notify.platform + data_template: + title: Facebox teaching + message: Name {{ trigger.event.data.name }} teaching was successful? {{ trigger.event.data.success }} + data: + file: ' {{trigger.event.data.file_path}} ' +``` + ## {% linkable_title Optimising resources %} -[Image processing components](https://www.home-assistant.io/components/image_processing/) process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your config `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` service when you actually want to perform processing. +[Image processing components](https://www.home-assistant.io/components/image_processing/) process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your config `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` service when you actually want to perform processing. diff --git a/source/_components/light.tuya.markdown b/source/_components/light.tuya.markdown new file mode 100644 index 00000000000..ec3d418e5e5 --- /dev/null +++ b/source/_components/light.tuya.markdown @@ -0,0 +1,23 @@ +--- +layout: page +title: "Tuya Light" +description: "Instructions on how to setup the Tuya lights within Home Assistant." +date: 2018-07-16 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tuya.png +ha_category: Light +ha_iot_class: "Cloud Polling" +ha_release: 0.74 +--- + + +The `tuya` light platform allows you to control your [Tuya Smart](https://www.tuya.com) lights. + +The platform supports most kinds of Tuya light. + ++Full configuration details can be found on the main [Tuya component](/components/tuya/) page. +
\ No newline at end of file diff --git a/source/_components/media_player.denonavr.markdown b/source/_components/media_player.denonavr.markdown index 5e9a122cc5d..6c4d2d81957 100644 --- a/source/_components/media_player.denonavr.markdown +++ b/source/_components/media_player.denonavr.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: 0.7.2 --- - The `denonavr` platform allows you to control a [Denon Network Receivers](http://www.denon.co.uk/chg/product/compactsystems/networkmusicsystems/ceolpiccolo) from Home Assistant. It might be that your device is supported by the [Denon] platform. Supported devices: @@ -56,18 +55,19 @@ media_player: Configuration variables: -- **host** (*Optional*): IP address of the device. Example: 192.168.1.32. If not set, auto discovery is used. -- **name** (*Optional*): Name of the device. If not set, friendlyName of receiver is used. -- **show_all_sources** (*Optional*): If True all sources are displayed in sources list even if they are marked as deleted in the receiver. If False deleted sources are not displayed (default). Some receivers have a bug that marks all sources as deleted in the interface. In this case this option could help. +- **host** (*Optional*): IP address of the device. Example: 192.168.1.32. If not set, auto-discovery is used. +- **name** (*Optional*): Name of the device. If not set, friendlyName of the receiver is used. +- **show_all_sources** (*Optional*): If True all sources are displayed in sources list even if they are marked as deleted in the receiver. If False deleted sources are not displayed (default). Some receivers have a bug that marks all sources as deleted in the interface. In this case, this option could help. - **timeout** (*Optional*): Timeout for HTTP requests to the receiver. Defaults to 2 seconds if not provided. - **zones** (*Optional*): List of additional zones to be activated. They are displayed as additional media players with the same functionality Main Zone of the device supports - **zone**: Zone which should be activated. Valid options are Zone2 and Zone3 - - **name** (*Optional*): Name of the zone. If not set the name of the main device + zone as suffix is taken. + - **name** (*Optional*): Name of the zone. If not set the name of the main device + zone as a suffix is taken. A few notes: -- Additional option the control Denon AVR receivers with a builtin web server is using the HTTP interface with denonavr platform. -- denonavr platform supports some additional functionalities like album covers, custom input source names and auto discovery. -- Marantz receivers seem to a have quite similar interface. Thus if you own one, give it a try. +- An additional option for the control of Denon AVR receivers with a built-in web server is using the HTTP interface with `denonavr` platform. +- The `denonavr` platform supports some additional functionalities like album covers, custom input source names and auto discovery. +- Marantz receivers seem to a have quite a similar interface. Thus if you own one, give it a try. +- Sound mode: The command to set a specific sound mode is different from the value of the current sound mode reported by the receiver (sound_mode_raw). There is a key-value structure (sound_mode_dict) that matches the raw sound mode to one of the possible commands to set a sound mode (for instance {'MUSIC':['PLII MUSIC']}. If you get a "Not able to match sound mode" warning, please open an issue on the [denonavr library](https://github.com/scarface-4711/denonavr), stating which raw sound mode could not be matched so it can be added to the matching dictionary. You can find the current raw sound mode under "Development Tools/States" in the front panel. [Denon]: /components/media_player.denon/ diff --git a/source/_components/sensor.arlo.markdown b/source/_components/sensor.arlo.markdown index 983388afd04..86f2870fbae 100644 --- a/source/_components/sensor.arlo.markdown +++ b/source/_components/sensor.arlo.markdown @@ -33,6 +33,20 @@ sensor: - signal_strength ``` +Additionally, for Arlo Baby cameras that have additional sensors, you can add them to the `monitored_conditions` collection: + +```yaml +# Additional sensors available for Arlo Baby cameras +sensor: + - platform: arlo + monitored_conditions: + # ... + - temperature + - humidity + - air_quality +``` + + Configuration variables: - **monitored_conditions** array (*Optional*): Conditions to display in the frontend. The following conditions can be monitored. @@ -41,5 +55,8 @@ Configuration variables: - **total_cameras**: Return the number of recognized and active cameras linked on your Arlo account. - **battery_level**: Return the battery level of your Arlo camera. - **signal_strength**: Return the wireless signal strength of your Arlo camera. + - **temperature**: Return the ambient temperature detected by your Arlo Baby camera. + - **humidity**: Return the ambient relative humidity detected by your Arlo Baby camera. + - **air_quality**: Return the ambient air quality (a reading of volatile organic compounds (VOCs) in parts per million) detected by your Arlo Baby camera. If no **monitored_conditions** are specified, all of above will be enabled by default. diff --git a/source/_components/sensor.duke_energy.markdown b/source/_components/sensor.duke_energy.markdown new file mode 100644 index 00000000000..35a14abd964 --- /dev/null +++ b/source/_components/sensor.duke_energy.markdown @@ -0,0 +1,48 @@ +--- +layout: page +title: "Duke Energy" +description: "Instructions on how to set Duke Energy smart meter sensors within Home Assistant." +date: 2018-07-01 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: duke_energy.png +ha_category: Sensor +ha_release: "0.73" +ha_iot_class: "Cloud Polling" +--- + +The `duke_energy` sensor platform allows you get the previous days usage for all of your Duke Energy smart meters. + +You will only have access to meters listed in your account at [Duke Energy Usage](https://www.duke-energy.com/my-account/usage-analysis). + +This supports both electric and gas meters. Along with previous days usage, each sensor will have attributes for the previous bills total usage and average usage. + +## {% linkable_title Configuration %} + +To enable the sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: duke_energy + username: YOUR_DUKE_USERNAME + password: YOUR_DUKE_PASSWORD +``` + +{% configuration %} +username: + description: Your Duke Energy username + required: true + type: string +password: + description: Your Duke Energy password + required: true + type: string +{% endconfiguration %} + + ++Meter usage isn't updated until mid-morning. Prior to updating your meter will report 0 for usage starting at midnight. The API is only called to update every 2 hours from startup time. +
diff --git a/source/_components/sensor.filter.markdown b/source/_components/sensor.filter.markdown index 30661e8d1fc..5e2834eebca 100644 --- a/source/_components/sensor.filter.markdown +++ b/source/_components/sensor.filter.markdown @@ -68,7 +68,7 @@ filters: type: list keys: filter: - description: Algorithm to be used to filter data. Available filters are `lowpass`, `outlier`, `throttle` and `time_simple_moving_average`. + description: Algorithm to be used to filter data. Available filters are `lowpass`, `outlier`, `range`, `throttle` and `time_simple_moving_average`. required: true type: string window_size: @@ -96,6 +96,16 @@ filters: required: false type: string default: last + lower_bound: + description: See [_range_](#range) filter. Lower bound for filter range. + required: false + type: float + default: negative infinity + upper_bound: + description: See [_range_](#range) filter. Upper bound for filter range. + required: false + type: float + default: positive infinity {% endconfiguration %} ## {% linkable_title Filters %} @@ -144,3 +154,19 @@ The Time SMA filter (`time_simple_moving_average`) is based on the paper [Algori The paper defines three types/versions of the Simple Moving Average (SMA): *last*, *next* and *linear*. Currently only *last* is implemented. Theta, as described in the paper, is the `window_size` parameter, and can be expressed using time notation (e.g., 00:05 for a five minutes time window). + +### {% linkable_title Range %} + + +The Range filter (`range`) restricts incoming data to a range specified by a lower and upper bound. + +All values greater then the upper bound are replaced by the upper bound and all values lower than the lower bound are replaced by the lower bound. +Per default there are neither upper nor lower bound. + +```python +if new_state > upper_bound: + upper_bound +if new_state < lower_bound: + lower_bound +new_state +``` diff --git a/source/_components/sensor.fixer.markdown b/source/_components/sensor.fixer.markdown index 397d3b5b719..f02af8ef6b5 100644 --- a/source/_components/sensor.fixer.markdown +++ b/source/_components/sensor.fixer.markdown @@ -18,16 +18,27 @@ The `fixer` sensor will show you the current exchange rate from [Fixer.io](http: To get an overview about the available [currencies](http://api.fixer.io/latest). +## {% linkable_title Setup %} + +You need to create an [API key](https://fixer.io/product). There is a rate limit of 1000 calls per month. + +## {% linkable_title Configuration %} + To enable this sensor, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry sensor: - platform: fixer + api_key: YOUR_API_KEY target: CHF ``` {% configuration %} +api_key: + description: Your API key for [Fixer.io](http://fixer.io/). + required: true + type: string target: description: The symbol of the target currency. required: true @@ -37,9 +48,6 @@ name: required: false type: string default: Exchange rate -base: - description: The symbol of the base currency. - required: false - type: string - default: USD {% endconfiguration %} + +Details about the API are available in the [Fixer.io documentation](https://fixer.io/documentation). diff --git a/source/_components/sensor.nut.markdown b/source/_components/sensor.nut.markdown index cae118607b4..278d1a7673e 100644 --- a/source/_components/sensor.nut.markdown +++ b/source/_components/sensor.nut.markdown @@ -65,46 +65,51 @@ sensor: type: list {% endconfiguration %} -### {% linkable_title Example %} +### {% linkable_title Example %} Given the following example output from NUT (your variables may differ): ```yaml -'ups.timer.reboot': '0' -'battery.voltage': '27.0' -'ups.firmware.aux': 'L3 -P ' -'ups.mfr': 'American Power Conversion' -'battery.runtime.low': '120' -'ups.delay.shutdown': '20' -'ups.load': '19' -'ups.realpower.nominal': '600' -'battery.charge.warning': '50' -'battery.charge.low': '10' -'ups.vendorid': '051d' -'ups.timer.shutdown': '-1' -'ups.test.result': 'No test initiated' -'ups.firmware': '868.L3 -P.D' -'battery.mfr.date': '2015/05/08' -'ups.serial': '3B1519X19994 ' -'ups.productid': '0002' -'battery.runtime': '2552' -'battery.date': '2001/09/25' -'battery.voltage.nominal': '24.0' -'battery.type': 'PbAc' -'ups.mfr.date': '2015/05/08' -'ups.status': 'OL' -'ups.model': 'Back-UPS RS1000G' -'ups.beeper.status': 'disabled' -'battery.charge': '100' -'input.sensitivity': 'medium' -'input.transfer.low': '88' -'input.transfer.high': '147' -'input.voltage': '121.0' -'input.voltage.nominal': '120' -'input.transfer.reason': 'input voltage out of range' +$ upsc ups_name@192.168.11.5 +ups.timer.reboot: 0 +battery.voltage: 27.0 +ups.firmware.aux: L3 -P +ups.mfr: American Power Conversion +battery.runtime.low: 120 +ups.delay.shutdown: 20 +ups.load: 19 +ups.realpower.nominal: 600 +battery.charge.warning: 50 +battery.charge.low: 10 +ups.vendorid: 051d +ups.timer.shutdown: -1 +ups.test.result: No test initiated +ups.firmware: 868.L3 -P.D +battery.mfr.date: 2015/05/08 +ups.serial: 3B1519X19994 +ups.productid: 0002 +battery.runtime: 2552 +battery.date: 2001/09/25 +battery.voltage.nominal: 24.0 +battery.type: PbAc +ups.mfr.date: 2015/05/08 +ups.status: OL +ups.model: Back-UPS RS1000G +ups.beeper.status: disabled +battery.charge: 100 +input.sensitivity: medium +input.transfer.low: 88 +input.transfer.high: 147 +input.voltage: 121.0 +input.voltage.nominal: 120 +input.transfer.reason: input voltage out of range +output.current: 1.10 +output.frequency: 60.20 +output.voltage: 121.50 +output.voltage.nominal: 120 ``` -Use the values from the left hand column. Support is included for most values with 'ups', 'battery', and 'input' prefixes. +Use the values from the left hand column. Support is included for most values with 'ups', 'battery', 'input' and 'output' prefixes. ```yaml sensor: diff --git a/source/_components/sensor.synologydsm.markdown b/source/_components/sensor.synologydsm.markdown index 0b4b4ba197d..886a357bdaa 100644 --- a/source/_components/sensor.synologydsm.markdown +++ b/source/_components/sensor.synologydsm.markdown @@ -36,9 +36,10 @@ sensor: Configuration variables: - **host** (*Required*): The IP address of the Synology NAS to monitor. -- **port** (*Optional*): The port number on which the Synology NAS is reachable. Defaults to `5000`. +- **port** (*Optional*): The port number on which the Synology NAS is reachable. Defaults to `5001`. - **username** (*Required*): An user to connect to the Synology NAS (a separate account is advised, see the Separate User Configuration section below for details). - **password** (*Required*): The password of the user to connect to the Synology NAS. +- **ssl** (*Optional*): Determine if HTTPS should be used. Defaults to `True` which by default runs on port `5001`. - **volumes** (*Optional*): Array of volumes to monitor. Defaults to all volumes. - **disks** (*Optional*): Array of disks to monitor. Defaults to all disks. - **monitored_conditions** (*Required*): Defines a [template](/topics/templating/) to extract a value from the payload. diff --git a/source/_components/switch.enocean.markdown b/source/_components/switch.enocean.markdown index e701d3e6f41..2676b51dbae 100644 --- a/source/_components/switch.enocean.markdown +++ b/source/_components/switch.enocean.markdown @@ -13,8 +13,7 @@ ha_release: 0.21 ha_iot_class: "Local Push" --- -An EnOcean switch can take many forms. Currently only one type has been tested: Permundo PSC234 - +An EnOcean switch can take many forms. Currently, only a few types have been tested: Permundo PSC234 and Nod On SIN-2-1-01. 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: @@ -29,3 +28,19 @@ Configuration variables: - **id** (*Required*): The ID of the device. This is a 4 bytes long number. - **name** (*Optional*): An identifier for the switch. Default to `EnOcean Switch`. +- **channel** (*Optional*): The number of the channel (typically 0 or 1) for the output channel to switch. Default to `0`. + +```yaml +# Example entries for a switch with 2 outputs (channels), e.g., the Nod On SIN-2-1-01 +switch nodon01_0: + - platform: enocean + id: [0x05,0x04,0x03,0x02] + name: enocean_nodon01_0 + channel: 0 + +switch nodon01_1: + - platform: enocean + id: [0x05,0x04,0x03,0x02] + name: enocean_nodon01_1 + channel: 1 +``` diff --git a/source/_components/switch.tuya.markdown b/source/_components/switch.tuya.markdown new file mode 100644 index 00000000000..6f081aee6cd --- /dev/null +++ b/source/_components/switch.tuya.markdown @@ -0,0 +1,23 @@ +--- +layout: page +title: "Tuya Switch" +description: "Instructions on how to setup the Tuya switch within Home Assistant." +date: 2018-07-09 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tuya.png +ha_category: Switch +ha_iot_class: "Cloud Polling" +ha_release: 0.74 +--- + + +The `tuya` switch platform allows you to control your [Tuya Smart](https://www.tuya.com) switch. + +The platform supports switch and socket. + ++Full configuration details can be found on the main [Tuya component](/components/tuya/) page. +
\ No newline at end of file diff --git a/source/_components/tuya.markdown b/source/_components/tuya.markdown new file mode 100644 index 00000000000..a51c170dbff --- /dev/null +++ b/source/_components/tuya.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Tuya" +description: "Instructions on how to setup the Tuya hub within Home Assistant." +date: 2018-07-09 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tuya.png +ha_category: Hub +ha_iot_class: "Cloud Polling" +ha_release: 0.74 +--- + +The `tuya` component is the main component to integrate all [Tuya Smart](https://www.tuya.com) related platforms. You will need your Tuya account information (username, password and account country code) to discover and control devices which related to your account. + +## {% linkable_title Configuration %} + +To add your Tuya devices into your Home Assistant installation, add the following to your `configuration.yaml` file: + +```yaml +tuya: + username: YOUR_TUYA_USERNAME + password: YOUR_TUYA_PASSWORD + country_code: YOUR_ACCOUNT_COUNTRYCODE +``` + +{% configuration %} +username: + description: Your username to login to Tuya. + required: true + type: string +password: + description: Your password to login to Tuya. + required: true + type: string +country_code: + description: Your account country code (i.e.,1 for USA and 86 for China). + required: true + type: string +{% endconfiguration %} + +## {% linkable_title Service %} + +These services are available for the `tuya` component: + +- force_update +- pull_devices + +Devices state data and new devices will refresh automatically. If you want to refresh all devices information or get new devices related to your account manually, you can call the `force_update` or `pull_devices` service. diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown index a727e42badb..01c0241fb61 100644 --- a/source/_lovelace/entities.markdown +++ b/source/_lovelace/entities.markdown @@ -49,6 +49,10 @@ name: required: false description: Overwrites friendly name. type: string +secondary_info: + required: false + description: "Show additional info. Values: `entity-id`, `last-changed`." + type: string {% endconfiguration %} ## {% linkable_title Example %} diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown index 60cf0c469e5..f1aceb91e53 100644 --- a/source/_lovelace/glance.markdown +++ b/source/_lovelace/glance.markdown @@ -30,6 +30,21 @@ title: required: false description: Card title type: string +show_name: + required: false + description: Show entity names. + type: boolean + default: "true" +show_state: + required: false + description: Show entity state-text. + type: boolean + default: "true" +column_width: + required: false + description: "Column width as CSS length like `100px` or `calc(100% / 7)`." + type: string + default: 20% {% endconfiguration %} ## {% linkable_title Options For Entities %} @@ -45,6 +60,11 @@ name: required: false description: Overwrites friendly name. type: string +tap_action: + required: false + description: "Set to `toggle` or `turn-on` for direct actions." + type: string + default: more-info {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown index 282b59912f5..a27641069a1 100644 --- a/source/_lovelace/history-graph.markdown +++ b/source/_lovelace/history-graph.markdown @@ -24,7 +24,7 @@ type: type: string entities: required: true - description: List of entities to graph. + description: "A list of entity IDs or `entity` objects, see below." type: list hours_to_show: required: false @@ -42,6 +42,21 @@ title: type: string {% endconfiguration %} +## {% linkable_title Options For Entities %} + +If you define entities as objects instead of strings, you can add more customization and configuration: + +{% configuration %} +entity: + required: true + description: Home Assistant entity ID. + type: string +name: + required: false + description: Overwrites friendly name. + type: string +{% endconfiguration %} + ## {% linkable_title Example %} ```yaml @@ -49,5 +64,6 @@ title: title: 'My Graph' entities: - sensor.outside_temperature - - media_player.lounge_room + - entity: media_player.lounge_room + name: Main player ``` diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index 4c876018ab4..771684130e0 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -40,23 +40,6 @@ title: ## {% linkable_title Elements %} -### {% linkable_title Navigate to other views %} - -{% configuration %} -type: - required: true - description: navigation - type: string -navigation_path: - required: true - description: URL path to another view. - type: string -icon: - required: false - description: Material Design Icon. - type: string -{% endconfiguration %} - ### {% linkable_title State Badge %} {% configuration %} @@ -87,9 +70,21 @@ entity: type: string tap_action: required: false - description: "Set to `toggle` to change state" + description: more-info, toggle, navigate, call-service type: string default: more-info +navigation_path: + required: false + description: Url path to navigate to (e.g. `/lovelace/1`) + type: string +service: + required: false + description: "Service to call (e.g. `light.turn_on`)" + type: string +service_data: + required: false + description: The service data to use. + type: object style: required: true description: Position and style the element using CSS. @@ -107,6 +102,23 @@ entity: required: true description: Entity id type: string +tap_action: + required: false + description: more-info, toggle, navigate, call-service + type: string + default: more-info +navigation_path: + required: false + description: Url path to navigate to (e.g. `/lovelace/1`) + type: string +service: + required: false + description: "Service to call (e.g. `light.turn_on`)" + type: string +service_data: + required: false + description: The service data to use. + type: object style: required: true description: Position and style the element using CSS. @@ -130,7 +142,7 @@ service: type: string service_data: required: false - description: The service data to use." + description: The service data to use. type: object style: required: true @@ -138,7 +150,103 @@ style: type: object {% endconfiguration %} -## {% linkable_title How-to use the style object %} +### {% linkable_title Icon Element %} + +{% configuration %} +type: + required: true + description: icon + type: string +icon: + required: true + description: Icon to display (e.g. `mdi:home`) + type: string +title: + required: false + description: Icon tooltip. + type: string +entity: + required: false + description: Entity to use for more-info/toggle + type: string +tap_action: + required: false + description: more-info, toggle, navigate, call-service + type: string + default: more-info +navigation_path: + required: false + description: Url path to navigate to (e.g. `/lovelace/1`) + type: string +service: + required: false + description: "Service to call (e.g. `light.turn_on`)" + type: string +service_data: + required: false + description: The service data to use. + type: object +style: + required: true + description: Position and style the element using CSS. + type: object +{% endconfiguration %} + +### {% linkable_title Image Element %} + +{% configuration %} +type: + required: true + description: image + type: string +entity: + required: false + description: Entity to use for state_image and state_filter and also target for actions. + type: string +tap_action: + required: false + description: none, more-info, toggle, navigate, call-service + type: string + default: more-info +navigation_path: + required: false + description: Url path to navigate to (e.g. `/lovelace/1`) + type: string +service: + required: false + description: "Service to call (e.g. `light.turn_on`)" + type: string +service_data: + required: false + description: The service data to use. + type: object +image: + required: false + description: The image to display. + type: string +camera_image: + required: false + description: A camera entity. + type: string +state_image: + required: false + description: '[State-based images](#how-to-use-state_image)' + type: object +filter: + required: false + description: Default CSS filter + type: string +state_filter: + required: false + description: '[State-based CSS filters](#how-to-use-state_filter)' + type: object +style: + required: true + description: Position and style the element using CSS. + type: object +{% endconfiguration %} + +## {% linkable_title How to use the style object %} Position and style your elements using [CSS](https://en.wikipedia.org/wiki/Cascading_Style_Sheets). More/other keys are also possible. @@ -151,6 +259,26 @@ style: "--paper-item-icon-color": pink ``` +## {% linkable_title How to use state_image %} + +Specify a different image to display based on the state of the entity. + +```yaml +state_image: + "on": /local/living_room_on.jpg + "off": /local/living_room_off.jpg +``` + +## {% linkable_title How to use state_filter %} + +Specify different [CSS filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter) + +```yaml +state_filter: + 'on': brightness(110%) saturate(1.2) + 'off': brightness(50%) hue-rotate(45deg) +``` + ## {% linkable_title Example %} ```yaml @@ -181,5 +309,59 @@ style: left: 60% service: light.turn_off service_data: - entity_id: group.all_lights + entity_id: group.all_lights + - type: icon + icon: mdi:home + tap_action: navigate + navigation_path: /lovelace/0 + style: + top: 10% + left: 10% + + +``` + +## {% linkable_title Images Example %} + +```yaml +- type: picture-elements + image: /local/floorplan.png + elements: + # state_image & state_filter - toggle on click + - type: image + entity: light.living_room + tap_action: toggle + image: /local/living_room.png + state_image: + 'off': /local/living_room_off.png + filter: saturate(.8) + state_filter: + 'on': brightness(120%) saturate(1.2) + style: + top: 25% + left: 75% + width: 15% + # Camera, red border, rounded-rectangle - show more-info on click + - type: image + entity: camera.driveway_camera + camera_image: camera.driveway_camera + style: + top: 5% + left: 10% + width: 10% + border: 2px solid red + border-radius: 10% + # Single image, state_filter - call-service on click + - type: image + entity: media_player.living_room + tap_action: call-service + service: media_player.media_play_pause + image: /local/television.jpg + filter: brightness(5%) + state_filter: + playing: brightness(100%) + style: + top: 40% + left: 75% + width: 5% ``` diff --git a/source/_posts/2018-07-21-release-74.markdown b/source/_posts/2018-07-21-release-74.markdown new file mode 100644 index 00000000000..261bc14f2f2 --- /dev/null +++ b/source/_posts/2018-07-21-release-74.markdown @@ -0,0 +1,401 @@ +--- +layout: post +title: "0.74: Tuya, Cloudflare DNS, Push Camera and Users UI" +description: "This release builds on top of the previous release, as that is how releases work." +date: 2018-07-20 00:01:00 +date_formatted: "July 20, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-07-0.74/components.png +--- + +It's time for Home Assistant 0.74! 🎉 + +This week we heard that Guido van Rossum, the founder of Python, is taking a permanent vacation as the leader of Python after being at the helm for almost 30 years. Guido has not been directly involved with Home Assistant. However he created Python and was part of the team that built asyncio, technologies that power the foundation of Home Assistant and what makes us so fast and robust. Under Guido's guidance, the Python community has grown out to be very friendly and open. A great inspiration for us and other tech communities out there. Thanks for all you have done Guido! + +
+
+Paulus & Guido at PyCon US 2018
+