Days selection on Time Input widget

Hi

I’m using the time input widget on an ESP8266.
I’m using the “days of week” selection feature.
When selecting one or more days all is fine and I’m getting the correct readings.

When de-selecting all days (No days are selected), I get and indications that all the days are indeed selected.

Please advise

Android or iOS?
App version?
Sketch?

Pete.

Hi
Using IOS
Blynk version 3.4.6
Thanks

This is how it’s been from before. I have experienced the same. I just reset the time to -:- so the event is not triggered.

That’s not a bug, it’s logical behaviour. See the weekdays selection as a limiting element. If you select one or more weekdays, then the trigger events are limited to the the chosen days. If no weekday is selected, then there is no limit for trigger events, so it’s triggering every day. Selecting no weekday does the same as selecting every weekday. @Madhukesh is right, reset the time to -:- to disable any trigger event.

Actually, there’s a way to tell that no days have been selected without resetting the timer.

Hi John,

Can you please share how to distinguish that no days have been selected.

Thank you

I’ve modified the advanced time input example a little bit. You can give it a try.

#define BLYNK_TEMPLATE_ID           "TMPxxxxxx"

#define BLYNK_TEMPLATE_NAME         "Device"

#define BLYNK_AUTH_TOKEN            "YourAuthToken"

/* Comment this out to disable prints and save space */

#define BLYNK_PRINT Serial

#include <WiFi.h>

#include <WiFiClient.h>

#include <BlynkSimpleEsp32.h>

// Your WiFi credentials.

// Set password to "" for open networks.

char ssid[] = "YourNetworkName";

char pass[] = "YourPassword";

BLYNK_WRITE(V8) {

  TimeInputParam t(param);

  // Process start time

  if (t.hasStartTime())

  {

    Serial.println(String("Start: ") +

                   t.getStartHour() + ":" +

                   t.getStartMinute() + ":" +

                   t.getStartSecond());

  }

  else if (t.isStartSunrise())

  {

    Serial.println("Start at sunrise");

  }

  else if (t.isStartSunset())

  {

    Serial.println("Start at sunset");

  }

  else

  {

    // Do nothing

  }

  // Process stop time

  if (t.hasStopTime())

  {

    Serial.println(String("Stop: ") +

                   t.getStopHour() + ":" +

                   t.getStopMinute() + ":" +

                   t.getStopSecond());

  }

  else if (t.isStopSunrise())

  {

    Serial.println("Stop at sunrise");

  }

  else if (t.isStopSunset())

  {

    Serial.println("Stop at sunset");

  }

  else

  {

    // Do nothing: no stop time was set

  }

  // Process timezone

  // Timezone is already added to start/stop time

  Serial.println(String("Time zone: ") + t.getTZ());

  // Get timezone offset (in seconds)

  Serial.println(String("Time zone offset: ") + t.getTZ_Offset());

  // Process weekdays (1. Mon, 2. Tue, 3. Wed, ...)

  String days = param[3].asStr();

  for (int i = 1; i <= 7; i++) {

  if (days.indexOf(String(i)) >= 0) {

  Serial.println(String("Day ") + i + " is selected");

  } else {

    Serial.println(String("Day ") + i + " is not selected");

  }

}

  Serial.println();

 

}

void setup()

{

  // Debug console

  Serial.begin(115200);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);

  // You can also specify server:

  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);

  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);

}

void loop()

{
  Blynk.run();
}
1 Like