Blynk 2.0 Features/Limitations?

Thanks @Dmytro for the clear answer. I’m starting to ‘get’ the new philosophy of Blynk 2.0.

In order to assemble a variety of datastreams from different devices into one Tile, I started by putting each sensor/device in its own Tile, then adding a new device (ESP32) to provide an Overview (Template and) Tile. The Overview ESP32 does HTTPS GETs from each of the datastreams I like and presents them as consolidated. So I have 6 different sensors in 4 different Tiles plus 1 Overview Tile showing data from all 6 sensors in the way I want to show it.

This is different from the way I used old Blynk, pretty powerful. I did post some simple ESP32 HTTP GET code in the Community which I used to assemble my Overview. The advantage of an Overview Device/Template/Tile is that each sensor/device has its own Tile for drilling down and to provide Device notifications. The Overview shows the consolidated info for easy scanning.

Progress. Getting there. Old dog learning new tricks.

1 Like

Glad you made it. In general, I agree, that we can add more flexibility in the future. And that’s definitely will be done at some point. Maybe with introducing some specific group tiles. We’ll see.

two eevices with single authh tokken???

That’s possible, but I would not recommend you to use that approach. There may be some side effects.

1 Like

Two different devices, two different authcodes. I would like Device A to be able to know if Device B is online or offline.

When Device A gets a datastream value from device B using an HTTPS GET, the call succeeds and Device A gets a value even when device B is offline. Device A does not know that Device B is offline.

When Device B goes offline, it triggers its Offline Event. Can Device A see Device B’s Offline Event? Or can Device A somehow see Device B’s online or offline status?

Thanks.

You could use the data invalidation settings for the datastream as a way of knowing if the device is online or not.

Pete.

I display the time (hh:mm:ss) on each datastreams ( A&B), then, I compare the time between the 2 datastream :stuck_out_tongue:

This is helpful, @PeteKnight , thanks. The HTTP GET to the offline device’s datastream still returns a good value even if the device is offline. All options available in data invalidation return a successful 200 code from an HTTP GET even when the device is offline. Only the value returned can be modified. The data invalidation scheme does let me pick the datastream’s ‘default’ value to show when device is offline, so it’s a solution.

I’d still love a way for one device to ‘hear’ an event on another device, so Device A can know if Device B is offline, online, or just had an Event triggered.
OR using data invalidation, be able to return an errorcode on an HTTP GET to a datastream from an offline device.

Getting there… thanks again.

Give a try to my solution, that works well for me.

I like your idea! Thanks.

1 Like

You can use HTTP GET request “/external/api/isHardwareConnected”. However, a more reliable approach would be to send the value to some datastream, like counter of milliseconds, and on another hardware you can compare it with the prev value.

1 Like

That’s interesting idea. Could you please tell us your real world use case?

Thanks for asking. I have two use cases that cause me to ask for inter-device status updates.

#1 Overview Tile Use Case
I have 6 different sensors on 4 different ESP8266/32s in my home. Each device has its own Tile. Two Devices share a common Template. So I have 4 sensor Tiles showing a total of 6 sensor Datastreams.

I also built a separate Overview Tile/Template/Device with an ESP32. The Overview uses HTTP GETs to pull Blynk Datastream info from the 6 Datastreams and present all 6 Datastreams in a common view – an overview. This is my normal go-to Tile, where I go to see what’s happening in my house – temperatures, barometer, humidity, etc.
I ALSO want to see in this Tile if any of my sensors is misbehaving, if any of my sensor Devices is down, offline.

I was initially expecting the HTTP GET to a Datastream from an offline Device would return an error code of some kind. Instead, the HTTP GET succeeds, returning the most recent Datastream value it has.

At @PeteKnight ‘s suggestion I used the Blynk Data Invalidation capability’s default value option. That works but is not ideal. To make it work today, I look for the default value returned from the HTTP GET and know the sensor Device is offline.

What I really want is a more direct way to know that one of the many devices I am reporting on from a consolidated command Tile/Device is offline.

It Would Be Nice if

  • One Device – the Overview Device – could query each of the sensor Devices periodically to see if they are Offline or Online.

  • Or if an Offline Event at one of the sensor devices would trigger some kind of signal to the Overview Device to let the Overview Device know the sensor is offline.

#2 Command and Control Use Case
I have multiple SONOFFs running on old Blynk. I’ve not yet ported this system to Blynk 2.0.
In Blynk 2.0, each SONOFF Device will have a Tile. They all will share a common Template, I expect.

I also built a Scheduler in old Blynk on a separate device, an ESP32, that lets me input Start/Stop times (using your very handy Start/Stop Time widget) and view several independent schedules that I can apply to any or all of the SONOFFs.

The Scheduler is where I go first to see how the system is behaving, see what’s on and what’s off. I want the Scheduler to know if any of the SONOFFs is Offline so I can check and, perhaps, reboot the device.

In both use cases, there’s a main, or overview Tile that displays or controls other Devices. I want that main or overview view to ALSO show if any of the other Devices is offline or misbehaving.

Hope this is helpful. All suggestions welcome.

2 Likes

Thanx for the list. Can you share timeframe for GPS widget on IOS for Blynk2? I am a heavy user of Map and GPS to allow location tracking in my BackpAQ air quality app. Thanks!

How do you have devices without tiles? I’m unclear on how to deal with dozens of devices where each one has a separate tile. Not enough space on the home page for all these tiles.

I have about 12 devices in 2 different projects. Home page is too crowded with a tile for each device.

What am i missing? Thanks.

I was talking about Blynk 0.1

Pete.

@wicked its not that simple
https://create.arduino.cc/example/library/blynk_1_0_1/blynk_1_0_1%5Cexamples%5CBlynk.Edgent%5CEdgent_MKR1010/Edgent_MKR1010/preview
You can help me on my topic i am using arduino uno wifi rev2 (mega 4809) to connect and i get following error after compiling the code which i have provided in the link

/usr/local/bin/arduino-cli compile --fqbn arduino:megaavr:uno2018:mode=on --libraries /home/builder/opt/libraries/latest --build-cache-path /tmp --output-dir /tmp/693504515/build --build-path /tmp/arduino-build-F921823868F8DD5D5988F412CC60B4F1 /tmp/693504515/Edgent_MKR1010

Using library blynk_1_0_1 at version 1.0.1 in folder: /home/builder/opt/libraries/blynk_1_0_1

Using library flashstorage_1_0_0 at version 1.0.0 in folder: /home/builder/opt/libraries/flashstorage_1_0_0

In file included from /tmp/693504515/Edgent_MKR1010/BlynkEdgent.h:36:0,

from /tmp/693504515/Edgent_MKR1010/Edgent_MKR1010.ino:13:

/tmp/693504515/Edgent_MKR1010/ConfigMode.h:3:10: fatal error: utility: No such file or directory

#include <utility>

^~~~~~~~~

compilation terminated.

Error during build: exit status 1

my topics link:

https://community.blynk.cc/t/cant-connect-arduino-uno-wifi-rev-2-mega-4809-to-blynk/56987/3