Blog
Power-up your ESP8266 and ESP32 projects: browser-based installation and configure Wi-Fi via Bluetooth LE
ESP8266 and ESP32 are microcontrollers made by the Chinese company Espressif. Microcontrollers are teeny tiny computers with little processor power, memory and space that can interact with sensors, send infrared commands and many other things.
With the ESP devices Espressif has achieved something formidable: their devices
have Wi-Fi, are compatible with code for the popular Arduino microcontroller
and they are cheap. Like, $5-including-shipping-from-China-cheap
(AliExpress
Quindor and DrZzs playing with an ESP32-based QuinLED running WLED
(YouTube
Microcontrollers are just computers and so are nothing without their software.
Open source software like ESPHome
But these projects all have a common problem: it is difficult to get started. We identified three pain points:
- Installing the software on the microcontroller.
- Connecting the microcontroller to your wireless network.
- Configure the software on the microcontroller.
These pain points stand in the way for creators to reach a wider audience. It’s our mission to make local home automation succeed, and these projects, and all the possibilities that they unlock, are an important part of this.
Today, we are introducing some things to make using microcontrollers easier.
Using terms everybody understands
We are going to start using words that a user understands instead of forcing the technical terms on them. Terms like “firmware” and “flashing” are the correct terminology but for inexperienced users they do more harm than good. They will make the user feel uncomfortable before they even start.
So instead of “upload firmware” we’ve updated the ESPHome dashboard to talk about “installing”. We are encouraging other projects to do the same.
Things will get more technical as a user continues playing with microcontrollers. But this change might just be that little thing why they will actually continue.
ESP Web Tools: Installing projects on your microcontroller via the browser
We have created ESP Web Tools
This works for both the ESP8266 and ESP32 and with any project for these devices. This technology is powered by Web Serial, a web standard for serial communication that is part of Google Chrome and Microsoft Edge.
ESP Web Tools Web has already been adopted as part of the onboarding by
WLED
Learn how to add ESP Web Tools to your website
If you have an ESP32 or ESP8266 device handy, you can try it out right here:
ESP Web Tools uses code
Note: We don’t like to use technology that is not available in all browsers and cannot be made available in other ways. However, in this case the benefits outweigh the cons. We hope that Firefox and WebKit add support for Web Serial in the future.
Improv Wi-Fi: Open standard to provision Wi-Fi credentials via Bluetooth Low Energy
We have created Improv Wi-Fi
For open source firmware there are two popular ways of getting a device to connect to your wireless network. The device sets up a wireless network and you need to connect to it via your phone or laptop, or the user compiles the network and password into the firmware before installing it on the ESP. Both methods are difficult and error prone, they offer a bad user experience.
If you look at off-the-shelf products, you see another approach: send Wi-Fi credentials to the device via Bluetooth Low Energy (BLE). BLE allows the user to get instant feedback if something goes wrong. This technology is used in many products, but there is no open standard that is free to implement. Improv Wi-Fi is an open standard that is free to implement.
Open source projects often host their control interface as a website on the ESP device. Improv Wi-Fi supports this and when provisioning is done, the user can be redirected to a URL to finish onboarding.
Improv Wi-Fi can be used today to provision ESP32 microcontrollers running
ESPHome
Improv Wi-Fi is also available for the web in the form of a button that can be added to your website. This will allow users to configure and set up a device from any browser that supports Web Bluetooth.
If you’ve used the installation button in the previous section but have not yet connected it to the wireless network, you can onboard that device here:
ESPHome Dashboard: simplified and streamlined
With ESPHome
# Example ESPHome configuration
sensor:
- platform: dht
pin: D2
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 60s
The ESPHome Dashboard has been updated with a simplified and streamlined wizard for new configurations. You now enter the name of your project and your Wi-Fi credentials and it will install it on your ESP device via the browser. After that all further updates will happen wirelessly.
ESPHome: embracing projects
We want to make it easy for creators to sell ESPHome powered products that offer a great user experience. ESPHome projects embrace local control and integrate nicely with Home Assistant, and so each extra ESPHome product that our users can buy is a win.
To make it easier to keep creators and users connected once a product is
installed, projects can now add a project identifier and version to their
firmware (docs
The goal is to integrate the projects tighter into the ESPHome dashboard by showing the project’s logo, link to the documentation and issue pages and allow installing updates.
Why we build this
Home Assistant’s mission is to make local home automation a viable alternative to cloud based solutions and accessible to everyone.
To make this mission a reality, we started the company Nabu Casa. Together with the community, Nabu Casa develops Home Assistant and ESPHome and is funded solely by people that support this mission. No investors or loans.
If you want to help fund our work, subscribe to Home Assistant Cloud
Community Highlights: 25th edition
The 25th edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, which we thought was worth sharing.
Also, keep an eye out for the ESPHome release next week Wednesday. We’re going to have some great announcements!
Do you want to share something for the next edition? Information on how to share.
./Klaas
Intern on Home Assistant Energy
Blueprint of the week
Are there more people who turn their lights on and off at certain times when they go on holiday?
This week’s blueprint is that of timgiwo, who created a blueprint that can repeat the behavior of your lights from the past week, so it seems like you are still at home. Try it out! Read more about it on the community forum or install this automation in your instance with a click on the My button!
Slider Button Card
Mattieha
Floorplan Dashboard
This week again we have a new Lovelace dashboard for the necessary portion
of inspiration 😄 This time the one from theone11
Would you also like your dashboard to be in the community highlight? Drop it
on Reddit
Ispindel
Between the community submissions, we came across a nice project
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.
Also, don’t forget to share your creations with us via Social Media:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Home Assistant OS Release 6
Home Assistant OS 6.0 stable is available now!
Highlights:
-
OS Agent for better OS integration with Supervisor
-
Support for additional Wi-Fi and Bluetooth devices
-
Smaller virtual machine disk images
-
Improved: Generic x86-64 system support
Table of contents
Operating System Changes
OS Agent
Operating System release 6 comes with a new, Go written daemon called OS Agent. This allows the Supervisor to access more aspects of the OS. One such aspect is to move the data to an external data disk or wipe data to start over without reinstalling. Note however that at this point, the required logic in the Supervisor and Frontend is still being developed.
Under the Hood
Under the hood, the OS was updated to the latest upstream Linux 5.10 kernel as well as Buildroot 2021.02.1. The latest Buildroot release brings tons of new software versions along with bug and security fixes. Some key components which received an update were systemd 247 and the Docker Container Engine 20.10.6.
Other Changes
- The short name of the OS used throughout the software stack was renamed to “haos”. From a users perspective not much changes, but it leads to new file names.
- The Home Assistant CLI is now started on tty1 instead of the login prompt. The HA CLI banner shows the IP and other device information without the need to attach a keyboard to login.
- The default shell of the root user is now the Busybox ash. This allows to use scp and similar tools using SSH.
- The system start is now delayed until the system time has been synchronized with an NTP server. This avoids connection issues to SSL/TLS enabled servers when the system time is off. In practice, the delay should only be a few seconds. The system proceeds with startup after 90s in case the NTP server was not reachable (e.g. if no Internet connectivity is available).
Device Support
Raspberry Pi
All Raspberry Pi versions were updated to use the Linux Kernel 5.10 from the Raspberry Pi team, just like Raspberry Pi OS. The latest Bluetooth firmware for CYW43455 (Raspberry Pi 3 B+/4) with security fixes is now part of the Raspberry Pi images.
Generic x86-64
In Home Assistant OS 6 the board/image “Intel NUC” was renamed to “Generic x86-64”. Existing “Intel NUC” installation will automatically migrate to the “Generic x86-64” image on update.
Already with OS 5 the “Intel NUC” image was usable for most UEFI capable x86-64 systems. With the rename that fact is emphasized. Home Assistant OS is open to changes to add drivers to extend support for other x86-64 platforms. However, keep in mind that we don’t have access to all x86-64 hardware, so support for devices is on a best effort basis.
Other Changes:
-
The Intel IGC network driver supports Intel network cards such as I225-LM/I225-V used on some newer Intel NUC devices.
-
With Home Assistant OS 6 the latest version of the Barebox bootloader 2021.05.0 which fixes boot from hard disks larger than 2TB.
-
The ACPI kernel driver for Thinkpad devices is enabled.
Open Virtualization Appliance
The virtual disk images are now built from a sparse file as source, which leads to smaller effective disk image sizes. Disk images are now also distributed in the more common zip file format (except the qcow2 images which are mostly used on Linux, they continue to be in the xz compression format).
By default, the image now has a serial console enabled which is useful to access Home Assistant OS on headless host systems.
Additional Wi-Fi and Bluetooth Device Support
Ralink rt27xx/rt28xx/rt30xx, as well as Realtek 87xx/88xx devices, are now supported on boards that don’t have onboard Wi-Fi/Bluetooth. This is also true for the OVA image for virtualized environments (when using hardware passthrough functionality). For the OVA image, also Intel firmwares are now part of the image so that Intel Wi-Fi/Bluetooth devices can be used in passthrough mode as well.
Homematic IP Support
@jens-maus
Google Coral PCIe AI Accelerator Support
@ryddler
That’s all Folks! Now go out and update!
Community Highlights: 24th edition
The 24th edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, which we thought was worth sharing.
Do you want to share something for the next edition? Information on how to share.
./Klaas
Intern on Home Assistant Energy
Blueprint of the week
I think this situation is familiar to many parents: your children who get out of bed too early and who you would like to learn when it is the right time to get out of bed.
This week’s blueprint is that of koosvanw, who created a blueprint for the above situation that works with a light that can change color and where the brightness can also be adjusted. Try it out! Read more about it on the community forum or install this automation in your instance with a click on the My button!
Threedy card
Do you have a 3D printer and are you not quite sure how to display it in a
beautiful way in your Lovelace dashboard? Then try this card from
dangreco
ESPHome weather station
Have you always wanted to build a weather station in your garden? Then
try the ESPHome variant of hugokernel
Garage fingerprint
This week we also came across something cool that was shared on our subreddit
Do you want to know more about it? Then also check this forum topic.
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.
Also, don’t forget to share your creations with us via Social Media:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
2021.6: A little bit of everything
A little bit of everything. That is probably the best way to describe this release. It is a packed release, with a lot of small new features everywhere!
Sonos got quite a bit of love, Hue now supports push updates, the UI has a lot of usability tweaks, MQTT added quite a few attributes, themes can now support modes… seriously, I can go on forever with this list.
So, no new big features (something might be cooking for the next release…), but a nice release that has something for everybody. Definitely worth scanning the all changes section for your favorite integrations.
../Frenck
- Support for custom Dark mode themes
- Collapsed attributes
- Time format settings
- Disable polling updates on any integration
- Network integration
- Other noteworthy changes
- New Integrations
- New Platforms
- Integrations now available to set up from the UI
- Release 2021.6.1 - June 3
- Release 2021.6.2 - June 4
- Release 2021.6.3 - June 7
- Release 2021.6.4 - June 11
- Release 2021.6.5 - June 15
- Release 2021.6.6 - June 20
- If you need help…
- Backward-incompatible changes
- Farewell to the following
- All changes
Support for custom Dark mode themes
Previously, all themes automatically used our light theme as the base to build on. As of today, themes can be based on our default dark theme as well!
Not only that, @spacegaier
Screenshot of a custom theme supporting both light & dark mode.
If you are a theme developer, you can find more information on how this works in the frontend documentation.
Oh, and of course, all your existing themes will still just work as before.
Collapsed attributes
Some entities provide quite a few attributes and those show up in the user interface. Most of the time, you don’t need to those and often contain technical data that only confuse or clutter.
To unclutter the more information entity dialog from these attributes a bit, the attributes will now show up collapsed into a bar and can be revealed with a click.
Screen recording of the collapsible entity attributes.
Time format settings
A couple of releases back, we added the possibility to select the number format that Home Assistant uses when showing numbers. Awesome! But… what about the formatting of time?
That question was raised a lot that release and many of you requested the same feature for time formatting, for example, if one prefers a 24-hour format.
Well, you can thank @spacegaier
Screenshot of new time format setting.
You can find this new setting in your user profile.
Disable polling updates on any integration
One returning feature request, for many integrations, is adding controls for tuning the polling interval an integration uses.
For example, if an integration has an API that needs to be paid for and you don’t need too many updates, it can be a cost saver to use a slower polling interval.
Another often requested example is things like battery-powered devices, or maybe a device you only want to poll during the day and not during the night.
This release, we add support for disabling polling on every integration via the integration system options; for ALL integrations.
Screenshot of the system options of an integration showing the disable polling option.
Wait? Disable polling?! Yes :)
So, there are many different requests on, for example, changing polling rates (also known as scan interval), but also requests for polling on a schedule, or, only based on other input (e.g., triggered by a motion sensor).
Therefore, we decided to provide the maximum flexibility for any use case you
can come up with. Disabling polling makes Home Assistant stop polling
automatically. However, you can use the
homeassistant.update_entity
service on those entities to trigger a poll for information.
This means, once you’ve disabled polling for an integration, you can create automations and completely customize when you poll that integration from that point on. All based on your own schedule, conditions or triggers.
Network integration
This release adds a new Network integration, created by @bdraco
It also provides you a single place to tell Home Assistant about your network. It is an advanced feature and thus will only show up if you have advanced mode enabled on your user profile.
You probably don’t need to change these settings, by default, Home Assistant will auto-detect the right configuration. However, if you have a more complex network configuration, with multiple network adapters or VLANs, you can now select the interface Home Assistant integrations should use.
Screenshot of new Home Assistant Network settings in the general configuration.
Please note that this is a new feature that needs to be implemented/used by other integrations. At this point, not all integrations will honor these settings yet.
Other noteworthy changes
There is much more juice in this release; here are some of the other noteworthy changes this release:
- The Modbus has been receiving lots and lots of love from @janiversen
, a big shout out to him for continuously improving it for the past weeks! - The Hue integration now supports push updates! Blazing fast response times if you are using that platform.
-
@balloob
and @bdraco have been working on replacing date/time/timezone handling in Home Assistant. Right on time. - All services, for all integrations, now have updated information for their
service calls. This means all service calls now have a nice new UI.
Amazing job @tkdrob
! - Support for the new colors modes is slowly expanding. This release Elgato, Z-Wave JS, KNX and MQTT have added support.
- Sonos got some love from @mountainsandcode
, @AaronDavidSchneider and @jjlawren . A lot of fixes and improvements, but also added support for controlling the state of the hardware buttons and controlling your Sonos alarms! - The developer state tools, now shows the
name of the entity additional to the entity ID. Searching/filtering the list
now supports wildcards (
*
). Thanks, @spacegaier! - Thanks to @PeteBa
, there is now a recorder.purge_entities
service that allows you to purge data from the recorder database for specified entities. - Watson TTS has added a bunch of new voices to choose from, thanks @demikl
! - Ding dong! @bdraco
added support for doorbell buttons to the HomeKit Controller integration. - BMW Connected Drive, now provides a bunch of sensors about your last trip.
Thanks, @EddyK69
! -
@emericklaw
added a new feature that allows you to duplicate a scene! - My Home Assistant now supports linking to the Ingress interface of an add-on!
- Light templates now have support for effects, transitions and a bunch
more properties, thanks to @jacekpaszkowski
! - VeSync now supports Etekcity light bulbs, thanks @sdrapha
. - The universal media player now supports overriding a lot of commands! Thanks
for adding that @Drafteed
! -
@mdz
continues expanding the SmartTub integration adding service to change filtration settings and snoozing reminders. - The Elgato integration now supports the new Elgato LED strips.
- If you are into Oracle DB, @mciupak
made sure our recorder can now use that. - Z-Wave JS integration now shows progress when adding or re-interviewing a
device. Thanks, @cgarwood
! - The Nexia integration now also supports controlling American Standard
thermostat, added by @bdraco
. -
@Drafteed
added support for changing channels on your LG NetCast TV, thanks! -
@mib1185
ensured that the UX for counters and number helpers look nice!
New Integrations
We welcome the following new integrations this release:
-
Bosch Smart Home Controller, added by @tschamm
-
Garages Amsterdam, added by @klaasnicolaas
-
Kraken, added by @eifinger
-
Meteoclimatic, added by @adrianmo
-
Nettigo Air Monitor, added by @bieniu
-
Network configuration, added by @bdraco
-
SIA Alarm Systems, added by @eavanvalkenburg
-
Syncthing, added by @zhulik
-
System Bridge, added by @timmo001
-
Wallbox, added by @hesselonline
New Platforms
The following integration got support for a new platform:
-
Goal Zero Yeti now has switches to control outlets, added by @tkdrob
-
OmniLogic added switches to control relays and pumps, done by @djtimca
-
Mazda Connected Services can now control locks, thanks to @bdr99
-
AVM FRITZ!Box Tools added a binary sensor to indicate connectivity and
sensors for uptime and external IP. Added by @chemelli74
-
Modbus now supports lights & fans, added by @vzahradnik
-
Sonos now has switches to control enable/disable alarms,
added by @AaronDavidSchneider
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
Buienradar, done by @RobBie1221
-
Growatt, done by @indykoning
Release 2021.6.1 - June 3
- Fix last activity consideration for AVM Fritz!Tools device tracker (@mib1185
- #51375 ) (fritz docs) - Handle Sonos connection issues better when polling (@jjlawren
- #51376 ) (sonos docs) - Fix no value error for heatit climate entities (@raman325
- #51392 ) (zwave_js docs) - Fix Tibber Pulse device name and sensor update (@Danielhiversen
- #51402 ) (tibber docs) - Fix shopping list “complete all” service name (@spacegaier
- #51406 ) (shopping_list docs) - Bump aiohomekit to 0.2.67 (fixes #51391) (@Jc2k
- #51418 ) (homekit_controller docs) - Bump zwave-js-server-python to 0.26.1 (@raman325
- #51425 ) (zwave_js docs) - Update frontend to 20210603.0 (@bramkragten
- #51442 ) (frontend docs)
Release 2021.6.2 - June 4
- Hot fix version of Apply modbus interval patch (@balloob
- #51487 ) (modbus docs) - Update to iaqualink 0.3.90 (@flz
- #51452 ) (iaqualink docs) - Retry isy994 setup later if isy.initialize times out (@bdraco
- #51453 ) (isy994 docs) - xknx 0.18.3 (@farmio
- #51277 ) (knx docs) - Update xknx to version 0.18.4 (@farmio
- #51459 ) (knx docs) - Bump aiolyric to 1.0.7 (@timmo001
- #51473 ) (lyric docs) - Improve logging for SamsungTV (@chemelli74
- #51477 ) (samsungtv docs) - Upgrade elgato to 2.1.1 (@frenck
- #51483 ) (elgato docs) - Protect our user agent (@balloob
- #51486 )
Release 2021.6.3 - June 7
- Use a single job to ping all devices in the Broadlink integration (@felipediel
- #51466 ) (broadlink docs) - Fix loop in tod binary sensor (@bdraco
- #51491 ) (tod docs) - AsusWRT fix keyerror when firmver is missing from info (@timmo001
- #51499 ) (asuswrt docs) - Handle missing options in foreign_key for MSSQL (@bdraco
- #51503 ) (recorder docs) - Fix missing Tibber power production (@Danielhiversen
- #51505 ) (tibber docs) - Bump garminconnect_aio to 0.1.4 (@cyberjunky
- #51507 ) (garmin_connect docs) - Bump pyialarm to 1.8.1 (@RyuzakiKK
- #51519 ) (ialarm docs) - Improve log message when zone missing in geolocation trigger (@exxamalte
- #51522 ) (geo_location docs) - Ensure host is always set with samsungtv SSDP discovery (@bdraco
- #51527 ) (samsungtv docs) - Bump aiorecollect to 1.0.5 (@bachya
- #51538 ) (recollect_waste docs) - Fix garmin_connect config flow multiple account creation (@cyberjunky
- #51542 ) (garmin_connect docs) - Bump dwdwfsapi to 1.0.4 (@stephan192
- #51556 ) (dwd_weather_warnings docs) - Increase isy setup timeout to 60s (@bdraco
- #51559 ) (isy994 docs) - Fix Sonos restore calls (@jjlawren
- #51565 ) (sonos docs) - Update builder to 2021.06.2 (@pvizeli
- #51582 ) - Fix deprecated value_template for MQTT light (@emontnemery
- #51587 ) (mqtt docs)
Release 2021.6.4 - June 11
- Fix Sonos battery sensors on S1 firmware (@jjlawren
- #51585 ) (sonos docs) - Handle missing section ID for Plex clips (@jjlawren
- #51598 ) (plex docs) - Reduce ovo_energy polling rate to be less aggressive (@blastoise186
- #51613 ) (ovo_energy docs) - Do not configure Shelly config entry created by custom component (@bieniu
- #51616 ) (shelly docs) - Fix Onvif get_time_zone from device (@pszafer
- #51620 ) - Ensure samsungtv reloads after reauth (@bdraco
- #51714 ) (samsungtv docs) - Fix race condition in samsungtv turn off (@bdraco
- #51716 ) (samsungtv docs)
Release 2021.6.5 - June 15
- Replace garminconnect_aio with garminconnect_ha (@cyberjunky
- #51730 ) (garmin_connect docs) - Bump pydaikin, fix airbase issues (@fredrike
- #51797 ) (daikin docs) - Add httpcore with version 0.13.3 (@ludeeus
- #51799 ) - Bump pyialarm to 1.9.0 (@RyuzakiKK
- #51804 ) (ialarm docs)
Release 2021.6.6 - June 20
- Fix whois expiration date (@kantselovich
- #51868 ) (whois docs) - Add Omnilogic switch defaults for max_speed and min_speed (@djtimca
- #51889 ) (omnilogic docs) - Bump pyRFXtrx to 0.27.0 (@RobBie1221
- #51911 ) (rfxtrx docs) - Bump pydaikin to 2.4.3 (@fredrike
- #51926 ) (daikin docs) - Fix AccuWeather sensors updates (@bieniu
- #52031 ) (accuweather docs) - Fix double subscriptions for local push notifications (@balloob
- #52039 ) (mobile_app docs) - Catch unexpected battery update payloads on Sonos (@jjlawren
- #52040 ) (sonos docs)
If you need help…
…don’t hesitate to use our very active forums or join us for a little chat
Experiencing issues introduced by this release? Please report them in our issue tracker
Community Highlights: 23rd edition
The 23rd edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, which we thought was worth sharing.
Do you want to share something for the next edition? Information on how to share.
./Klaas
Intern on Home Assistant Energy
Blueprint of the week
This week’s blueprint is all about medication. It may happen that you forget to swallow it, what if you create an automation that sends you a message as a reminder every time? Mati24 has now made a handy blueprint for that, try it out!
Read more about it on the community forum or install this automation in your instance with a click on the My button!
Swiper card
Not enough space on your Lovelace dashboard? Then try the swiper card
Lovelace dashboard
Also this week we have a new Lovelace dashboard for the necessary portion of inspiration 😄
This time the dashboard of DoIGotSkillz
Would you also like your dashboard to be in the community highlight? Drop it on
Reddit
Homegame
Recently we had an item about switching entities in Minecraft, well this
time it’s a game again but in 2D. svendroid
Doesn’t this also remind you of the old Pokemon games from the past? 😅
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.
Also, don’t forget to share your creations with us via Social Media:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Community Highlights: 22nd edition
The 22nd edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, we thought was worth sharing.
Do you want to share something for the next edition? Information on how to share.
./Klaas
Intern on Home Assistant Energy
Blueprint of the week
Are you one of those who always leave the doors open?
Then this week we have a nice blueprint for you! BasTijs has made a blueprint that announces through text-to-speech in the house, that a door is open and only stops when the door is closed again.
Try it out! Read more about it on the community forum or install this automation in your instance with a click on the My button!
Sun card
On our Home Assistant reddit
Collapsed card
Is your Lovelace dashboard overflowing with cards and do you want to
make some free space? Then try the card made by RossMcMillan92
Hyperion - HA bridge
You have those TVs where LEDs are mounted on the back so that the colors of
the TV continue over the wall behind it, this is also called ambilight. If
your TV is not equipped with this, you can also make this yourself through
the Hyperion project
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.
Also, don’t forget to share your creations with us via Social Media:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Community Highlights: 21st edition
The 21st edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, we thought was worth sharing.
Do you want to share something for the next edition? Information on how to share.
./Klaas
Intern on Home Assistant Energy
Blueprint of the week
Imagine, you are listening to music and suddenly you get a call, then of course you first want to turn the music down a bit to understand the person, what if we automate that with a blueprint!
This week’s blueprint is that of JackPoint, which will mute your media player when you receive a call and are at home. Try it out! Read more about it on the community forum or install this automation in your instance with a click on the My button!
Would you rather not have the media player muted but, for example, paused or take another action? More variants can be found on the Blueprint Exchange!
Car Telemetry
A few editions earlier we had shown the dashboard of Make_Itt_Work
Shower Duration
We’ve talked enough about saving energy, but using water efficiently is
just as important. With the project
Finished taking a shower? Then you can hear what your shower time was through a media player.
Mine Assistant
This item is especially nice for the Minecraft players, Andy
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.
Also, don’t forget to share your creations with us via Social Media:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Why Home Assistant doesn't have an external API for integrations
Home Assistant is the world’s largest home automation platform talking with over 1900 different devices and services. Home Assistant works with these via “integrations”.
Each integration runs inside Home Assistant. They convert the data from the device into data that Home Assistant understands and forward commands from Home Assistant back to the device. For this to work a device or service needs to have an application programming interface (API).
It is not possible for a device or service to provide lights, switches or other device types via the Home Assistant API without an integration. It can be faked, but it won’t work correctly. We explicitly did not add this feature because of interoperability.
If Home Assistant were to offer this option, devices and services would no longer be required to create an API for control – they could just implement ours. This creates vendor lock-in, locks other home automation platforms out and hurts the open Internet of Things ecosystem.
You should be able to access your data from your devices without any restrictions. Requiring a specific application to get to your data is not the solution.
Our goal is a home where all smart devices can be managed locally.
This stance will hurt us in the short term because we get less integrations. It is more work for a manufacturer to create an API and a Home Assistant integration.
In the long term the user will win. Devices with local APIs will still work 10 years from now and no one will be held hostage by vendor lock-in because some of their devices only work with Home Assistant.
Note about Home Assistant APIs: Home Assistant does have an API, just not for integrations. It allows you to access all your data in real-time. We also have a data science portal that documents how you can query the historical data stored on disk.
Easier notifications in iOS 2021.5
Notifications are a popular feature of the Companion apps, but the differences between Android and iOS made it painful to use them to their full potential. Starting with today’s release of iOS 2021.5, the vast majority of functionality is now shared across both platforms. As part of this, the notifications documentation has been extensively updated as well.
Actionable notifications
Building actionable notifications for iOS and watchOS no longer requires defining categories in advance of using them; instead, you can include the actions right in the notification. Support for macOS will be included in a future release
Included in the documentation is how to migrate from categories to dynamic actions. Both are still supported in the app at this time, but categories will be removed in the future.
Below is an example script which sends an actionable notification and uses script variables, wait for trigger, and choose to decide what to run.
# In a script's `sequence` or an automation's `actions`
- alias: "Set up action variables"
variables:
# Including 'id' in 'action' allows us to identify this script run
# and not accidentally trigger for other notification actions
action_very: "{{ 'VERY_' ~ context.id }}"
action_mod: "{{ 'MOD_' ~ context.id }}"
- alias: "Send the notification"
service: notify.mobile_app_zac_iphone
data:
message: "Are you hungry?"
data:
actions:
- action: "{{ action_very }}"
title: "Very Hungry"
- action: "{{ action_mod }}"
title: "Moderately Hungry"
- alias: "Wait for a response"
wait_for_trigger:
# We wait for specific actions because we don't want to run for
# any action, only for a response to the one we just sent
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_very }}"
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_mod }}"
- alias: "Handle the response"
choose:
- conditions: "{{ wait.trigger.event.data.action == action_very }}"
sequence:
- service: notify.notify
data:
message: "⚠️ Soylent Launch Incoming"
- service: homeassistant.turn_on
target:
entity_id: switch.soylent_dispenser
- conditions: "{{ wait.trigger.event.data.action == action_mod }}"
sequence:
- service: notify.notify
data:
message: "Anyone want to grab a croissant? -Zac"
This works for both platforms without including any platform-specific logic! Other features around actionable notifications are also shared, including adding a URL to open when picking an action:
actions:
- action: "URI"
title: "View More"
uri: "/lovelace/some-dashboard"
Replacing, grouping, clearing
Replacing existing notifications or threading certain notifications was another difference between platforms, and the iOS-specific versions were a bit less ergonomic, so the Android versions now work for both. You can now use the simpler tag
and group
keys:
- service: notify.mobile_app_<your_device>
data:
message: "The front door is unlocked!"
data:
# replace any existing front_door_lock notifications
tag: front_door_lock
# thread with other doors notifications
group: doors
You can also remove an existing notification by its tag:
- service: notify.mobile_app_<your_device>
data:
message: clear_notification
data:
tag: front_door_lock
Attachments
Attachments no longer require certain categories for dynamic attachment, so you can include streaming playback of a camera for any notification:
- service: notify.mobile_app_<your_device>
data:
message: "Motion detected"
data:
entity_id: camera.outside
Specifying a non-dynamic attachment is a little easier now, allowing you to short-hand the attachment part:
- service: notify.mobile_app_<your_device>
data:
message: "3D Print Complete"
data:
image: /media/local/3dprinter/latest.jpg
You can use video
, image
and audio
. Only image
is supported on Android.
You may have noticed that iOS notifications have file limits; this release adds on-demand downloading of attachments that exceed the size limit or when requested using the lazy
attachment option.
Future areas of improvement
We’re still on the lookout for places of confusion or redundancy in notifications across the iOS and Android apps. What would you like to see improved?