     uint8_t len = 2;
     uint8_t from;
 
-    if (manager.recvfromAck(buf, &len, &from)) { 
+    if (manager.recvfromAck(buf, &len, &from)) {
 
-      char message[] = {'{', '"', 'i', 'd', '"', ':',   '"', 'a', 'b', 'c', 'd', 'e', 'f', 'g',   '"', ',', /*{"id":"abcdefg",*/
-                        '"', 'f', 'r', 'o', 'm',   '"', ':',  '"', (from + 48),   '"', ',', /*"from":"1",*/
-                        '"', 't', 'y', 'p', 'e',   '"', ':',   '"', (buf[0] + 48),   '"', ',', /*"type":"7",*/
-                        '"', 'v', 'a', 'l', 'u', 'e',   '"', ':',   '"', (buf[1] + 48),   '"', '}' /*"value":"0"*/
-                       };
-
+      const char message[] PROGMEM = {'{', '"', 'i', 'd', '"', ':',   '"', 'a', 'b', 'c', 'd', 'e', 'f', 'g',   '"', ',', /*{"id":"abcdefg",*/
+                                      '"', 'f', 'r', 'o', 'm',   '"', ':',  '"', (from + charOffset),   '"', ',', /*"from":"1",*/
+                                      '"', 't', 'y', 'p', 'e',   '"', ':',   '"', (buf[0] + charOffset),   '"', ',', /*"type":"7",*/
+                                      '"', 'v', 'a', 'l', 'u', 'e',   '"', ':',   '"', (buf[1] + charOffset),   '"', '}' /*"value":"0"*/
+                                     };
 
       ether.httpPost(PSTR("/data"), skydome, PSTR("Authorization: Token asdaasd"), message, my_callback);
-
     }
   }
 }

  Serial.println(F("setup() done"));
}

// called when the client request is complete
static void my_callback (byte statusCode, word off, word len) {
  Ethernet::buffer[off + 300] = 0;
  Serial.println((const char*) Ethernet::buffer + off);
}

void loop() {
  ether.packetLoop(ether.packetReceive());



#define SERVER_ADDRESS 0

RF22ReliableDatagram manager(SERVER_ADDRESS, 8, 0);

static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 };

byte Ethernet::buffer[700];

const char skydome[] PROGMEM = "api.skydome.io";

void setup() {
  Serial.begin(9600);
