HELP! Blynk Has Stopped Working! (No Server Connection message)

In anticipation of a flood of visitors to this community forum when the Blynk Legacy servers are turned-off on 31st December 2022, I thought I’d put together a topic that is aimed at answering most of the questions that are likely to be asked, and to assist people with migration to Blynk IoT…

Why has Blynk stopped working?

The version of Blynk that you have been using (which has now come to be known as “Blynk Legacy”) has been retired.

It has been replaced with a new version, which is know as “Blynk IoT” but which you might also see referred to as “Blynk 2.0”, “New Blynk”, “Blynk 360” or simply “The best thing since sliced bread :grinning:” in various discussions.

Development of Blynk Legacy ended about 3 years ago, and Blynk IoT was officially launched in May 2021. One year later, in June 2022, the Legacy retirement date of 31st December 2022 was announced and emails were sent to all Legacy account holders. Notifications were also pushed out to the Legacy app to alert Blynk Legacy users to these plans.

Further info on the Blynk website here:

Frequently Asked Questions (FAQs) about the Blynk Legacy Retirement…

I’ve bought energy in Blynk Legacy, what has happened to that?

Any energy credits purchased for Blynk Legacy have no value in Blynk IoT.

Several promotions were offered to encourage Legacy account holders to migrate to IoT, but the last of these ended on 31st December 2022

Blynk IoT is a subscription service, details below…

How does the Blynk IoT subscription service work?

There are 4 levels of subscription: Free, Plus, Pro and Business.

Blynk IoT doesn’t use “Energy” like the Legacy version – instead if you want more functionality, you need to step-up to a higher level of monthly/annual paid subscription.

Full details of the various subscription levels, and the link to create the various types of subscriptions are here:

Why has Blynk done this?

I’m not speaking on Blynk’s behalf here, just giving my personal opinion…

The Blynk Legacy system had a number of design limitations which made it difficult to meet the needs of business customers – and that’s where the majority of the income comes from with a product of this nature.

The one-off energy purchases that Legacy users made were insignificant amounts of income for Blynk, and in the long term didn’t even cover the server hosting and maintenance costs for these accounts if they were used for a few years. As a result, business users were effectively subsidising the amateur Blynk users.

Blynk needed to be re-written to add additional features and to make some basic changes to the system architecture, and Blynk have taken this opportunity to move to a subscription-based service to ensure a more equitable approach to charges.

Couldn’t Blynk have kept the old version running?

I guess that they could, but that would have been a poor business decision. Blink needs customers to migrate to the current version of the software so that there is one development platform, and to maximise their income. Blynk had always been clear that the Legacy product would be retired once the IoT product was bedded-in, and announced the final retirement date in June, giving users more than 6 months to migrate.

Can I migrate my projects from Blynk Legacy to Blynk IoT?

There is no automated migration process, because there are significant differences between the Legacy and IoT systems. You will need to re-create your mobile app from scratch, using the widgets that are available for the type of subscription you have chosen, as well as doing the Blynk IoT specific things like creating templates and devices, defining datastreams etc.

More info here:

What about my legacy data - it goes back years?

Unfortunately, that data is no longer available, and even if it were there is no system for importing it into Blynk IoT.

Do I have to re-write all of the sketches I run on my devices?

No, the Blynk IoT C++ library works in a very similar way to the Blynk Legacy one, so it may simply be a case of adding a few additional lines of code to the beginning of your sketch and re-compiling the code with the latest Blynk library.

Some things are different with Blynk IoT, such as Notifications, the way that Blynk.syncAll() works, the way that RTC works etc, so if your old code used these functions then a little more effort may be required.

Can I set-up a Blynk Legacy Local Server instead of using Blynk IoT?

Yes, you could, but I wouldn’t recommend it.

Blynk Legacy local server is no longer supported either, and the Legacy apps have been removed from the App/Play stores. Before being removed, the newer releases of the Legacy app prevented new accounts from being created, and this makes migrating to a local Legacy server.

Setting-up, configuring, managing and maintaining a local server is complicated, and to do it properly requires some fairly expensive hardware. Because the local server code isn’t being updated then security vulnerabilities that are discovered won’t be fixed, and it won’t be updated to work with the latest versions of Java. So, it would be the equivalent of having an old Windows 95 PC running to keep one piece of software alive.

Adding the apps to new phones when you upgrade will be difficult, especially if you’re an iOS users, and the old Legacy apps may not work on new mobile operating systems or hardware.

TBH, you’d be better putting your money, time and effort into migrating to Blynk IoT than going down the Legacy local Server route.

Also, if you’re reading this after the Legacy cloud servers have bene decommissioned then there is now no way to clone your existing legacy projects to a Legacy local server, so you’d need to totally recreate your app setup anyway.

Is there a Blynk IoT version of Local Server available?

No. Business subscribers may be able to have an “on premise” server installed, but there is no IoT equivalent of the current Legacy local server.

Basic Blynk IoT Principals Explained…

Mobile and web dashboards

Blynk IoT has the ability to use both the mobile app and a web based interface. This is a major step forward but it also leads to some confusion.

Blynk has adopted the terminology of “Dashboard” to describe the user interface where widgets are used. So, the “Mobile dashboard” is how you view devices in the app, and the “Web dashboard” is how you view devices in the web based control panel.

The widgets available in the mobile app are much more mature than those available for the web interface, because they are basically very similar to those that were used in the Legacy app.

The web dashboard has a smaller range of widgets available at the moment, and they work slightly differently to the mobile ones.

Because of this, and because the mobile and web dashboards have a very different layout, it’s not possible to add a widget to one dashboard and have it automatically appear on the other dashboard.

This is where the major confusion arises for many uses, they expect the mobile dashboard to be automatically replicated in the web dashboard and vice-versa, but this isn’t how it works.

In practice, I find that I use the two dashboards in very different ways anyway, so don’t even attempt to make them look similar.

Datasterams

Previously, Blynk automatically created the list of Analog, Digital and Virtual pins based on the hardware you were using, and you just picked the correct one to attach to your widget – and wrote your data to the correct one in your sketch if you were using virtual pins.

Now, you need to create these pins manually, and they are known as “Datastreams”. There are lots of configurable options available for each datastream, which is why that aren’t created by default.

The main advantage of this change is that you now give your datastreams meaningful names. So, instead of having to remember that pin V26 represented Temperature, and V32 represented Humidity, you can now simply call them “Temperature” and “Humidity” then pick the correct one when you select the datastream in the widget.

The one issue that catches most people out with datastreams is that the Integer and Double data types have a minimum value of 0 and maximum value of 1 by default. These need to be changed to represent the values you are expecting, so for humidity that would likely be 0 to 100 and temperature might be -40 to +100.

If you send values that are outside of this range then they will be limited to the min/max values, so sending a temperature of 57 degrees to a datastream with a min/max range of 0 to 1 will display as 1 degree.

Templates and Devices

Blynk IoT now uses the concepts of Templates and Devices.

Datastreams, the web dashboard layout, and things like Events and Notifications are defined at Template level.

You could then have multiple devices that use the same template if you wish. To be honest this situation is most likely in a business environment, but I guess it is possible that you may have multiple devices performing the same basic tasks in a domestic environment.

In most cases though, you will create different templates for each situation and then create a single device from that template.

Blynk Edgent

If you install the latest Blynk library or take a look at the Blynk GitHub site you will see something called Blynk Edgent.

Using Edgent is NOT necessary for Blynk IoT, and if you are simply trying to migrate existing code to Blynk IoT then I’d suggest that you steer clear of Edgent initially.

Blynk Edgent provides two main pieces of functionality:

  • Dynamic Provisioning of WiFi SSID and password, and also of Auth tokens. If you previously used WiFiManager to do this, then Edgent is a much slicker way of avoiding hard-coding your WiFi credentials
  • Over The Air updates using Blynk.Air. If you previously used Arduino OTA then you might want to consider using Edgent, or possibly a simplified version of the Blynk.Air code in a non-Edgent sketch. Blynk.Air is slightly less convenient to use than Arduino OTA from within the Arduino IDE, but it has the big advantage that you can use it to update devices anywhere in the world, whereas Arduino OTA is limited to devices within your own network.

Blynk Edgent only works on a limited number of devices (ESP8266’s ESP32’’s the new Arduino boards and a handful of other boards. It’s not suitable for use on devices such as the Arduino Uno or Nano that use with an ESP-01 or Ethernet shield to provide internet access.

Things that are different (possibly worse?) in Blynk IoT

Device View

Previously, a single Legacy project could have widgets that are attached to different devices on the same dashboard (project).

Blynk IoT uses an approach that is similar to the way that Device Tiles worked in Legacy, and you can only view/control one device at a time from either the mobile or web dashboards.

For some people this will be a major drawback, but for many it simply requires a different perspective on your devices and data.

There are ways around this, including using Automations to send date from one device to another, or use of the HTTP(S) API to achieve a similar result.

Blynk Bridge has gone

If you previously used Blynk Bridge to send data from one device to another, then this is no longer an option. Once again, Automations or the HTTP(s) API may be an alternative.

Bluetooth is no longer supported

Blynk IoT does what it says on the tin – it’s an IoT system and no longer supports local networking via BT/BLE

The Table Widget has gone

If you previously used the Table widget to log actions and events, then the closest solution is now Events and the Timeline.

Analog and Digital Datastreams don’t work very well

Previously when you selected a board type in the app, the appropriate digital and analog datastreams (pins) for that device were available in the pick-list in the app.

When Blynk IoT was first launched only Virtual datastreams were available. Analog and Digital datastreams have now been introduced, but in a way that doesn’t reflect the capabilities of the type of board that is selected, and to be honest they don’t make much sense.

The best solution by far (in my opinion) is to stick with virtual datastreams.

If you do use Digital datasterams, especially with the ESP8266/NodeMCU type of board you should avoid using digital pins 6 to 11 inclusive, as these are pins that are reserved for internal communication by the processor and will cause your board to constantly reboot if you choose them.

The Terminal Widget doesn’t retain its history

Unlike the Legacy version of the Terminal widget, the IoT version doesn’t currently retain its history. This means that when the app is re-opened the terminal widget will be empty.

Once again, Events and the Timeline may be an appropriate replacement in some cases.

Eventor is replaced by Automations

This isn’t necessarily a negative thing, just different.

The good news is that Automations work on both Android and iOS now, whereas Eventor was an Android only feature.

Phone sensors, GPS Stream and GPS Trigger are no longer supported

Location data is managed in a very different way in Blynk IoT, but the built-in phone sensors such as Barometric Pressure, Gravity, Accelerometer etc that were supported on some devices in Legacy are no longer supported in IoT

Much of the setup is best done in the web console

In Legacy, the only interface was the mobile app and all operations had to be done via that interface. With IoT, most of the setup is done via the web console.

Personally, I don’t think this is a bad thing, but the Blynk IoT web console isn’t supported on mobile phones and a tablet is the minimum required (and even then, it’s not the best type of device because the resolution is usually limited). This means that you really need access to a laptop or desktop computer to configure Blynk. Obviously, you’ll need this type of device to edit, compile and upload code to your devices, so it probably isn’t a big deal for most people.

Notification Limits

Legacy allowed push notifications to be sent once every 5 seconds, Blynk IoT limits this to once every 60 seconds, with a maximum of 100 notifications per template per rolling 24-hour period.

If you were using notifications sensibly in Legacy – to alert the user to exceptional situations which required user intervention – then this shouldn’t be a problem.

However, if you were constantly bombarding the user with notifications every few seconds, and sending more than 100 per day, then you will need to re-think your notification strategy (but this is probably a good thing!).

Blynk.syncAll() now works differently

Previously, calling Blynk.syncAll() would force the server to send tie latest values for every virtual, digital and analog datastream. This was a very crude tool (what we’d describe as “A slegehammer to crack a nut” in English).
In Blynk IoT, Blynl.syncAll() will now only send the latest values for the datastreams that have the “Sync with latest server value every time device connects to the cloud” option turned on in the Datastream Advanced menu.

New features in Blynk IoT that can be very useful

Web dashboard

The web dashboard is a great addition to Blynk. It allows you to access Blynk from a much wider variety of devices, and also gives you the ability to view your data in different ways.

Personally, I use the mobile dashboard for control and status information, as well as for alerting me to issues via notifications.

In contrast, I tend to use the web dashboard for viewing more detailed information, as well as for controlling devices when that’s more convenient than pulling-out my phone.

Data Invalidation

Previously, if a device stopped updating the app with data, the old data values would continue to be displayed in the app – which could be very misleading and potentially dangerous.

Datastreams now have the ability to reset their values to zero (or something else if you prefer) by using the Invalidate functionality.

In the example below, my Outside Temperature value will be set to “—” if no reading has been received in the past 20 seconds. Normally my temperature sensor sends readings to Blynk every 5 seconds, so the data s invalidated if 4 of these readings are missed.

Minimum and Maximum Values

Whilst the default min/max values of 0 and 1 can lead to confusion if these aren’t adjusted to meet your needs, having this functionality can be extremely useful to ensure that spurious “outlier” data values are disregarded.

Datastream Units, Decimal Places etc are defined on one place

Rather than having to adjust each widget to show the required decimal places for a particular datastream, these values are now set in the Datastream configuration screen, and you can define units (degrees centigrade in the screenshot above) for your datastream if you wish.

New Widgets

There are many new and re-worded widgets in the mobile app, although some are only available if you have a Plus, Pro or Business subscription.

Add images of your devices

It’s now possible to add logos or images that represent your devices (actually, this is done at Template level)…

Dynamic Provisioning

If you choose to use Blynk Edgent then the process of inputting WiFi credentials is done within the app rather than via a static portal as you may previously have done with WiFi Manager. This makes the whole process much neater for non technical users.

Blynk.Air OTA

This is a very neat way of pushing out updates to remote devices anywhere in the world. It is primarily designed to be used by business users who need to push updates out to client devices, but works equally well for home users.

Okay, so what do I do now?

Hopefully, you’ll want to sign-up to a Blynk IoT subscription, which you do here:

You can start with a free subscription, then upgrade to Plus or Pro later. However, the free subscription does have quite a few limitations and you should bear this in mind when you’re evaluating Blynk IoT.

If you want to upgrade to a paid subscription then you can do this either through the app or the web console. However, I’d recommend that you use the web console for this, it’s a better interface to use.

The documentation for Blynk IoT is here, and is extremely comprehensive:

In addition, users have been using Blynk IoT for 18 months now and have created many topics and guides on this forum, so you are almost certainly going to find the answers you want by doing a l;ittl;e searching and sorting the results by the Latest Post.

Pete.

11 Likes