Merge pull request #96 from schizza/fix/push_data_not_accepted

Added support for POST and GET methods in WSLink.
stable v1.8.1
Lukas Svoboda 2026-02-26 19:07:16 +01:00 committed by GitHub
commit 3822557f74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 6 deletions

View File

@ -56,10 +56,13 @@ class WeatherDataUpdateCoordinator(DataUpdateCoordinator):
self.pocasi: PocasiPush = PocasiPush(hass, config) self.pocasi: PocasiPush = PocasiPush(hass, config)
super().__init__(hass, _LOGGER, name=DOMAIN) super().__init__(hass, _LOGGER, name=DOMAIN)
async def recieved_data(self, webdata): async def recieved_data(self, webdata: aiohttp.web.Request):
"""Handle incoming data query.""" """Handle incoming data query."""
_wslink = self.config_entry.options.get(WSLINK) _wslink = self.config_entry.options.get(WSLINK)
data = webdata.query get_data = webdata.query
post_data = await webdata.post()
data = dict(get_data) | dict(post_data)
response = None response = None
@ -160,7 +163,7 @@ def register_path(
if debug: if debug:
_LOGGER.debug("Default route: %s", default_route) _LOGGER.debug("Default route: %s", default_route)
wslink_route = hass.http.app.router.add_post( wslink_route = hass.http.app.router.add_get(
WSLINK_URL, WSLINK_URL,
coordinator.recieved_data if _wslink else unregistred, coordinator.recieved_data if _wslink else unregistred,
name="weather_wslink_url", name="weather_wslink_url",
@ -168,6 +171,14 @@ def register_path(
if debug: if debug:
_LOGGER.debug("WSLink route: %s", wslink_route) _LOGGER.debug("WSLink route: %s", wslink_route)
wslink_post_route = hass.http.app.router.add_post(
WSLINK_URL,
coordinator.recieved_data if _wslink else unregistred,
name="weather_wslink_post_route_url",
)
if debug:
_LOGGER.debug("WSLink route: %s", wslink_post_route)
routes.add_route( routes.add_route(
DEFAULT_URL, DEFAULT_URL,
default_route, default_route,
@ -178,6 +189,10 @@ def register_path(
WSLINK_URL, wslink_route, coordinator.recieved_data, _wslink WSLINK_URL, wslink_route, coordinator.recieved_data, _wslink
) )
routes.add_route(
WSLINK_URL, wslink_post_route, coordinator.recieved_data, _wslink
)
hass_data["routes"] = routes hass_data["routes"] = routes
except RuntimeError as Ex: # pylint: disable=(broad-except) except RuntimeError as Ex: # pylint: disable=(broad-except)

View File

@ -1,15 +1,19 @@
{ {
"domain": "sws12500", "domain": "sws12500",
"name": "Sencor SWS 12500 Weather Station", "name": "Sencor SWS 12500 Weather Station",
"codeowners": ["@schizza"], "codeowners": [
"@schizza"
],
"config_flow": true, "config_flow": true,
"dependencies": ["http"], "dependencies": [
"http"
],
"documentation": "https://github.com/schizza/SWS-12500-custom-component", "documentation": "https://github.com/schizza/SWS-12500-custom-component",
"homekit": {}, "homekit": {},
"iot_class": "local_push", "iot_class": "local_push",
"issue_tracker": "https://github.com/schizza/SWS-12500-custom-component/issues", "issue_tracker": "https://github.com/schizza/SWS-12500-custom-component/issues",
"requirements": [], "requirements": [],
"ssdp": [], "ssdp": [],
"version": "1.6.9", "version": "1.8.1",
"zeroconf": [] "zeroconf": []
} }