I’m happy to announce that version 0.4 of the Android Thermostat client and server are now both available in the Google Play store. The list of enhancements include:
Bug Fixes - There were several minor issues with version 0.3 that I published a hot fix for in the forum, but hadn’t updated in the official releases until now. They include displaying the wrong target temperature and weather at times as well as slowness on older phones. All of these have been addressed in version 0.4.
New Server Interface - Before the server interface was virtually non-existent since the thermostat is controlled via the client. It’s still very basic, but I added indicators that show the current state of the thermostat and it’s IP address to make it easier to connect to remotely. I also added a button to stop the server, something that was impossible to do without uninstalling in the previous release and to launch the client.
New Client Interface - This is where the majority of the work has been done. It was not intuitive with the previous interface that you had to tap the screen to pull up the menu, so this menu has been completely removed. You can now tap on specific areas of the screen to change those settings without accessing a menu.
All of the settings pages have been greatly simplified and cleaned up. All of the help text that was present before has been moved off to help icons which reduced the size of each screen and improved the alignment making for a much nicer interface.
Lastly, the home screen itself looks significantly different now. It includes the current time and a graphical status bar that shows what today’s schedule is and where you currently are on that schedule. The alignment and font sizes on the other elements have also been standardized.
International Support - After receiving multiple requests, I’ve added international support to this version. You can now choose between Fahrenheit and Celsius for the temperature scale and the Geolocation and weather lookups work from anywhere in the world now. I do need to add an important disclaimer that I’m not familiar with the furnace wiring and voltage standards in other countries, so you’ll need to check this yourself before hooking up the hardware. I just added software support this round.
Web Interface – Using an another Android phone is no longer the only way to remotely control the thermostat. There is now a fully functional web interface that you can use to view the status of the thermostat and change all of the settings. Just use a web browser to pull up port 8080 at the thermostat’s ip address. (http://192.168.1.101:8080/) This should also server as an interface for non android based mobile devices such as iPhones, iPads and Windows phones.
Safety Backup System – Being based on Android, open source and frequently changing, the thermostat control application is more likely to fail than a standard thermostat. I wanted to provide a way to ensure the application failed safely if it does fail, so the house doesn’t get too hot or cold to cause harm to your pets or pipes while you’re away.
I believe this has been accomplished by modifying the firmware on the IOIO to add some code that will act as a backup system. It is designed to maintain a safe temperature range of 45F-95F regardless of what commands it receives from the application. As long as the temperature is within that range, it will run the commands that the phone sends, but if the phone tells it to go outside of that range, the backup system will kick in and override those commands. In addition to just having a second system, this backup code is very minimal, should not change frequently like the application and be much more stable. Of course, no system is foolproof and I have to include the usual ‘use at your own risk’ disclaimer. See the instructions here to update the firmware on your IOIO.
New Logo – I liked the old logo pretty well, but since Honeywell is apparently claiming to own ’round’ when it comes to thermostats, I figured it was best to steer clear of those shenanigans. Thank you to destos for drawing the new logo. His name is Thermo and I think he helps to give a bit of personality to the project.
As always, the code for everything is in our (newly organized) GitHub and any contributions are welcome and greatly appreciated.