Io preferirei imparare qualcosina ( almeno un domani posso fare altre app che mi potrebbero servire ), però mi mancano proprio le basi per fare una applicazione del genere... qualcuno non è che ha tipo uno sketch ( se si usano anche in android ) da cui prendere spunto?
Posto il codice, magari può essere utile a qualcuno, se notate qualche errore però ditemelo 
Per impostare il termostato su ON e impostare la temperatura di 20°C: http://192.168.2.232/?11120
Per impostare il termostato su ON e non variare la temperatura: http://192.168.2.232/?11000
Per variare la temperatura a 15°C: http://192.168.2.232/?00115
Per avere lo stato del termostato non variare nulla: http://192.168.2.232 oppure http://192.168.2.232/?00000
Così facendo in un sito web anche un semplice link ( i.e. ON ) può gestire una funzione
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>
#define relayPin 2    // il pin a cui è collegato il relay
#define sensorPin 0   // il pin a cui è collegato il sensore di temperatura
#define isteresi 2    // isteresi impostata per lo spegnimento caldaia
#define tMax 25      // temperatura massima impostabile
#define tMin 10      // temperatura minima impostabile
#define defMode 0     // default value: 0 summer / 1 winter
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xFF, 0x41 };
byte ip[] = { 192, 168, 2, 232 };
byte gateway[] = { 192, 168, 2, 1 };
byte subnet[] = { 255, 255, 255, 0 };
// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);
// { write modalità, modalità, write temp. impostata, decine impostata, unità impostata }
int buffer[6];
int tempMis; // contiene la temperatura ambientale
int tempImp; // contiene la temperatura voluta
int mode;
void setup()
{
  
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  
  mode = EEPROM.read(0);  // legge da memoria se estate o inverno da indirizzo 0
  
  if (mode < 0 || mode > 1) // controllo dato salvato in memoria
  {
    
    mode = defMode;
    EEPROM.write(0, mode); // scrivo in memoria se estate o inverno su indirizzo 0 valore di default
    
  }
  
  tempImp = EEPROM.read(1); // legge da memoria il valore della temperatura voluta da indirizzo 1
  
  if (tempImp < tMin || tempImp > tMax) // controllo dato salvato in memoria
  {
    
    tempImp = tMin;
    EEPROM.write(1, tempImp);  // scrive in memoria il valore della temperatura voluta su indirizzo 1 valore di default
    
  } 
  
  pinMode(relayPin, OUTPUT);
  
}
void loop()
{
          
  tempMis = (analogRead(sensorPin) * 500) / 1024; // legge dal sensore LM35 la temperatura ambientale
  
  if (tempMis < tempImp && mode == 1)
    
    digitalWrite(relayPin, HIGH);
  
  else if (tempMis >= tempImp + isteresi || mode == 0) // isteresi serve a ridurre le accensioni/spegnimenti della caldaia
  
    digitalWrite(relayPin, LOW);
  
  // listen for incoming clients
  EthernetClient client = server.available();
  
  if (client) 
  {
    
    // an http request ends with a blank line
    boolean currentLineIsBlank = true; // ad ogni loop è inizializzata a "true"
    int x = 0; // ad ogni loop è inizializzata a 0 e serve per popolare l'array
    
    while (client.connected()) 
    {
      
      if (client.available()) 
      {
        
        char c = client.read();
        
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        
        if (x > 5 && x < 11) // i primi 5 caratteri sono: "GET/? " e il 10° carattere è l'ultimo da inserire nell'array
        
          buffer[x - 6] = int(c) - 48; // In ASCII "0" = 48 e "9" = 57 e poi si ricicla x riportandola a 0 + n' ciclo
          
        x++;
        
        if (c == '\n' && currentLineIsBlank) 
        {
          
          // se deve essere variata la modalità
          if (buffer[0] == 1)
          {
            
            buffer[0] == 0; // resetto il write modalità
              
            if (buffer[1] >= 0 && buffer[1] <= 1)
            {
              
              mode = buffer[1];
              EEPROM.write(0, mode); // scrivo in memoria se estate o inverno su indirizzo 0
             
            }
              
          }
              
          // se deve essere variata la temperatura impostata
          if (buffer[2] == 1)
          {
            
            buffer[2] == 0; // resetto il write temp. impostata
            x = buffer[3] * 10 + buffer[4]; // riutilizzo cnt ora non più utilizzata
            if (x >= tMin && x <= tMax)
            {
              
              tempImp = x;
              EEPROM.write(1, tempImp);  // scrive in memoria il valore della temperatura voluta su indirizzo 1
              
            }
            
          }
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
          client.print("{\"temp_r\":\"");
          client.print(tempMis);
          
          if (mode == 0)
          
            client.print("\",\"mode\":\"off\",\"temp_i\":\"");
            
          else
          
            client.print("\",\"mode\":\"on\",\"temp_i\":\"");
            
          client.print(tempImp);
          client.println("\"}");
          break;
          
        }
        
        if (c == '\n') 
        {
          
          // you're starting a new line
          currentLineIsBlank = true;
          
        }
        
        else if (c != '\r') 
        {
          
          // you've gotten a character on the current line
          currentLineIsBlank = false;
          
        }
        
      }
      
    }
    
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    
  }
  
}