async def METHOD_NAME(self, type, name):
    try:
        info = await self.zeroconf.async_get_service_info(type, name)
        def get_value(key):
            """Retrieve value and decode to UTF-8."""
            value = info.properties.get(key.encode("utf-8"))
            if value is None or isinstance(value, str):
                return value
            return value.decode("utf-8")
        if info.type == "_googlecast._tcp.local.":
            # check if device exists already, if not commanddefine
            if not (
                await fhem.checkIfDeviceExists(
                    self.hash,
                    "FHEMPYTYPE",
                    "googlecast",
                    "CASTNAME",
                    get_value("fn"),
                )
            ):
                self.logger.debug("create device: " + get_value("fn"))
                await fhem.CommandDefine(
                    self.hash,
                    get_value("md").replace(" ", "_")
                    + "_"
                    + get_value("fn").replace(" ", "_")
                    + " fhempy googlecast '"
                    + get_value("fn")
                    + "'",
                )
            else:
                self.logger.debug(
                    "device " + get_value("fn") + " exists already, do not create"
                )
        elif info.type == "_soundtouch._tcp.local.":
            if not (
                await fhem.checkIfDeviceExists(
                    self.hash, "TYPE", "BOSEST", "DEVICEID", "0"
                )
            ):
                self.logger.debug("create bosest")
                await fhem.CommandDefine(self.hash, "bosesystem BOSEST")
            else:
                self.logger.debug("device BOSEST exists already, do not create")
        elif (
            info.type == "_http._tcp.local."
            and info.name == "fhempy._http._tcp.local."
        ):
            if not (
                await fhem.checkIfDeviceExists(
                    self.hash, "TYPE", "BindingsIo", "IP", get_value("ip")
                )
            ):
                ip = get_value("ip")
                port = get_value("port")
                ipstr = ip.replace(".", "_")
                await fhem.CommandDefine(
                    self.hash, f"fhempy_peer_{ipstr} BindingsIo {ip}:{port} Python"
                )
        elif info.type == "_spotify-connect":
            if not (
                await fhem.checkIfDeviceExists(
                    self.hash, "FHEMPYTYPE", "spotify", "FHEMPYTYPE", "spotify"
                )
            ):
                self.logger.debug("create spotify")
                await fhem.CommandDefine(
                    self.hash, "spotify_connect fhempy spotify"
                )
            else:
                self.logger.debug("device spotify exists already, do not create")
        else:
            return
        # wait for the devices to initialize
        await asyncio.sleep(10)
    except Exception:
        self.logger.exception("Failed to handle foundDevice")