 
 #define DHTPIN 2 
 #define DHTTYPE DHT11 
+#define ADDRBASE 0xF0F0F0F000LL
+
+byte serialIncomingByte = 0;
+
+int sensorValues[32] = {};
+
+int rwBytes[] = {
+  10};
+int rwPins[] = {
+  3};
+
+
+int isUpdate = 0;
+int shortRCHomeAddr = 1;
+int shortASBoardAddr = 2;
+int lightsSnsorPin = A0;
 
 RF24 radio(8,9);
 DHT dht(DHTPIN, DHTTYPE);
-byte incomingByte = 0;
 
-const uint64_t pipes[2] = { 
-  0xF0F0F0F001LL, 0xF0F0F0F002LL };
-const byte shortAddr = 0x02;
-int switchsPins[] = {
-  3};
-int switchesBytes[] = {
-  10};
-int switchStatus[] = {
-  0};
 
-int lightsSnsorPin = A0;
 void setup(void)
 {
   Serial.begin(57600);
 
   dht.begin();
   radio.begin();
-
   radio.setAutoAck(true);
   radio.setRetries(15,15);
   radio.setPALevel(RF24_PA_MAX);
-  radio.openReadingPipe(1,pipes[1]);
-  radio.openWritingPipe(pipes[0]);
-
+  
+  EEPROM.write(1,shortASBoardAddr);
+  EEPROM.write(2,shortRCHomeAddr);
+  
+  radio.openReadingPipe(1,ADDRBASE + EEPROM.read(1));
+  radio.openWritingPipe(ADDRBASE + EEPROM.read(2));
+  
   radio.startListening();
 
-  for(int i = 0; i < sizeof(switchesBytes)-1; i++){
-    pinMode(switchsPins[i], OUTPUT);  
+  for(int i = 0; i < sizeof(rwBytes)-1; i++){
+    pinMode(rwPins[i], OUTPUT);  
   }
 
 

  readTemp(ptr);
  readHum(ptr);
  readLum(ptr);
  readSwitch(ptr);
  
}

void writeSensors(byte* ptr){
  writeSwitch(ptr);
  readSensors(ptr);

}

void readTemp(byte* ptr){
  float t = dht.readTemperature();
  if (!isnan(t)){
    EEPROM.write(2,(byte)t);
  }
  else{
    EEPROM.write(32,13);
  }


}
void readHum(byte* ptr){
  float h = dht.readHumidity();
  if (!isnan(h)){
    EEPROM.write(3,(byte)h);    
    
  }
  else{
    EEPROM.write(32,14);
          
  }
}
void readLum(byte* ptr){
  EEPROM.write(4,analogRead(lightsSnsorPin));
  

}

void readSwitch(byte* ptr){
  for(int i = 0; i < sizeof(switchesBytes)-1; i++){
     EEPROM.write(switchesBytes[i],switchStatus[i]);
  }
}

void writeSwitch(byte* ptr){
  for(int i = 0; i < sizeof(switchesBytes)-1; i++){
    digitalWrite(switchsPins[i], ptr[switchesBytes[i]]);
    switchStatus[i] = ptr[switchesBytes[i]];
    ptr[1] = 255;
  }
}



  uint8_t pipenum = 0;
  
  readSensors(ptr);
  if (isUpdate){
    Serial.println("Update");
    Serial.println(isUpdate);
    sendUpdate();
  }
  
  if (Serial.available() > 0) {  //если есть доступные данные
    // считываем байт
    serialIncomingByte = Serial.read();

    // отсылаем то, что получили
    Serial.println(serialIncomingByte);
    switch(serialIncomingByte){
    case 49: 
      Serial.println("EEEPROM:");
      for (int i=0;i<35;i++){
        Serial.print(EEPROM.read(i));
        Serial.print(" ");        
      }
