#include "ESP32SSDP.h"
#include "ESPAsyncWebServer.h"
const char* ssid = "********";
const char* password = "********";
AsyncWebServer webserver(80);
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println("Starting WiFi...");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
if (WiFi.waitForConnectResult() == WL_CONNECTED) {
Serial.printf("Starting HTTP...\n");
webserver.on("/index.html", HTTP_GET, [&](AsyncWebServerRequest* request) {
request->send(200, "text/plain", "Hello World!");
});
webserver.on("/description.xml", HTTP_GET,
[&](AsyncWebServerRequest* request) {
request->send(200, "text/xml", SSDP.getSchema());
});
webserver.begin();
// set schema xml url, nees to match http handler
//"ssdp/schema.xml" if not set
SSDP.setSchemaURL("description.xml");
// set port
// 80 if not set
SSDP.setHTTPPort(80);
// set device name
// Null string if not set
SSDP.setName("Philips hue clone");
// set Serial Number
// Null string if not set
SSDP.setSerialNumber("001788102201");
// set device url
// Null string if not set
SSDP.setURL("index.html");
// set model name
// Null string if not set
SSDP.setModelName("Philips hue bridge 2012");
// set model description
// Null string if not set
SSDP.setModelDescription("This device can be controled by WiFi");
// set model number
// Null string if not set
SSDP.setModelNumber("929000226503");
// set model url
// Null string if not set
SSDP.setModelURL("http://www.meethue.com");
// set model manufacturer name
// Null string if not set
SSDP.setManufacturer("Royal Philips Electronics");
// set model manufacturer url
// Null string if not set
SSDP.setManufacturerURL("http://www.philips.com");
// set device type
//"urn:schemas-upnp-org:device:Basic:1" if not set
SSDP.setDeviceType(
"rootdevice"); // to appear as root device, other examples:
// MediaRenderer, MediaServer ...
// set server name
//"Arduino/1.0" if not set
SSDP.setServerName("SSDPServer/1.0");
// set UUID, you can use https://www.uuidgenerator.net/
// use 38323636-4558-4dda-9188-cda0e6 + 4 last bytes of mac address if not
// set use SSDP.setUUID("daa26fa3-d2d4-4072-bc7a-a1b88ab4234a", false); for
// full UUID
SSDP.setUUID("daa26fa3-d2d4-4072-bc7a");
// Set icons list, NB: optional, this is ignored under windows
SSDP.setIcons(
""
"image/png"
"48"
"48"
"24"
"icon48.png"
"");
// Set service list, NB: optional for simple device
SSDP.setServices(
""
"urn:schemas-upnp-org:service:SwitchPower:1"
"urn:upnp-org:serviceId:SwitchPower:1"
"/SwitchPower1.xml"
"/SwitchPower/Control"
"/SwitchPower/Event"
"");
Serial.printf("Starting SSDP...\n");
SSDP.begin();
Serial.printf("Ready!\n");
} else {
Serial.printf("WiFi Failed\n");
while (1) {
delay(100);
}
}
}
void loop() { delay(1); }