Yayyyyyyy

#include <Wire.h>
//#include <Adafruit_BMP085.h>
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <SoftwareSerial.h>
#include <utility/w5100.h>

#define SBLEDPin 8
#define ComputerPowerPin 9
#define USBPowerPin 5


// The IP address will be dependent on your local network:
byte mac[] = {  0x0C, 0x00, 0x0C, 0xE, 0xA, 0xB };
byte ip[] = { 192,168,1, 253 };
byte gateway[] = { 192, 168, 1, 254 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask


byte thismsg;
boolean gotAMessage = false; 
EthernetServer server(80);
SoftwareSerial mySerial(6, 7);
//Adafruit_BMP085 bmp;
float p,oldp;
long days=0;
long hours=0;
long mins=0;
long secs=0;
long currentmillis=0;
int visitors = 0;
int sensorvalue;
boolean ledon;
boolean Dimmer;
boolean override;


void setup()
{  
//  bmp.begin();
  Ethernet.begin(mac, ip, gateway, subnet);
  Ethernet.gatewayIP();
  server.begin(); //,gateway,subnet);
  Serial.begin(9600);
  override=false;
  server.begin();
  mySerial.begin(9600);
//  pinMode(ledPinB, OUTPUT);
//  pinMode(ledPinG, OUTPUT);
//  pinMode(ledPinR, OUTPUT);
//  pinMode(SpeakerPin, OUTPUT);
 pinMode(SBLEDPin, OUTPUT);
 pinMode(ComputerPowerPin, OUTPUT);
  pinMode(USBPowerPin, INPUT);
}



void loop()
{

  char c;
  int buttonState;
  currentmillis= millis();
  secs = currentmillis/1000; //convect milliseconds to seconds
  mins=secs/60; //convert seconds to minutes
  hours=mins/60; //convert minutes to hours
  days=hours/24; //convert hours to days
  secs=secs-(mins*60); //subtract the coverted seconds to minutes in order to display 59 secs max
  mins=mins-(hours*60); //subtract the coverted minutes to hours in order to display 59 minutes max
  hours=hours-(days*24); //subtract the coverted hours to days in order to display 23 hours max
  //Display results
 
 buttonState = digitalRead(USBPowerPin);
 if (buttonState == LOW) {     
   delay(1);
   if ((override==false) && (ledon==false))
    {
      digitalWrite(SBLEDPin, HIGH);  
      ledon=true;
    }
  }
  
 

  
//   sensorvalue = analogRead(sensorpin);    
//Serial.print("Sensor Voltage Reading: ");
//    Serial.println(sensorvalue,DEC);
//    delay(150); 

  //if (pressure!=0) delay(1);

   EthernetClient client = server.available();
  
  // when the client sends the first byte, say hello:
  if (client) 
  {
    if (!gotAMessage) 
    {
        char crrip[16];
        byte rip[4];
        int bcount;
        //client.
        visitors++;
        client.getRemoteIP(rip); // where rip is defined as byte rip[] = {0,0,0,0 };     
        sprintf(crrip, "%d.%d.%d.%d", (unsigned char)rip[0], (unsigned char)rip[1], (unsigned char)rip[2], (unsigned char)rip[3]);

    //    client.getRemoteIPAddress(rip);
//        client.write('a',1);
        //    char c = client.read();     
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println();
        client.print("Welcome ");
        client.println(crrip);
        client.println("
");
        client.println("Hello from my <u><b><i>Arduino!</u></b></i>
");
        client.print("Main Power: ");
          if (buttonState == LOW) 
          client.println("<B><I>Main 240 volts OFF</B></I>
");
         if (buttonState == HIGH)
           client.println("Main 240 volts OK
");
        
          client.println("Bedroom Lighting: <B><I>");
          if (ledon==true) 
            client.println("ON!");
             else
            client.println("OFF!"); 
         client.println("</B></I>
");
   
        client.println("Local IP: http://192.168.1.253:1234/WAN IP: http://110.175.97.110:1234 
");

        client.print("Hello Visitor Number: <b>");
        client.println(visitors);
        client.println("
");
        oldp = p;
     if (days>0) // days will displayed only if value is greater than zero
      {
       client.print(days);
       client.print(" days and :");
      }
      client.print(hours);
     client.print("h:");
     client.print(mins);
     client.print("m:");
     client.print(secs);
     client.print("s
 

 - Written By Craig C. (2012)");

         
        //   if (c=='Q') client.stop();
  //      delay(250);
        client.flush();
        client.stop(); 
  //      delay(150);
        //   CheckChar(c);
      }
  }





  if (mySerial.available()) 
  {
    c = (char)mySerial.read();
//    mySerial.print(c);
    CheckChar(c);
    if (c=='v') {
      mySerial.println("Voltage Status: ");
      if (buttonState == HIGH)  mySerial.println("OK");
      if (buttonState == LOW)  mySerial.println("Power OUT!");
    }
  }


}

void uptime()
{
  mySerial.println("Running Time");
  mySerial.println("------------");
    if (days>0) // days will displayed only if value is greater than zero
  {
    mySerial.print(days);
    mySerial.print(" days and :");
  }
  mySerial.print(hours);
  mySerial.print(":");
  mySerial.print(mins);
  mySerial.print(":");
  mySerial.println(secs);
}
//############################################ UPTIME ^^^^  #################################
 


void ToggleLED() {
// digitalWrite(SBLEDPin,HIGH); 
// digitalWrite(SBLEDPin,LOW); 
  
}


void CheckChar(char c) {

// if (c=='t') mySerial.println(bmp.readTemperature());
// if (c=='b') mySerial.println(bmp.readPressure());
// if (c=='a') mySerial.println(bmp.readAltitude());    
  
 if (c=='h') {
    mySerial.println("Help");    
    mySerial.println("p = power button (quick) P = Power Button Long");
    mySerial.println("L = Light On l = Light Off");
    mySerial.println("s = LED Light Status");
    mySerial.println("v = Home Voltage Status (on/off) O(Overide)");    
    mySerial.println("u = Uptime");    
//    mySerial.println("b = barometer pressure t = Temprature a = Altitude");
 }

if (c=='s') {
  mySerial.print("The LED light is: ");
  if (ledon==true) 
     mySerial.println("ON");

  if (ledon==false) 
     mySerial.println("OFF");    
  
}

  if (c=='L') { 
    digitalWrite(SBLEDPin,HIGH); 
    ledon=true;
//   int fade;
 //  for (fade=1; fade++; fade>=1023);
  //  {
   // analogWrite(ASBLEDPin,fade);
   // delay(40);
  //  }
  } 

  if (c=='o') {
    mySerial.print("Override Status: ");
    if (override==false) 
    {
       mySerial.println("ON");
       digitalWrite(SBLEDPin,LOW); 
       override=true;
       ledon=false;
       return;
    }
    
    
    if (override==true) 
    {
      mySerial.println("OFF");        
      digitalWrite(SBLEDPin,HIGH); 
      override=false;
      ledon=true;
      return;
    }
    
  } 
    


  if (c=='l') { 
  //  analogWrite(ASBLEDPin,0); 
   digitalWrite(SBLEDPin,LOW); 
   ledon=false;
  
  } 

  if (c=='u') 
   {
    uptime(); 
   }

  if (c=='p') { 
    digitalWrite(ComputerPowerPin,HIGH); 
    delay(50);
    digitalWrite(ComputerPowerPin,LOW);
  } 
  if (c=='P') {
    digitalWrite(ComputerPowerPin,HIGH); 
    delay(5000);
    digitalWrite(ComputerPowerPin,LOW);
  } 
}

There's also bluetooth code there to switch the cree LED on/off.