constructor(options) {
        this.config = options.config;
        this.robot = options.robot;
        this.valetudoHelper = options.valetudoHelper;

        this.webserverPort = this.config.get("webserver")?.port ?? 80;

        this.networkStateCheckTimeout = undefined;
        this.ipAddresses = "";

        this.config.onUpdate((key) => {
            if (key === "networkAdvertisement") {
                this.restart().catch((err) => {
                    Logger.warn("Error while restarting NetworkAdvertisementManager due to config change", err);
                });
            }
        });

        this.valetudoHelper.onFriendlyNameChanged(() => {
            this.restart().catch((err) => {
                Logger.warn("Error while restarting NetworkAdvertisementManager due to friendly name change", err);
            });
        });

        this.setUp();
    }
This class handles advertisement via both SSDP (UPnP) and zeroconf/mdns/bonjour

@param {object} options
@param {import("./Configuration")} options.config
@param {import("./core/ValetudoRobot")} options.robot
@param {import("./utils/ValetudoHelper")} options.valetudoHelper