here the code
//Michael sketche
//Arduino server for 8 relay, stove and RGB led strip
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//address will look like http://192.168.1.102:84 for the ledserver
//address will look like http://192.168.1.102:85 for the relayserver
//for use with W5100 based ethernet shields
#include <SPI.h>
#include <Ethernet.h>
boolean reading = false;
// Debug mode
#define DEBUG true
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 2, 16 }; // ip in lan
EthernetServer Ledserver(84); //Led server port
EthernetServer Relayserver(85); //Relay server port
//For arduino input
#define Doorbelloff "76" //Scene for pin 2 LOW (door bell On)
#define Doorbellon "83" //Scene for pin 2 high (door bell OFF)
#define Phoneon "81" //Scene for pin 3 LOW (telephoe ring On)
#define Phoneoff "82" //Scene for pin 3 high (telephoe ring OFF)
#define Doorbell 2
#define Phone 3
boolean DoorbellState = false;
boolean PhoneState = false;
boolean Phonedelay = false;
//Variable for debonce phone ring
unsigned long pressed;
int pwrtime = 600;
unsigned long time;
unsigned long unpressed;
char serverName[] = "192.168.2.19"; //Vera ip address
EthernetClient client;
String readString;
//RGB led pin
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
//////////////////////
void setup(){
//start Ethernet
Ethernet.begin(mac, ip);
Ledserver.begin();
//Led pin
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
//input
pinMode(Doorbell, INPUT);
pinMode(Phone, INPUT);
//relay pin
pinMode(22, OUTPUT); //output relay pin
pinMode(23, OUTPUT); //output relay pin
pinMode(24, OUTPUT); //output relay pin
pinMode(25, OUTPUT); //output relay pin
pinMode(26, OUTPUT); //output relay pin
pinMode(27, OUTPUT); //output relay pin
pinMode(28, OUTPUT); //output relay pin
pinMode(29, OUTPUT); //output relay pin
pinMode(29, OUTPUT); //output relay pin
Serial.begin(9600);
Serial.println("Arduino starting"); // so I can keep track of what is loaded
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
while(true);
}
else{
Serial.println("Ethernet ready local IP:");
Serial.println(Ethernet.localIP());
}
// give the Ethernet shield a second to initialize:
delay(1000);
}
void loop(){
Led();
Relay();
DoorbellDetection();
TelephoneDetection();
}
void Led(){
// Create a client connection
EthernetClient client = Ledserver.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
//if HTTP request has ended
if (c == '\n') {
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Michael led server</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H1>Michael test server</H1>");
client.println("<a href=\"/?on\"\">ON</a>");
client.println("<a href=\"/?off\"\">OFF</a>");
client.println("</BODY>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();
readString = readString.substring(5, readString.length() - 11);
Serial.println(readString); //print to serial monitor for debuging
int commaIndex = readString.indexOf(',');
// Search for the next comma just after the first
int secondCommaIndex = readString.indexOf(',', commaIndex+1);
String firstValue = readString.substring(0, commaIndex);
String secondValue = readString.substring(commaIndex+1, secondCommaIndex);
String thirdValue = readString.substring(secondCommaIndex+1); // To the end of the string
int r = firstValue.toInt();
int g = secondValue.toInt();
int b = thirdValue.toInt();
Serial.println(r);
Serial.println(g);
Serial.println(b);
//clearing string for next read
readString="";
}
}
}
}
}
}