Como recibir un dato de un fader con Touchosc?

Hola que tal? Estoy tratando de hacer un programa que controle un ventilador a través del arduino y un iphone, tengo un arduino uno con una Ethernet shield y en el iphone el touchosc además descargue la librería ardosc. Quiero tener en el iphone un fader que pueda controlar el valor maximo de temperatura al cual enciende el ventilador, por ejemplo si el slider esta aproximadamente en 40grados que el ventilador prende hasta lograr que esta temperatura baje, quiero que la temperatura sea configurable desde el teléfono, por eso el fader,Con un ejemplo que encontré en esta pagina:
http://reactivemusic.net/?tag=touchosc
lo modifique y realice el sketch del final.
Logre que funcione pero el ventilador solo arranca si la temperatura esta por arriba del fader y presiono el fader, si no lo presiono este se mantiene en el estado en que esta, por ejemplo si la temperatura en el fader es 40 grados y la temperatura que marca el arduino es 45 el ventilador solo arranca si presiono el fader y cuando baja la temperatura no para tampoco hasta que no lo presiono.
Si alguien pudiera ayudarme le estaría muy agradecido, y desde ya gracias por tomarse su tiempo para leer mi problema, saludos desde argentina!

#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x0B, 0xCE }; //physical mac address
OSCServer server;
OSCClient client;
int serverPort = 8000; //Touch OSC Port (outgoing)
int destPort = 9000; //Touch OSC Port (incoming)
int ledPin = 5; 
int flag=0;
int analogPin = 3;     
int val = 0;           

void setup(){
pinMode(2, OUTPUT);
 Serial.begin(9600); 
 Serial.println("DNS and DHCP-based OSC server");
 if (Ethernet.begin(mac) == 0) {
 Serial.println("Failed to configure Ethernet using DHCP");
 while(true);
 }
 Serial.print("Arduino IP address: ");
 for (byte thisByte = 0; thisByte < 4; thisByte++) {
 Serial.print(Ethernet.localIP()[thisByte], DEC);
 Serial.print("."); 
 }
 Serial.println();
 Serial.println();
 server.begin(serverPort);
 server.addCallback("/1/toggle1", &funcOnOff);
 server.addCallback("/1/fader1", &funcFader);
}

void loop(){
if(server.aviableCheck()>0){
 // Serial.println("alive! ");
  val = analogRead(analogPin);    // read the input pin
  Serial.println(val);             // debug value

 } 
}

void funcOnOff(OSCMessage *_mes){
  val = analogRead(analogPin);
 float value = _mes->getArgFloat(0); //TouchOSC expects float values
//create new osc message
 OSCMessage newMes;
//set destination ip address & port no
 newMes.setAddress(_mes->getIpAddress(),destPort);
 newMes.beginMessage("/1/toggle1");
Serial.println(value);
 if(value < val) {
 digitalWrite(ledPin, HIGH;
 }
 else{
 digitalWrite(ledPin, LOW);
 }
newMes.addArgFloat(value);
 client.send(&newMes);
}
/code]