Hello everybody! It’s time for the December 2021 release of Android. It’s been a while since the last release of Android as the team has been very busy working on lots of new and exciting features. To start off, we’d like to announce that there is now a Wear OS app that you can find on the Play Store along with today’s release of the Phone app!
In the past few months, the Android repository has seen loads of new contributors doing an amazing job. There is now a Wear OS beta app on the Play Store! A big thank you to leroyboerephin, dshokouhi, JBassett, Kisty, grandson,
SkechyWolf and HunterX86 for all of your hard work! A lot of work went into sharing the code base between the phone and the watch as we wanted the watch to be a standalone experience as well, in case you are away from your phone. The app will remain in beta for several months, but we think it’s ready for you in its current state. The reason we decided to leave it with a beta label for now is because there is more work to be done and some of the underlying libraries that are in use have not yet been made stable.
Starting today, you can either log into the app with the watch or open the phone app and go to the app configuration and log in using the new section with Wear OS settings! Once logged in, you will see a brief loading screen while we prepare your entities. To avoid some of the loading delays we have a favorites feature that allows you to add your most frequently used items, which appear at the top of the app for quick and easy access. You can add / remove these items from the settings screen in the watch app or you can add / remove and change the order using the phone app. We strongly recommend setting up your favorite entities as they will be available while charging.
Screenshot of the Wear OS home screen
The Wear OS app also offers a tile for even faster access to run or toggle your devices without opening the app. You can select up to 7 items to toggle or execute in the settings area of the app. We recommend using custom MDI symbols to easily distinguish between your entities as the default setting makes it difficult to tell them apart when you have 2 lights next to each other.
Wear OS tile screenshot
First support for sensors has also been added! When you log in, the standard battery sensors are registered on your Home Assistant server. The app is waiting for a network connection to provide an update so you don’t have to worry about it being kept connected all the time. Very soon we will be looking at how to add a UI to enable / disable sensors as well as evaluate all current phone sensors and add all that we can!
Note that it is important to make sure that both the phone and the watch are the same version for some of the features to work as expected. Feel free join the beta and help development by finding bugs and submitting feature requests! Keep an eye out for future updates to the Wear OS app!
Screenshot of the Wear OS settings in the phone app
A very large internal feature has also been added to both apps in this version and that is the introduction of websockets! Websockets is one of the many APIs that Home Assistant offers. With this new API, the app can now do cool things like register for entity updates to have instant widgets! Earlier versions of the app relied on Home Assistant’s REST API to do things like getting an entity status or making a service call. With Websockets, the app no longer has to query the server to request entity updates on demand, instead we now receive a constant stream of entity updates. This allows us to keep your widgets updated with the latest or the latest template and also to keep the Android power menu updated. The Wear OS app also benefits from instant updates on the home screen.
GIF with instant updates
There is still a lot of work to be done in terms of websockets, but the good news is that the foundation is in place for more developers to come and take advantage of the API. We’ve already seen some interest and PRs, so I would expect this feature to keep improving over time! Big thanks to JBassett for making it happen!
In this version, many changes have been made to the overall design of the app to better match the design of the Home Assistant front-end design. The status and navigation bar now corresponds to your desired topic. The general loading experience has also been improved to better adapt to the browser loading experience. thanks to LasseRosenow for all of your hard work here!
With the release of Jetpack Compose we decided to start migrating all UI elements to Compose. If you are familiar with Android development, you will remember that the UI is always built with XML and then referenced in your activities / fragments. With Compose, XML is no longer required and building robust user interfaces is a breeze. We find these new libraries to be very easy to use and it has allowed us to improve our internal architecture to make things easier for new and upcoming features.
In the phone app, the entire onboarding experience in Compose has been rewritten, including a brand new splash screen to help first-time users understand what Home Assistant is all about. The notification details page in the notification history has also been updated. The Wear OS home screen is actually created with Compose, including the new settings screens in the Phone app.
Screenshot of the welcome screen
With so many changes since the last update, it’s impossible to list all of the other cool new features, but here’s a list of some welcome improvements:
Screenshot of the media player widget
- Support for cookie-based authentication through duncf
- Setting to always try the internal URL first. This is helpful for those who are eager to leave the site dshokouhi
- Support for entity category and health class in sensors from dshokouhi
Big thanks to everyone involved. Please have these bug reports and feature requests ready! Check out the State of the Open Home address to see what to expect in 2022, and see a live demo of some of the above features!