Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2020-12-13 01:48:35 +01:00
commit b42020e07d
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
12 changed files with 82 additions and 33 deletions

View File

@ -10,7 +10,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v2
- name: Setting up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2.1.2
uses: actions/setup-node@v2.1.3
with:
node-version: 12.x
- name: Setup NPM cache
@ -33,7 +33,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v2
- name: Setting up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2.1.2
uses: actions/setup-node@v2.1.3
with:
node-version: 12.x
- name: Setup NPM cache

View File

@ -7,7 +7,7 @@ public_dir = "public/" # compiled site directory
source_dir = "source" # source file directory
blog_index_dir = 'source/blog' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog')
stash_dir = "_stash" # directory to stash posts for speedy generation
components_dir = "_components" # directory for component files
integrations_dir = "_integrations" # directory for component files
posts_dir = "_posts" # directory for blog files
new_post_ext = "markdown" # default new post file extension when using the new_post task
new_page_ext = "markdown" # default new page file extension when using the new_page task
@ -144,22 +144,22 @@ desc "Move all other components and posts than the one currently being worked on
task :isolate, :filename do |t, args|
stash_dir = "#{source_dir}/#{stash_dir}"
s_posts_dir = "#{stash_dir}/#{posts_dir}"
s_components_dir = "#{stash_dir}/#{components_dir}"
s_integrations_dir = "#{stash_dir}/#{integrations_dir}"
FileUtils.mkdir(stash_dir) unless File.exist?(stash_dir)
FileUtils.mkdir(s_posts_dir) unless File.exist?(s_posts_dir)
FileUtils.mkdir(s_components_dir) unless File.exist?(s_components_dir)
FileUtils.mkdir(s_integrations_dir) unless File.exist?(s_integrations_dir)
Dir.glob("#{source_dir}/#{posts_dir}/*.*") do |post|
FileUtils.mv post, s_posts_dir unless post.include?(args.filename)
end
Dir.glob("#{source_dir}/#{components_dir}/*.*") do |component|
FileUtils.mv component, s_components_dir unless component.include?(args.filename)
Dir.glob("#{source_dir}/#{integrations_dir}/*.*") do |component|
FileUtils.mv component, s_integrations_dir unless component.include?(args.filename)
end
end
desc "Move all stashed posts back into the posts directory, ready for site generation."
task :integrate do
FileUtils.mv Dir.glob("#{source_dir}/#{stash_dir}/#{posts_dir}/*.*"), "#{source_dir}/#{posts_dir}/"
FileUtils.mv Dir.glob("#{source_dir}/#{stash_dir}/#{components_dir}/*.*"), "#{source_dir}/#{components_dir}/"
FileUtils.mv Dir.glob("#{source_dir}/#{stash_dir}/#{integrations_dir}/*.*"), "#{source_dir}/#{integrations_dir}/"
end
desc "Clean out caches: .pygments-cache, .gist-cache, .sass-cache"

6
package-lock.json generated
View File

@ -1154,9 +1154,9 @@
"dev": true
},
"ini": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
"is-alphabetical": {

View File

@ -196,7 +196,7 @@ module Jekyll
# Adds some extra filters used during the category creation process.
module Filters
module CategoryFilter
# Outputs a list of categories as comma-separated <a> links. This is used
# to output the category list for each post on a category page.
@ -250,3 +250,5 @@ module Jekyll
end
end
Liquid::Template.register_filter(Jekyll::CategoryFilter)

View File

@ -399,26 +399,7 @@ automation:
The `for` template(s) will be evaluated when the `value_template` becomes `true`.
<div class='note warning'>
Rendering templates with time (`now()`) is dangerous as trigger templates are only updated based on entity state changes.
</div>
As an alternative, providing you include the sensor [time](/integrations/time_date/) in your configuration, you can use the following template:
{% raw %}
```yaml
automation:
trigger:
platform: template
value_template: "{{ (states.sensor.time.last_changed - states.YOUR.ENTITY.last_changed).total_seconds() > 300 }}"
```
{% endraw %}
which will evaluate to `True` if `YOUR.ENTITY` changed more than 300 seconds ago.
Templates that don't contain an entity will be rendered once per minute.
### Time trigger

View File

@ -20,7 +20,7 @@ The UPB integration allows Home Assistant to connect to a Universal Powerline Bu
To add UPB to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Universal Powerline Bus (UPB)**.
The UPB integration requires that an export from the `UPStart` UPB configuration program. To create an export, in `UPStart`, click the UPB button in the top left and select **Export to File**. This will create a file with the `.upe` extension. The file must be placed somewhere in your Home Assistant installation, for example, in the configuration directory.
The UPB integration requires that an export from the `UPStart` UPB configuration program. To create an export, in `UPStart`, click the UPB button in the top left and select **Export to File**. This will create a file with the `.upe` extension. The file must be placed in the configuration directory of your Home Assistant installation.
## Device Configuration

View File

@ -75,6 +75,13 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/)
- [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/)
<div class="note warning">
The **EZSP** protocol requires a stable connection to the serial port. With _ITEAD Sonoff ZBBridge_ connecting over the WiFi network
it is expected to see `NCP entered failed state. Requesting APP controller restart` in the logs. This is a normal part of the operation and indicates there was a drop in communication between ZHA and SonOff bridge.
</div>
### Experimental support for additional Zigbee radio modules
- Texas Instruments based radios with Z-Stack Home 1.2.x (via the [zigpy-cc](https://github.com/zigpy/zigpy-cc) library for zigpy)

View File

@ -0,0 +1,57 @@
---
title: "Flashing an ODROID-N2+"
description: "Using Petitboot and OTG-USB to flash the eMMC on your Odroid N2"
---
Home Assistant can be flashed to an ODROID-N2+ by connecting the device directly to your computer via the USB-OTG connection on the front of the board. The device contains the Petitboot bootloader, which allows the ODROID-N2+ storage to show up as it were a USB drive.
_All these instructions work the same for the ODROID-N2 (non-plus version)._
## What you will need
To flash your eMMC using Petitboot and OTG-USB, you will need the following items:
- HDMI cable and monitor
- USB keyboard
- USB 2.0 to micro-USB cable
### Enabling SPI boot mode
Remove the case of your ODROID-N2+
![Photo of the removed case](/images/hassio/screenshots/case-removed.jpg)
Next, locate the toggle for boot mode and switch it from MMC to SPI.
![Photo of the SPI toggle switch](/images/hassio/screenshots/toggle_spi.jpg)
Connect a USB keyboard and HDMI connected monitor to your ODROID-N2+, and then connect power.
### Enabling USB drive mode
The ODROID-N2+ will now boot into a terminal. Select `Exit to shell` from the menu.
![Exit to shell](/images/hassio/screenshots/exit-shell.png)
Use the following command at the console to confirm the storage device node:
```bash
ls /dev/mmc*
```
Set the storage device on the ODROID-N2+ as a mass storage device using `ums` (USB Mass storage mode)
This will configure the ODROID-N2+ and OTG to act as a memory card reader.
```bash
ums /dev/mmcblk0
```
### Flashing Home Assistant
Connect the ODROID-N2+ to your PC via the micro-USB port at the front of the ODROID-N2+. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/) using the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/latest) (hassos_odroid-n2-XXXX.img.gz).
When the flash process is complete, disconnect the ODROID-N2+ from your PC and remove the power cable. Remove the USB and HDMI cable, and make sure to toggle the boot mode switch back to MMC.
Once it is back in its case, connect your ODROID-N2+ to your network with an Ethernet cable and plug in power.
If your router supports mDNS, you will be able to reach your installation on `http://homeassistant.local:8123`. If your network doesnt support mDNS, youll have to use the IP address of your ODROID-N2+ instead of `homeassistant.local`. For example, `http://192.168.0.9:8123`. You should be able to find the IP address of your ODROID-N2+ from the admin interface of your router.

View File

@ -15,6 +15,7 @@ The following will take you through the steps required to install Home Assistant
- [Raspberry Pi 4 Model B (1 GB, 2 GB, 4 GB and 8 GB model) 64-bit][pi4-64] (64-bit is required for 8 GB model)
- [Tinkerboard][tinker]
- [Odroid-C2][odroid-c2], [Odroid-C4 (Beta)][odroid-c4], [Odroid-N2][odroid-n2], [Odroid-XU4][odroid-xu4]
- [Guide: Flashing Odroid-N2 using OTG-USB][otg-usb]
- [Intel NUC][intel-nuc]
- As a virtual appliance (x86_64/UEFI):
@ -121,3 +122,4 @@ If you would like to test next release before anyone else, you can install the b
[ssh]: /addons/ssh/
[pi-power]: https://www.raspberrypi.org/help/faqs/#powerReqs
[configure]: /getting-started/configuration/
[otg-usb]: hassio/flashing_n2_otg/

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB