New User Interfaces

About 2 weeks ago I decided that something had to be done about the (number of) User Interfaces in our house. Especially for controlling the roller shutters from upstairs there was a need for a 2nd user interface. The touchscreen in the livingroom is being used a lot and we wanted the same convenience upstairs as well.

I’ve been tinkering with various touch screens on Arduino, FEZ Panda and the like, but I didn’t really like the size (~3″) and counting all the costs for a setup like that made me wonder if there could be a better choice. Why not buy a cheap 10″ Android tablet and make a web based interface? HTML5, websockets, ….

Setting Thermostat from smartphone

So I started looking around on the web for the right tools and I found jQuery Mobile.

The demos looked good, so I started creating some basic pages while keeping an eye open for a cheap tablet.

The first (test-)page I made was for changing the temperature setpoint of our central heating, just to see how hard it would be for me as a non-web-developer to create something that looked OK.

A slider, radiobuttons and an OK button were made very easy; it felt as if I’d done this before, but I haven’t – it’s very simple!

And if you look at the code (it’s great to create pages this way) I decided that jQuery Mobile will be it for the user interfaces I’m going to add.

And just look at the code; ain’t it sweet? 😉

<div data-role="page" id="tstat">
	<div data-role="header">
	  <h2>Thermostaat</h2>
	</div><!-- /header -->
	<div data-role="content">
	  <br />
    <label for="slider-1">Hoe warm wil je het hebben jochie:</label>
    <input type="range" name="slider-1"
    id="tstatslider" value="20" min="15" max="25" step="0.5"
    data-highlight="true" />
    <br />
    <fieldset data-role="controlgroup" data-mini="false">
    	<input type="radio" name="radio" id="radio-1"
    	value="choice-1" checked="checked" />
    	<label for="radio-1">Tijdelijk (tot volgend
    	  programma)</label>
    	<input type="radio" name="radio" id="radio-2"
    	value="choice-2"  />
    	<label for="radio-2">Continu</label>
    </fieldset>
    <br />
    <input type="submit" value="OK" onClick='do it;'
    data-icon="check" />
	</div><!-- /content -->

	<div data-role="footer" data-position="fixed">
  <div data-role="navbar">
		<ul>
			<li><a href="#home">Home</a></li>
			<li><a href="#">Weer</a></li>
			<li><a href="#">Cams</a></li>
			<li><a href="#luiken">Rolluiken</a></li>
		</ul>
	</div><!-- /navbar -->
	</div><!-- /footer -->
</div><!-- /page -->

Yep, this is definitely what I want and what I need!
So I created some more pages (lights, the roller shutters):

And right now I’m testing this user interface, cause I want to know how well it performs compared to our VB.Net touchscreen application in the living room, before I spend more time on it. First results are very good – 10 times faster than X10 😉

There are some issues I have to work on; things like the buttons not giving an audible feedback, making it secure so that this can also be used on our smartphones, etcetera.

But for now I’m happy with how this working out so far. A tablet has been bought too yesterday, so it looks like we’ll have our user interface upstairs real soon!

Sending notifications

Yesterday, late in the evening, I saw an intersting post on the Domoticaforum; airox added  (among many other things)  a way to send notifications from his Home Automation system to Android devices by using the Notify My Android (NMA) platform. Hey, that sounds interesting; I just had to check it out today!

After registering and generating the first API key, I could start sending my first notification. The API is simple to use, and the code I had to write for my (home-brew) Domotica system was too:Delphi code for using NMA

 

I installed the NMA App from Google Market on both my HTC Desire HD and my Asus Transformer TF101 and sent my 1st notification. Cool! Now I can choose between SMS, Notifications and email, and send more messages to my phone than I currently do. For example, I send a SMS to my mobile every time the doorbell rings, cause I like to know about deliveries of new goodies 🙂 Some other, less important events, are sent by email. Now a third option is available, which looks really cool, if I may say so 😉

 Notify My Android

 

 

Hello Android

Something new to explore! 🙂

Yesterday I got my new Android cell phone, after waiting for it for 6 weeks.  It’s bigger, faster, loaded with apps and gadgets, widgets and stuff. Why Android? Cause the last 2 years I’ve been walking around with a Windows mobile and I was very disappointed about it; it never did what I wanted it to do: irresponsive to buttons, very very slow, this phone had all the features I hated so much that I already decided that my next phone would be something completely different; no more Windows for me. Actually it was a disgrace for the mobile phone industry – it should never have been sold!

Symbian seems to be a dead end, so that’s a no-go as well. Android or Apple were left, and Android won. Both will certainly have their own pro’s and con’s, but for me the most important thing (and which made me decide for Android) was the more ‘open’ character of the Android platform; I want to be able to run my own software on my phone and not be forced to use some App Store or jailbreak it to use it the way I want it. With this Android phone, I can use a tool provided by the hardware manufacturer to install an App, or put the App on my webserver and download it from there. Sounds more customer friendly to me – well, for a customer like me, it certainly does.

Picking Android as OS for my new phone means I’ll have to learn Java…although I’ve never done anything with Java before, I hope I’ll be able to learn the basics in a not-too-long timespan, so I can start writing my own Apps.

My ultimate goal is to create my own GPS logger, so that all the other family members at home will know where I am. Yeah, my daughter and son will also get an Android phone some day, if I succeed 🙂

And I would also like to have a nice interface to my Home Automation system of course, but I’m still not sure whether that one will be web based or not – since I’ve also got a iPod Touch, and I would like to keep the number of user interfaces to a minimum.

For now, I will try to find and read some good documentation about developing in Java, about the Android API, etc…; I think that will get me through the next week!

 

Windows Mobile: merging Call information with Home

HTC Touch Diamond

HTC Touch Diamond

Since 1 week i have a new mobile phone, together with a subscription to Internet connectivity for a reasonable price. This opens new area’s to explore 🙂

First thing i did when i got my hands on my new phone, was installing a GPS tracking application called TrackMe. Nice, it works. But i don’t have local access to the GPS tracking data yet..  it’s being stored on a server somewhere else. So before i start using this, first thing to do is create some pages for my own web server and start collecting the data myself. After that i can start doing nice things with all this GPS data.

However, while surfing the net i also found tools that could do things like automatically block incoming calls and other things like that. After some more reading and scratching the surface of developing for Windows Mobile, i decided to try and create my own Windows Mobile App. Primary purpose will be forwarding all my incoming and outgoing mobile phonecalls to my website and merge this information with my Home Call log. That would be great…never loose a phonenumber again 🙂 But first i’ll have to finish some other project…