case '8':
//relay pin 25 off
digitalWrite(25, LOW);
Serial.println("Relay 4 off");
break;
case '9':
//relay pin 26 on
digitalWrite(26, HIGH);
Serial.println("Relay 5 on");
break;
case '0':
//relay pin 26 off
digitalWrite(26, LOW);
Serial.println("Relay 5 off");
break;
case 'a':
//relay pin 27 on
digitalWrite(27, HIGH);
Serial.println("Relay 6 on");
break;
case 'b':
//relay pin 27 off
digitalWrite(27, LOW);
Serial.println("Relay 6 off");
break;
case 'c':
//relay pin 28 on
digitalWrite(28, HIGH);
Serial.println("Relay 7 on");
break;
case 'd':
//relay pin 28 off
digitalWrite(28, LOW);
Serial.println("Relay 7 off");
break;
case 'e':
//relay pin 29 on
digitalWrite(29, HIGH);
Serial.println("Relay 8 on");
break;
case 'f':
//relay pin 29 off
digitalWrite(29, LOW);
Serial.println("Relay 8 off");
break;
case 'g':
//relay pin 29 on
digitalWrite(30, HIGH);
Serial.println("Foyer on");
break;
case 'h':
//relay pin 29 off
digitalWrite(30, LOW);
Serial.println("Foyer off");
break;
case 'i':
//Flash led pin
if (ledstatut > 0){
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 255 - r);
analogWrite(greenPin, 255 - g);
analogWrite(bluePin, 255 - b);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 255 - r);
analogWrite(greenPin, 255 - g);
analogWrite(bluePin, 255 - b);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 255 - r);
analogWrite(greenPin, 255 - g);
analogWrite(bluePin, 255 - b);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 255 - r);
analogWrite(greenPin, 255 - g);
analogWrite(bluePin, 255 - b);
}
else{
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
delay(600);
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
delay(600);
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
Serial.println("Led flash");
break;
case 'j':
//+ brightness
r = (brightness - r);
g = (brightness - g);
b = (brightness - b);
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
Serial.println("+ brightness");
break;
case 'k':
//- brightness
r = (brightness + r);
g = (brightness + g);
b = (brightness + b);
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
Serial.println("- brightness");
break;
}
}
}
if (c == '\n' && currentLineIsBlank) break;
if (c == '\n') {
currentLineIsBlank = true;
}else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection:
}
}
void DoorbellDetection(){
////
// Arduino input detection code
////
if (digitalRead(Doorbell) == HIGH && DoorbellState == false) // switch on pinDevid1 is ON
{
if(DEBUG){Serial.println("Doorbell off");}
DoorbellState = true;
//Sending request to Vera
sendToVera(Doorbelloff);
}
if (digitalRead(Doorbell) == LOW && DoorbellState == true) // switch on pinDevid1 is OFF
{
if(DEBUG){Serial.println("Doorbell on");}
DoorbellState = false;
//Sending request to Vera
sendToVera(Doorbellon);
}
}
void TelephoneDetection (){
time = millis();
////
// Listening for the pin3 state
////
if (digitalRead(Phone) == HIGH && PhoneState == false) // switch on pinDevid1 is ON
{
PhoneState = true;
if(DEBUG){Serial.println("Phone off");}
sendToVera(Phoneoff);
}
if (digitalRead(Phone) == LOW && PhoneState == true) // switch on pinDevid1 is OFF
{
pressed = time,
PhoneState = false;}
if ((PhoneState == false) && ((time - pressed) > pwrtime))
{
if(DEBUG){Serial.println("Phone on");}
Phonedelay = true;
sendToVera(Phoneon);
}
}
void sendToVera(String devid){
if (client.connect(serverName, 49451)) {
if(DEBUG){Serial.println("connected to Vera");}
if(DEBUG){Serial.println("sendind request");}
client.print("GET /data_request?id=lu_action&output_format=xml&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=");
client.print(devid);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverName);
client.println("User-Agent: Arduino");
client.println();
}
else {
if(DEBUG){Serial.println("connection failed");}
}
// if there are incoming bytes available
// from the server, read them and print them:
if(DEBUG){
if (client.available()) {
char c = client.read();
Serial.print(c);
}
}
if(DEBUG){Serial.println();}
if(DEBUG){Serial.println("disconnecting.");}
client.stop();
if (Phonedelay == true)
{
delay(1500);
Phonedelay = false;
}
}