It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices.
@@ -64,9 +67,7 @@ steps are:
- [Enable events](https://developers.google.com/nest/device-access/subscribe-to-events#enable_events) in the [Device Access Console](https://console.nest.google.com/device-access/project-list) which creates a Pub/Sub topic.
- [Enable the Cloud Pub/Sub API](https://console.developers.google.com/apis/library/pubsub.googleapis.com) in the Cloud Console.
-- [Create a Pub/Sub subscription](https://console.cloud.google.com/cloudpubsub/subscription/list) in the Google Cloud Platform console. Make sure to create a pull subscription and get a `subscriber_id` ("Subscription ID" in Google Cloud Console). The *Topic name* should match the topic name in the device access console.
-
-Additionally, Home Assistant must be configured with a URL (e.g., external exposed [`http`](/integrations/http/), Nabu Casa, etc). When setting up the OAuth credentials, make sure the Home Assistant URL is in the list of *Authorized redirect URIs*, so the redirect back to Home Assistant can get an OAuth authorization code.
+- [Create a Pub/Sub subscription](https://console.cloud.google.com/cloudpubsub/subscription/list) in the Google Cloud Platform console. Make sure to create a pull subscription and get a `subscriber_id` ("Subscription name" in Google Cloud Console). The *Topic name* should match the topic name in the device access console.
Follow all of the instructions in [Device Access: Quick Start Guide](https://developers.google.com/nest/device-access/get-started) carefully as it is easy to make a configuration mistake that is difficult to debug. It is recommended to exercise the entire guide, including the command to test out the API, to make sure that it is working before configuring Home Assistant.
@@ -118,11 +119,15 @@ Once your developer account is set up and you have a valid `nest` entry in `conf
## Troubleshooting
-- See [No URL Available](/more-info/no-url-available) for guidance on setup issues related to URLs.
+- For general trouble with the SDM API OAuth authorization flow with Google, see [Troubleshooting](https://developers.google.com/nest/device-access/authorize#troubleshooting).
-- For trouble with the SDM API OAuth authorization flow with Google, see [Troubleshooting](https://developers.google.com/nest/device-access/authorize#troubleshooting) which includes guidance for errors like `redirect_uri_mismatch` where Google needs to know about your external URL
+- *Error 500: redirect_url_mismatch* means that you need visit the [GCP credentials](https://console.developers.google.com/apis/credentials) page and modify your OAuth2.0 Client ID to add the correct Home Asssitant callback URL. The error message tells you the exact URL that needs to be added, including any ports or paths like `/auth/external/callback` path. See [Redirect uri mismatch](https://developers.google.com/nest/device-access/authorize#redirect_uri_mismatch) for more details.
-- You can see stats about your subscriber in the [Cloud Console](https://console.cloud.google.com/cloudpubsub/subscription/list) which includes # of messages that have yet to be acknowledged. This can tell you if the publisher is working, or if the subscriber is working. You can also `View Messages` to see any pending messages. Many old unacknowledged messages may indicate the subscriber is not working properly.
+- *No devices or entities are created* if the SDM API is not returning any devices for the authorized account. Double double check that GCP is configured correctly to [Enable the API](https://developers.google.com/nest/device-access/get-started#set_up_google_cloud_platform) and authorize at least one device in the OAuth setup flow. If you have trouble here, then you may want to walk through the [Get Started: Device Access](https://developers.google.com/nest/device-access/get-started) guide again and issue commands directly against the API until you successfully get back devices.
+
+- *Not receiving updates* typically means a problem with the subscriber configuration. Changes for things like sensors or thermostat temperature set points should be instantly published to a topic and received by the Home Assistant susbcriber when everything is configured correctly.
+
+- You can see stats about your subscriber in the [Cloud Console](https://console.cloud.google.com/cloudpubsub/subscription/list) which includes counts of messages published by your devices, and how many have been acknowledged by your Home Assistant subscriber. You can also `View Messages` to see examples of published. Many old unacknowledged messages indicate the subscriber is not receivng the messages and working properly or not connected at all. Double check the `subscriber_id` matches the `Subscription Name`
- To aid in diagnosing subscriber problems or camera stream issues it may help to turn up verbose logging by adding some or all of these to your `configuration.yaml` depending on where you are having trouble:
@@ -142,7 +147,6 @@ logger:
google_nest_sdm.event: debug
google.cloud.pubsub_v1: debug
google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager: debug
-
```
## Camera
diff --git a/source/_integrations/notify.markdown b/source/_integrations/notify.markdown
index 116f73df935..c189702b4c5 100644
--- a/source/_integrations/notify.markdown
+++ b/source/_integrations/notify.markdown
@@ -63,7 +63,7 @@ For services which have support for sending images.
{ "message": "Test plugin",
"data": {
"photo": {
- "url": "http://www.gbsun.de/gbpics/berge/berge106.jpg"
+ "url": "https://raw.githubusercontent.com/home-assistant/home-assistant.io/current/source/images/default-social.png"
}
}
}
@@ -78,7 +78,7 @@ action:
message: "Test plugin"
data:
photo:
- url: "http://www.gbsun.de/gbpics/berge/berge106.jpg"
+ url: "https://raw.githubusercontent.com/home-assistant/home-assistant.io/current/source/images/default-social.png"
```
diff --git a/source/_integrations/opensky.markdown b/source/_integrations/opensky.markdown
index 8900721f85a..86b46b4608e 100644
--- a/source/_integrations/opensky.markdown
+++ b/source/_integrations/opensky.markdown
@@ -37,8 +37,6 @@ Both events have three attributes:
- **sensor**: Name of `opensky` sensor that fired the event.
- **callsign**: Callsign of the flight.
-- **latitude**: Latitude of the flight.
-- **longitude**: Longitude of the flight.
- **altitude**: Altitude of the flight in meters.
To receive notifications of the entering flights using the [Home Assistant Companion App](https://companion.home-assistant.io/), add the following lines to your `configuration.yaml` file:
diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown
index a9df3b7b4bd..e0f6354aec6 100644
--- a/source/_integrations/recorder.markdown
+++ b/source/_integrations/recorder.markdown
@@ -215,22 +215,22 @@ Note that purging will not immediately decrease disk space usage but it will sig
## Custom database engines
-| Database engine | `db_url` |
-| :----------------------------- | :----------------------------------------------------------------------------------------------------- |
-| SQLite | `sqlite:////PATH/TO/DB_NAME` |
-| MariaDB (omit pymysql) | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8` |
-| MariaDB (omit pymysql, Socket) | `mysql://user:password@SERVER_IP/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8` |
-| MySQL | `mysql://SERVER_IP/DB_NAME?charset=utf8` |
-| MySQL | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8` |
-| MySQL (Socket) | `mysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8` |
-| MariaDB | `mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8` |
-| MariaDB | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8` |
-| MariaDB (Socket) | `mysql+pymysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8` |
-| PostgreSQL | `postgresql://SERVER_IP/DB_NAME` |
-| PostgreSQL | `postgresql://user:password@SERVER_IP/DB_NAME` |
-| PostgreSQL (Socket) | `postgresql://@/DB_NAME` |
-| PostgreSQL (Custom socket dir) | `postgresql://@/DB_NAME?host=/path/to/dir` |
-| MS SQL Server | `mssql+pyodbc://username:password@SERVER_IP/DB_NAME?charset=utf8;DRIVER={DRIVER};Port=1433;` |
+| Database engine | `db_url` |
+| :----------------------------- | :-------------------------------------------------------------------------------------------------------- |
+| SQLite | `sqlite:////PATH/TO/DB_NAME` |
+| MariaDB (omit pymysql) | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4` |
+| MariaDB (omit pymysql, Socket) | `mysql://user:password@SERVER_IP/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4` |
+| MySQL | `mysql://SERVER_IP/DB_NAME?charset=utf8mb4` |
+| MySQL | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4` |
+| MySQL (Socket) | `mysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4` |
+| MariaDB | `mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8mb4` |
+| MariaDB | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4` |
+| MariaDB (Socket) | `mysql+pymysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4` |
+| PostgreSQL | `postgresql://SERVER_IP/DB_NAME` |
+| PostgreSQL | `postgresql://user:password@SERVER_IP/DB_NAME` |
+| PostgreSQL (Socket) | `postgresql://@/DB_NAME` |
+| PostgreSQL (Custom socket dir) | `postgresql://@/DB_NAME?host=/path/to/dir` |
+| MS SQL Server | `mssql+pyodbc://username:password@SERVER_IP/DB_NAME?charset=utf8;DRIVER={DRIVER};Port=1433;` |
diff --git a/source/_integrations/snmp.markdown b/source/_integrations/snmp.markdown
index bd75bf13533..d2796785792 100644
--- a/source/_integrations/snmp.markdown
+++ b/source/_integrations/snmp.markdown
@@ -34,6 +34,7 @@ The following OID examples pull the current MAC Address table from a router. Thi
| Aruba | IAP325 on AOS 6.5.4.8 | `1.3.6.1.4.1.14823.2.3.3.1.2.4.1.1` |
| BiPAC | 7800DXL Firmware 2.32e | `1.3.6.1.2.1.17.7.1.2.2.1.1` |
| DD-WRT | unknown version/model | `1.3.6.1.2.1.4.22.1.2` |
+| IPFire | 2.25 | `1.3.6.1.2.1.4.22.1.2` |
| MikroTik | unknown RouterOS version/model | `1.3.6.1.4.1.14988.1.1.1.2.1.1` |
| MikroTik | RouterOS 6.x on RB2011 | `1.3.6.1.2.1.4.22.1.2` |
| OpenWrt | Chaos Calmer 15.05 | `1.3.6.1.2.1.4.22.1.2` |
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index d86d7571316..8d59e94989e 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -36,6 +36,26 @@ For many of these devices you need an access token, the first section will descr
## Retrieving the Access Token
+### Xiaomi Cloud Tokens Extractor
+
+One of Home Assistant users wrote a tokens extractor tool, which is currently the easiest way to retrieve tokens for all devices assigned to Xiaomi account.
+[In the repository](https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor) there's executable for convenient use on Windows or Python script to be run on any platform. If you do not wish to run executable, then you can run it using the source code:
+
+1. Install requirements:
+
+ ```bash
+ pip3 install pycryptodome pybase64 requests
+ ```
+
+2. Run script
+
+ ```bash
+ python3 token_extractor.py
+ ```
+
+3. Provide e-mail address or username for Xiaomi's account, password and country of the account (most used: CN - China Mainland, DE - Germany etc.)
+4. Script will print out all devices connected to the account with their IP address and tokens for use in Home Assistant.
+
### Xiaomi Home app (Xiaomi Aqara Gateway, Android & iOS)
1. Install the Xiaomi Home app.
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 3f79b87978c..c1c57c30ec5 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -125,7 +125,7 @@ Press `Submit`. The success dialog will appear or an error will be displayed in
If you are use ZiGate or Sonoff ZBBridge you have to use some special usb_path configuration:
- ZiGate USB TTL or DIN: `/dev/ttyUSB0` or `auto` to auto discover the zigate
-- PiZigate : `pizigate:/dev/serial0`
+- PiZigate : `pizigate:/dev/ttyS0`
- Wifi Zigate : `socket://[IP]:[PORT]` for example `socket://192.168.1.10:9999`
- Sonoff ZBBridge : `socket://[IP]:[PORT]` for example `socket://192.168.1.11:8888`
@@ -224,6 +224,19 @@ To add a new device:
1. Reset your Zigbee devices according to the device instructions provided by the manufacturer (e.g., turn on/off lights up to 10 times, switches usually have a reset button/pin). It might take a few seconds for the devices to appear. You can click on **Show logs** for more verbose output.
1. Once the device is found, it will appear on that page and will be automatically added to your devices. You can optionally change its name and add it to an area (you can change this later). You can search again to add another device, or you can go back to the list of added devices.
+### Using router devices
+
+You use routers to increase the number of Zigbee devices that can be used in a network. The total number of Zigbee devices that you have on a Zigbee network depends on a few things, but you should know that Zigbee coordinator hardware and firmware only plays a larger role in Zigbee networks with a lot of devices. More important is how many directly connected devices ("direct children") versus how many routers are connected to your Zigbee coordinator. Zigpy library which ZHA uses has an upper limit is 32 direct children but if your Zigbee coordinator hardware is powerful enough then you can still have hundreds of Zigbee devices connected through routers.
+
+Even the least powerful Zigbee coordinator hardware supported by Zigpy is CC2530/2531 and its default firmware, only supports 20 devices connected directly to the coordinator. However, by having routers in your Zigbee network the mesh network size can be extended. You can assume that most, if not all mains/AC-powered devices, e.g., wall-plugs and always powered-on lightbulbs in your Zigbee network, can serve as a router. You can even use CC2530/CC2531 with router firmware, as additional routers (which in their turn have a limit of 21 devices).
+
+An example using the default CC2531 coordinator firmware + two CC2531 routers; Your device limit will be:
+
+- Coordinator: 15 devices - 2 routers = 13
+- Router one: + 21 devices
+- Router two: + 21 devices
+- Total device limit = **55 devices**
+
## Troubleshooting
To help resolve any kinks or compatibility problems by reporting bugs as issues with debug logs. Please follow the instructions in this troubleshooting section.
diff --git a/source/_posts/2020-11-30-community-highlights.markdown b/source/_posts/2020-11-30-community-highlights.markdown
new file mode 100644
index 00000000000..f2e55321fac
--- /dev/null
+++ b/source/_posts/2020-11-30-community-highlights.markdown
@@ -0,0 +1,133 @@
+---
+title: "Community Highlights: 7th edition"
+description: "A 'Dad status' board, illuminating the steps of your stairs and the most beautiful thermostat you've ever seen"
+date: 2020-12-01 00:00:00
+date_formatted: "December 1, 2020"
+author: Franck Nijhof
+author_twitter: frenck
+categories: Community
+og_image: /images/blog/2020-12-01-community-highlights/social.png
+---
+
+The 7th edition of the Home Assistant Community Highlights! Some interesting
+things popped up around our community, we thought was worth sharing.
+
+Troy Hunt has jumped into our wonderful world and shared his journey
+in a blog post series. Some nice examples on a DIY solution for mounting a
+wall tablet and how to arm your alarm with a toothbrush!
+
+## Troy Hunt is unraveling IoT using Home Assistant
+
+If you have never heard of Troy Hunt before, he is a web security specialist
+and mostly known for creating ["Have I Been Pwned"][hibp] ([Home Assistant integration](/integrations/haveibeenpwned/)).
+
+Troy has been diving into the world of IoT and started automating his home,
+using... Home Assistant!
+
+
+ I'm massively impressed with HA and nothing else I've seen along my IoT journey comes even close to comparing. If you're going to do IoT in any meaningful way, you start with HA.
+ Troy Hunt
+
+
+In 5 blogs, he writes about his journey in the big
+world of IoT:
+
+- [Part 1: It's a Mess... But Then There's Home Assistant][p1]
+- [Part 2: IP Addresses, Network, Zigbee, Custom Firmware and Soldering][p2]
+- [Part 3: Security][p3]
+- [Part 4: Making it All Work for Humans][p4]
+- [Part 5: Practical Use Case Videos][p5]
+
+The 5th part Troy made 11! short and quick videos, showing actual use cases in
+his home. Really cool and inspiring!
+
+
+
+
+
+[hibp]: https://haveibeenpwned.com/
+[p1]: https://www.troyhunt.com/iot-unravelled-part-1-its-a-mess-but-then-theres-home-assistant/
+[p2]: https://www.troyhunt.com/iot-unravelled-part-2-ip-addresses-network-zigbee-custom-firmware-and-soldering/
+[p3]: https://www.troyhunt.com/iot-unravelled-part-3-security/
+[p4]: https://www.troyhunt.com/iot-unravelled-part-4-making-it-all-work-for-humans/
+[p5]: https://www.troyhunt.com/iot-unravelled-part-5-practical-use-case-videos/
+
+## Framing a wall-mounted tablet
+
+If you are a bit like me, you probably want to wall mount a tablet someday
+(or you already have it of course 🥴). Doing that in a nice, elegant and pretty
+way is often the hard part. Especially if you only have brick walls (like me),
+which makes it hard to hide cable or recess the tablet.
+
+Next I came across 2 posts on on the [Home Assistant subreddit][reddit], which,
+if you haven't done already, should totally join.
+
+This one popped up, made by ialex87, which uses a
+[3D printed frame from Thingiverse][stl] to which he glued a wooden frame
+to make it look like a photo frame.
+
+
+Nothing much, but my honest work! from r/homeassistant
+
+
+Next, Invinciberry shared his version:
+
+
+Now let's wall mount this thing. from r/homeassistant
+
+
+
+Both look very slick! Thanks for sharing!
+
+[stl]: https://www.thingiverse.com/thing:2853298
+
+## Arm your alarm by brushing your teeth...
+
+Automatically arm your alarm, when Home Assistant detects you are
+using your toothbrush... Why? Because we can! 😎
+
+
+
+
+## Home Assistant Conference
+
+This isn't a highlight yet, but without a doubt, it is definitely is going to
+become one of the highlights of this year: The Home Assistant Conference.
+
+Sunday, 13 December, we'll be looking back at last year; but more importantly,
+lots of great talks are planned by speakers from our community about all
+different kinds of subjects:
+
+

+
+Above all, some new and exciting stuff is going to be announced as well! So,
+ensure you don't miss it.
+
+
Get your $1 ticket
+
+Or, check the [Home Assistant Conference page](/conference) for other ways on
+how to watch.
+
+## Got a tip for the next edition?
+
+Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?
+
+[Click here to send us your Community Highlight suggestion](/suggest-community-highlight).
+
+Also, don't forget to share your creations with us via Social Media:
+
+- Twitter it! Be sure to mention [@home_assistant][twitter]
+- Share it on our [Facebook group][facebook-group]
+- Post it to our [subreddit][reddit]
+- Tag [@homeasssistant][instagram] on Instagram
+- Or via chat, drop us a line in the [#lounge at Discord][chat]
+
+See you next edition!
+
+[chat]: https://www.home-assistant.io/join-chat
+[facebook-group]: https://www.facebook.com/groups/HomeAssistant/
+[instagram]: https://www.instagram.com/homeassistant/
+[reddit]: https://www.reddit.com/r/homeassistant
+[twitter]: https://www.twitter.com/home_assistant
diff --git a/source/conference/index.markdown b/source/conference/index.markdown
index 0d63b96748d..6d95518a4d9 100644
--- a/source/conference/index.markdown
+++ b/source/conference/index.markdown
@@ -30,9 +30,17 @@ To be notified when the live stream is online, [visit YouTube](https://www.youtu
Recordings of the keynote and all tracks and sessions will be made available on YouTube after the conference.
-## Speakers & Schedule
+## Keynotes & Talks schedule
-The speakers and talks schedule is currently being finalized. Most of the
-schedule is complete and listed on our Hopin page.
+The line-up consists of 16 talks in between 2 keynotes: an opening and a closing
+keynote.
+
+The opening keynote will mainly focus on what has been done the last year. The
+closing keynote will be spoiling all kinds of new goodness that is coming.
+
+

+
+The schedule is also available on our Hopin page. Which has more information
+available about our speakers.
[View the Home Assistant Conference schedule on Hopin](https://hopin.to/events/home-assistant-conference#schedule)
diff --git a/source/images/blog/2020-12-01-community-highlights/social.png b/source/images/blog/2020-12-01-community-highlights/social.png
new file mode 100644
index 00000000000..4b6498f8214
Binary files /dev/null and b/source/images/blog/2020-12-01-community-highlights/social.png differ
diff --git a/source/images/conference/schedule.png b/source/images/conference/schedule.png
new file mode 100644
index 00000000000..c543059f10a
Binary files /dev/null and b/source/images/conference/schedule.png differ
diff --git a/source/lovelace/actions.markdown b/source/lovelace/actions.markdown
index 34592a1ac43..c1987a35b9f 100644
--- a/source/lovelace/actions.markdown
+++ b/source/lovelace/actions.markdown
@@ -199,8 +199,8 @@ double_tap_action:
confirmation:
text: Are you sure you want to restart?
exemptions:
- - x9405b8c64ee49bb88c42000e0a9dfa8
- - 88bcfbdc39155d16c3b2d09cbf8b0367
+ - user: x9405b8c64ee49bb88c42000e0a9dfa8
+ - user: 88bcfbdc39155d16c3b2d09cbf8b0367
service: script.restart
```