   }
 
   macString = String(WiFi.macAddress());
-  ipString = StringIPaddress();
-
+  ipString = StringIPaddress(WiFi.localIP());
+  netmaskString = StringIPaddress(WiFi.subnetMask());
+  gatewayString = StringIPaddress(WiFi.gatewayIP());
+    
   Serial.print("Starting HTTP at ");
   Serial.print(WiFi.localIP());
   Serial.print(":");

    aJsonObject* onState = aJson.getObjectItem(parsedRoot, "on");
    bool onValue = onState->valuebool;

    RgbColor rgb;

    // FIXME: Right now this code crashes the ESP when the hue app is used to change the brightness.
    // FIXME: The hue app sends only bri and on when one changes the brightness; so we cannot assume there is hue in the request and need to get the hue from somewhere else!
    if (HTTP.arg("plain").length() > 30 )  // FIXME: Find a cleaner way to do this, can't aJson determine whether a key is present?
    {
      Serial.println("REQUEST CONTAINS HUE");
      aJsonObject* hueState = aJson.getObjectItem(parsedRoot, "hue");
      int hue = hueState->valueint;
      aJsonObject* satState = aJson.getObjectItem(parsedRoot, "sat");
      int sat = satState->valueint;
      aJsonObject* briState = aJson.getObjectItem(parsedRoot, "bri");
      int bri = briState->valueint;
      RgbColor rgb;
      rgb = hsb2rgb(hue, sat, bri);
    }
    else
    {
      Serial.println("REQUEST DOES NOT CONTAIN HUE AND WE MIGHT NOT HAVE IT");
      rgb = white; // FIXME: Where should I get the RGB from in this case? From the pixel... But if it was off then the pixel doesn't know it. Need to maintain a state in the sketch?
    }

    aJson.deleteItem(parsedRoot);
    Serial.print("I should --> ");

  aJsonObject *swupdate;
  aJson.addItemToObject(root, "swupdate", swupdate = aJson.createObject());
  aJson.addStringToObject(swupdate, "text", "");
  aJson.addBooleanToObject(swupdate, "notify", false); // Otherwise client app shows update notice
  aJson.addNumberToObject(swupdate, "updatestate", 0);
  aJson.addStringToObject(swupdate, "url", "");
}
