Blynk_write_default() & blynk_read_default()

Hello.

They are basically a way of writing code that is independent of pre-selected vPins… and a feature that I have never really bothered to use, so not sure of its benefit with a project that is generally mapped out.

But instead of setting a Button widget with V1 and then writing vPin specific code like…

BLYNK_WRITE(V1) {
  if (param.asInt() == 1) {
    Serial.println("Button is pressed");
  } else {
    // Do something, or nothing, when button is OFF
  }
}

You can write this… that will work with a button set to any vPin that is not already assigned in code.

BLYNK_WRITE_DEFAULT() {
  int pin = request.pin; // determines what vPin is triggering this response
  if (param.asInt() == 1) {
   Serial.print("Button on Virtual Pin ");
   Serial.print(pin);  // Display the number of the vPin
   Serial.println(" is pressed");
  } else {
    // Do something, or nothing, when button is OFF
  }
}

And the difference between the ‘read’ vs ‘write’ is the same as described here