Visual Interfaces for IOT

So much happening right now – the new Raspberry Pi 3 once again sets the bar with improved performance, Bluetooth and WIFI as standard. With up to 10x the speed of the original Pi we can do even more serious work with these devices.

Please note before proceeding – apparently the Blynk team plan to charge for the use of this app – it is not clear if this means using their server, using a local server or both? And they claim that new widgets will be included in a monthly deal – but WHAT new widgets and in what timescales? – as the Blynk app moves from free to paid I think they will find people want more definition of what is included and when. A one-off fee is one thing – an on-going payment is altogether something else. http://community.blynk.cc/t/blynk-will-introduce-paid-subscription-in-q1-2016/3177

The ESP8266s are looking (depending on which software you use) to be very reliable to – so that is both the central control and peripheral activity side of things more or less in place.

Where we are still falling down IMHO is the visual interface side – that is – remote control by phone. I’m interested only in Android but I’m sure the same applies to IOS.

At the turn of the year it was looking like a neck and neck race between a small number of systems, node-red-contrib-ui for those inclined to doing a spot of programming and Blynk for those who are more concerned with the visuals. I’ve looked at several other packages but to be honest either the visuals were just pretty poor or the technology not too well thought out etc.

We’re not there yet. To my mind the one with the most hope was, until recently node-red-contrib-ui but since January there has been little or no sign of the author and no further developments that I am aware of (though I did hear a rumour that it might become a permanent part of Node-Red – let’s hope this spurs major new development) – this is a great shame as there was a heavy conversation going on with big improvements almost there – and then it all stopped. This is not new – I was convinced at one point that NETIO would be the brave future but development on that seemed to stop some time ago despite being commercial.

That leaves us with Blynk and a few others. Blynk is almost there. It works with the concept of a central server which knows the states of various devices, accepts updates and relays that to the APP. I pushed hard on this to make sure that regardless of whether the App was on or off, the state would be stored and the App would reflect changes when brought back to life. This was considered an edge request by the designers but they implemented it anyway and between that, improvements to the local version of the (small Java) server (which can run on a Raspberry Pi) and some sterling volunteer third party work to bring websocket-based communication back to Node-Red, the App is looking like a clear leader – but not perfect yet.

I recently contacted Blynk and was assured that at some point they will fix the current issue – that being – they expected people to use buttons for ON and OFF scenarios. I’d not twigged to this issue until recently when I finally started putting together a set of Blynk controls for my various gadgets.

One of the items I use a lot in my Node-Red applications is my own BIGTIMER (node-red-contrib-bigtimer) and that can set, say a light, to come on and off at set times during the day – for example coming on at lighting up time and off at midnight. But like all timers – one must have an override facility – and so it is with bigtimer – I can inject text “on”, “off” and “auto” into the input to manually override the timer or send it back to auto.

Well as you can imagine – that is simple to implement with 3 buttons – but having them say “ON” or “OFF” just does not apply – similarly for heating control you might have “up” and “down” buttons.

Blynk say they will not only implement variable text in the buttons but also icon graphics… well, can I put a request in now – if these are to be fixed icons – we need a full set of remote control icons – ie stop, pause, start, ff, rw etc. For text the best option would be freeform…. or NOTHING – text in momentary buttons just doesn’t make sense to me. A change of colour when being pressed is good and they’ve implemented that.

It would be nice if they had a smaller button as well – and the RGB control is just WAY too big – but looking at the alternatives – Blynk are to my mind still ahead of most.

I’ve looked at several alternatives – but right now most just not cutting the mustard. Either too complicated to setup, too limiting, unreliable or just not finished – and that happens a lot. There is just one out there that might just blow Blynk out of the water and you’ll see my videos and this blog commenting in the future – the app is called Imperihome and thanks to a small number of us working together, there is now good support via Node-Red for this App which is available for both IOS and Android – on the surface it blows even Blynk out of the water. Time will tell.

I did try OpenHab a while back. Although good for certain things, I found the lack of UI customization a pain! For example, if I wanted buttons at specific points on the page, I just couldn't.

OpenRemote seems like another alternative, but again it suffers from being "too large" if all you want to use it for is a UI. I'm quite happy - for now - using Node-Red for all the back-end stuff, and just want a nice easy to customise interface.

I've yet to find one yet, though I also thought I had with node-red-contrib-ui

I also did try the OpenHab earlier but I found it hard to set up and understand, not easy to find the information you are looking for either.
I stepped over to Home Assistant which I have run for some months now on my RPI B+. By now I'm quite happy with it, the look of the UI does feel simpler than the OH, but it is quite large development going on to support as many platforms as possible. New platforms is often coming up. For me the the platform support is much more valuable than the look of the UI since I have many different platforms that I want to use in one system.
There is also quite good information about how to set up HA and the platforms all the way from the basics.

I find it hard to imagine why these guys are all working to support as many platforms as poss - when it is surely better to concentrate on a central server like a Pi or something and let that do the work. If they simply support MQTT - most of the devices can talk MQTT.... But - that's just me.

I'm with Pete on this, However with the last Blynk app update. It broke something.

Before the update when you pressed a button the text would only change if the action had taken place. A great way to get feedback. By using node-red you had to link a virtual pin output to an input, if you didn't the text stayed the same. Since the update now any button changes the text regardless.

Took a look at the home assistant site - lots of on off buttons and text - and predefined stuff for commercial items - but I'm not seeing much in the way of gauges, RGB controls etc - am I missing something?

I tried the demo - it's still just a bunch of buttons and text... no really good widgets that I can see like RGB or similar controls... we can do more than that even in node-red-contrib-ui as it stands.... am I missing something?

libyaml is not found or a compiler error: forcing --without-libyaml
(if libyaml is installed correctly, you may need to
specify the option --include-dirs or uncomment and
modify the parameter include_dirs in setup.cfg)

Screenshots appear to me to show buttons and slider control on the right hand side and website says it is a full featured home automation system. Other than that I don't know as I haven't looked at it in any detail.

From what I have read it still needs quite a bit of development work, but is worth keeping an eye on for the future.

With the possible ongoing cost for Blynk, I've spent the day looking back at node red ui and have made a break through, well for me at least. The image below (which I'm not sure will show up in comments) shows :-

A simple node red ui with a button that sends an mqtt message and an icon that updates based on an incoming mqqt message. The sonoff (with my code) simply switches on the relay and outputs a status message.

I have put some inline css in the template so that the white space around each switch is reduced. I haven't found a way to reduce it with the Group Name yet.

Now with a bit of colour added for good measure I think I can now see a way forward.

So - before I re-invent the wheel - I wonder if anyone has made a NODE or function block for Node-Red to talk to Imperihome - save me some work - all looks overwhelming at first sight - but then - also quite interesting - I note a one -off price - better than the monthly fee that Blynk are considering - and they have a colour wheel.... hoping for lots of replies to say - sure - dead easy - here's how to do it 🙂

Hah, that's exactly what I did Paul... then I tried Imperihome node but only found some really complex looking interface to something else. The ideal would be MQTT as it is a doddle to use (and if enough people disagree I'll write a blog to prove how easy MQTT is). Let me know if you get anywhere. This could be fun.

I was VERY heavily into UI - and there was a better version around the corner with superior formatting - then it all went dead - nothing from Andrei at all - even emails fell flat so I figured it was dead. Now if it becomes part of Node-Red that's fine - as long as there is someone with the time, supporting and developing it because visually it isn't a patch on Imperihome or Blynk - but functionally it works a treat.

Welcome

Hi - I'm Pete and this is my technology blog. It is BIG. Use the search box below or check out the archives and other links below - be sure to SHARE what you like using the social media buttons and please subscribe to my YouTube channel http://www.youtube.com/PeterScargill

Please register or log in - the top menu changes a lot when you are part of the party... and once in, don't forget to tick the box so you will get email follow-ups to comments.

I am tied to no organisation - I do this for the joy of learning. Maintaining a blog of this size takes a lot of work and I hope you find my contributions useful - if you want to help fund my gadget habit or buy me a coffee - here is a link.

Disclaimer: Because I have no idea of your level of technical skill or the requirements of your country laws in terms of electricity supply etc., I accept no responsibility for any damage caused through following advice in these pages. When dealing with mains voltages you should satisfy yourself that whatever you are doing is safe and if unsure, seek advice from someone who is sure.

Notice: I'm always happy to offer advice on stuff I've written - and indeed take advice. If I can help in any way just let me know but PLEASE don't ask me how to program in C/PASCAL/NODE/etc. There are many resources out there - if you want to program and can't - there's always Google.

Newsletter

The blog will send you occasional emails containing links to recent posts. No ads and your email will not be given to third parties. There's an un-subscribe link on each email. Invalid names will be deleted.

Links

EE Times | Electronic Engineering TimesEE Times connects the global electronics community through news, analysis, education, and peer-to-peer discussion around technology, business, products and design