2 way lighting circuit control with blynk and feedback updates

You could try something like a current flow detection device, or this one. No need for the value of the current, just whether it is on or off should be sufficient. Then using that logical on/off determination show the activity in the app with the Blynk.virtualWrite() as @Dmitriy mentioned.

I have done something similar (without the active hardware detection) using an app slider and a single physical button/switch combo to control the brightness of an LED

#define WLED 6  // Set Physical LED pin.

WidgetLED WHT(V5);  // Set virtual White LED widget

//===== White LED slider widget - BLYNK Function =====
BLYNK_WRITE(V4)  // Runs everytime White LED slider widget (on V4) is "physically" moved.
{
  brightness = param.asInt();  // Get slider value.
  WHT.setValue(brightness);  // Send slider value to virtual LED.
  analogWrite(WLED, brightness);  // Send slider value to real LED.
}

//===== CodeShield button control of White LED =====
void whiteLED()  // This function checks buttons status and updates White LED and slider (frequency dependent on timer).
{
  if (digitalRead(bUutton) == HIGH and digitalRead(sWitch) == HIGH and brightness < 255) { // Only do something if button pressed and brightness counter in range.
    brightness += 50;  // Increment counter by 50
    Blynk.virtualWrite(V4, constrain(brightness, 0, 255));  // Send constrained (within 0-255) feedback to Slider Widget.
    WHT.setValue(constrain(brightness, 0, 255));  // Send constrained feedback to virtual LED.
    analogWrite(WLED, constrain(brightness, 0, 255));  // Send constrained feedback to LED.
  }
  else if (digitalRead(bUutton) == HIGH and digitalRead(sWitch) == LOW and brightness > 0) {  // Only do something if button pressed and brightness counter in range.
    brightness -= 50;  // Decrement counter by 50
    Blynk.virtualWrite(V4, constrain(brightness, 0, 255));  // Send constrained feedback to Slider Widget.
    WHT.setValue(constrain(brightness, 0, 255));  // Send constrained feedback to virtual LED.
    analogWrite(WLED, constrain(brightness, 0, 255));  // Send constrainedfeedback to real LED.
  }
  else {  // Nothing happening here... move along :)
  }
}