hass-browser_mod
hass-browser_mod copied to clipboard
HA 2024.1.0 - using deprecated supported features
After update HA to 2024.1.0 I get this error:
2024-01-04 08:22:37.388 WARNING (MainThread) [homeassistant.helpers.entity] Entity None (<class 'custom_components.browser_mod.media_player.BrowserModPlayer'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <MediaPlayerEntityFeature.PAUSE|SEEK|VOLUME_SET|VOLUME_MUTE|TURN_ON|TURN_OFF|PLAY_MEDIA|STOP|PLAY|BROWSE_MEDIA: 152463>, please report it to the author of the 'browser_mod' custom integration and reference https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation
Core: 2024.1.2
Supervisor: 2023.12.0
Operating System: 11.4
Frontend: 20240104.0
Same problem/warning here from HA version 2024.1
Same problem for me. Not able to play my frigate clips any longer after core update using browser mod player. (Error starting stream, see logs for details (Server failure)
Logginformation (VARNING) Logger: homeassistant.helpers.entity Source: helpers/entity.py:1520 First occurred: 7 januari 2024 kl. 23:16:25 (3 occurrences) Last logged: 12:29:37
Entity None (<class 'custom_components.browser_mod.media_player.BrowserModPlayer'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <MediaPlayerEntityFeature.PAUSE|SEEK|VOLUME_SET|VOLUME_MUTE|TURN_ON|TURN_OFF|PLAY_MEDIA|STOP|PLAY|BROWSE_MEDIA: 152463>, please report it to the author of the 'browser_mod' custom integration and reference https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation
такая же проблема
I replaced this statement in the media_player.py file :
@property
def supported_features(self):
return (
SUPPORT_PLAY
| SUPPORT_PLAY_MEDIA
| SUPPORT_PAUSE
| SUPPORT_STOP
| SUPPORT_VOLUME_SET
| SUPPORT_VOLUME_MUTE
| SUPPORT_BROWSE_MEDIA
| SUPPORT_SEEK
| SUPPORT_TURN_OFF
| SUPPORT_TURN_ON
)
with this statement:
@property
def supported_features(self):
from homeassistant.components.media_player.const import MediaPlayerEntityFeature
return (
MediaPlayerEntityFeature.PLAY
| MediaPlayerEntityFeature.PLAY_MEDIA
| MediaPlayerEntityFeature.PAUSE
| MediaPlayerEntityFeature.STOP
| MediaPlayerEntityFeature.VOLUME_SET
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.BROWSE_MEDIA
| MediaPlayerEntityFeature.SEEK
| MediaPlayerEntityFeature.TURN_OFF
| MediaPlayerEntityFeature.TURN_ON
)
and the problem seems solved, but you can wait the official patch.
I get more errors now: (below I have add the whole code of media_player.py)
2024-01-16 16:15:35.785 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 61, in handle_connect
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.805 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.810 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.813 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.818 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.821 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.823 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.831 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.833 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
2024-01-16 16:15:35.841 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140111419046336] Error handling message: Unknown error (unknown_error) Peter from 192.168.100.22 (Mozilla/5.0 (Linux; Android 11; SM-T510 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.193 Safari/537.36)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/config/custom_components/browser_mod/connection.py", line 143, in handle_update
dev = getBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 198, in getBrowser
browsers[browserID] = BrowserModBrowser(hass, browserID)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/browser_mod/browser.py", line 42, in __init__
self.update_entities(hass)
File "/config/custom_components/browser_mod/browser.py", line 71, in update_entities
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
File "/config/custom_components/browser_mod/browser.py", line 65, in _assert_browser_sensor
adder = hass.data[DOMAIN][DATA_ADDERS][type]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'sensor'
from homeassistant.components import media_source
from homeassistant.components.media_player import (
SUPPORT_PLAY,
SUPPORT_PLAY_MEDIA,
SUPPORT_PAUSE,
SUPPORT_STOP,
SUPPORT_VOLUME_SET,
SUPPORT_VOLUME_MUTE,
MediaPlayerEntity,
)
from homeassistant.components.media_player.browse_media import (
async_process_play_media_url,
)
from homeassistant.components.media_player.const import (
MEDIA_TYPE_MUSIC,
MEDIA_TYPE_URL,
SUPPORT_BROWSE_MEDIA,
SUPPORT_SEEK,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
)
from homeassistant.const import (
STATE_UNAVAILABLE,
STATE_PAUSED,
STATE_PLAYING,
STATE_IDLE,
STATE_UNKNOWN,
STATE_ON,
STATE_OFF,
)
from homeassistant.util import dt
from .entities import BrowserModEntity
from .const import DOMAIN, DATA_ADDERS
async def async_setup_platform(
hass, config_entry, async_add_entities, discoveryInfo=None
):
hass.data[DOMAIN][DATA_ADDERS]["media_player"] = async_add_entities
async def async_setup_entry(hass, config_entry, async_add_entities):
await async_setup_platform(hass, {}, async_add_entities)
class BrowserModPlayer(BrowserModEntity, MediaPlayerEntity):
def __init__(self, coordinator, browserID, browser):
BrowserModEntity.__init__(self, coordinator, browserID, None)
MediaPlayerEntity.__init__(self)
self.browser = browser
@property
def unique_id(self):
return f"{self.browserID}-player"
@property
def entity_registry_visible_default(self):
return True
@property
def state(self):
state = self._data.get("player", {}).get("state")
return {
"playing": STATE_PLAYING,
"paused": STATE_PAUSED,
"stopped": STATE_IDLE,
"unavailable": STATE_UNAVAILABLE,
"on": STATE_ON,
"off": STATE_OFF,
}.get(state, STATE_UNKNOWN)
@property
def supported_features(self):
from homeassistant.components.media_player.const import MediaPlayerEntityFeature
return (
MediaPlayerEntityFeature.PLAY
| MediaPlayerEntityFeature.PLAY_MEDIA
| MediaPlayerEntityFeature.PAUSE
| MediaPlayerEntityFeature.STOP
| MediaPlayerEntityFeature.VOLUME_SET
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.BROWSE_MEDIA
| MediaPlayerEntityFeature.SEEK
| MediaPlayerEntityFeature.TURN_OFF
| MediaPlayerEntityFeature.TURN_ON
)
@property
def volume_level(self):
return self._data.get("player", {}).get("volume", 0)
@property
def is_volume_muted(self):
return self._data.get("player", {}).get("muted", False)
@property
def media_duration(self):
duration = self._data.get("player", {}).get("media_duration", None)
return float(duration) if duration is not None else None
@property
def media_position(self):
position = self._data.get("player", {}).get("media_position", None)
return float(position) if position is not None else None
@property
def media_position_updated_at(self):
return dt.utcnow()
async def async_set_volume_level(self, volume):
await self.browser.send("player-set-volume", volume_level=volume)
async def async_mute_volume(self, mute):
await self.browser.send("player-mute", mute=mute)
async def async_play_media(self, media_type, media_id, **kwargs):
if media_source.is_media_source_id(media_id):
play_item = await media_source.async_resolve_media(
self.hass, media_id, self.entity_id
)
media_type = play_item.mime_type
media_id = play_item.url
media_id = async_process_play_media_url(self.hass, media_id)
if media_type in (MEDIA_TYPE_URL, MEDIA_TYPE_MUSIC):
media_id = async_process_play_media_url(self.hass, media_id)
await self.browser.send(
"player-play", media_content_id=media_id, media_type=media_type, **kwargs
)
async def async_browse_media(self, media_content_type=None, media_content_id=None):
"""Implement the websocket media browsing helper."""
return await media_source.async_browse_media(
self.hass,
media_content_id,
# content_filter=lambda item: item.media_content_type.startswith("audio/"),
)
async def async_media_play(self):
await self.browser.send("player-play")
async def async_media_pause(self):
await self.browser.send("player-pause")
async def async_media_stop(self):
await self.browser.send("player-stop")
async def async_media_seek(self, position):
await self.browser.send("player-seek", position=position)
async def async_turn_off(self):
await self.browser.send("player-turn-off")
async def async_turn_on(self, **kwargs):
await self.browser.send("player-turn-on", **kwargs)
This fixed it for Firefox on Windows and Android on Fully Kiosk, but not on a Nest Hub through catt. The media_player entity remains unavailable. I'm not seeing anything in the error log.
This fixed it for Firefox on Windows, but not on a Nest Hub through catt. The media_player entity remains unavailable. I'm not seeing anything in the error log.
Nice info. Here I tried it with Safari on Macos. As we can see it didn't solve the issue also.
I'm getting the same issue.
2024-03-04 17:25:44.058 WARNING (MainThread) [homeassistant.helpers.entity] Entity None (<class 'custom_components.browser_mod.media_player.BrowserModPlayer'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <MediaPlayerEntityFeature.PAUSE|SEEK|VOLUME_SET|VOLUME_MUTE|TURN_ON|TURN_OFF|PLAY_MEDIA|STOP|PLAY|BROWSE_MEDIA: 152463>, please report it to the author of the 'browser_mod' custom integration and reference https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation