Category Archives: Blynk App

Pay Per Blynk

Updated 14/04/2016 after feedback from the designers and some more BLYNK development

As of a few weeks ago, one of the contenders for the mobile IOT crown, Blynk, has gone properly commercial. Now that’s not necessarily a bad thing – but lets take a look at this in detail.

A couple of pet peeves with Blynk were lack of multiple pages per project and the buttons – which could only say ON or OFF which was a problem if you want them to do UP and DOWN or PAUSE and PLAY etc etc…BUT I’m happy to say this has now all been fixed – with up to four pages per project and full control over button text -  also the descriptions above buttons has always appeared to be unnecessarily limited in length. again – that limitation has now been fixed for Android and as far as I’m aware,  IOS. Blynk has also added drop-down selection menus – and TABS (for multiple pages per project up to 4).

tmp4F78BlynkAnd how does this cost? Well I assume my setup is fairly standard, on the left you see a number of buttons – 8 data display and 4 LEDS, at the bottom a temperature display. On the right you see one of my two thermostat controls with 10 sliders for a total of 20 sliders. That is for the house and I need to replicate that for the shed so several pages of controls will be needed in the end and that’s for a small house and office – those with big houses may have much greater requirements.  Since writing this however those dropdown menus may well replace the sliders (ie 2 sliders and a drop down menu to select the time slot is all I expect I’ll need).

On top of that there are a number of RGB controls needed but right now the ZERGBRA takes up way too much screen space – I’m hoping that will shrink in future – one idea would be an on-off control with a long-press to bring up an RGB or better an HSV control.

So the way this will work is that you need to “top up” the unit with energy (for which you pay) as you want more controls  – Imperihome fby comparison costs a few dollars one off payment.

So let’s look at replicating what I have now – 1,000 points costs a dollar, 5,000 points costs 4 dollars etc. and there is a cost per widget  – so by my reckoning to replicate what i have now will cost…  9 buttons at 200 points-1800 points, 4 of the value displays at 200 points = 800, 3 LEDs at 100=300, a history graph at 900 and 20 sliders at 200=4,000 points.

tmp7245In total then just to replicate what I have now and that does not include any lighting controls or anything else comes to 7,800 points.  I’ll want to replicate the thermostat for my office, so add maybe 5000 points and then there’s lighting and some controls I’m working on now – I’m thinking maybe 15,000 points without any more graphs… That comes to well over $10 (you can buy 13000 points at $9.99 and the next step up is 28,000 points at $19.99) – but an important point here – if you DELETE widgets you now get your points refunded – such is the power of the consumer as BLYNK responded to our gripes, it was not always going to be this way. I also think with the new controls I can reduce the number of widgets required substantially.

I had a fear that there might be some “draining” of the energy over time but apparently that is NOT the case so we are now looking at one off charges to get more widgets.  On the OTHER hand – I seem to be sitting on some 9000 points which should be more than enough for all but the more ambitious projects. And I was concerned about the cost of those history graphs – if it were to pay for their servers that would be one thing but this is hosted on my own Raspberry Pi – on the other hand they do handle 4 inputs per graph so most installations presumably would only need the one graph.

Let’s compare for a second with Imperihome.  Around $5 or so (I’m in the UK but let’s keep it all in dollars for simplicity) for the App and that’s it – on the other hand after 2 emails and a couple of weeks I’ve had zero response from them and their App, complex as it is – is not as pretty as Blynk and misses some simple basics like the LEDs and uncommitted buttons.

With Imperihome you can have as many history graphs as you like – in fact as much of everything as you like – but if you’re using Node-Red you have to handle this yourself – in Blynk it is built into the server software they give away for free if you don’t want to use their cloud.   In the light of the new charges for Blynk I asked Imperihome what their timescales are for implementing these features – no response weeks later.

I think I’m happy to pay for Blynk widgets as needed – assuming that fixes are regular (right now they are very regular) and new new widgets appear regularly…   There are several apps out there but currently one could argue that Blynk is the best looking and thanks to third parties (work which was done for free) there’s good, reliable Node-Red support for Blynk…  but then there’s good support for node-red-contrib-ui – all THAT needs is a major visual facelift.

Whatever system I end up using will control 2 lots of heating (3 eventually as I have the house – my home office which is separate and our place in Spain), lights including RGB lights and so much more.  I’ve not yet checked if I can put this on multiple devices without paying extra – I hope so. 

According to Blynk Bluetooth is next. Not sure I see the urgency for Bluetooth as that is limited range – but what do I know.

Blynk development team have responded to gripes here, elsewhere and on the App store – by increasing the number of points we get, returning 100% points for erased widgets and NOT charging points for new empty projects AND the new tabs cost zero points as well which is a good thing – that is good progress and nice to see they are listening to users. I still think the cost per item for things like graphs could be reduced – but the changes of the last couple of weeks are definitely an improvement and at this point I’m prepared to put more work into this and “see how it goes”. I’m off to Spain in a matter of days and I’ve a lot of work there to update the controls for my various colour LED lighting arrangements.

There are now two types of value panels – each in two sizes the original and a larger one (very welcome) – one type of panel is straightforward and best suited for those of us in control of our data – the second allows a macro replacement so if you can only output numbers you can add for example “C” to the end for degrees C etc.

As for the programmable drop down menu – which is great – I’ve populated it with colours for one of my RGB displays which means colour control is now small enough to fit 16 of them on a page – don’t laugh – I’m heading in that direction.

Thoughts? New readers please note, some of the comments below were made before the current round of improvements.

Facebooktwittergoogle_pluspinterestlinkedin

Blynking Wonderful

As of yesterday, a new release of the Blynk App has been released which makes me want to look at this  again.

Regular readers know that I’m into the idea of using a central controller for home control – so that instead of trying to give every peripheral every feature on the planet, I’ve chosen to use Node-Red on a Raspberry Pi or similar. This has the ability to send emails, send and receive data to and from peripherals and to handle a variety of functions – many as simple as dragging a box onto the screen – yet allows complex programming in the same environment if required.

There are as many ways to fit a UI to Node-Red as there are ways to talk to peripherals – node-red-contrib-ui is one of the leading candidates but you can easily talk to NR via HTTP, web sockets and other drop-in technologies. At one time, NETIO was a great candidate but I’ve not seen that improving for a long time – a shame as there’s a nice visual web editor. Node-Red-Contrib-UI is a very hot contender as it is easy to use but I suspect the sole developer is busy elsewhere right now.

BlynkMeanwhile there is Blynk – available for Android and IOS. The basic principle is that this app talks to a “blynk server” – either theirs or a local copy (a pair of JAR files), which keeps track of changes to devices. The likes of Arduino, ESP and others can talk to the Blynk server via special (and freely available) oftware.   Some time ago a set of nodes was released for Node-Red which would talk to the server and hence the Blynk app – but the nodes were not reliable – I spent ages talking to the author and was about to give up when he adopted a new approach – and suddenly the nodes became super-reliable – no doubt a combination of his work and improvements to the Blynk server.

The designers of Blynk had (I think) always imagined that only their APP would be controlling devices – it didn’t seem to occur to them that there might be people like me using Node-Red to perform all sorts of automation tasks on devices and merely using Blynk as a remote control mechanism. Until now, if changes were made to, say, the state of a relay while the Blynk app was on pause (perhaps the phone was handling emails, the App would not know about this until the user logged out and back in.

And so for some time I gave this a miss. That has all changed now and so it is time to look again.

So – the Blynk server – make sure you have at least Java 8 on whatever device you are running Node-Red on – in my case a Raspberry Pi 2 - http://docs.blynk.cc/#blynk-server

I created the directory  /home/pi/Blynk  and dropped in the server.jar and admin.jar files – and created a text file called server.properties.

The latter file contains nothing more than this.

#web sockets ssl port
ssl.websocket.port=8081
#web sockets plain tcp port
tcp.websocket.port=8082

I chose to give full permissions to the folder Blynk – if someone understands permissions better and would like to suggest a sensible minimum for that  - happy to get feedback You can also put gmail details in here if you want so the server can email you but we’ll leave that for now.

To activate this at powerup I went into a Pi terminal and typed..

crontab –e

As this was the first use of that command on the particular machine – it asked me which editor I’d like to use – sadly you don’t get the choice of Notepad++ on the Pi so I settled for Nano.

At the end of the file I added..

@reboot java -jar /home/pi/Blynk/server.jar -dataFolder /home/pi/Blynk &

and saved the file – and rebooted the Pi. Server now running locally. You can test that with the APP by (in the app) registering with the server.

Finally you need the Node Red nodes from here.

npm install node-red-contrib-blynk-websockets

The connection in the Node-Red-Node will look something like this.. depending on your port setup – and yes you could make it available externally via a port redirect..

ws://127.0.0.1:8082/websocket

and a long ID number you get off the app.

And that, in a nutshell just works – well it works for me. I now have this running on 2 Raspberry PIs and will tomorrow add it to my Orange Pi installation.

Apparently the App will not always be free so I’d be getting yours now while it is! I just hope when they go commercial, they remember all the people who have contributed to getting it this far – oh and GIVE US A SMALLER RGB controller!!

Let’s hope node-red-contrib-UI continues to develop to keep the competition healthy!

Facebooktwittergoogle_pluspinterestlinkedin

UI Update

I’ve been busily beavering away at a commercial project for the last couple of weeks but that ends at the weekend and I hope to soon have some more reviews of new and interesting products for you including some surprisingly cheap SBCs.  Meanwhile, close to the heart of many of use – the IOT user interface remains a challenge. There are several of course – the dashboards are great unless you want to control something – and you will know that in this blog I’ve discussed the Node-Red UI and Blynk to name but two.

I dismissed Blynk because the interface though beautiful was simply too buggy – or rather a combination of that and the Node-Red interface. Well, the good news is that part of that problem is solved. TZAPUs new web sockets code seems to be rock-solid. The only bit of the puzzle that needs fixing is the actual Blynk App. For reasons beyond me no-one seems to have noticed that if you PAUSE the APP and then continue, it knows nothing of any changes that happened while it was paused. Come out of it and go back in and fine – it picks the info up from the server – but simply pausing is an issue – maybe no-one thought that something other than the APP might be controlling your IOT – yes, hard to believe. However this morning I got acknowledgement that this will be fixed on the next sub-release – which means that by the look of it we have a fully working interface.

Meanwhile node-red-contrib-UI is due a facelift and Andrei has been working on that – sadly despite spending ages on this I’ve been unable to get the new upgrade to work – I’m confident however that this will be resolved.. and then we will have at least two decent, easy to use interfaces between Node-Red  (and hence most if not all IOT) and our phones.

Time will tell. This weekend we’re off to visit friends, next week I’m putting my office together and hopefully collecting some PCBs to control Nextion displays and as soon as my new office is in a state to do some R&D, expect to see new reviews and more info.

Facebooktwittergoogle_pluspinterestlinkedin

Blynk Update

Updated 22/OCT/2015 : Rather than write another blog I’m updating this one in the light of new info. New features added to the Bynk App (which allows you to control various IOT gadgets from your phone – OR talk to Node-Red and hence to anything that Node-Red can talk to (which is just about everything) – include the ability to Share the App – allowing others to view and control BUT NOT EDIT the App – which is great – though it does say “30 day trial” without saying what happens at the end of the trial – communication is not these guys’ greatest point.

Blynk using Node-Red

I’ve been asking for multiple pages per project – well they didn’t quite do it that way, they did multiple projects per user with seamless movement – only thing is that means a different access code on each page – I’d have rather had access code selection per item but there you go.  As for multiple accounts, it is still a pain to switch from one to another – they are not stored and so you have to enter details every time you switch – not going to happen. 

hollyberrySo for now the answer appears to be ONE Blynk server. Thanks to the “Raspberry Pi2” setting you can have up to 64 virtual pins per project which I guess is ok (why would you want more – well, let me tell you – thermostat settings – week and weekend settings for peak and off-peak, frost fallback etc, + and – buttons and displays of values –you soon rack up the pins – but I’m thinking the designers thought we might just want to turn a few lights on and off.. Noooooooo.

So you can control things like ESP8266 etc directly with a little code in the ESP and Blynk – but my chosen route is Node-Red –the only problem with THAT is that the only Node-Red node to interact with Blynk – does not like the Blynk server going down – i.e. it reports it – with a “disconnect” notice but doesn’t actually do anything about it – I’ve written to the designer – I’ve looked at it myself without much joy and I’m taking the opportunity here to ask if any of you node-red node-designing wizards would care to take a look. It needs to detect the failure and try again every few seconds until it gets the connection – if I were redesigning the node I’d have an output if if failed after X attempts – and have that send me an email via the email node!

So – the project is coming along – all we need now is a smaller zeRGBA and feedback to all controls and a thermometer. Sync sync between mobiles is apparently taken care of  but still hoping for the ability to import our own images and different size buttons and removing that DAFT Vx numbering on the buttons (apparently it is off for guests – thats’ a start) and the mini-level indicator (as on the box) and the ability to rename zeRGBA (why would anyone think we’d only want one???) ...and... we need to be able to get more stuff on a page!

Right now there is an issue, 2 of us have spotted this – renaming labels – log out – log in – sometimes doesn’t keep the changes – will report as I found out more about this (local server).

Facebooktwittergoogle_pluspinterestlinkedin

Drilling into Blynk

zeRGBaYesterday I referred to using DELAY in Node-Red to slow down one of the Blynk controls. To backtrack a little…  We’re talking here about controlling devices such as ESP8266 boards using MQTTT – which I maintain is the best way to have a boatload of devices around the place and talk to them. I do this from a Raspberry Pi 2, using Node-Red which is a visual system, relatively easily fitted to the Pi (see my articles about my script). Once you have this in place, you can use simple (but excellent tools such as MQTT-Spy to send out MQTT messages to your devices and get input from them.

But in the real world who wants to sit there programming a tool just to turn a light on. So there are various options including the rather expensive Raspberry Pi touch display. A better option IMHO for local operation are the Nextion touch displays which work serially. I’ve covered these elsewhere -  a project that is still in it’s early stages but with a little work is usable – so much so that I plan to use them in my place here in Spain and back in the UK as thermostat wall mounts – I’ve covered that elsewhere under “Nextion”.

And so to Blynk. For many months I’ve been trying to get a decent control/display combo for the mobile phone. I’ve written my own in jQuery mobile and used the likes of NETIO and THINGSTUD.IO – all of these are viable methods – another that is coming up is Blynk – again very preliminary and I’ve reported lots of issues with this – but it works.

There are several useful controls – you see in the image above some simple LEDs (which can be set to various intensities though you can’t programmatically set the colour, sadly), some simple status outputs and two buttons (which can be set to ON/OFF or push to operate). They also have a controller called the zeRGBa which is a visual controller for setting RGB lighting. You see 4 of them in use top right of this article. You can basically move your finger over the control – which will then fire out RFGB values. Thankfully you can set the maximums as not everyone works in the 0-255 space. My PWM controls for ESP8266 use 0-99 for example.  This widget falls down currently in 2 areas, firstly you cannot SET it’s position – you can only use it as an output control. Secondly and arguably more importantly it sends out rather too many commands one after another when you move the unit around. I prefer courser control, smoothing the transition in my ESP boards.

So, given a control that fires out RGB sets rather too rapidly, how can Node-Red help. Thanks to the developers who I’m fortunate enough to get lots of feedback from, it’s actually quite easy.

RGB Control

Here we see 3 inputs from the App coming in via the Blynk Node. The first thing I need is a function to convert that data (a simple array of 3 values) into an MQTT statement to fire out.

msg.topic="sidewall/toesp";
msg.payload="{rgb:4," + msg.payload[0]+","+ msg.payload[1]+","+ msg.payload[2]+",70,1}";
return msg;

Easy enough – I set the topic for MQTT to my wall RGB ESP8266 board (the format is my own, don’t get hung up on that) and I use a message payload of say “{rgb:4,255,0,0,70,1}” – what the hell does that mean? Again my own format… the braces are there for technical reasons – my ESP boards accept MQTT or serial – and the ESP’s put out some crap at the beginning and debug info – so I wrap my messages in “{}” just as delimiters. So the actual message is “rgb:4,255,0,0,70,1” – which means – using output 4 of the ESP, send out RGB 255,0,0 (i.e. RED), smooth the transition from one colour to another over 70ms – and I can’t remember what the last parameter is – irrelevant here.

If you look at the code, what you’re getting from the Blynk node is an array (msg.payload[0-2]) so a simple substitution.

That one string goes out RATHER TOO QUICKLY on message after another for my little boards and I was wanting to slow them down just a touch. the DELAY node can be used for this..

delay

Absolutely brilliant – so it will not allow more than 16 message a second – and if it gets more – it will drop some intermediates. Works perfectly – the actual rate of course depends on your project. I had utterly missed this – thinking that node was nothing more than a simple delay as suggested by the name – but dig in and it has so much more to offer.

So right now I can control several RGB devices around the house, limited only by the somewhat large size of the zeRGBa widget and the inability of BLYNK right now to handle several pages per project (though as of the other day you can seamlessly move between projects which helps).

In  case you’re wondering – the language used in the functions is JavaScript  - who’s ability to make life easy when it comes to handling different types of data such as arrays and JSON, is a wonder.  I look forward to the day we have a PROPER, fully working interpreter on the ESPs themselves.

Oh – and to run the Blynk server on your own kit – you need Java 8

apt-get install oracle-java8-jdk

And I made my blynk directory and those below it full read/write/execute.

Facebooktwittergoogle_pluspinterestlinkedin

A Better Day

BlynkA better day today. After switching my WIFI to a separate access point, up to now the WIFI is holding – I’m not convinced but for now all seems well. That has allowed me to spend a little more time with Blynk – and after chatting to the Node-Red node designer – and getting an update out of that, I now have Blynk server running on my Raspberry Pi2 – so between that and the Node-Red App I can now control stuff with a decent App – still some way to go with this but it’s starting to look useful.

As you can see in the picture – I have 4 RGB controls (suitably slowed down thank to the excellent Node-Red delay function), temperature and humidity monitoring and a couple of on-off buttons with feedback via LED. All working a treat.

Below you see the Node-Red code driving this – all very simple – the delay function is used to limit the rate of change for RGB and PWM as the App has a tendency to push stuff out very quickly.

Other than that it is all very simple – and when the designers get around to allowing more than one page per project, it’s going to get one hell of a lot more complicated Smile

Node-Red

 

 

 

 

 

 

 

 

 

 

 

 

And with that – an early night I think.

Facebooktwittergoogle_pluspinterestlinkedin

Blynk App

Blynk[4]I’ve re-written this blog today – as the people at Blynk have been quite useful – promising to fix some items I’ve griped about/commented on. I hope they don’t mind me pinching some of their imagery.

One of the problems with home control – is making a nice web interface that is also powerful.

and with that in mind…  of my readers recently brought my attention to http://www.blynk.cc/  - I put the link in as that spelling makes it a little hard to find otherwise.

Now if you look at their site – they show a really nice mobile dashboard – see my screen grab on the right - and that IS achievable – kind of… but I think there’s a way to go before this takes over an utterly destroys the likes of NETIO or my own JQUERY MOBILE efforts. But read on.

So – you get the APP for free (well, for now – if they keep it down to a couple of quid I doubt anyone would mind) and you select gadgets like on off buttons, graphs, gauges, LEDs etc.  a REALLY nice selection of the type that NETIO should have done but wasted the opportunity to do so, such that many of us are moving away from that package and seeking alternatives. So with BLYNK, it’s easy to make a nice page full of buttons and lights.

The next easy bit – take an Arduino or an ESP8266 using the Arduino-ESP development environment and drop in a program with nothing more than code from them…. and a connection to your WIFI – and BOBS YOUR UNCLE – you have an app on the phone and you can turn things on and off or PWM or read the state of analog inputs.

It sounds like NIRVANA but for me that is no good at all. Firstly I’m not interested in controlling on gadget, I’m interested in controlling a BOATLOAD of them.

However, as those of you who’ve been following my blog will know, Node-Red has answers to all the world’s problems and as it happens, there is a set of NODE-RED nodes to let you intervene with Blynk. As of this morning I have most of their controls working alongside Node-Red and the rest of my kit. So essentially you can have Node-Red talk to the APP – and of course Node-Red can then talk to everything else via MQTT – or maybe you want to control pins on a PI – well Node-Red can do that too.

But before you get TOO excited there are currently a lot of issues:

1.  One page per “application” – and switching applications involves disconnecting from one and connecting to the other (2 button presses as well as moving across to another application). 

2. Turn off the power to the end gadget using the BLYNK code and back on – it does not remember it’s original state – and the phone app can’t tell the state.  Of course if you don’t use their code, you could write a little code on your ESP or whatever so that when an output is turned on – you store it in EPROM… yes, but then after power down and up – you restore the state of the output and…. here’s the killer,  there’s no way to restore that state to the button on the phone!!  They’ve said they will fix that – I need to be able to say to a button on the phone “Look like you’re ON or OFF”.

I HAVE discovered a programmable timing READ event on for example the GAUGE  so that when the App page opens I can go get the voltage and update it – this needs to be extended to buttons, lets etc.

3, If you give the app to your WIFE – the apps don’t yet stay in sync. They say they will fix this.

4. There are no small up/down buttons or a small display – so if you want a page full of timing controls for your heating – forget it – I have asked for small, simple up/down buttons and a small display.

5. Currently the only timer available on the APP is elementary – send something at a given time – I’m not sure I even see a use for that.  What is needed is something that will send a signal when the APP or a given page is ACTIVATED – and then perhaps every second (programmable) – because otherwise all your gadgets have no way to know, other than manual button pressing, when to send status info!! There is a PAGE timer apparently but I’ve not found it yet.

6. No haptic feedback – feels odd when you press a button and the phone doesnt’ buzz.

7. Instead of controlling real IO pins as you might when using their ESP or Arduino software, you use VIRTUAL pins. There are around 30 – I’d rather have 100 – especially when they implement multiple pages per application.

8. Some things like the excellent RGB control has a fixed name – not much use if you have 2 on one screen.

9. Buttons etc show the “virtual” or “real” IO number you use – great for debugging – utterly pointless on the end user display – I can see my wife asking “What’s that “V10” on the button for.  They really should have EDIT/REVIEW/RUN controls so you could on the last one turn off that stuff.

10. You have to press the RUN button a lot and you can edit stuff at any time – great for me but do I want a family member messing with this? No. I think really the edit etc should be done under a password or SOMETHING so the default mode is RUN.

App[4]So LOTS of issues and let’s hope they get fixed – I have asked and they’ve been positive up to now.

So why am I even bothering.

On the PLUS side:

1. instead of using THEIR server for the APP and Node-RED to talk to (sometimes there IS an annoying LAG) – you can put a copy of their central server on a PI so you’re not relying on a third party…

2. The App display is LOVELY.  The LCD is great, the LEDs are great, the graphing looks good, the joysticks look good etc.  Needs lots more widgets but in minutes you’re up and running and making your own screens which your non-technical partner will love to use.

So – here is my little test app – and here is my NODE-RED info for controlling lights – notwithstanding some SEVERE restrictions mentioned above – this is actually running and doing things reliably.

 

node-red[1]

Where we go from here is entirely up to the guys at Blynk – this has so much potential – but I need WAY more – multiple pages etc… this only controls  tiny fraction of what I have running right now. Don’t forget if you’re not into all of this – the APP will run with an ESP or Arduino stand-alone.   But WITH this – so much more because with Node-Red functions which are just simple script – you can do so much more.

Oh and thanks to the guys writing in with updates or corrections!!

Pete.

Facebooktwittergoogle_pluspinterestlinkedin