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.
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.
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.
Hi,
Thank you for this blog post, it saved me a lot of time putting Blynk and Node-RED together. But I have run in a little problem, could you please help to solve it? I have Blynk app with buttons,LEDs, LCD and gauges. Everything is working fine except the LEDs. How do you convince an LED to lit up through the Node-RED? I have an function that sends 1 or 0 to the Blynk write function and nothing happens.
owar
Simples… The LEDs are if I recall correctly (check) 0-255. Your LED is on but just very dimly.
Well, that is…I should knew it….awkward….Thank you very much 🙂
I just started playing with Blynk on my massive LEGO IoT city with Node-RED piping it all together.
One limitation I noticed was that I couldn’t programmatically set the pin number via a msg object and set it on the Blynk node. Instead, I will have at least / most 30 write nodes. And that limitation bothers me. Why have a limit at all?
Since most info is being passed around in JSON, it would be easier to attach a widget to a Name, and then read/write the Value. Maybe that places too much logic on the UI platform though.
… Much to learn and experiment with.
I’m also trying to keep the state in sync, which you’ve expressed the same concerns.
All that being considered, I do appreciate the ability to quickly drop in Blynk nodes to create a nice UI. Frees up my time for the fun gadget stuff, and less on the tedious UI stuff.
..
Nice blog.
If you set up as Rasp Pi you can have 60+ virtual pins.
Hi Peter,
Thank you for your detailed reply.
It was just too much trouble fighting a flakey Blynk, so I have deleted it. Doing a “npm uninstall…” still left the some remnants of the Blynk server – so I had to reformat the Pi with Jessie – and am now using UI. Perhaps not as pretty as Blynk, but quite adequate esp with your LED template solution. Because UI is local, I can give i cloud access either by port forwarding using e.g. DuckDNS or perhaps a better solution is to use IBM’s Bluemix Node-Red.
Thanks for your blog.
Mike
Hi Peter,
I too have tried Blynk, and was initially impressed – it looked like magic … except it is turning out not to be too reliable, When my Pi loses its internet connection, the whole of Node-red seems to crash with a: [red] “Uncaught Exception:”
So, my question is: what UI would you recommend as being the most reliable?
I see that you are playing with: node-red-contrib-ui.
Comments on its reliability?
Mike
Hi Mike
Well, first of all let me say that I’ve not had YOUR issues as such, but node-red-contrib-blynk despite trying on failure (I’ve watched it reconnect) on some occasions simply stops and won’t reconnect even though the local Blynk server appears to be running just fine. As such I find it good for experimenting but right now cannot rely on it – node-red-contrib-ui is very preliminary in that the actual visuals are not that good – but it works – the stuff that is supplied works and works reliably – no external servers needed. So for now I’m putting my money on node-red-contrib-ui while hoping that issues with Blynk will be resolved. Also there is so much more they could do with it and it seems to be evolving only slowly. Better than the likes of NETIO which seems to have all but stopped evolving.
Note that my comments are now out of date and latest contrib Blynk and local server work just fine.
Hi Peter, I to am using node-red & mqtt with the blynk nodes (despite a number of issues with node-red crashes (ok its early days)) anyway I asked a question to tzapu@node-red-contrib-blynk regarding using the LCD widget, his response was “not available yet. it;s not in blynk js library” however I notice you appear to be using the LCD successfully (“The LCD is great”), so I have a couple of questions.. 1. what are you sending in the (simple text “hello”) inject node? & 2. Have you set up the LCD widget in the app to simple or advanced ? no matter what I tried I cannot get the LCD widget to work from node-red but as a test I can get it to work from a ESP using the example in the blynk library. thanks for your help with this, I really need to have it working from node-red.
Regards
Toshi
Hi Toshi. Out right now will send info leter
Great thanks one thing I notice my email address ended up being incorrect (google auto complete) so please use this one toshibass101@gmail.com thanks in advance
regards Toshi
Right- I’m sending a simple string in the inject.
Let’s say you use virtual pins 20 and 21
In the text area of the setup for the APP for the first line put /pin0/ and on the second line /pin1/ – what that has to do with anything only the designers know.. you’d think /pin20/ would be there – but it’s not…. and that’s it – in your Node-Red inject – just send the text.. if on the first line you want to send degrees C but for some reason can only send the number – put /pin0/c in the app.
Hi Peter, Having tried literally every combination, it hit me, I bet you are on android,
I am trying with Iphone !
Correct – I am on Android. Best get onto the Blynk forum and start asking questions 🙂
That’s not too much of a problem unless they get greedy. NETIO is a couple of $ I think…. and you can make an interface with THINGSTUD.IO or just with JQUERY MOBULE so I hope they don’t get too greedy. Right now my issues are – I can’t get the local RASPBERRY PI version of their server to work – I don’t fancy relying on their server always being up – and I’ve written to them about many limitations. Every button needs a LED next to it so you can actually see if what you have done has worked. Without that the whole lot could have stopped at the other end without you knowing about it. They also seem transfixed on the idea of it being limited to individual boards – I guess they’ve put a lot of work into that. For me, having it talk to to Node-Red is a FAR better idea…. but a general purpose button which can send messages rather than 1 or 0 is needed for the many different applications people might put the software to.
hi Peter
that’s Why i see you more often in Blynk forum , i Like the APP too much . it makes
every thing looks more easier but again the many limitation it has and features that is long time under
development is a weak point.
don’t forget that in near Future you have to pay $$ for advanced widgets and multiple dashboards.
as in APP purchases so only you will have free buttons and LEDs in your Dashboard.