# Electron, Blynk & HIGH data usage

**URL:** https://community.particle.io/t/electron-blynk-high-data-usage/35488
**Category:** Troubleshooting
**Created:** [August 21, 2017, 5:23pm UTC](https://community.particle.io/t/electron-blynk-high-data-usage/35488 "2017-08-21T17:23:26Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![jboswell](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/jboswell/32/216_2.png) [@jboswell](https://community.particle.io/u/jboswell)
#### Post date: [August 21, 2017, 5:23pm UTC](https://community.particle.io/t/electron-blynk-high-data-usage/35488/1 "2017-08-21T17:23:27Z")

</div>

So, I have a strong suspicion that this is a problem with the library implementation on the Particle Web IDE not compiling the Blynk library properly, but I really don’t know.

Basically everything works, works so great in fact that I would totally still be using Blynk if it wasn’t for how much data it’s consuming right now (2.5MB / day).

Essentially I am posting 4 bytes every 5 minutes and seeing this data usage. Confirmed exactly what I am sending to their servers so I am assuming the issue is with the Heartbeat and Keepalive settings not being called correctly from their library. I assumed (it would seem wrongfully so) that they had been the ones that posted their library on the Particle Web IDE.

In any case, I have an exceedingly simple sketch, and basically the high data usage is seen when Blynk.run(); is just sitting in the loop. If anyone can take a quick look I would appreciate it, I tried moving the Blynk run into my millis loop but without the code respecting the Keepalive and Heartbeat settings I think it times out waiting for a response from my Electron and not getting it…

Code below, if anyone would be so kind as to have a look:

```
//Libraries
#include <Adafruit_DHT.h> //DHT22 Sensor Library
#include <cstdlib> //for comparing past and present sensor values
#include <cmath> //for comparing past and present sensor values, floats wont compare without this
#include <blynk.h> //Phone Visualization / App Integration Library

#define DHTTYPE DHT22 // Sensor type DHT11/21/22/AM2301/AM2302
#define DHTPIN D1 // what pin we're connected to     

//Blynk Code Start
#define BLYNK_PRINT Serial // Set serial output for debug prints
#define BLYNK_DEBUG // Uncomment this to see detailed prints

// Run "ping blynk-cloud.com", and set Blynk IP to the shown address
#define BLYNK_IP IPAddress(45,55,96,146)

// Set Blynk hertbeat interval.
// Each heartbeat uses ~90 bytes of data.
#define BLYNK_HEARTBEAT 300 //was 60

// Set Particle keep-alive ping interval.
// Each ping uses 121 bytes of data.
#define PARTICLE_KEEPALIVE 300 //was 20

//Auth Codes for Blynk

char auth[] = "redacted"; //Blynk Auth Token
//Blynk Code End

// adafruit lib instantiate
DHT dht(DHTPIN, DHTTYPE);

// Spark Variables
int temp = 0;
int hum = 0;

//Main Loop Sensor Vars
long SenseMillis = 0; //Storage variable for loop timing
long SenseInt = 300000; //This is how often the sensor is read
int Temp = 0; //Current Temperature Reading
int Humi = 0; //Current Humidity Reading
int TempDiff = 0; //Differential between last and current value of sensor read
int HumiDiff = 0; //Differential between last and current value of sensor read
int lastTempUpdate = 0; //Last value seen by the sensor
int lastHumiUpdate = 0; //Last value seen by the sensor
int TempSensorFilter = 10; //These would be roughly equivalent to temperature degrees
int HumiSensorFilter = 10; //These would be roughly equivalent to each % of humidity

void setup() {
    delay(5000);
    Serial.begin(9600);
    dht.begin();
    delay(2000);
    //Initial Humidity read *** IF THIS READ IS INACCURATE ALL FURTHER READINGS WILL FAIL
    HumiDiff = dht.getHumidity(); // Read humidity
    delay(2000);
    //Initial Temp Read *** IF THIS READ IS INACCURATE ALL FURTHER READINGS WILL FAIL
	TempDiff = dht.getTempFarenheit(); // Read temperature as Farenheit

    Particle.keepAlive(PARTICLE_KEEPALIVE); //Blynk Requirement
    Blynk.begin(auth, BLYNK_IP); //Blynk Requirement

    //Spark.publish("Leaving Setup", "Leaving Setup"); //DEBUG
    Serial.print("Program Starting");
    //Turn off LED (or change colors)
    RGB.control(true);
    int r = 0;
    int g = 2;
    int b = 0;
    RGB.color(r, g, b);
}

void loop() {
    Blynk.run();
    //Spark.publish("Entering Loop", "Entering Loop"); //DEBUG
    unsigned long currentSenseMillis = millis();
    if(currentSenseMillis - SenseMillis > SenseInt) {
        SenseMillis = currentSenseMillis; // save the last time you ran this code
        
        Temp = dht.getTempFarenheit(); // Read temperature as Farenheit
	    delay(2000);
        Humi = dht.getHumidity(); // Read humidity
        
        Serial.print("Humi: ");
        Serial.println(Humi);
        Serial.print("Temp: ");
        Serial.println(Temp);
        
        TempDiff = std::abs(Temp-lastTempUpdate); //Check current reading against previous, report the difference
        HumiDiff = std::abs(Humi-lastHumiUpdate); //Check current reading against previous, report the difference
        
        //Check Temperature Reading and Report
        if (TempDiff < TempSensorFilter && HumiDiff < HumiSensorFilter) { 
            //ubidots.add("H", Humi);
            //ubidots.add("T", Temp);
            //ubidots.add("DeviceName", DevName);
            //ubidots.setMethod(TYPE_TCP); //Set to TCP the way to send data
            //Blynk.virtualWrite(V0, Temp);
            //Blynk.virtualWrite(V1, Humi);
        }

        
        
        
        //Watchdog, restart Electron if it can't connect to the cloud
        if( ! Spark.connected()) {
            Spark.publish("Restarting", "Restarting");
            System.reset();
        }
        
    lastTempUpdate = Temp;
    lastHumiUpdate = Humi;
    }
}
```

---

<div class="post-metadata">

### Author: ![anubus](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/anubus/32/10184_2.png) [@anubus](https://community.particle.io/u/anubus)
#### Post date: [November 24, 2018, 4:05am UTC](https://community.particle.io/t/electron-blynk-high-data-usage/35488/2 "2018-11-24T04:05:05Z")

</div>

Did you ever resolve this issue? Wondering because I too would like to use Blynk and noticed this high data usage back when I first tried it on an Electron in 2016.
