diff --git a/homeassistant/components/hassio/ingress.py b/homeassistant/components/hassio/ingress.py index 6c1ef389712..04241f53de9 100644 --- a/homeassistant/components/hassio/ingress.py +++ b/homeassistant/components/hassio/ingress.py @@ -71,9 +71,14 @@ class HassIOIngress(HomeAssistantView): ws_server = web.WebSocketResponse() await ws_server.prepare(request) + # Preparing url = self._create_url(addon, path) source_header = _init_header(request, addon) + # Support GET query + if request.query_string: + url = "{}?{}".format(url, request.query_string) + # Start proxy async with self._websession.ws_connect( url, headers=source_header diff --git a/tests/components/hassio/test_ingress.py b/tests/components/hassio/test_ingress.py index 4e071ba24fd..4b72eda4c25 100644 --- a/tests/components/hassio/test_ingress.py +++ b/tests/components/hassio/test_ingress.py @@ -136,7 +136,8 @@ async def test_ingress_request_delete( @pytest.mark.parametrize( 'build_type', [ ("a3_vl", "test/beer/ws"), ("core", "ws.php"), - ("local", "panel/config/stream"), ("jk_921", "hulk") + ("local", "panel/config/stream"), ("jk_921", "hulk"), + ("demo", "ws/connection?id=9&token=SJAKWS283") ]) async def test_ingress_websocket( hassio_client, build_type, aioclient_mock):