Hell Yeh! …
I did it!
Well I sort of did it.
After reading all the comments in this post I decided to use @dutchman’s code as a base and build off it. My version of it isn’t the best, and it’s a bit laggy but its works.
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "credentials.h"
BlynkTimer timer;
int relay1 = 14;
int relay2 = 12;
int relay3 = 13;
int relay4 = 15;
int relay5 = 2;
int relay6 = 0;
int relay7 = 4;
int relay8 = 5;
int relayVButton1 = 0;
int relayVButton2 = 0;
int relayVButton3 = 0;
int relayVButton4 = 0;
int relayVButton5 = 0;
int relayVButton6 = 0;
int relayVButton7 = 0;
int relayVButton8 = 0;
boolean relayState1 = 1;
boolean relayState2 = 1;
boolean relayState3 = 1;
boolean relayState4 = 1;
boolean relayState5 = 1;
boolean relayState6 = 1;
boolean relayState7 = 1;
boolean relayState8 = 1;
WidgetLED led1(10); //virtual led
WidgetLED led2(11); //virtual led
WidgetLED led3(12); //virtual led
WidgetLED led4(13); //virtual led
WidgetLED led5(14); //virtual led
WidgetLED led6(15); //virtual led
WidgetLED led7(16); //virtual led
WidgetLED led8(17); //virtual led
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass, server, 8080);
timer.setInterval(300L, somefunction);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(relay7, OUTPUT);
pinMode(relay8, OUTPUT);
digitalWrite(relay1, 1);
digitalWrite(relay2, 1);
digitalWrite(relay3, 1);
digitalWrite(relay4, 1);
digitalWrite(relay5, 1);
digitalWrite(relay6, 1);
digitalWrite(relay7, 1);
digitalWrite(relay8, 1);
}
void somefunction()
{
if (relayVButton1 > 0)
{
relayState1 = !relayState1;
}
digitalWrite(relay1, relayState1);
if (relayVButton2 > 0)
{
relayState2 = !relayState2;
}
digitalWrite(relay2, relayState2);
if (relayVButton3 > 0)
{
relayState3 = !relayState3;
}
digitalWrite(relay3, relayState3);
if (relayVButton4 > 0)
{
relayState4 = !relayState4;
}
digitalWrite(relay4, relayState4);
if (relayVButton5 > 0)
{
relayState5 = !relayState5;
}
digitalWrite(relay5, relayState5);
if (relayVButton6 > 0)
{
relayState6 = !relayState6;
}
digitalWrite(relay6, relayState6);
if (relayVButton7 > 0)
{
relayState7 = !relayState7;
}
digitalWrite(relay7, relayState7);
if (relayVButton8 > 0)
{
relayState8 = !relayState8;
}
digitalWrite(relay8, relayState8);
if (digitalRead(relay1) == LOW)
{
led1.on();
}
else
led1.off();
if (digitalRead(relay2) == LOW)
{
led2.on();
}
else
led2.off();
if (digitalRead(relay3) == LOW)
{
led3.on();
}
else
led3.off();
if (digitalRead(relay4) == LOW)
{
led4.on();
}
else
led4.off();
if (digitalRead(relay5) == LOW)
{
led5.on();
}
else
led5.off();
if (digitalRead(relay6) == LOW)
{
led6.on();
}
else
led6.off();
if (digitalRead(relay7) == LOW)
{
led7.on();
}
else
led7.off();
if (digitalRead(relay8) == LOW)
{
led8.on();
}
else
led8.off();
}
BLYNK_WRITE(V1)
{
relayVButton1 = param.asInt();
}
BLYNK_WRITE(V2)
{
relayVButton2 = param.asInt();
}
BLYNK_WRITE(V3)
{
relayVButton3 = param.asInt();
}
BLYNK_WRITE(V4)
{
relayVButton4 = param.asInt();
}
BLYNK_WRITE(V5)
{
relayVButton5 = param.asInt();
}
BLYNK_WRITE(V6)
{
relayVButton6 = param.asInt();
}
BLYNK_WRITE(V7)
{
relayVButton7 = param.asInt();
}
BLYNK_WRITE(V8)
{
relayVButton8 = param.asInt();
}
void loop() {
Blynk.run();
timer.run();
}