   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);
 }
 
+const uint8_t charOffset PROGMEM = 48;
 void loop() {
   ether.packetLoop(ether.packetReceive());
 

    uint8_t len = 2;
    uint8_t 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"*/
                       };


      ether.httpPost(PSTR("/data"), skydome, PSTR("Authorization: Token asdaasd"), message, my_callback);

    }
  }
}


#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);
