async def METHOD_NAME(self):
    self.logger.debug("Run update task")
    try:
        # name
        name = await utils.run_blocking(functools.partial(self._poller.name))
        await fhem.readingsSingleUpdateIfChanged(self.hash, "name", name, 1)
        # firmware_version
        firmware_version = await utils.run_blocking(
            functools.partial(self._poller.firmware_version)
        )
        await fhem.readingsSingleUpdateIfChanged(
            self.hash, "firmware", firmware_version, 1
        )
        for param in (
            "temperature",
            "light",
            "moisture",
            "conductivity",
            "battery",
        ):
            # param
            param_val = await utils.run_blocking(
                functools.partial(self._poller.parameter_value, param)
            )
            if param == "conductivity":
                param = "fertility"
            await fhem.readingsSingleUpdateIfChanged(self.hash, param, param_val, 1)
        await fhem.readingsSingleUpdateIfChanged(self.hash, "presence", "online", 1)
        await fhem.readingsSingleUpdateIfChanged(self.hash, "state", "online", 1)
    except Exception:
        self.logger.error(f"Failed to get updates from miflora {self._address}")
        await fhem.readingsSingleUpdateIfChanged(
            self.hash, "presence", "offline", 1
        )
        await fhem.readingsSingleUpdateIfChanged(self.hash, "state", "offline", 1)