diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4b1d0083a57..98b546dc49d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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 diff --git a/Rakefile b/Rakefile index 182f8178a11..bdf1535119c 100644 --- a/Rakefile +++ b/Rakefile @@ -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" diff --git a/package-lock.json b/package-lock.json index 331df565a66..c3f6d675fa2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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": { diff --git a/plugins/category_generator.rb b/plugins/category_generator.rb index 54210c7a740..b5f9e57e815 100644 --- a/plugins/category_generator.rb +++ b/plugins/category_generator.rb @@ -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 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) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index f16c68ffe84..443349800f6 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -399,26 +399,7 @@ automation: The `for` template(s) will be evaluated when the `value_template` becomes `true`. -
- -Rendering templates with time (`now()`) is dangerous as trigger templates are only updated based on entity state changes. - -
- -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 diff --git a/source/_integrations/upb.markdown b/source/_integrations/upb.markdown index 35f5aa4b821..5301e239339 100644 --- a/source/_integrations/upb.markdown +++ b/source/_integrations/upb.markdown @@ -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 diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index d9335e1c836..eb597b72007 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -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/) +
+ +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. + +
+ ### 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) diff --git a/source/hassio/flashing_n2_otg.markdown b/source/hassio/flashing_n2_otg.markdown new file mode 100644 index 00000000000..20b692355c9 --- /dev/null +++ b/source/hassio/flashing_n2_otg.markdown @@ -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 doesn’t support mDNS, you’ll 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. diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 00701ba7a58..54798c7f131 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -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/ diff --git a/source/images/hassio/screenshots/case-removed.jpg b/source/images/hassio/screenshots/case-removed.jpg new file mode 100644 index 00000000000..0c5922bd5e2 Binary files /dev/null and b/source/images/hassio/screenshots/case-removed.jpg differ diff --git a/source/images/hassio/screenshots/exit-shell.png b/source/images/hassio/screenshots/exit-shell.png new file mode 100644 index 00000000000..8cefd9972cd Binary files /dev/null and b/source/images/hassio/screenshots/exit-shell.png differ diff --git a/source/images/hassio/screenshots/toggle_spi.jpg b/source/images/hassio/screenshots/toggle_spi.jpg new file mode 100644 index 00000000000..a157c1725fe Binary files /dev/null and b/source/images/hassio/screenshots/toggle_spi.jpg differ