async def METHOD_NAME(self):
    while True:
        # aiohttp post
        headers = {
            "authority": "api.post.at",
            "accept": "*/*",
            "accept-currency": "EUR",
            "accept-language": "de",
            "content-type": "application/json",
            "ocp-apim-subscription-key": "3b9e1fb43aa746e583919d322d2f239f",
            "origin": "https://www.aktionsfinder.at",
            "sec-ch-ua": 'Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": '"Chrome OS"',
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "cross-site",
            "user-agent": "Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
            "x-client-token": "YWZ3ZWJwd2E6OTNtMXBpZTY0bnN6NnVsZnRkeWQ0MjhuNjl6N296OHRwbXQwM3VkZQ==",
        }
        query_json = {
            "radius": "50000",
            "query": self.search_item,
            "lat": 48.21,
            "lng": 16.37,
        }
        try:
            async with aiohttp.ClientSession() as session:
                async with session.post(
                    aktionsfinder.SEARCH_API,
                    json=query_json,
                    headers=headers,
                ) as resp:
                    if resp.status == 200:
                        await self.handle_response(await resp.json())
                    else:
                        await fhem.readingsSingleUpdate(
                            self.hash,
                            "state",
                            f"failed: HTTP error {resp.status}",
                            1,
                        )
                        self.logger.error(f"Failed with status {resp.status}")
        except Exception:
            self.logger.exception("Failed to update")
        await asyncio.sleep(self._attr_interval * 3600)