 
 void processACMessage(const MyMessage &message) {
   // We only expect one type of message from controller. But we better check anyway.
-  if (MODE && message.sensor == CHILD_ID_RELAY_AC && message.type == V_LIGHT) {
+  if (MODE && message.sensor == CHILD_ID_RELAY && message.type == V_LIGHT && message.getBool() == RELAY_ON) {
     digitalWrite(RELAY_PIN, RELAY_ON);
     hw.wait(PUSH_TIMEOUT);
     digitalWrite(RELAY_PIN, RELAY_OFF);
     debug(PSTR("Push button: %d \n"), message.sensor);
+    uint8_t value = RELAY_OFF;
+    sendValue(msgRelay.set(value,1));
   }
 }
 

  if ((iteration == 0) || temperatureChanged(lastTemperature, temperature)) {
    debug(PSTR("Send temperature %s\n"), dtostrf(temperature, 2, 1, outstr));
    lastTemperature= temperature;
    iteration = sendValue(msgTemperature.set(temperature, 1));
  }
  iteration = (iteration + 1) % MAX_ITERATION;
}

uint8_t sendValue(MyMessage &msg)


  // --- RELAY
  hw.present(CHILD_ID_RELAY, S_LIGHT);
  hw.present(CHILD_ID_MODE, S_BINARY);
  hw.present(CHILD_ID_LDR, S_LIGHT_LEVEL);
  
  // Set last mode 
  MODE = hw.loadState(CHILD_ID_MODE);
