BLYNK
BLYNK.IO       📲 GETTING STARTED       📗 DOCS       👉 SKETCH BUILDER

Blynk.logEvent not working

Event is not getting generated. Please help

void loop()
{

  int sensorData = analogRead(A0); //reading the sensor on A0  
  int MyValue = map(analogRead(A0), 200, 450, 0, 40);
  Blynk.virtualWrite(V5, MyValue); //sending to Blynk

  
  if (MyValue<21)
  {
   if (temp==0)
    {
    Blynk.logEvent("wtr_lvl_low", "Water Level Low (below 20) in Water Source Location 1 - 26°18' N 89°39' E ") ; 
    Blynk.notify ("Water Level Low in Source 1");
    Blynk.virtualWrite (V0, HIGH);
    temp=1;
   }
  }

  else if (MyValue>20){
    Blynk.virtualWrite (V0, LOW);
    temp=0;
  }
    Blynk.run();
  timer.run();
 
}

How have you configured the event in the web portal?

Pete.

Yes Sir

Hey there,

First read this :
https://docs.blynk.io/en/legacy-platform/legacy-articles/keep-your-void-loop-clean

Second blynk.notify has been replaced with blynk.logevent.

Third read this :
https://docs.blynk.io/en/getting-started/events-tutorial

Sir, changed the code to

int sensorData = analogRead(A0); //reading the sensor on A0  
  int MyValue = map(analogRead(A0), 200, 450, 0, 40);
  Blynk.virtualWrite(V5, MyValue); //sending to Blynk

  
  if (MyValue<21)
  {
   if (temp==0)
    {
    Blynk.logEvent("wtr_lvl_low", "Water Level Low (below 20) in Water Source Location 1 - 26°18' N 89°39' E ") ; 
    //Blynk.notify ("Water Level Low in Source 1");
    Blynk.virtualWrite (V6, HIGH);
    temp=1;
   }
  }

  else if (MyValue>20){
    Blynk.virtualWrite (V6, LOW);
    temp=0;
  }  
}
void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
pinMode(A0,INPUT);
    
  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
  timer.setInterval(2000L, WaterSensor);
  
}


void loop()
{
 
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}

Still not working. Please help.

void WaterSensor(){
int sensorData = analogRead(A0); //reading the sensor on A0  
  int MyValue = map(analogRead(A0), 200, 450, 0, 40);
  Blynk.virtualWrite(V5, MyValue); //sending to Blynk

  
  if (MyValue<21)
  {
   if (temp==0)
    {
    Blynk.logEvent("wtr_lvl_low", "Water Level Low (below 20) in Water Source Location 1 - 26°18' N 89°39' E ") ; 
    //Blynk.notify ("Water Level Low in Source 1");
    Blynk.virtualWrite (V6, HIGH);
    temp=1;
   }
  }

  else if (MyValue>20){
    Blynk.virtualWrite (V6, LOW);
    temp=0;
  }  
}
void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
pinMode(A0,INPUT);
    
  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
  timer.setInterval(2000L, WaterSensor);
  
}


void loop()
{
 
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}  

Data is coming properly, and V6 is also toggling, but event not being generated.

Where are you looking for these events?

Pete.

Timeline, as well as mail

Please post screenshot of your timeline.

Do you see V6 go to high?
temp is not defined in your code, also there is no first temp = 0 before the first if.

V6 is going HIGH, temp is defined before this section

#define BLYNK_TEMPLATE_ID           "TMPL3GTnnZPX"
#define BLYNK_DEVICE_NAME           "Quickstart Device"
#define BLYNK_AUTH_TOKEN            "mYcn8BO5amMS_RniijsHyjU1ecBpysn0"


// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = BLYNK_AUTH_TOKEN;

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "dlink-Souvik1";
char pass[] = "12356790";

BlynkTimer timer;
int temp=0;

// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
  // Set incoming value from pin V0 to a variable
  int value = param.asInt();

  // Update state
  Blynk.virtualWrite(V1, value);
}

// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
  // Change Web Link Button message to "Congratulations!"
  Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
  Blynk.setProperty(V3, "onImageUrl",  "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
  Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}

// This function sends Arduino's uptime every second to Virtual Pin 2.
void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V2, millis() / 1000);
}

void WaterSensor(){
int sensorData = analogRead(A0); //reading the sensor on A0  
  int MyValue = map(analogRead(A0), 200, 450, 0, 40);
  Blynk.virtualWrite(V5, MyValue); //sending to Blynk

  
  if (MyValue<21)
  {
   if (temp==0)
    {
    Blynk.logEvent("wtr_lvl_low", "Water Level Low (below 20) in Water Source Location 1 - 26°18' N 89°39' E ") ; 
    //Blynk.notify ("Water Level Low in Source 1");
    Blynk.virtualWrite (V6, HIGH);
    temp=1;
   }
  }

  else if (MyValue>20){
    Blynk.virtualWrite (V6, LOW);
    temp=0;
  }  
}
void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
pinMode(A0,INPUT);
    
  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
  timer.setInterval(2000L, WaterSensor);
  
}


void loop()
{
 
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}

Upon trying generation of event through link, it is showing this message everyday:

{“error”:{“message”:“You have too many log events for a device.”}}

But, it should reset everyday, right? Please help

Yes. It should reset every day.

But, its showing same everyday :frowning:

Need help to resolve it.

Sure. Investigating.

I now see 3 events in your timeline. Does it work now? Have you changed your code or something?

Is it OK to put all that code in the loop? blynk.virtualwrite etc?

yes, it is working now. Thanks