diff --git a/homeassistant/components/ai_task/__init__.py b/homeassistant/components/ai_task/__init__.py index 767104916bf5d6..002ee315a68c8a 100644 --- a/homeassistant/components/ai_task/__init__.py +++ b/homeassistant/components/ai_task/__init__.py @@ -53,9 +53,6 @@ "GenImageTaskResult", "async_generate_data", "async_generate_image", - "async_setup", - "async_setup_entry", - "async_unload_entry", ] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/assist_pipeline/__init__.py b/homeassistant/components/assist_pipeline/__init__.py index 8addca9fbce9ab..7ee80a14147741 100644 --- a/homeassistant/components/assist_pipeline/__init__.py +++ b/homeassistant/components/assist_pipeline/__init__.py @@ -65,7 +65,6 @@ "async_create_default_pipeline", "async_get_pipelines", "async_pipeline_from_audio_stream", - "async_setup", "async_update_pipeline", ) diff --git a/homeassistant/components/assist_pipeline/pipeline.py b/homeassistant/components/assist_pipeline/pipeline.py index 764a036bb35c21..f71e3681f5b5f9 100644 --- a/homeassistant/components/assist_pipeline/pipeline.py +++ b/homeassistant/components/assist_pipeline/pipeline.py @@ -19,7 +19,14 @@ import hass_nabucasa import voluptuous as vol -from homeassistant.components import conversation, stt, tts, wake_word, websocket_api +from homeassistant.components import ( + conversation, + media_player, + stt, + tts, + wake_word, + websocket_api, +) from homeassistant.const import ATTR_SUPPORTED_FEATURES, MATCH_ALL from homeassistant.core import Context, HomeAssistant, callback from homeassistant.exceptions import HomeAssistantError @@ -130,7 +137,10 @@ def validate_language(data: dict[str, Any]) -> Any: @callback def _async_local_fallback_intent_filter(result: RecognizeResult) -> bool: """Filter out intents that are not local fallback.""" - return result.intent.name in (intent.INTENT_GET_STATE) + return result.intent.name in ( + intent.INTENT_GET_STATE, + media_player.INTENT_MEDIA_SEARCH_AND_PLAY, + ) @callback diff --git a/homeassistant/components/asuswrt/bridge.py b/homeassistant/components/asuswrt/bridge.py index 924c69532f805b..81ace7d2873fc4 100644 --- a/homeassistant/components/asuswrt/bridge.py +++ b/homeassistant/components/asuswrt/bridge.py @@ -72,7 +72,16 @@ class WrtDevice(NamedTuple): _LOGGER = logging.getLogger(__name__) -type _FuncType[_T] = Callable[[_T], Awaitable[list[Any] | tuple[Any] | dict[str, Any]]] +type _FuncType[_T] = Callable[ + [_T], + Awaitable[ + list[str] + | tuple[float | None, float | None] + | list[float] + | dict[str, float | str | None] + | dict[str, float] + ], +] type _ReturnFuncType[_T] = Callable[[_T], Coroutine[Any, Any, dict[str, Any]]] @@ -87,7 +96,9 @@ def _handle_errors_and_zip( """Run library methods and zip results or manage exceptions.""" @functools.wraps(func) - async def _wrapper(self: _AsusWrtBridgeT) -> dict[str, str]: + async def _wrapper( + self: _AsusWrtBridgeT, + ) -> dict[str, float | str | None] | dict[str, float]: try: data = await func(self) except exceptions as exc: @@ -114,7 +125,9 @@ class AsusWrtBridge(ABC): @staticmethod def get_bridge( - hass: HomeAssistant, conf: dict[str, Any], options: dict[str, Any] | None = None + hass: HomeAssistant, + conf: dict[str, str | int], + options: dict[str, str | bool | int] | None = None, ) -> AsusWrtBridge: """Get Bridge instance.""" if conf[CONF_PROTOCOL] in (PROTOCOL_HTTPS, PROTOCOL_HTTP): @@ -313,22 +326,22 @@ async def _get_available_temperature_sensors(self) -> list[str]: return [SENSORS_TEMPERATURES_LEGACY[i] for i in range(3) if availability[i]] @handle_errors_and_zip((IndexError, OSError, ValueError), SENSORS_BYTES) - async def _get_bytes(self) -> Any: + async def _get_bytes(self) -> tuple[float | None, float | None]: """Fetch byte information from the router.""" return await self._api.async_get_bytes_total() @handle_errors_and_zip((IndexError, OSError, ValueError), SENSORS_RATES) - async def _get_rates(self) -> Any: + async def _get_rates(self) -> tuple[float, float]: """Fetch rates information from the router.""" return await self._api.async_get_current_transfer_rates() @handle_errors_and_zip((IndexError, OSError, ValueError), SENSORS_LOAD_AVG) - async def _get_load_avg(self) -> Any: + async def _get_load_avg(self) -> list[float]: """Fetch load average information from the router.""" return await self._api.async_get_loadavg() @handle_errors_and_zip((OSError, ValueError), None) - async def _get_temperatures(self) -> Any: + async def _get_temperatures(self) -> dict[str, float]: """Fetch temperatures information from the router.""" return await self._api.async_get_temperature() diff --git a/homeassistant/components/asuswrt/config_flow.py b/homeassistant/components/asuswrt/config_flow.py index a86f7e0831867d..4dbbd34bfdcaa7 100644 --- a/homeassistant/components/asuswrt/config_flow.py +++ b/homeassistant/components/asuswrt/config_flow.py @@ -175,12 +175,12 @@ def _show_setup_form(self, error: str | None = None) -> ConfigFlowResult: ) async def _async_check_connection( - self, user_input: dict[str, Any] + self, user_input: dict[str, str | int] ) -> tuple[str, str | None]: """Attempt to connect the AsusWrt router.""" api: AsusWrtBridge - host: str = user_input[CONF_HOST] + host = user_input[CONF_HOST] protocol = user_input[CONF_PROTOCOL] error: str | None = None diff --git a/homeassistant/components/asuswrt/router.py b/homeassistant/components/asuswrt/router.py index 3631c7a25bb725..cf8995c6f637b1 100644 --- a/homeassistant/components/asuswrt/router.py +++ b/homeassistant/components/asuswrt/router.py @@ -176,7 +176,7 @@ def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: self._on_close: list[Callable] = [] - self._options: dict[str, Any] = { + self._options: dict[str, str | bool | int] = { CONF_DNSMASQ: DEFAULT_DNSMASQ, CONF_INTERFACE: DEFAULT_INTERFACE, CONF_REQUIRE_IP: True, @@ -299,12 +299,10 @@ async def update_devices(self) -> None: _LOGGER.warning("Reconnected to ASUS router %s", self.host) self._connected_devices = len(wrt_devices) - consider_home: int = self._options.get( - CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME.total_seconds() - ) - track_unknown: bool = self._options.get( - CONF_TRACK_UNKNOWN, DEFAULT_TRACK_UNKNOWN + consider_home = int( + self._options.get(CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME.total_seconds()) ) + track_unknown = self._options.get(CONF_TRACK_UNKNOWN, DEFAULT_TRACK_UNKNOWN) for device_mac, device in self._devices.items(): dev_info = wrt_devices.pop(device_mac, None) diff --git a/homeassistant/components/conversation/__init__.py b/homeassistant/components/conversation/__init__.py index f189c367cf28b8..99464d64ef783f 100644 --- a/homeassistant/components/conversation/__init__.py +++ b/homeassistant/components/conversation/__init__.py @@ -87,7 +87,6 @@ "async_get_chat_log", "async_get_result_from_chat_log", "async_set_agent", - "async_setup", "async_unset_agent", ] diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index 1ab688f457952e..313373e3181b88 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -2,12 +2,12 @@ from __future__ import annotations -from homeassistant.const import STATE_HOME +from homeassistant.const import ATTR_GPS_ACCURACY, STATE_HOME # noqa: F401 from homeassistant.core import HomeAssistant from homeassistant.helpers.typing import ConfigType from homeassistant.loader import bind_hass -from .config_entry import ( +from .config_entry import ( # noqa: F401 ScannerEntity, ScannerEntityDescription, TrackerEntity, @@ -15,7 +15,7 @@ async_setup_entry, async_unload_entry, ) -from .const import ( +from .const import ( # noqa: F401 ATTR_ATTRIBUTES, ATTR_BATTERY, ATTR_DEV_ID, @@ -37,7 +37,7 @@ SCAN_INTERVAL, SourceType, ) -from .legacy import ( +from .legacy import ( # noqa: F401 PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE, SERVICE_SEE, @@ -61,44 +61,3 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Set up the device tracker.""" async_setup_legacy_integration(hass, config) return True - - -__all__ = ( - "ATTR_ATTRIBUTES", - "ATTR_BATTERY", - "ATTR_DEV_ID", - "ATTR_GPS", - "ATTR_HOST_NAME", - "ATTR_IP", - "ATTR_LOCATION_NAME", - "ATTR_MAC", - "ATTR_SOURCE_TYPE", - "CONF_CONSIDER_HOME", - "CONF_NEW_DEVICE_DEFAULTS", - "CONF_SCAN_INTERVAL", - "CONF_TRACK_NEW", - "CONNECTED_DEVICE_REGISTERED", - "DEFAULT_CONSIDER_HOME", - "DEFAULT_TRACK_NEW", - "DOMAIN", - "ENTITY_ID_FORMAT", - "PLATFORM_SCHEMA", - "PLATFORM_SCHEMA_BASE", - "SCAN_INTERVAL", - "SERVICE_SEE", - "SERVICE_SEE_PAYLOAD_SCHEMA", - "SOURCE_TYPES", - "AsyncSeeCallback", - "DeviceScanner", - "ScannerEntity", - "ScannerEntityDescription", - "SeeCallback", - "SourceType", - "TrackerEntity", - "TrackerEntityDescription", - "async_setup", - "async_setup_entry", - "async_unload_entry", - "is_on", - "see", -) diff --git a/homeassistant/components/husqvarna_automower/manifest.json b/homeassistant/components/husqvarna_automower/manifest.json index 03605cc738b0df..be5598b08a38a0 100644 --- a/homeassistant/components/husqvarna_automower/manifest.json +++ b/homeassistant/components/husqvarna_automower/manifest.json @@ -5,6 +5,7 @@ "config_flow": true, "dependencies": ["application_credentials"], "documentation": "https://www.home-assistant.io/integrations/husqvarna_automower", + "integration_type": "hub", "iot_class": "cloud_push", "loggers": ["aioautomower"], "quality_scale": "silver", diff --git a/homeassistant/components/husqvarna_automower_ble/config_flow.py b/homeassistant/components/husqvarna_automower_ble/config_flow.py index fdca16a2765fb8..04c1d29f6c249d 100644 --- a/homeassistant/components/husqvarna_automower_ble/config_flow.py +++ b/homeassistant/components/husqvarna_automower_ble/config_flow.py @@ -62,6 +62,14 @@ def _is_supported(discovery_info: BluetoothServiceInfo): LOGGER.debug("Unsupported device: %s (%s)", manufacturer_data, discovery_info) return False + if not manufacturer_data.pairable: + LOGGER.error( + "The mower does not appear to be pairable. " + "Ensure the mower is in pairing mode before continuing. " + "If the mower isn't pariable you will receive authentication " + "errors and be unable to connect" + ) + LOGGER.debug("Supported device: %s", manufacturer_data) return True diff --git a/homeassistant/components/husqvarna_automower_ble/manifest.json b/homeassistant/components/husqvarna_automower_ble/manifest.json index 68cfd5e8486028..75d53ab1d8a703 100644 --- a/homeassistant/components/husqvarna_automower_ble/manifest.json +++ b/homeassistant/components/husqvarna_automower_ble/manifest.json @@ -12,5 +12,5 @@ "dependencies": ["bluetooth_adapters"], "documentation": "https://www.home-assistant.io/integrations/husqvarna_automower_ble", "iot_class": "local_polling", - "requirements": ["automower-ble==0.2.7", "gardena-bluetooth==1.6.0"] + "requirements": ["automower-ble==0.2.8", "gardena-bluetooth==1.6.0"] } diff --git a/homeassistant/components/mcp/__init__.py b/homeassistant/components/mcp/__init__.py index a2a148dffd5605..642fa400213ff1 100644 --- a/homeassistant/components/mcp/__init__.py +++ b/homeassistant/components/mcp/__init__.py @@ -16,8 +16,6 @@ __all__ = [ "DOMAIN", - "async_setup_entry", - "async_unload_entry", ] API_PROMPT = "The following tools are available from a remote server named {name}." diff --git a/homeassistant/components/mcp_server/__init__.py b/homeassistant/components/mcp_server/__init__.py index e523f46228fd66..f3fa499f34a49e 100644 --- a/homeassistant/components/mcp_server/__init__.py +++ b/homeassistant/components/mcp_server/__init__.py @@ -14,9 +14,6 @@ __all__ = [ "CONFIG_SCHEMA", "DOMAIN", - "async_setup", - "async_setup_entry", - "async_unload_entry", ] CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index da773a7eb29f37..ea9dd0adcfdd2b 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -104,6 +104,7 @@ ATTR_SOUND_MODE_LIST, CONTENT_AUTH_EXPIRY_TIME, DOMAIN, + INTENT_MEDIA_SEARCH_AND_PLAY, REPEAT_MODES, SERVICE_BROWSE_MEDIA, SERVICE_CLEAR_PLAYLIST, diff --git a/homeassistant/components/media_player/const.py b/homeassistant/components/media_player/const.py index 990acb4c497bf7..4415b9ab7d1763 100644 --- a/homeassistant/components/media_player/const.py +++ b/homeassistant/components/media_player/const.py @@ -43,6 +43,16 @@ DOMAIN = "media_player" +INTENT_MEDIA_PAUSE = "HassMediaPause" +INTENT_MEDIA_UNPAUSE = "HassMediaUnpause" +INTENT_MEDIA_NEXT = "HassMediaNext" +INTENT_MEDIA_PREVIOUS = "HassMediaPrevious" +INTENT_PLAYER_MUTE = "HassMediaPlayerMute" +INTENT_PLAYER_UNMUTE = "HassMediaPlayerUnmute" +INTENT_SET_VOLUME = "HassSetVolume" +INTENT_SET_VOLUME_RELATIVE = "HassSetVolumeRelative" +INTENT_MEDIA_SEARCH_AND_PLAY = "HassMediaSearchAndPlay" + class MediaPlayerState( StrEnum, diff --git a/homeassistant/components/media_player/intent.py b/homeassistant/components/media_player/intent.py index 2cca51af4ad66f..c3ae6615b8172d 100644 --- a/homeassistant/components/media_player/intent.py +++ b/homeassistant/components/media_player/intent.py @@ -30,6 +30,15 @@ ATTR_MEDIA_VOLUME_LEVEL, ATTR_MEDIA_VOLUME_MUTED, DOMAIN, + INTENT_MEDIA_NEXT, + INTENT_MEDIA_PAUSE, + INTENT_MEDIA_PREVIOUS, + INTENT_MEDIA_SEARCH_AND_PLAY, + INTENT_MEDIA_UNPAUSE, + INTENT_PLAYER_MUTE, + INTENT_PLAYER_UNMUTE, + INTENT_SET_VOLUME, + INTENT_SET_VOLUME_RELATIVE, SERVICE_PLAY_MEDIA, SERVICE_SEARCH_MEDIA, MediaClass, @@ -37,16 +46,6 @@ MediaPlayerState, ) -INTENT_MEDIA_PAUSE = "HassMediaPause" -INTENT_MEDIA_UNPAUSE = "HassMediaUnpause" -INTENT_MEDIA_NEXT = "HassMediaNext" -INTENT_MEDIA_PREVIOUS = "HassMediaPrevious" -INTENT_PLAYER_MUTE = "HassMediaPlayerMute" -INTENT_PLAYER_UNMUTE = "HassMediaPlayerUnmute" -INTENT_SET_VOLUME = "HassSetVolume" -INTENT_SET_VOLUME_RELATIVE = "HassSetVolumeRelative" -INTENT_MEDIA_SEARCH_AND_PLAY = "HassMediaSearchAndPlay" - _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index 9e3dc59f852748..3cf10063751de0 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -166,12 +166,9 @@ "async_prepare_subscribe_topics", "async_publish", "async_remove_config_entry_device", - "async_setup", - "async_setup_entry", "async_subscribe", "async_subscribe_connection_status", "async_subscribe_topics", - "async_unload_entry", "async_unsubscribe_topics", "async_wait_for_mqtt_client", "convert_outgoing_mqtt_payload", diff --git a/homeassistant/components/openrgb/config_flow.py b/homeassistant/components/openrgb/config_flow.py index fd82fdca726c9a..687cfdd3f996d8 100644 --- a/homeassistant/components/openrgb/config_flow.py +++ b/homeassistant/components/openrgb/config_flow.py @@ -25,6 +25,13 @@ } ) +STEP_RECONFIGURE_DATA_SCHEMA = vol.Schema( + { + vol.Required(CONF_HOST): str, + vol.Required(CONF_PORT, default=DEFAULT_PORT): cv.port, + } +) + async def validate_input(hass: HomeAssistant, host: str, port: int) -> None: """Validate the user input allows us to connect.""" @@ -39,6 +46,48 @@ def _try_connect(host: str, port: int) -> None: class OpenRGBConfigFlow(ConfigFlow, domain=DOMAIN): """Handle a config flow for OpenRGB.""" + async def async_step_reconfigure( + self, user_input: dict[str, Any] | None = None + ) -> ConfigFlowResult: + """Handle reconfiguration of the OpenRGB SDK Server.""" + reconfigure_entry = self._get_reconfigure_entry() + + errors: dict[str, str] = {} + if user_input is not None: + host = user_input[CONF_HOST] + port = user_input[CONF_PORT] + + # Prevent duplicate entries + self._async_abort_entries_match({CONF_HOST: host, CONF_PORT: port}) + + try: + await validate_input(self.hass, host, port) + except CONNECTION_ERRORS: + errors["base"] = "cannot_connect" + except Exception: + _LOGGER.exception( + "Unknown error while connecting to OpenRGB SDK server at %s", + f"{host}:{port}", + ) + errors["base"] = "unknown" + else: + return self.async_update_reload_and_abort( + reconfigure_entry, + data_updates={CONF_HOST: host, CONF_PORT: port}, + ) + + return self.async_show_form( + step_id="reconfigure", + data_schema=self.add_suggested_values_to_schema( + data_schema=STEP_RECONFIGURE_DATA_SCHEMA, + suggested_values={ + CONF_HOST: reconfigure_entry.data[CONF_HOST], + CONF_PORT: reconfigure_entry.data[CONF_PORT], + }, + ), + errors=errors, + ) + async def async_step_user( self, user_input: dict[str, Any] | None = None ) -> ConfigFlowResult: diff --git a/homeassistant/components/openrgb/quality_scale.yaml b/homeassistant/components/openrgb/quality_scale.yaml index b969915020c6e9..733671400d35db 100644 --- a/homeassistant/components/openrgb/quality_scale.yaml +++ b/homeassistant/components/openrgb/quality_scale.yaml @@ -68,7 +68,7 @@ rules: entity-translations: todo exception-translations: done icon-translations: todo - reconfiguration-flow: todo + reconfiguration-flow: done repair-issues: todo stale-devices: todo diff --git a/homeassistant/components/openrgb/strings.json b/homeassistant/components/openrgb/strings.json index 908443cbef8e7f..d6211191afb201 100644 --- a/homeassistant/components/openrgb/strings.json +++ b/homeassistant/components/openrgb/strings.json @@ -2,6 +2,7 @@ "config": { "step": { "user": { + "title": "Set up OpenRGB SDK server", "description": "Set up your OpenRGB SDK server to allow control from within Home Assistant.", "data": { "name": "[%key:common::config_flow::data::name%]", @@ -13,6 +14,18 @@ "host": "The IP address or hostname of the computer running the OpenRGB SDK server.", "port": "The port number that the OpenRGB SDK server is running on." } + }, + "reconfigure": { + "title": "Reconfigure OpenRGB SDK server", + "description": "Update the connection settings for your OpenRGB SDK server.", + "data": { + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::openrgb::config::step::user::data_description::host%]", + "port": "[%key:component::openrgb::config::step::user::data_description::port%]" + } } }, "error": { @@ -21,6 +34,7 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "abort": { + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, diff --git a/homeassistant/components/plugwise/manifest.json b/homeassistant/components/plugwise/manifest.json index bb3efc6a7f5c82..e26034b772e0eb 100644 --- a/homeassistant/components/plugwise/manifest.json +++ b/homeassistant/components/plugwise/manifest.json @@ -8,6 +8,6 @@ "iot_class": "local_polling", "loggers": ["plugwise"], "quality_scale": "platinum", - "requirements": ["plugwise==1.8.0"], + "requirements": ["plugwise==1.8.1"], "zeroconf": ["_plugwise._tcp.local."] } diff --git a/homeassistant/components/scrape/config_flow.py b/homeassistant/components/scrape/config_flow.py index edb5a6160bf53a..768416aca3e8af 100644 --- a/homeassistant/components/scrape/config_flow.py +++ b/homeassistant/components/scrape/config_flow.py @@ -9,8 +9,13 @@ import voluptuous as vol from homeassistant.components.rest import create_rest_data_from_config -from homeassistant.components.rest.data import DEFAULT_TIMEOUT -from homeassistant.components.rest.schema import DEFAULT_METHOD, METHODS +from homeassistant.components.rest.data import ( # pylint: disable=hass-component-root-import + DEFAULT_TIMEOUT, +) +from homeassistant.components.rest.schema import ( # pylint: disable=hass-component-root-import + DEFAULT_METHOD, + METHODS, +) from homeassistant.components.sensor import ( CONF_STATE_CLASS, DOMAIN as SENSOR_DOMAIN, diff --git a/homeassistant/components/scrape/coordinator.py b/homeassistant/components/scrape/coordinator.py index 07566c968f173a..ea3d5054bdb94f 100644 --- a/homeassistant/components/scrape/coordinator.py +++ b/homeassistant/components/scrape/coordinator.py @@ -8,8 +8,7 @@ from bs4 import BeautifulSoup -from homeassistant.components.rest import RestData -from homeassistant.components.rest.const import CONF_PAYLOAD_TEMPLATE +from homeassistant.components.rest import CONF_PAYLOAD_TEMPLATE, RestData from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_RESOURCE_TEMPLATE from homeassistant.core import HomeAssistant diff --git a/homeassistant/components/tautulli/config_flow.py b/homeassistant/components/tautulli/config_flow.py index 369f9ead2f2a2f..44f57de2e3f4ee 100644 --- a/homeassistant/components/tautulli/config_flow.py +++ b/homeassistant/components/tautulli/config_flow.py @@ -47,6 +47,10 @@ async def async_step_user( step_id="user", data_schema=vol.Schema(data_schema), errors=errors or {}, + description_placeholders={ + "sample_url": "http://192.168.0.10:8181", + "sample_port": "8181", + }, ) async def async_step_reauth( diff --git a/homeassistant/components/tautulli/strings.json b/homeassistant/components/tautulli/strings.json index 4278c6a3bec6de..005ca7e31c2212 100644 --- a/homeassistant/components/tautulli/strings.json +++ b/homeassistant/components/tautulli/strings.json @@ -2,7 +2,7 @@ "config": { "step": { "user": { - "description": "To find your API key, open the Tautulli webpage and navigate to Settings and then to Web interface. The API key will be at the bottom of that page.\n\nExample of the URL: ```http://192.168.0.10:8181``` with 8181 being the default port.", + "description": "To find your API key, open the Tautulli webpage and navigate to Settings and then to Web interface. The API key will be at the bottom of that page.\n\nExample of the URL: ```{sample_url}``` with {sample_port} being the default port.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "url": "[%key:common::config_flow::data::url%]", diff --git a/homeassistant/components/wyoming/__init__.py b/homeassistant/components/wyoming/__init__.py index 4e76287d8e77ec..b32d6e82f811c2 100644 --- a/homeassistant/components/wyoming/__init__.py +++ b/homeassistant/components/wyoming/__init__.py @@ -32,9 +32,6 @@ __all__ = [ "ATTR_SPEAKER", "DOMAIN", - "async_setup", - "async_setup_entry", - "async_unload_entry", ] diff --git a/pylint/plugins/hass_imports.py b/pylint/plugins/hass_imports.py index 08279efe7811cf..c85478d8f1182f 100644 --- a/pylint/plugins/hass_imports.py +++ b/pylint/plugins/hass_imports.py @@ -132,7 +132,6 @@ class ObsoleteImportMatch: "homeassistant_hardware", "http", "recorder", - "rest", ) diff --git a/requirements_all.txt b/requirements_all.txt index 89de005fb47ce4..a2190e8c7a9201 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -575,7 +575,7 @@ aurorapy==0.2.7 autarco==3.2.0 # homeassistant.components.husqvarna_automower_ble -automower-ble==0.2.7 +automower-ble==0.2.8 # homeassistant.components.generic # homeassistant.components.stream @@ -1732,7 +1732,7 @@ plexauth==0.0.6 plexwebsocket==0.0.14 # homeassistant.components.plugwise -plugwise==1.8.0 +plugwise==1.8.1 # homeassistant.components.serial_pm pmsensor==0.4 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 7294352c9c3d45..3cd292f8140e3d 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -530,7 +530,7 @@ aurorapy==0.2.7 autarco==3.2.0 # homeassistant.components.husqvarna_automower_ble -automower-ble==0.2.7 +automower-ble==0.2.8 # homeassistant.components.generic # homeassistant.components.stream @@ -1473,7 +1473,7 @@ plexauth==0.0.6 plexwebsocket==0.0.14 # homeassistant.components.plugwise -plugwise==1.8.0 +plugwise==1.8.1 # homeassistant.components.poolsense poolsense==0.0.8 diff --git a/tests/components/assist_pipeline/test_pipeline.py b/tests/components/assist_pipeline/test_pipeline.py index fc2d6d18a6a60a..b2ee4e9c5e3e2e 100644 --- a/tests/components/assist_pipeline/test_pipeline.py +++ b/tests/components/assist_pipeline/test_pipeline.py @@ -12,6 +12,7 @@ from homeassistant.components import ( assist_pipeline, conversation, + media_player, media_source, stt, tts, @@ -682,6 +683,17 @@ def test_fallback_intent_filter() -> None: ) is True ) + assert ( + _async_local_fallback_intent_filter( + RecognizeResult( + intent=Intent(media_player.INTENT_MEDIA_SEARCH_AND_PLAY), + intent_data=IntentData([]), + entities={}, + entities_list=[], + ) + ) + is True + ) assert ( _async_local_fallback_intent_filter( RecognizeResult( diff --git a/tests/components/growatt_server/__init__.py b/tests/components/growatt_server/__init__.py index 999e1782a9ffcd..ad4a182979fbba 100644 --- a/tests/components/growatt_server/__init__.py +++ b/tests/components/growatt_server/__init__.py @@ -1 +1,12 @@ -"""Tests for the growatt_server component.""" +"""Tests for the Growatt Server integration.""" + +from homeassistant.core import HomeAssistant + +from tests.common import MockConfigEntry + + +async def setup_integration(hass: HomeAssistant, config_entry: MockConfigEntry) -> None: + """Set up the Growatt Server integration for testing.""" + config_entry.add_to_hass(hass) + await hass.config_entries.async_setup(config_entry.entry_id) + await hass.async_block_till_done() diff --git a/tests/components/growatt_server/conftest.py b/tests/components/growatt_server/conftest.py index adf6085433aa8a..66e0dd81036727 100644 --- a/tests/components/growatt_server/conftest.py +++ b/tests/components/growatt_server/conftest.py @@ -70,8 +70,19 @@ def mock_growatt_v1_api(): } # Called by MIN device coordinator during refresh - # Empty dict is sufficient for switch tests (sensor tests would need real energy data) - mock_v1_api.min_energy.return_value = {} + # Provide realistic energy data for sensor tests + mock_v1_api.min_energy.return_value = { + "eChargeToday": 5.2, + "eChargeTotal": 125.8, + "eDischargeToday": 8.1, + "eDischargeTotal": 245.6, + "eSelfToday": 12.5, + "eSelfTotal": 320.4, + "eBatChargeToday": 6.3, + "eBatChargeTotal": 150.2, + "eBatDischargeToday": 7.8, + "eBatDischargeTotal": 180.5, + } # Called by total coordinator during refresh mock_v1_api.plant_energy_overview.return_value = { diff --git a/tests/components/growatt_server/snapshots/test_init.ambr b/tests/components/growatt_server/snapshots/test_init.ambr new file mode 100644 index 00000000000000..424c32d0410bef --- /dev/null +++ b/tests/components/growatt_server/snapshots/test_init.ambr @@ -0,0 +1,125 @@ +# serializer version: 1 +# name: test_classic_api_setup + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'growatt_server', + 'TLX123456', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'Growatt', + 'model': None, + 'model_id': None, + 'name': 'TLX123456', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': None, + 'sw_version': None, + 'via_device_id': None, + }) +# --- +# name: test_device_info + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'growatt_server', + 'MIN123456', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'Growatt', + 'model': None, + 'model_id': None, + 'name': 'MIN123456', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': None, + 'sw_version': None, + 'via_device_id': None, + }) +# --- +# name: test_multiple_devices_discovered[device_min123456] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'growatt_server', + 'MIN123456', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'Growatt', + 'model': None, + 'model_id': None, + 'name': 'MIN123456', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': None, + 'sw_version': None, + 'via_device_id': None, + }) +# --- +# name: test_multiple_devices_discovered[device_min789012] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'growatt_server', + 'MIN789012', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'Growatt', + 'model': None, + 'model_id': None, + 'name': 'MIN789012', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': None, + 'sw_version': None, + 'via_device_id': None, + }) +# --- diff --git a/tests/components/growatt_server/snapshots/test_sensor.ambr b/tests/components/growatt_server/snapshots/test_sensor.ambr new file mode 100644 index 00000000000000..cf873f4a22e0b3 --- /dev/null +++ b/tests/components/growatt_server/snapshots/test_sensor.ambr @@ -0,0 +1,11457 @@ +# serializer version: 1 +# name: test_all_sensors[sensor.min123456_ac_frequency-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_ac_frequency', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'AC frequency', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_frequency', + 'unique_id': 'MIN123456-tlx_frequency', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_ac_frequency-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'frequency', + 'friendly_name': 'MIN123456 AC frequency', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_ac_frequency', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_all_batteries_charged_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_all_batteries_charged_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'All batteries charged today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_charge_today', + 'unique_id': 'MIN123456-tlx_all_batteries_charge_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_all_batteries_charged_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 All batteries charged today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_all_batteries_charged_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_all_batteries_discharged_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_all_batteries_discharged_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'All batteries discharged today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_discharge_today', + 'unique_id': 'MIN123456-tlx_all_batteries_discharge_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_all_batteries_discharged_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 All batteries discharged today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_all_batteries_discharged_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_batteries_charged_from_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_batteries_charged_from_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Batteries charged from grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_batteries_charged_from_grid_today', + 'unique_id': 'MIN123456-tlx_batteries_charged_from_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_batteries_charged_from_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Batteries charged from grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_batteries_charged_from_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_1_charging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_1_charging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 1 charging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_charge_w', + 'unique_id': 'MIN123456-tlx_battery_1_charge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_1_charging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 1 charging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_1_charging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_1_discharging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_1_discharging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 1 discharging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_discharge_w', + 'unique_id': 'MIN123456-tlx_battery_1_discharge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_1_discharging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 1 discharging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_1_discharging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_2_charging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_2_charging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 2 charging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_charge_w', + 'unique_id': 'MIN123456-tlx_battery_2_charge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_2_charging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 2 charging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_2_charging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_2_discharging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_2_discharging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 2 discharging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_discharge_w', + 'unique_id': 'MIN123456-tlx_battery_2_discharge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_battery_2_discharging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 2 discharging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_2_discharging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today', + 'unique_id': 'MIN123456-tlx_energy_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_1', + 'unique_id': 'MIN123456-tlx_energy_today_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 1', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_2', + 'unique_id': 'MIN123456-tlx_energy_today_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 2', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_3', + 'unique_id': 'MIN123456-tlx_energy_today_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 3', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_4', + 'unique_id': 'MIN123456-tlx_energy_today_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_energy_today_input_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 4', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_export_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_export_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Export power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_grid_total', + 'unique_id': 'MIN123456-tlx_pac_to_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_export_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Export power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_export_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_export_to_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_export_to_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Export to grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_export_to_grid_today', + 'unique_id': 'MIN123456-tlx_export_to_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_export_to_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Export to grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_export_to_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_import_from_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_import_from_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Import from grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_import_from_grid_today', + 'unique_id': 'MIN123456-tlx_import_from_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_import_from_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Import from grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_import_from_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_import_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_import_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Import power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_user_total', + 'unique_id': 'MIN123456-tlx_pac_to_user_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_import_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Import power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_import_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_1_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_1_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_1', + 'unique_id': 'MIN123456-tlx_amperage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_1_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 1 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_1_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_1_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_1_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_1', + 'unique_id': 'MIN123456-tlx_voltage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_1_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 1 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_1_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_1_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_1_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_1', + 'unique_id': 'MIN123456-tlx_wattage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_1_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 1 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_1_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_2_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_2_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_2', + 'unique_id': 'MIN123456-tlx_amperage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_2_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 2 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_2_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_2_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_2_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_2', + 'unique_id': 'MIN123456-tlx_voltage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_2_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 2 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_2_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_2_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_2_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_2', + 'unique_id': 'MIN123456-tlx_wattage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_2_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 2 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_2_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_3_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_3_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_3', + 'unique_id': 'MIN123456-tlx_amperage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_3_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 3 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_3_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_3_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_3_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_3', + 'unique_id': 'MIN123456-tlx_voltage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_3_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 3 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_3_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_3_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_3_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_3', + 'unique_id': 'MIN123456-tlx_wattage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_3_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 3 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_3_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_4_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_4_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_4', + 'unique_id': 'MIN123456-tlx_amperage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_4_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 4 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_4_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_4_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_4_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_4', + 'unique_id': 'MIN123456-tlx_voltage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_4_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 4 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_4_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_input_4_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_4_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_4', + 'unique_id': 'MIN123456-tlx_wattage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_input_4_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 4 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_4_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_internal_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_internal_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Internal wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_internal_wattage', + 'unique_id': 'MIN123456-tlx_internal_wattage', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_internal_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Internal wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_internal_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_batteries_charged_from_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_batteries_charged_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime batteries charged from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_batteries_charged_from_grid_total', + 'unique_id': 'MIN123456-tlx_batteries_charged_from_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_batteries_charged_from_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime batteries charged from grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_batteries_charged_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_energy_output-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_energy_output', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime energy output', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total', + 'unique_id': 'MIN123456-tlx_energy_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_energy_output-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime energy output', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_energy_output', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_import_from_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_import_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime import from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_import_from_grid_total', + 'unique_id': 'MIN123456-tlx_import_from_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_import_from_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime import from grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_import_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_self_consumption-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_self_consumption', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime self consumption', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_self_consumption_total', + 'unique_id': 'MIN123456-tlx_self_consumption_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_self_consumption-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime self consumption', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_self_consumption', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_system_production-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_system_production', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime system production', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_system_production_total', + 'unique_id': 'MIN123456-tlx_system_production_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_system_production-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime system production', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_system_production', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_all_batteries_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total all batteries charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_charge_total', + 'unique_id': 'MIN123456-tlx_all_batteries_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_all_batteries_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total all batteries charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_all_batteries_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total all batteries discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_discharge_total', + 'unique_id': 'MIN123456-tlx_all_batteries_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_all_batteries_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total all batteries discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_1_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 1 charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_charge_total', + 'unique_id': 'MIN123456-tlx_battery_1_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_1_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 1 charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_1_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 1 discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_discharge_total', + 'unique_id': 'MIN123456-tlx_battery_1_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_1_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 1 discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_2_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 2 charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_charge_total', + 'unique_id': 'MIN123456-tlx_battery_2_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_2_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 2 charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_2_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 2 discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_discharge_total', + 'unique_id': 'MIN123456-tlx_battery_2_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_battery_2_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 2 discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_1', + 'unique_id': 'MIN123456-tlx_energy_total_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 1', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_2', + 'unique_id': 'MIN123456-tlx_energy_total_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 2', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_3', + 'unique_id': 'MIN123456-tlx_energy_total_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 3', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_4', + 'unique_id': 'MIN123456-tlx_energy_total_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_energy_input_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 4', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_export_to_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_export_to_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total export to grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_export_to_grid_total', + 'unique_id': 'MIN123456-tlx_export_to_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_export_to_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total export to grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_export_to_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_load_consumption-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_load_consumption', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total load consumption', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'mix_load_consumption_total', + 'unique_id': 'MIN123456-mix_load_consumption_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_load_consumption-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total load consumption', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_load_consumption', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_solar_energy-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_solar_energy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total solar energy', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_solar_generation_total', + 'unique_id': 'MIN123456-tlx_solar_generation_total', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_lifetime_total_solar_energy-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total solar energy', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_solar_energy', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_load_consumption_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_load_consumption_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Load consumption today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_load_consumption_today', + 'unique_id': 'MIN123456-tlx_load_consumption_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_load_consumption_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Load consumption today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_load_consumption_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_local_load_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_local_load_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Local load power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_local_load', + 'unique_id': 'MIN123456-tlx_pac_to_local_load', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_local_load_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Local load power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_local_load_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_output_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_output_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Output power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_current_wattage', + 'unique_id': 'MIN123456-tlx_current_wattage', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_output_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Output power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_output_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_reactive_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_reactive_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Reactive voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_reactive_voltage', + 'unique_id': 'MIN123456-tlx_reactive_voltage', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_reactive_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Reactive voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_reactive_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_self_consumption_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_self_consumption_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Self consumption today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_self_consumption_today', + 'unique_id': 'MIN123456-tlx_self_consumption_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_self_consumption_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Self consumption today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_self_consumption_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_self_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_self_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Self power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_p_self', + 'unique_id': 'MIN123456-tlx_p_self', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_self_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Self power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_self_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_solar_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_solar_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Solar energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_solar_generation_today', + 'unique_id': 'MIN123456-tlx_solar_generation_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_solar_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Solar energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_solar_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_state_of_charge_soc-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_state_of_charge_soc', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'State of charge (SoC)', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_statement_of_charge', + 'unique_id': 'MIN123456-tlx_statement_of_charge', + 'unit_of_measurement': '%', + }) +# --- +# name: test_all_sensors[sensor.min123456_state_of_charge_soc-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'MIN123456 State of charge (SoC)', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.min123456_state_of_charge_soc', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_system_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_system_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'System power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_p_system', + 'unique_id': 'MIN123456-tlx_p_system', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_system_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 System power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_system_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_system_production_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_system_production_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'System production today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_system_production_today', + 'unique_id': 'MIN123456-tlx_system_production_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_system_production_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 System production today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_system_production_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_1', + 'unique_id': 'MIN123456-tlx_temperature_1', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 1', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_2', + 'unique_id': 'MIN123456-tlx_temperature_2', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 2', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_3', + 'unique_id': 'MIN123456-tlx_temperature_3', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 3', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_4', + 'unique_id': 'MIN123456-tlx_temperature_4', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 4', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_5-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_5', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 5', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_5', + 'unique_id': 'MIN123456-tlx_temperature_5', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.min123456_temperature_5-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 5', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_5', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_today', + 'unique_id': 'plant_123-total_energy_today', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Test Plant Total Energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '12.5', + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_lifetime_energy_output-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_lifetime_energy_output', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime energy output', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_output', + 'unique_id': 'plant_123-total_energy_output', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_lifetime_energy_output-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Test Plant Total Lifetime energy output', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_lifetime_energy_output', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '1250.0', + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_maximum_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_maximum_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Maximum power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_maximum_output', + 'unique_id': 'plant_123-total_maximum_output', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_maximum_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Test Plant Total Maximum power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_maximum_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_money_lifetime-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_money_lifetime', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:solar-power', + 'original_name': 'Money lifetime', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_money_total', + 'unique_id': 'plant_123-total_money_total', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_money_lifetime-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Test Plant Total Money lifetime', + 'icon': 'mdi:solar-power', + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_money_lifetime', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_output_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_output_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Output power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_output_power', + 'unique_id': 'plant_123-total_output_power', + 'unit_of_measurement': , + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_output_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Test Plant Total Output power', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_output_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2500', + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_total_money_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_total_money_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:solar-power', + 'original_name': 'Total money today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_money_today', + 'unique_id': 'plant_123-total_money_today', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_sensors[sensor.test_plant_total_total_money_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Test Plant Total Total money today', + 'icon': 'mdi:solar-power', + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_total_money_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_ac_frequency-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_ac_frequency', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'AC frequency', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_frequency', + 'unique_id': 'MIN123456-tlx_frequency', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_ac_frequency-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'frequency', + 'friendly_name': 'MIN123456 AC frequency', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_ac_frequency', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_all_batteries_charged_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_all_batteries_charged_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'All batteries charged today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_charge_today', + 'unique_id': 'MIN123456-tlx_all_batteries_charge_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_all_batteries_charged_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 All batteries charged today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_all_batteries_charged_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_all_batteries_discharged_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_all_batteries_discharged_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'All batteries discharged today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_discharge_today', + 'unique_id': 'MIN123456-tlx_all_batteries_discharge_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_all_batteries_discharged_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 All batteries discharged today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_all_batteries_discharged_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_batteries_charged_from_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_batteries_charged_from_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Batteries charged from grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_batteries_charged_from_grid_today', + 'unique_id': 'MIN123456-tlx_batteries_charged_from_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_batteries_charged_from_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Batteries charged from grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_batteries_charged_from_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_1_charging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_1_charging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 1 charging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_charge_w', + 'unique_id': 'MIN123456-tlx_battery_1_charge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_1_charging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 1 charging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_1_charging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_1_discharging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_1_discharging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 1 discharging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_discharge_w', + 'unique_id': 'MIN123456-tlx_battery_1_discharge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_1_discharging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 1 discharging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_1_discharging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_2_charging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_2_charging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 2 charging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_charge_w', + 'unique_id': 'MIN123456-tlx_battery_2_charge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_2_charging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 2 charging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_2_charging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_2_discharging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_battery_2_discharging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 2 discharging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_discharge_w', + 'unique_id': 'MIN123456-tlx_battery_2_discharge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_battery_2_discharging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Battery 2 discharging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_battery_2_discharging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today', + 'unique_id': 'MIN123456-tlx_energy_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_1', + 'unique_id': 'MIN123456-tlx_energy_today_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 1', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_2', + 'unique_id': 'MIN123456-tlx_energy_today_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 2', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_3', + 'unique_id': 'MIN123456-tlx_energy_today_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 3', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_energy_today_input_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_4', + 'unique_id': 'MIN123456-tlx_energy_today_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_energy_today_input_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Energy today input 4', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_energy_today_input_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_export_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_export_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Export power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_grid_total', + 'unique_id': 'MIN123456-tlx_pac_to_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_export_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Export power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_export_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_export_to_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_export_to_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Export to grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_export_to_grid_today', + 'unique_id': 'MIN123456-tlx_export_to_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_export_to_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Export to grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_export_to_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_import_from_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_import_from_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Import from grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_import_from_grid_today', + 'unique_id': 'MIN123456-tlx_import_from_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_import_from_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Import from grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_import_from_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_import_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_import_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Import power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_user_total', + 'unique_id': 'MIN123456-tlx_pac_to_user_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_import_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Import power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_import_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_1_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_1_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_1', + 'unique_id': 'MIN123456-tlx_amperage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_1_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 1 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_1_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_1_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_1_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_1', + 'unique_id': 'MIN123456-tlx_voltage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_1_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 1 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_1_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_1_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_1_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_1', + 'unique_id': 'MIN123456-tlx_wattage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_1_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 1 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_1_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_2_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_2_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_2', + 'unique_id': 'MIN123456-tlx_amperage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_2_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 2 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_2_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_2_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_2_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_2', + 'unique_id': 'MIN123456-tlx_voltage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_2_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 2 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_2_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_2_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_2_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_2', + 'unique_id': 'MIN123456-tlx_wattage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_2_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 2 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_2_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_3_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_3_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_3', + 'unique_id': 'MIN123456-tlx_amperage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_3_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 3 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_3_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_3_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_3_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_3', + 'unique_id': 'MIN123456-tlx_voltage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_3_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 3 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_3_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_3_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_3_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_3', + 'unique_id': 'MIN123456-tlx_wattage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_3_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 3 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_3_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_4_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_4_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_4', + 'unique_id': 'MIN123456-tlx_amperage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_4_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'MIN123456 Input 4 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_4_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_4_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_4_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_4', + 'unique_id': 'MIN123456-tlx_voltage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_4_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Input 4 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_4_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_4_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_input_4_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_4', + 'unique_id': 'MIN123456-tlx_wattage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_input_4_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Input 4 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_input_4_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_internal_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_internal_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Internal wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_internal_wattage', + 'unique_id': 'MIN123456-tlx_internal_wattage', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_internal_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Internal wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_internal_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_batteries_charged_from_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_batteries_charged_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime batteries charged from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_batteries_charged_from_grid_total', + 'unique_id': 'MIN123456-tlx_batteries_charged_from_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_batteries_charged_from_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime batteries charged from grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_batteries_charged_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_energy_output-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_energy_output', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime energy output', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total', + 'unique_id': 'MIN123456-tlx_energy_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_energy_output-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime energy output', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_energy_output', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_import_from_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_import_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime import from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_import_from_grid_total', + 'unique_id': 'MIN123456-tlx_import_from_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_import_from_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime import from grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_import_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_self_consumption-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_self_consumption', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime self consumption', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_self_consumption_total', + 'unique_id': 'MIN123456-tlx_self_consumption_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_self_consumption-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime self consumption', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_self_consumption', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_system_production-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_system_production', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime system production', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_system_production_total', + 'unique_id': 'MIN123456-tlx_system_production_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_system_production-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime system production', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_system_production', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_all_batteries_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total all batteries charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_charge_total', + 'unique_id': 'MIN123456-tlx_all_batteries_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_all_batteries_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total all batteries charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_all_batteries_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total all batteries discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_discharge_total', + 'unique_id': 'MIN123456-tlx_all_batteries_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_all_batteries_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total all batteries discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_all_batteries_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_1_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 1 charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_charge_total', + 'unique_id': 'MIN123456-tlx_battery_1_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_1_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 1 charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_1_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 1 discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_discharge_total', + 'unique_id': 'MIN123456-tlx_battery_1_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_1_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 1 discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_1_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_2_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 2 charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_charge_total', + 'unique_id': 'MIN123456-tlx_battery_2_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_2_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 2 charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_2_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 2 discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_discharge_total', + 'unique_id': 'MIN123456-tlx_battery_2_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_battery_2_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total battery 2 discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_battery_2_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_1', + 'unique_id': 'MIN123456-tlx_energy_total_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 1', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_2', + 'unique_id': 'MIN123456-tlx_energy_total_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 2', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_3', + 'unique_id': 'MIN123456-tlx_energy_total_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 3', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_4', + 'unique_id': 'MIN123456-tlx_energy_total_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_energy_input_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total energy input 4', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_energy_input_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_export_to_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_export_to_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total export to grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_export_to_grid_total', + 'unique_id': 'MIN123456-tlx_export_to_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_export_to_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total export to grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_export_to_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_load_consumption-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_load_consumption', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total load consumption', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'mix_load_consumption_total', + 'unique_id': 'MIN123456-mix_load_consumption_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_load_consumption-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total load consumption', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_load_consumption', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_solar_energy-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_lifetime_total_solar_energy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total solar energy', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_solar_generation_total', + 'unique_id': 'MIN123456-tlx_solar_generation_total', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_lifetime_total_solar_energy-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Lifetime total solar energy', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_lifetime_total_solar_energy', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_load_consumption_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_load_consumption_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Load consumption today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_load_consumption_today', + 'unique_id': 'MIN123456-tlx_load_consumption_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_load_consumption_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Load consumption today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_load_consumption_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_local_load_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_local_load_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Local load power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_local_load', + 'unique_id': 'MIN123456-tlx_pac_to_local_load', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_local_load_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Local load power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_local_load_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_output_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_output_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Output power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_current_wattage', + 'unique_id': 'MIN123456-tlx_current_wattage', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_output_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Output power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_output_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_reactive_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_reactive_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Reactive voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_reactive_voltage', + 'unique_id': 'MIN123456-tlx_reactive_voltage', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_reactive_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'MIN123456 Reactive voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_reactive_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_self_consumption_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_self_consumption_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Self consumption today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_self_consumption_today', + 'unique_id': 'MIN123456-tlx_self_consumption_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_self_consumption_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Self consumption today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_self_consumption_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_self_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_self_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Self power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_p_self', + 'unique_id': 'MIN123456-tlx_p_self', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_self_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 Self power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_self_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_solar_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_solar_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Solar energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_solar_generation_today', + 'unique_id': 'MIN123456-tlx_solar_generation_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_solar_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 Solar energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_solar_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_state_of_charge_soc-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_state_of_charge_soc', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'State of charge (SoC)', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_statement_of_charge', + 'unique_id': 'MIN123456-tlx_statement_of_charge', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_state_of_charge_soc-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'MIN123456 State of charge (SoC)', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.min123456_state_of_charge_soc', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_system_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_system_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'System power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_p_system', + 'unique_id': 'MIN123456-tlx_p_system', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_system_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'MIN123456 System power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_system_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_system_production_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_system_production_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'System production today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_system_production_today', + 'unique_id': 'MIN123456-tlx_system_production_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_system_production_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'MIN123456 System production today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_system_production_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_1', + 'unique_id': 'MIN123456-tlx_temperature_1', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 1', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_2', + 'unique_id': 'MIN123456-tlx_temperature_2', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 2', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_3', + 'unique_id': 'MIN123456-tlx_temperature_3', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 3', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_4', + 'unique_id': 'MIN123456-tlx_temperature_4', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 4', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_5-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.min123456_temperature_5', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 5', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_5', + 'unique_id': 'MIN123456-tlx_temperature_5', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.min123456_temperature_5-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'MIN123456 Temperature 5', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.min123456_temperature_5', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_today', + 'unique_id': 'plant_123-total_energy_today', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Test Plant Total Energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '12.5', + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_lifetime_energy_output-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_lifetime_energy_output', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime energy output', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_output', + 'unique_id': 'plant_123-total_energy_output', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_lifetime_energy_output-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Test Plant Total Lifetime energy output', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_lifetime_energy_output', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '1250.0', + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_maximum_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_maximum_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Maximum power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_maximum_output', + 'unique_id': 'plant_123-total_maximum_output', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_maximum_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Test Plant Total Maximum power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_maximum_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_money_lifetime-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_money_lifetime', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:solar-power', + 'original_name': 'Money lifetime', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_money_total', + 'unique_id': 'plant_123-total_money_total', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_money_lifetime-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Test Plant Total Money lifetime', + 'icon': 'mdi:solar-power', + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_money_lifetime', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_output_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_output_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Output power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_output_power', + 'unique_id': 'plant_123-total_output_power', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_output_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Test Plant Total Output power', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_output_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2500', + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_total_money_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_total_money_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:solar-power', + 'original_name': 'Total money today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_money_today', + 'unique_id': 'plant_123-total_money_today', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensor_entity_registry[sensor.test_plant_total_total_money_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Test Plant Total Total money today', + 'icon': 'mdi:solar-power', + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_total_money_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_today', + 'unique_id': '12345-total_energy_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Test Plant Total Energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '12.5', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_lifetime_energy_output-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_lifetime_energy_output', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime energy output', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_output', + 'unique_id': '12345-total_energy_output', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_lifetime_energy_output-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Test Plant Total Lifetime energy output', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_lifetime_energy_output', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '1250.0', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_maximum_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_maximum_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Maximum power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_maximum_output', + 'unique_id': '12345-total_maximum_output', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_maximum_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Test Plant Total Maximum power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_maximum_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_money_lifetime-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_money_lifetime', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:solar-power', + 'original_name': 'Money lifetime', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_money_total', + 'unique_id': '12345-total_money_total', + 'unit_of_measurement': 'USD', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_money_lifetime-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Test Plant Total Money lifetime', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': 'USD', + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_money_lifetime', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_output_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_output_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Output power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_output_power', + 'unique_id': '12345-total_output_power', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_output_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Test Plant Total Output power', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_output_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2500', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_total_money_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.test_plant_total_total_money_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:solar-power', + 'original_name': 'Total money today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'total_money_today', + 'unique_id': '12345-total_money_today', + 'unit_of_measurement': 'USD', + }) +# --- +# name: test_total_sensors_classic_api[sensor.test_plant_total_total_money_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Test Plant Total Total money today', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': 'USD', + }), + 'context': , + 'entity_id': 'sensor.test_plant_total_total_money_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '123.45', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_ac_frequency-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_ac_frequency', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'AC frequency', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_frequency', + 'unique_id': 'TLX123456-tlx_frequency', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_ac_frequency-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'frequency', + 'friendly_name': 'TLX123456 AC frequency', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_ac_frequency', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_all_batteries_charged_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_all_batteries_charged_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'All batteries charged today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_charge_today', + 'unique_id': 'TLX123456-tlx_all_batteries_charge_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_all_batteries_charged_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 All batteries charged today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_all_batteries_charged_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_all_batteries_discharged_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_all_batteries_discharged_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'All batteries discharged today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_discharge_today', + 'unique_id': 'TLX123456-tlx_all_batteries_discharge_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_all_batteries_discharged_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 All batteries discharged today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_all_batteries_discharged_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_batteries_charged_from_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_batteries_charged_from_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Batteries charged from grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_batteries_charged_from_grid_today', + 'unique_id': 'TLX123456-tlx_batteries_charged_from_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_batteries_charged_from_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Batteries charged from grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_batteries_charged_from_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_1_charging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_battery_1_charging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 1 charging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_charge_w', + 'unique_id': 'TLX123456-tlx_battery_1_charge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_1_charging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Battery 1 charging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_battery_1_charging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_1_discharging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_battery_1_discharging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 1 discharging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_discharge_w', + 'unique_id': 'TLX123456-tlx_battery_1_discharge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_1_discharging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Battery 1 discharging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_battery_1_discharging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_2_charging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_battery_2_charging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 2 charging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_charge_w', + 'unique_id': 'TLX123456-tlx_battery_2_charge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_2_charging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Battery 2 charging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_battery_2_charging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_2_discharging_w-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_battery_2_discharging_w', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Battery 2 discharging W', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_discharge_w', + 'unique_id': 'TLX123456-tlx_battery_2_discharge_w', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_battery_2_discharging_w-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Battery 2 discharging W', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_battery_2_discharging_w', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today', + 'unique_id': 'TLX123456-tlx_energy_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_energy_today_input_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_1', + 'unique_id': 'TLX123456-tlx_energy_today_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Energy today input 1', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_energy_today_input_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_energy_today_input_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_2', + 'unique_id': 'TLX123456-tlx_energy_today_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Energy today input 2', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_energy_today_input_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_energy_today_input_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_3', + 'unique_id': 'TLX123456-tlx_energy_today_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Energy today input 3', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_energy_today_input_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_energy_today_input_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Energy today input 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_today_input_4', + 'unique_id': 'TLX123456-tlx_energy_today_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_energy_today_input_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Energy today input 4', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_energy_today_input_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_export_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_export_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Export power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_grid_total', + 'unique_id': 'TLX123456-tlx_pac_to_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_export_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Export power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_export_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_export_to_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_export_to_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Export to grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_export_to_grid_today', + 'unique_id': 'TLX123456-tlx_export_to_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_export_to_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Export to grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_export_to_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_import_from_grid_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_import_from_grid_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Import from grid today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_import_from_grid_today', + 'unique_id': 'TLX123456-tlx_import_from_grid_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_import_from_grid_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Import from grid today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_import_from_grid_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_import_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_import_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Import power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_user_total', + 'unique_id': 'TLX123456-tlx_pac_to_user_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_import_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Import power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_import_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_1_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_1_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_1', + 'unique_id': 'TLX123456-tlx_amperage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_1_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'TLX123456 Input 1 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_1_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_1_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_1_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_1', + 'unique_id': 'TLX123456-tlx_voltage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_1_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'TLX123456 Input 1 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_1_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_1_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_1_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 1 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_1', + 'unique_id': 'TLX123456-tlx_wattage_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_1_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Input 1 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_1_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_2_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_2_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_2', + 'unique_id': 'TLX123456-tlx_amperage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_2_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'TLX123456 Input 2 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_2_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_2_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_2_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_2', + 'unique_id': 'TLX123456-tlx_voltage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_2_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'TLX123456 Input 2 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_2_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_2_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_2_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 2 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_2', + 'unique_id': 'TLX123456-tlx_wattage_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_2_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Input 2 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_2_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_3_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_3_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_3', + 'unique_id': 'TLX123456-tlx_amperage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_3_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'TLX123456 Input 3 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_3_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_3_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_3_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_3', + 'unique_id': 'TLX123456-tlx_voltage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_3_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'TLX123456 Input 3 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_3_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_3_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_3_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 3 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_3', + 'unique_id': 'TLX123456-tlx_wattage_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_3_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Input 3 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_3_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_4_amperage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_4_amperage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 amperage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_amperage_input_4', + 'unique_id': 'TLX123456-tlx_amperage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_4_amperage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'TLX123456 Input 4 amperage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_4_amperage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_4_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_4_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_voltage_input_4', + 'unique_id': 'TLX123456-tlx_voltage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_4_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'TLX123456 Input 4 voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_4_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_4_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_input_4_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Input 4 wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_wattage_input_4', + 'unique_id': 'TLX123456-tlx_wattage_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_input_4_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Input 4 wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_input_4_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_internal_wattage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_internal_wattage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Internal wattage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_internal_wattage', + 'unique_id': 'TLX123456-tlx_internal_wattage', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_internal_wattage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Internal wattage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_internal_wattage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_batteries_charged_from_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_batteries_charged_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime batteries charged from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_batteries_charged_from_grid_total', + 'unique_id': 'TLX123456-tlx_batteries_charged_from_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_batteries_charged_from_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime batteries charged from grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_batteries_charged_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_energy_output-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_energy_output', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime energy output', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total', + 'unique_id': 'TLX123456-tlx_energy_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_energy_output-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime energy output', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_energy_output', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_import_from_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_import_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime import from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_import_from_grid_total', + 'unique_id': 'TLX123456-tlx_import_from_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_import_from_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime import from grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_import_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_self_consumption-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_self_consumption', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime self consumption', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_self_consumption_total', + 'unique_id': 'TLX123456-tlx_self_consumption_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_self_consumption-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime self consumption', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_self_consumption', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_system_production-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_system_production', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime system production', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_system_production_total', + 'unique_id': 'TLX123456-tlx_system_production_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_system_production-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime system production', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_system_production', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_all_batteries_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_all_batteries_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total all batteries charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_charge_total', + 'unique_id': 'TLX123456-tlx_all_batteries_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_all_batteries_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total all batteries charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_all_batteries_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_all_batteries_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_all_batteries_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total all batteries discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_all_batteries_discharge_total', + 'unique_id': 'TLX123456-tlx_all_batteries_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_all_batteries_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total all batteries discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_all_batteries_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_1_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_1_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 1 charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_charge_total', + 'unique_id': 'TLX123456-tlx_battery_1_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_1_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total battery 1 charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_1_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_1_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_1_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 1 discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_1_discharge_total', + 'unique_id': 'TLX123456-tlx_battery_1_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_1_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total battery 1 discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_1_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_2_charged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_2_charged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 2 charged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_charge_total', + 'unique_id': 'TLX123456-tlx_battery_2_charge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_2_charged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total battery 2 charged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_2_charged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_2_discharged-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_2_discharged', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total battery 2 discharged', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_battery_2_discharge_total', + 'unique_id': 'TLX123456-tlx_battery_2_discharge_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_battery_2_discharged-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total battery 2 discharged', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_battery_2_discharged', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_1', + 'unique_id': 'TLX123456-tlx_energy_total_input_1', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total energy input 1', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_2', + 'unique_id': 'TLX123456-tlx_energy_total_input_2', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total energy input 2', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_3', + 'unique_id': 'TLX123456-tlx_energy_total_input_3', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total energy input 3', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total energy input 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_energy_total_input_4', + 'unique_id': 'TLX123456-tlx_energy_total_input_4', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_energy_input_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total energy input 4', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_energy_input_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_export_to_grid-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_export_to_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total export to grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_export_to_grid_total', + 'unique_id': 'TLX123456-tlx_export_to_grid_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_export_to_grid-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total export to grid', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_export_to_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_load_consumption-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_load_consumption', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total load consumption', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'mix_load_consumption_total', + 'unique_id': 'TLX123456-mix_load_consumption_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_load_consumption-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total load consumption', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_load_consumption', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_solar_energy-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_lifetime_total_solar_energy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Lifetime total solar energy', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_solar_generation_total', + 'unique_id': 'TLX123456-tlx_solar_generation_total', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_lifetime_total_solar_energy-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Lifetime total solar energy', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_lifetime_total_solar_energy', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_load_consumption_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_load_consumption_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Load consumption today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_load_consumption_today', + 'unique_id': 'TLX123456-tlx_load_consumption_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_load_consumption_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Load consumption today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_load_consumption_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_local_load_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_local_load_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Local load power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_pac_to_local_load', + 'unique_id': 'TLX123456-tlx_pac_to_local_load', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_local_load_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Local load power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_local_load_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_output_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_output_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Output power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_current_wattage', + 'unique_id': 'TLX123456-tlx_current_wattage', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_output_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Output power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_output_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_reactive_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_reactive_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Reactive voltage', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_reactive_voltage', + 'unique_id': 'TLX123456-tlx_reactive_voltage', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_reactive_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'TLX123456 Reactive voltage', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_reactive_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_self_consumption_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_self_consumption_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Self consumption today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_self_consumption_today', + 'unique_id': 'TLX123456-tlx_self_consumption_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_self_consumption_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Self consumption today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_self_consumption_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_self_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_self_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Self power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_p_self', + 'unique_id': 'TLX123456-tlx_p_self', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_self_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 Self power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_self_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_solar_energy_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_solar_energy_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Solar energy today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_solar_generation_today', + 'unique_id': 'TLX123456-tlx_solar_generation_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_solar_energy_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 Solar energy today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_solar_energy_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_state_of_charge_soc-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_state_of_charge_soc', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'State of charge (SoC)', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_statement_of_charge', + 'unique_id': 'TLX123456-tlx_statement_of_charge', + 'unit_of_measurement': '%', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_state_of_charge_soc-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'TLX123456 State of charge (SoC)', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.tlx123456_state_of_charge_soc', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_system_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_system_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'System power', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_p_system', + 'unique_id': 'TLX123456-tlx_p_system', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_system_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'TLX123456 System power', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_system_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_system_production_today-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_system_production_today', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'System production today', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_system_production_today', + 'unique_id': 'TLX123456-tlx_system_production_today', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_system_production_today-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'TLX123456 System production today', + 'icon': 'mdi:solar-power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_system_production_today', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_temperature_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 1', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_1', + 'unique_id': 'TLX123456-tlx_temperature_1', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'TLX123456 Temperature 1', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_temperature_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_temperature_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 2', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_2', + 'unique_id': 'TLX123456-tlx_temperature_2', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'TLX123456 Temperature 2', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_temperature_2', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_temperature_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 3', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_3', + 'unique_id': 'TLX123456-tlx_temperature_3', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'TLX123456 Temperature 3', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_temperature_3', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_temperature_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 4', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_4', + 'unique_id': 'TLX123456-tlx_temperature_4', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'TLX123456 Temperature 4', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_temperature_4', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_5-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tlx123456_temperature_5', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, + }), + }), + 'original_device_class': , + 'original_icon': 'mdi:solar-power', + 'original_name': 'Temperature 5', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'tlx_temperature_5', + 'unique_id': 'TLX123456-tlx_temperature_5', + 'unit_of_measurement': , + }) +# --- +# name: test_total_sensors_classic_api[sensor.tlx123456_temperature_5-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'TLX123456 Temperature 5', + 'icon': 'mdi:solar-power', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tlx123456_temperature_5', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- diff --git a/tests/components/growatt_server/snapshots/test_switch.ambr b/tests/components/growatt_server/snapshots/test_switch.ambr index 534d99ee0eb593..d6c3b35b9764c5 100644 --- a/tests/components/growatt_server/snapshots/test_switch.ambr +++ b/tests/components/growatt_server/snapshots/test_switch.ambr @@ -78,3 +78,51 @@ 'state': 'on', }) # --- +# name: test_switch_entity_attributes[entity_entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.min123456_charge_from_grid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Charge from grid', + 'platform': 'growatt_server', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'ac_charge', + 'unique_id': 'MIN123456_ac_charge', + 'unit_of_measurement': None, + }) +# --- +# name: test_switch_entity_attributes[state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'MIN123456 Charge from grid', + }), + 'context': , + 'entity_id': 'switch.min123456_charge_from_grid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- diff --git a/tests/components/growatt_server/test_init.py b/tests/components/growatt_server/test_init.py new file mode 100644 index 00000000000000..eddbf81d770f3e --- /dev/null +++ b/tests/components/growatt_server/test_init.py @@ -0,0 +1,176 @@ +"""Tests for the Growatt Server integration.""" + +from datetime import timedelta +import json +from unittest.mock import patch + +from freezegun.api import FrozenDateTimeFactory +import growattServer +import pytest +from syrupy.assertion import SnapshotAssertion + +from homeassistant.components.growatt_server.const import DOMAIN +from homeassistant.config_entries import ConfigEntryState +from homeassistant.core import HomeAssistant +from homeassistant.helpers import device_registry as dr + +from . import setup_integration + +from tests.common import MockConfigEntry, async_fire_time_changed + + +@pytest.mark.usefixtures("init_integration") +async def test_load_unload_config_entry( + hass: HomeAssistant, + mock_config_entry: MockConfigEntry, +) -> None: + """Test loading and unloading the integration.""" + assert mock_config_entry.state is ConfigEntryState.LOADED + + await hass.config_entries.async_unload(mock_config_entry.entry_id) + await hass.async_block_till_done() + + assert mock_config_entry.state is ConfigEntryState.NOT_LOADED + + +@pytest.mark.usefixtures("init_integration") +async def test_device_info( + snapshot: SnapshotAssertion, + device_registry: dr.DeviceRegistry, +) -> None: + """Test device registry integration.""" + device_entry = device_registry.async_get_device(identifiers={(DOMAIN, "MIN123456")}) + assert device_entry is not None + assert device_entry == snapshot + + +@pytest.mark.parametrize( + ("exception", "expected_state"), + [ + (growattServer.GrowattV1ApiError("API Error"), ConfigEntryState.SETUP_ERROR), + ( + json.decoder.JSONDecodeError("Invalid JSON", "", 0), + ConfigEntryState.SETUP_ERROR, + ), + ], +) +async def test_setup_error_on_api_failure( + hass: HomeAssistant, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + exception: Exception, + expected_state: ConfigEntryState, +) -> None: + """Test setup error on API failures during device list.""" + mock_growatt_v1_api.device_list.side_effect = exception + + await setup_integration(hass, mock_config_entry) + + assert mock_config_entry.state is expected_state + + +@pytest.mark.usefixtures("init_integration") +async def test_coordinator_update_failed( + hass: HomeAssistant, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + freezer: FrozenDateTimeFactory, +) -> None: + """Test coordinator handles update failures gracefully.""" + # Integration should be loaded + assert mock_config_entry.state is ConfigEntryState.LOADED + + # Cause coordinator update to fail + mock_growatt_v1_api.min_detail.side_effect = growattServer.GrowattV1ApiError( + "Connection timeout" + ) + + # Trigger coordinator refresh + freezer.tick(timedelta(minutes=5)) + async_fire_time_changed(hass) + await hass.async_block_till_done(wait_background_tasks=True) + + # Integration should remain loaded despite coordinator error + assert mock_config_entry.state is ConfigEntryState.LOADED + + +async def test_classic_api_setup( + hass: HomeAssistant, + snapshot: SnapshotAssertion, + mock_growatt_classic_api, + mock_config_entry_classic: MockConfigEntry, + device_registry: dr.DeviceRegistry, +) -> None: + """Test integration setup with Classic API (password auth).""" + # Classic API doesn't support MIN devices - use TLX device instead + mock_growatt_classic_api.device_list.return_value = [ + {"deviceSn": "TLX123456", "deviceType": "tlx"} + ] + + await setup_integration(hass, mock_config_entry_classic) + + assert mock_config_entry_classic.state is ConfigEntryState.LOADED + + # Verify Classic API login was called + mock_growatt_classic_api.login.assert_called() + + # Verify device was created + device_entry = device_registry.async_get_device(identifiers={(DOMAIN, "TLX123456")}) + assert device_entry is not None + assert device_entry == snapshot + + +@pytest.mark.usefixtures("init_integration") +async def test_unload_removes_listeners( + hass: HomeAssistant, + mock_config_entry: MockConfigEntry, +) -> None: + """Test that unloading removes all listeners.""" + # Get initial listener count + initial_listeners = len(hass.bus.async_listeners()) + + # Unload the integration + await hass.config_entries.async_unload(mock_config_entry.entry_id) + await hass.async_block_till_done() + + # Verify listeners were removed (should be same or less) + final_listeners = len(hass.bus.async_listeners()) + assert final_listeners <= initial_listeners + + +async def test_multiple_devices_discovered( + hass: HomeAssistant, + snapshot: SnapshotAssertion, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + device_registry: dr.DeviceRegistry, +) -> None: + """Test handling multiple devices from device_list.""" + # Reset and add multiple devices + mock_config_entry_new = MockConfigEntry( + domain=DOMAIN, + data=mock_config_entry.data, + unique_id="plant_456", + ) + + mock_growatt_v1_api.device_list.return_value = { + "devices": [ + {"device_sn": "MIN123456", "type": 7}, + {"device_sn": "MIN789012", "type": 7}, + ] + } + + with patch( + "homeassistant.components.growatt_server.coordinator.SCAN_INTERVAL", + timedelta(minutes=5), + ): + await setup_integration(hass, mock_config_entry_new) + + # Verify both devices were created + device1 = device_registry.async_get_device(identifiers={(DOMAIN, "MIN123456")}) + device2 = device_registry.async_get_device(identifiers={(DOMAIN, "MIN789012")}) + + assert device1 is not None + assert device1 == snapshot(name="device_min123456") + assert device2 is not None + assert device2 == snapshot(name="device_min789012") diff --git a/tests/components/growatt_server/test_sensor.py b/tests/components/growatt_server/test_sensor.py new file mode 100644 index 00000000000000..cc7b9e631a7629 --- /dev/null +++ b/tests/components/growatt_server/test_sensor.py @@ -0,0 +1,133 @@ +"""Tests for the Growatt Server sensor platform.""" + +from datetime import timedelta +from unittest.mock import patch + +from freezegun.api import FrozenDateTimeFactory +import growattServer +import pytest +from syrupy.assertion import SnapshotAssertion + +from homeassistant.const import STATE_UNAVAILABLE, Platform +from homeassistant.core import HomeAssistant +from homeassistant.helpers import entity_registry as er + +from . import setup_integration + +from tests.common import MockConfigEntry, async_fire_time_changed, snapshot_platform + + +@pytest.mark.usefixtures("entity_registry_enabled_by_default") +async def test_all_sensors( + hass: HomeAssistant, + snapshot: SnapshotAssertion, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + entity_registry: er.EntityRegistry, +) -> None: + """Test all sensor entities with snapshot.""" + with patch("homeassistant.components.growatt_server.PLATFORMS", [Platform.SENSOR]): + await setup_integration(hass, mock_config_entry) + + await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id) + + +async def test_sensor_coordinator_updates( + hass: HomeAssistant, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + freezer: FrozenDateTimeFactory, +) -> None: + """Test sensors update when coordinator refreshes.""" + with patch("homeassistant.components.growatt_server.PLATFORMS", [Platform.SENSOR]): + await setup_integration(hass, mock_config_entry) + + # Verify sensor exists + state = hass.states.get("sensor.test_plant_total_energy_today") + assert state is not None + assert state.state == "12.5" + + # Update mock data + mock_growatt_v1_api.plant_energy_overview.return_value = { + "today_energy": 25.0, # Changed from 12.5 + "total_energy": 1250.0, + "current_power": 2500, + } + + # Trigger coordinator refresh + freezer.tick(timedelta(minutes=5)) + async_fire_time_changed(hass) + await hass.async_block_till_done(wait_background_tasks=True) + + # Verify state updated + state = hass.states.get("sensor.test_plant_total_energy_today") + assert state is not None + assert state.state == "25.0" + + +async def test_sensor_unavailable_on_coordinator_error( + hass: HomeAssistant, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + freezer: FrozenDateTimeFactory, +) -> None: + """Test sensors become unavailable when coordinator fails.""" + with patch("homeassistant.components.growatt_server.PLATFORMS", [Platform.SENSOR]): + await setup_integration(hass, mock_config_entry) + + # Verify sensor is initially available + state = hass.states.get("sensor.min123456_all_batteries_charged_today") + assert state is not None + assert state.state != STATE_UNAVAILABLE + + # Cause coordinator update to fail + mock_growatt_v1_api.min_detail.side_effect = growattServer.GrowattV1ApiError( + "Connection timeout" + ) + + # Trigger coordinator refresh + freezer.tick(timedelta(minutes=5)) + async_fire_time_changed(hass) + await hass.async_block_till_done(wait_background_tasks=True) + + # Verify sensor becomes unavailable + state = hass.states.get("sensor.min123456_all_batteries_charged_today") + assert state is not None + assert state.state == STATE_UNAVAILABLE + + +@pytest.mark.usefixtures("entity_registry_enabled_by_default") +async def test_total_sensors_classic_api( + hass: HomeAssistant, + snapshot: SnapshotAssertion, + mock_growatt_classic_api, + mock_config_entry_classic: MockConfigEntry, + entity_registry: er.EntityRegistry, +) -> None: + """Test total sensors with Classic API.""" + # Classic API uses TLX devices + mock_growatt_classic_api.device_list.return_value = [ + {"deviceSn": "TLX123456", "deviceType": "tlx"} + ] + + with patch("homeassistant.components.growatt_server.PLATFORMS", [Platform.SENSOR]): + await setup_integration(hass, mock_config_entry_classic) + + await snapshot_platform( + hass, entity_registry, snapshot, mock_config_entry_classic.entry_id + ) + + +@pytest.mark.usefixtures("entity_registry_enabled_by_default") +async def test_sensor_entity_registry( + hass: HomeAssistant, + snapshot: SnapshotAssertion, + mock_growatt_v1_api, + mock_config_entry: MockConfigEntry, + entity_registry: er.EntityRegistry, +) -> None: + """Test sensor entities are properly registered.""" + with patch("homeassistant.components.growatt_server.PLATFORMS", [Platform.SENSOR]): + await setup_integration(hass, mock_config_entry) + + await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id) diff --git a/tests/components/growatt_server/test_switch.py b/tests/components/growatt_server/test_switch.py index 926edc8874e7a3..5ddc36906fa4f8 100644 --- a/tests/components/growatt_server/test_switch.py +++ b/tests/components/growatt_server/test_switch.py @@ -17,7 +17,6 @@ STATE_OFF, STATE_ON, STATE_UNKNOWN, - EntityCategory, Platform, ) from homeassistant.core import HomeAssistant @@ -127,19 +126,19 @@ async def test_turn_off_switch_api_error( @pytest.mark.usefixtures("entity_registry_enabled_by_default", "init_integration") async def test_switch_entity_attributes( hass: HomeAssistant, + snapshot: SnapshotAssertion, entity_registry: er.EntityRegistry, ) -> None: """Test switch entity attributes.""" # Check entity registry attributes entity_entry = entity_registry.async_get("switch.min123456_charge_from_grid") assert entity_entry is not None - assert entity_entry.entity_category == EntityCategory.CONFIG - assert entity_entry.unique_id == "MIN123456_ac_charge" + assert entity_entry == snapshot(name="entity_entry") # Check state attributes state = hass.states.get("switch.min123456_charge_from_grid") assert state is not None - assert state.attributes["friendly_name"] == "MIN123456 Charge from grid" + assert state == snapshot(name="state") @pytest.mark.usefixtures("entity_registry_enabled_by_default", "init_integration") diff --git a/tests/components/openrgb/test_config_flow.py b/tests/components/openrgb/test_config_flow.py index 8160f36fb11975..ca798a1b06048e 100644 --- a/tests/components/openrgb/test_config_flow.py +++ b/tests/components/openrgb/test_config_flow.py @@ -112,3 +112,152 @@ async def test_user_flow_already_configured( assert result["type"] is FlowResultType.ABORT assert result["reason"] == "already_configured" + + +@pytest.mark.usefixtures("mock_setup_entry", "mock_openrgb_client") +async def test_user_flow_duplicate_entry( + hass: HomeAssistant, mock_config_entry: MockConfigEntry +) -> None: + """Test user flow when trying to add duplicate host/port combination.""" + mock_config_entry.add_to_hass(hass) + + # Create another config entry with different host/port + other_entry = MockConfigEntry( + domain=DOMAIN, + title="Other Computer", + data={ + CONF_NAME: "Other Computer", + CONF_HOST: "192.168.1.200", + CONF_PORT: 6743, + }, + entry_id="01J0EXAMPLE0CONFIGENTRY01", + ) + other_entry.add_to_hass(hass) + + result = await hass.config_entries.flow.async_init( + DOMAIN, + context={"source": SOURCE_USER}, + ) + + # Try to add entry with same host/port as other_entry + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input={ + CONF_NAME: "Yet Another Computer", + CONF_HOST: "192.168.1.200", + CONF_PORT: 6743, + }, + ) + + assert result["type"] is FlowResultType.ABORT + assert result["reason"] == "already_configured" + + +@pytest.mark.usefixtures("mock_setup_entry", "mock_openrgb_client") +async def test_reconfigure_flow( + hass: HomeAssistant, mock_config_entry: MockConfigEntry +) -> None: + """Test the reconfiguration flow.""" + mock_config_entry.add_to_hass(hass) + + result = await mock_config_entry.start_reconfigure_flow(hass) + + assert result["type"] is FlowResultType.FORM + assert result["step_id"] == "reconfigure" + + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input={ + CONF_HOST: "192.168.1.100", + CONF_PORT: 6743, + }, + ) + + assert result["type"] is FlowResultType.ABORT + assert result["reason"] == "reconfigure_successful" + assert mock_config_entry.data[CONF_HOST] == "192.168.1.100" + assert mock_config_entry.data[CONF_PORT] == 6743 + + +@pytest.mark.parametrize( + ("exception", "error_key"), + [ + (ConnectionRefusedError, "cannot_connect"), + (OpenRGBDisconnected, "cannot_connect"), + (TimeoutError, "cannot_connect"), + (socket.gaierror, "cannot_connect"), + (SDKVersionError, "cannot_connect"), + (RuntimeError("Test error"), "unknown"), + ], +) +@pytest.mark.usefixtures("mock_setup_entry") +async def test_reconfigure_flow_errors( + hass: HomeAssistant, + mock_config_entry: MockConfigEntry, + exception: Exception, + error_key: str, + mock_openrgb_client, +) -> None: + """Test reconfiguration flow with various errors.""" + mock_config_entry.add_to_hass(hass) + + result = await mock_config_entry.start_reconfigure_flow(hass) + + mock_openrgb_client.client_class_mock.side_effect = exception + + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input={CONF_HOST: "192.168.1.100", CONF_PORT: 6743}, + ) + + assert result["type"] is FlowResultType.FORM + assert result["step_id"] == "reconfigure" + assert result["errors"] == {"base": error_key} + + # Test recovery from error + mock_openrgb_client.client_class_mock.side_effect = None + + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input={CONF_HOST: "192.168.1.100", CONF_PORT: 6743}, + ) + + assert result["type"] is FlowResultType.ABORT + assert result["reason"] == "reconfigure_successful" + assert mock_config_entry.data[CONF_HOST] == "192.168.1.100" + assert mock_config_entry.data[CONF_PORT] == 6743 + + +@pytest.mark.usefixtures("mock_setup_entry", "mock_openrgb_client") +async def test_reconfigure_flow_duplicate_entry( + hass: HomeAssistant, mock_config_entry: MockConfigEntry +) -> None: + """Test reconfiguration flow when new config matches another existing entry.""" + mock_config_entry.add_to_hass(hass) + + # Create another config entry with different host/port + other_entry = MockConfigEntry( + domain=DOMAIN, + title="Other Computer", + data={ + CONF_NAME: "Other Computer", + CONF_HOST: "192.168.1.200", + CONF_PORT: 6743, + }, + entry_id="01J0EXAMPLE0CONFIGENTRY01", + ) + other_entry.add_to_hass(hass) + + result = await mock_config_entry.start_reconfigure_flow(hass) + + # Try to reconfigure to match the other entry + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input={ + CONF_HOST: "192.168.1.200", + CONF_PORT: 6743, + }, + ) + + assert result["type"] is FlowResultType.ABORT + assert result["reason"] == "already_configured" diff --git a/tests/components/scrape/conftest.py b/tests/components/scrape/conftest.py index 5b84f4fd44a575..6c545b07c64a25 100644 --- a/tests/components/scrape/conftest.py +++ b/tests/components/scrape/conftest.py @@ -9,8 +9,13 @@ import pytest -from homeassistant.components.rest.data import DEFAULT_TIMEOUT -from homeassistant.components.rest.schema import DEFAULT_METHOD, DEFAULT_VERIFY_SSL +from homeassistant.components.rest.data import ( # pylint: disable=hass-component-root-import + DEFAULT_TIMEOUT, +) +from homeassistant.components.rest.schema import ( # pylint: disable=hass-component-root-import + DEFAULT_METHOD, + DEFAULT_VERIFY_SSL, +) from homeassistant.components.scrape.const import ( CONF_ENCODING, CONF_INDEX, diff --git a/tests/components/scrape/test_config_flow.py b/tests/components/scrape/test_config_flow.py index 17a527d2975091..cf90c12e3d63bd 100644 --- a/tests/components/scrape/test_config_flow.py +++ b/tests/components/scrape/test_config_flow.py @@ -6,8 +6,12 @@ import uuid from homeassistant import config_entries -from homeassistant.components.rest.data import DEFAULT_TIMEOUT -from homeassistant.components.rest.schema import DEFAULT_METHOD +from homeassistant.components.rest.data import ( # pylint: disable=hass-component-root-import + DEFAULT_TIMEOUT, +) +from homeassistant.components.rest.schema import ( # pylint: disable=hass-component-root-import + DEFAULT_METHOD, +) from homeassistant.components.scrape import DOMAIN from homeassistant.components.scrape.const import ( CONF_ENCODING, diff --git a/tests/components/xbox/conftest.py b/tests/components/xbox/conftest.py new file mode 100644 index 00000000000000..090d8d49f2f536 --- /dev/null +++ b/tests/components/xbox/conftest.py @@ -0,0 +1,113 @@ +"""Common fixtures for the Xbox tests.""" + +from collections.abc import Generator +from unittest.mock import AsyncMock, patch + +import pytest +from xbox.webapi.api.provider.catalog.models import CatalogResponse +from xbox.webapi.api.provider.people.models import PeopleResponse +from xbox.webapi.api.provider.smartglass.models import ( + SmartglassConsoleList, + SmartglassConsoleStatus, +) + +from homeassistant.components.application_credentials import ( + ClientCredential, + async_import_client_credential, +) +from homeassistant.components.xbox.const import DOMAIN +from homeassistant.core import HomeAssistant +from homeassistant.setup import async_setup_component + +from tests.common import MockConfigEntry, load_json_object_fixture + +CLIENT_ID = "1234" +CLIENT_SECRET = "5678" + + +@pytest.fixture(autouse=True) +async def setup_credentials(hass: HomeAssistant) -> None: + """Fixture to setup credentials.""" + assert await async_setup_component(hass, "application_credentials", {}) + await async_import_client_credential( + hass, DOMAIN, ClientCredential(CLIENT_ID, CLIENT_SECRET), "imported-cred" + ) + + +@pytest.fixture(autouse=True) +def mock_oauth2_implementation() -> Generator[AsyncMock]: + """Mock config entry oauth2 implementation.""" + with patch( + "homeassistant.components.xbox.config_entry_oauth2_flow.async_get_config_entry_implementation", + return_value=AsyncMock(), + ) as mock_client: + client = mock_client.return_value + + yield client + + +@pytest.fixture(name="config_entry") +def mock_config_entry() -> MockConfigEntry: + """Mock Xbox configuration entry.""" + return MockConfigEntry( + domain=DOMAIN, + title="Home Assistant Cloud", + data={ + "auth_implementation": "cloud", + "token": { + "access_token": "1234567890", + "expires_at": 1760697327.7298331, + "expires_in": 3600, + "refresh_token": "0987654321", + "scope": "XboxLive.signin XboxLive.offline_access", + "service": "xbox", + "token_type": "bearer", + "user_id": "AAAAAAAAAAAAAAAAAAAAA", + }, + }, + unique_id="xbox", + ) + + +@pytest.fixture(name="signed_session") +def mock_signed_session() -> Generator[AsyncMock]: + """Mock xbox-webapi SignedSession.""" + + with patch( + "homeassistant.components.xbox.SignedSession", autospec=True + ) as mock_client: + client = mock_client.return_value + + yield client + + +@pytest.fixture(name="xbox_live_client") +def mock_xbox_live_client(signed_session) -> Generator[AsyncMock]: + """Mock xbox-webapi XboxLiveClient.""" + + with patch( + "homeassistant.components.xbox.XboxLiveClient", autospec=True + ) as mock_client: + client = mock_client.return_value + + client.smartglass = AsyncMock() + client.smartglass.get_console_list.return_value = SmartglassConsoleList( + **load_json_object_fixture("smartglass_console_list.json", DOMAIN) + ) + client.smartglass.get_console_status.return_value = SmartglassConsoleStatus( + **load_json_object_fixture("smartglass_console_status.json", DOMAIN) + ) + + client.catalog = AsyncMock() + client.catalog.get_product_from_alternate_id.return_value = CatalogResponse( + **load_json_object_fixture("catalog_product_lookup.json", DOMAIN) + ) + + client.people = AsyncMock() + client.people.get_friends_own_batch.return_value = PeopleResponse( + **load_json_object_fixture("people_batch.json", DOMAIN) + ) + client.people.get_friends_own.return_value = PeopleResponse( + **load_json_object_fixture("people_friends_own.json", DOMAIN) + ) + yield client diff --git a/tests/components/xbox/fixtures/catalog_product_lookup.json b/tests/components/xbox/fixtures/catalog_product_lookup.json new file mode 100644 index 00000000000000..9910fba3175bca --- /dev/null +++ b/tests/components/xbox/fixtures/catalog_product_lookup.json @@ -0,0 +1,4163 @@ +{ + "BigIds": ["9WZDNCRFJ3TJ"], + "HasMorePages": false, + "Products": [ + { + "LastModifiedDate": "2020-10-09T18:02:12.6570851Z", + "LocalizedProperties": [ + { + "DeveloperName": "", + "DisplayPlatformProperties": null, + "PublisherName": "Netflix, Inc.", + "PublisherWebsiteUri": "http://www.netflix.com/", + "SupportUri": "https://contactus.netflix.com/Help", + "EligibilityProperties": null, + "Franchises": [], + "Images": [ + { + "FileId": "2000000000072347014", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 956, + "ForegroundColor": "", + "Height": 50, + "ImagePositionInfo": "", + "ImagePurpose": "Logo", + "UnscaledImageSHA256Hash": "LsuIkwA6lGKfAPofYUpnKg3B6p4HLVk70Q3QCRviWEk=", + "Uri": "//store-images.s-microsoft.com/image/apps.52014.9007199266246365.c2b9376d-d1a2-40c9-95ef-cff0f4ba91ca.0b056c35-6486-4947-852e-7149d9ab5851", + "Width": 50 + }, + { + "FileId": "2000000000072347040", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1503, + "ForegroundColor": "", + "Height": 75, + "ImagePositionInfo": "", + "ImagePurpose": "Logo", + "UnscaledImageSHA256Hash": "WeQgusypQlBh3coam7AlFaMX7RTR4wNcVKDI8N9h7I8=", + "Uri": "//store-images.s-microsoft.com/image/apps.58457.9007199266246365.3746ed8c-09d0-4007-9d2f-8ba20a9f4705.3292d53d-3ad8-4f34-943f-13d6d3c8ce3a", + "Width": 75 + }, + { + "FileId": "2000000000072347012", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2140, + "ForegroundColor": "", + "Height": 100, + "ImagePositionInfo": "", + "ImagePurpose": "Logo", + "UnscaledImageSHA256Hash": "JP364/KAZY1xbViqGWzChg6OKjA7Tp+1CuE1UFpjgRU=", + "Uri": "//store-images.s-microsoft.com/image/apps.64804.9007199266246365.9e04b4a8-0637-4cbc-97b8-433eda07b081.64b4abe2-2f6d-4e87-a7af-900f58c8d4ae", + "Width": 100 + }, + { + "FileId": "2000000000072347015", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2272, + "ForegroundColor": "", + "Height": 150, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "jsnB/K6bXIuyDpPXu4zAzYelVN3T4dbn/Jx5QTQYLuM=", + "Uri": "//store-images.s-microsoft.com/image/apps.51598.9007199266246365.9538e419-4ced-4bb5-b027-e23a78887cd2.c4963fa6-7627-4a17-b2a8-fb1321b226d0", + "Width": 150 + }, + { + "FileId": "2000000000072347041", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3378, + "ForegroundColor": "", + "Height": 225, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "SzSfQgEgBEYLTb6uYdA1nrjKLTfJjLUnuMnG2ToXy4k=", + "Uri": "//store-images.s-microsoft.com/image/apps.13387.9007199266246365.4d313a91-19f5-4900-9c7f-4e3f8085e869.3806d656-7896-4389-ba98-65f0b161eac0", + "Width": 225 + }, + { + "FileId": "2000000000072347007", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 4949, + "ForegroundColor": "", + "Height": 300, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "VybSV+2Tqmda3p4wZ+Oz61aIjPHl6LOBSc7f1QoT4J4=", + "Uri": "//store-images.s-microsoft.com/image/apps.9815.9007199266246365.7dc5d343-fe4a-40c3-93dd-c78e77f97331.45eebdef-f725-4799-bbf8-9ad8391a8279", + "Width": 300 + }, + { + "FileId": "2000000000072347025", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 834, + "ForegroundColor": "", + "Height": 44, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "89cTEkobrZYY+Bv1uh1Y2BlYzVyKQw7OCBeVdSQ+00E=", + "Uri": "//store-images.s-microsoft.com/image/apps.55283.9007199266246365.92a7f7d2-b5a8-4e3b-b093-2ce286d163f7.e7c178ca-fc0f-4357-bc23-28a6809d79f1", + "Width": 44 + }, + { + "FileId": "2000000000072347050", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1292, + "ForegroundColor": "", + "Height": 66, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "fHoFBrOG4g2vbvmZobtVumDu4BSB6XZb9cDPByEyWzo=", + "Uri": "//store-images.s-microsoft.com/image/apps.31356.9007199266246365.a955d0b2-934a-40df-9e26-f0085299a7b3.9f250d3a-ab30-4adf-9971-5c0ddcb34bfd", + "Width": 66 + }, + { + "FileId": "2000000000072346999", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1841, + "ForegroundColor": "", + "Height": 88, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "490CuYQ2n11lpU4+dJlfhDNYhD4imyRWC34FPPc9X5I=", + "Uri": "//store-images.s-microsoft.com/image/apps.56803.9007199266246365.df3025a0-c29c-43e4-8976-741647270c26.ba1fe8d7-0c07-4aed-9675-8d950c30637a", + "Width": 88 + }, + { + "FileId": "2000000000072347016", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 5154, + "ForegroundColor": "", + "Height": 310, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "eN/i5Qn7MmW1MCmbF9UOHwST4IE18jJ1F2s3da3rkf0=", + "Uri": "//store-images.s-microsoft.com/image/apps.57208.9007199266246365.9aa1d4bb-c3b4-48d6-93cf-f6674fb40e8d.0bf15307-86b5-4f68-924c-9ecb2001a85a", + "Width": 310 + }, + { + "FileId": "2000000000072347029", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 8502, + "ForegroundColor": "", + "Height": 465, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "csqXF1GotwvYfOCCAPGUnBp4ITdVpQva4zenmHlLfio=", + "Uri": "//store-images.s-microsoft.com/image/apps.51826.9007199266246365.4a31a46b-0288-4248-9dfb-cfff182818e9.7ca531f7-bdf8-4a82-9d3d-d0cecbfc19e5", + "Width": 465 + }, + { + "FileId": "2000000000072347020", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 13157, + "ForegroundColor": "", + "Height": 620, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "9ci+J2nZh9wWYu7ip7aeXLnn8Ql3zIWrt3z2F55jNFw=", + "Uri": "//store-images.s-microsoft.com/image/apps.51445.9007199266246365.c6dce6b1-5edd-4e64-a117-0e45b8165403.c7938026-2c39-48b0-b8f8-067273b77187", + "Width": 620 + }, + { + "FileId": "2000000000072347034", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1445, + "ForegroundColor": "", + "Height": 71, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "2TSwOl7rhajG8DN4/CmEjsKL3Br19vAhoC7tAxpjof8=", + "Uri": "//store-images.s-microsoft.com/image/apps.13529.9007199266246365.25e80878-8386-4369-86e6-d58a6bdfa53f.5abac0fb-6cd2-4496-8b3d-c7455db0e5c4", + "Width": 71 + }, + { + "FileId": "2000000000072347042", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2362, + "ForegroundColor": "", + "Height": 107, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "ounSPvPq8jMPEQWBN3IJoDGgdgwakXrB466qO3pn0h4=", + "Uri": "//store-images.s-microsoft.com/image/apps.59810.9007199266246365.d14eb120-7f2d-457d-a4b0-cb1a3bde44a8.c46c249a-a6c1-478a-8ec2-231650c67fa4", + "Width": 107 + }, + { + "FileId": "2000000000072347021", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3395, + "ForegroundColor": "", + "Height": 142, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "VigAz/TpRsdUIIgK09mLYknu1N09Cn4PAiEhOSON26w=", + "Uri": "//store-images.s-microsoft.com/image/apps.10326.9007199266246365.7067ae39-fd29-4b3b-90c7-bea207312e70.3883898b-7f30-4227-937a-a05330d3df53", + "Width": 142 + }, + { + "FileId": "2000000000072347033", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 4114, + "ForegroundColor": "", + "Height": 150, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "OoywViH1L5i7JaWjucFHoZzMqppnpXNvZ2nIhni4krU=", + "Uri": "//store-images.s-microsoft.com/image/apps.35898.9007199266246365.f1a052c7-8ec1-42c2-b97c-ede1c1304e46.215d2a9b-5718-4a0d-9d4d-9aaa0b80ae71", + "Width": 310 + }, + { + "FileId": "2000000000072347037", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 6616, + "ForegroundColor": "", + "Height": 225, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "5MYdONTXb4CpAIaxkgUytqVYQhxHrSS3d9zMFXwl/mk=", + "Uri": "//store-images.s-microsoft.com/image/apps.50916.9007199266246365.2a757954-4d70-4d41-a224-aff3d7b9bcc6.6cdae504-11a7-4b11-82f1-76c2d85e4a16", + "Width": 465 + }, + { + "FileId": "2000000000072347013", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 10118, + "ForegroundColor": "", + "Height": 300, + "ImagePositionInfo": "", + "ImagePurpose": "Tile", + "UnscaledImageSHA256Hash": "i2443NWbgRAqdj+HSijWf5ycUv+XcvN0ioFdT+FvyvA=", + "Uri": "//store-images.s-microsoft.com/image/apps.28299.9007199266246365.75015a39-4585-418e-b169-dc023bde061c.5a53befa-4a1d-4db7-8f68-482fcaa8a61f", + "Width": 620 + }, + { + "FileId": "1152921504606999752", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 34740, + "ForegroundColor": "", + "Height": 468, + "ImagePositionInfo": "", + "ImagePurpose": "Hero", + "UnscaledImageSHA256Hash": "SxrdQz3t5GnWVny2jwbxyW45Htq8v0dcalJFjaCB0u0=", + "Uri": "//store-images.microsoft.com/image/apps.6731.9007199266246365.6d6d6d51-7bdc-45fa-b753-b6c94934f29d.f1b3ec1f-f15f-4f55-b299-0381031dec52", + "Width": 846 + }, + { + "FileId": "1152921504606999975", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 35305, + "ForegroundColor": "", + "Height": 756, + "ImagePositionInfo": "", + "ImagePurpose": "Hero", + "UnscaledImageSHA256Hash": "uqWgLSKfis9rQ1FWuQ+yIR4yshq8t3n9BRYOfCwlnbg=", + "Uri": "//store-images.microsoft.com/image/apps.42426.9007199266246365.5a617abc-89f6-407e-b972-d98abef1641f.6450ed42-2199-43fe-bf8c-f0b8699c856c", + "Width": 558 + }, + { + "FileId": "1152921504606999754", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 25992, + "ForegroundColor": "", + "Height": 468, + "ImagePositionInfo": "", + "ImagePurpose": "Hero", + "UnscaledImageSHA256Hash": "xM/CjBseWP4CiqNd2JP6DyCZMhVIGkcelwLQza8TUmA=", + "Uri": "//store-images.microsoft.com/image/apps.53188.9007199266246365.726115d0-7838-4bdc-b258-8d6aff8fdee4.240fcf51-0794-414c-8689-62f3dee4554e", + "Width": 414 + }, + { + "FileId": "1152921504606999753", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 17241, + "ForegroundColor": "", + "Height": 180, + "ImagePositionInfo": "", + "ImagePurpose": "Hero", + "UnscaledImageSHA256Hash": "IZlRV1m/aLYfqALEirTW4ig1BvbGgdUbAFv+etAXBZI=", + "Uri": "//store-images.microsoft.com/image/apps.39201.9007199266246365.2a024a35-1e3b-40fb-b8b3-e678027a8fad.507c33d8-aae2-4303-8e8a-9dd70f03c67f", + "Width": 414 + }, + { + "FileId": "2000000000068936641", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2444680, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/0", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "OEOlvSR3aRst44dSvHAKh3O41PyDWTg9Aex9xydIw5I=", + "Uri": "//store-images.s-microsoft.com/image/apps.17208.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.63794f19-99db-44a1-a0d8-3c0ed656085d", + "Width": 1080 + }, + { + "FileId": "2000000000068936644", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1985861, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/1", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "7GpTGDHKWsoRCu74hp2pKePBJMD1oQivWy73P1Sa9pY=", + "Uri": "//store-images.s-microsoft.com/image/apps.27372.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.12fc42eb-9cca-426e-b151-4438728c935a", + "Width": 1080 + }, + { + "FileId": "2000000000068936675", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1822167, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/3", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "A8bu2elhwcxGXtoHeLimnAukf0vwU3VEUwPOBMLpybY=", + "Uri": "//store-images.s-microsoft.com/image/apps.50691.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.ae0eaab0-e300-4674-b947-693b1e6ecf42", + "Width": 1080 + }, + { + "FileId": "2000000000068936671", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1524326, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/2", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "6SCBT/vdy8dXFtX3weuqsKCV2EmultabmqEtG8zJSPk=", + "Uri": "//store-images.s-microsoft.com/image/apps.8425.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.c4f4222f-417e-4713-a6d1-6493c0a731ba", + "Width": 1080 + }, + { + "FileId": "2000000000068936792", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2885717, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/4", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "7Hs7yBqZ2a4jxPBiIPCLzTTe4VKmCzpTNr+tVIYy/0I=", + "Uri": "//store-images.s-microsoft.com/image/apps.31724.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.2514f39d-8e35-4e3b-b4e5-44968d2300c5", + "Width": 1080 + }, + { + "FileId": "2000000000068936874", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3044495, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/5", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "23xX2XWqKC+OSJZ+Ji7mnuLLakOBIF/0RaPrMq/zjWk=", + "Uri": "//store-images.s-microsoft.com/image/apps.31963.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.ae6e92fe-6ffc-4185-93df-6e70197936c4", + "Width": 1080 + }, + { + "FileId": "2000000000068936879", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3518542, + "ForegroundColor": "", + "Height": 1920, + "ImagePositionInfo": "Mobile/6", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "kTSkd8IOQyEvgrdo1KzLO6DiEx9uQ7ykHLJxqMyVQhE=", + "Uri": "//store-images.s-microsoft.com/image/apps.13457.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.40c234de-2e46-43aa-8976-295be71640e3", + "Width": 1080 + }, + { + "FileId": "2000000000068936903", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2070430, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/1", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "JFjfks2Cm7u16sTfYJLrCPe6C2kXZUmyfjCuA4uf9XA=", + "Uri": "//store-images.s-microsoft.com/image/apps.22564.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.caa00164-3db9-4a6c-8cde-380e6eb80ba0", + "Width": 1920 + }, + { + "FileId": "2000000000068936904", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1530467, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/2", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "Cb/9BUNgZUCdVWzbx1VhUv4LQNaW7vHOA9ZuGVtR9aE=", + "Uri": "//store-images.s-microsoft.com/image/apps.48905.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.2c11047b-929a-42bc-bd10-a2d89e0f7033", + "Width": 1920 + }, + { + "FileId": "2000000000068936905", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2853810, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/3", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "p4KAHNmtQyhI+jxsHuoJQHFyskJBFp4R6eyKJs5Gzlg=", + "Uri": "//store-images.s-microsoft.com/image/apps.33447.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.4451173a-58aa-4e7d-8e7f-80df8f170ec7", + "Width": 1920 + }, + { + "FileId": "2000000000068936906", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 1951319, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/4", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "kvZGNfxX8CWsDGCxw2OPtLXAtcFKYxajT3+eQuJ+Ypw=", + "Uri": "//store-images.s-microsoft.com/image/apps.63122.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.3754a3be-ef04-4a73-87ce-08e68100184f", + "Width": 1920 + }, + { + "FileId": "2000000000068936907", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2470078, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/5", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "3X4nLKMNvvRjiJlFPhVM0Awx9jRmbea++bGaYIFv+VU=", + "Uri": "//store-images.s-microsoft.com/image/apps.32477.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.0edb30ed-871a-41ab-85dc-4287bd812939", + "Width": 1920 + }, + { + "FileId": "2000000000068936941", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3930222, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/7", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "J8LUHpiICezD+eduimg+48RKjsqGoMTvqH1eKRxxFvI=", + "Uri": "//store-images.s-microsoft.com/image/apps.49703.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.6748f60f-869e-4173-bd41-c0de92cd6d89", + "Width": 1920 + }, + { + "FileId": "2000000000068936901", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2256820, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/0", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "vCsolecePGGTJZEffwcQNjtHXDzTsbWt5aHL6TQh3yM=", + "Uri": "//store-images.s-microsoft.com/image/apps.11196.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.470710fc-4dec-4479-8d36-a3e79acebd65", + "Width": 1920 + }, + { + "FileId": "2000000000068936908", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2905175, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Desktop/6", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "DAsJFGwP8T+umK7qmtjboLdXRNxZ1O2rOM5qSEl8ZbM=", + "Uri": "//store-images.s-microsoft.com/image/apps.2828.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.b9c8711d-8ace-446b-bf78-fad9c4e5dd22", + "Width": 1920 + }, + { + "FileId": "2000000000068936943", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2693771, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Xbox/1", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "ln7zhXFqnDUL5yEC6Pxrly9dl4cy3RWC5aiPUf5NzG8=", + "Uri": "//store-images.s-microsoft.com/image/apps.32406.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.cd0b2b61-58e8-4ae3-8db5-b5722c131206", + "Width": 1920 + }, + { + "FileId": "2000000000068936942", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3297769, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Xbox/0", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "EJLAZw0urLQLPUk1A4Ij1snHxrTgsVPwssncUmww56k=", + "Uri": "//store-images.s-microsoft.com/image/apps.37392.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.6a791e47-a096-41ff-bcf5-5bc1a5cd8855", + "Width": 1920 + }, + { + "FileId": "2000000000068936944", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 3473788, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Xbox/2", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "+mRMKxUPQhP3r74NhJA396O9SKqauRe/QmJPHURGhkw=", + "Uri": "//store-images.s-microsoft.com/image/apps.25850.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.a3a0ede1-1a4b-4a39-b593-61eeb2a7b0fe", + "Width": 1920 + }, + { + "FileId": "2000000000068936945", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2717135, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Xbox/3", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "TqUJ1ic+YoYlrkPDmdmsR5r3UxAqKqhoIt9cmO2Zz58=", + "Uri": "//store-images.s-microsoft.com/image/apps.42318.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.fc8fd224-86da-4fa6-8fc5-65167ce7b540", + "Width": 1920 + }, + { + "FileId": "2000000000068936946", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 2518061, + "ForegroundColor": "", + "Height": 1080, + "ImagePositionInfo": "Xbox/4", + "ImagePurpose": "Screenshot", + "UnscaledImageSHA256Hash": "nnZxfDrpeTXZXRrjCk8MAup4MAjs648bZNgi800335w=", + "Uri": "//store-images.s-microsoft.com/image/apps.30366.9007199266246365.fc3e1dac-58ff-4db5-9d08-4cca1b6f53e3.5deebc32-c626-4246-9c3a-2bdfaeaf1bee", + "Width": 1920 + }, + { + "FileId": "2000000000076292302", + "EISListingIdentifier": null, + "BackgroundColor": "#000000", + "Caption": "", + "FileSizeInBytes": 5091, + "ForegroundColor": "", + "Height": 300, + "ImagePositionInfo": "", + "ImagePurpose": "Logo", + "UnscaledImageSHA256Hash": "Ydu5wZruM5w6znIrK6Q/QptnSjGxhgw25/l/M0XpcV0=", + "Uri": "//store-images.s-microsoft.com/image/apps.56161.9007199266246365.1d5a6a53-3c49-4f80-95d7-78d76b0e05d0.a3e87fea-e03e-4c0a-8f26-9ecef205fa7b", + "Width": 300 + }, + { + "FileId": "2000000000076313496", + "EISListingIdentifier": null, + "BackgroundColor": "", + "Caption": "", + "FileSizeInBytes": 8779790, + "ForegroundColor": "", + "Height": 2160, + "ImagePositionInfo": "", + "ImagePurpose": "SuperHeroArt", + "UnscaledImageSHA256Hash": "U36a96Na9LKfty7hp7CoapzMlthhX5ymgf1sucHCWM8=", + "Uri": "//store-images.s-microsoft.com/image/apps.32339.9007199266246365.1d5a6a53-3c49-4f80-95d7-78d76b0e05d0.ac2899bf-ba6c-4f7b-b2d4-c854cc7a6f55", + "Width": 3840 + } + ], + "Videos": [], + "ProductDescription": "Netflix has something for everyone. Watch TV shows and movies recommended just for you, including award-winning Netflix original series, movies, and documentaries. There’s even a safe watching experience just for kids with family-friendly entertainment.\r\n\r\nNow on Windows, you can enjoy every detail of the world’s favorite shows in 4K Ultra HD on Netflix. Download many of your favorite series and movies with the simple click of the download button. You can watch while you’re on the go or without an Internet connection on your PC, tablet or laptop with Windows 10. \r\n\r\nHow does Netflix work?\r\n- Instantly watch TV shows and movies through thousands of internet-connected devices. You can play, pause, and resume watching, all without commercials.\r\n- Netflix adds new content all the time. Browse titles or search for your favorites.\r\n- The more you watch, the better Netflix gets at recommending TV shows and movies that you’ll love — just for you. \r\n- You can create up to five individual profiles within a single Netflix account. Profiles allow different members of your household to have their own personalized Netflix experience built around the movies and TV shows they enjoy. \r\n\r\nIf you decide Netflix isn't for you - no problem. No contract, no cancellation fees, no commitment. Cancel online anytime.\r\n\r\nBy clicking INSTALL, you consent to the installation of the Netflix application and any updates or upgrades thereto.", + "ProductTitle": "Netflix", + "ShortTitle": "", + "SortTitle": "", + "FriendlyTitle": null, + "ShortDescription": "", + "SearchTitles": [ + { + "SearchTitleString": "netflix", + "SearchTitleType": "SearchHint" + }, + { + "SearchTitleString": "streaming", + "SearchTitleType": "SearchHint" + }, + { + "SearchTitleString": "movie", + "SearchTitleType": "SearchHint" + }, + { + "SearchTitleString": "movies", + "SearchTitleType": "SearchHint" + }, + { + "SearchTitleString": "video", + "SearchTitleType": "SearchHint" + }, + { + "SearchTitleString": "The Irishman", + "SearchTitleType": "SearchHint" + } + ], + "VoiceTitle": "", + "RenderGroupDetails": null, + "ProductDisplayRanks": [], + "InteractiveModelConfig": null, + "Interactive3DEnabled": false, + "Language": "en-us", + "Markets": [ + "US", + "DZ", + "AR", + "AU", + "AT", + "BH", + "BD", + "BE", + "BR", + "BG", + "CA", + "CL", + "CN", + "CO", + "CR", + "HR", + "CY", + "CZ", + "DK", + "EG", + "EE", + "FI", + "FR", + "DE", + "GR", + "GT", + "HK", + "HU", + "IS", + "IN", + "ID", + "IQ", + "IE", + "IL", + "IT", + "JP", + "JO", + "KZ", + "KE", + "KW", + "LV", + "LB", + "LI", + "LT", + "LU", + "MY", + "MT", + "MR", + "MX", + "MA", + "NL", + "NZ", + "NG", + "NO", + "OM", + "PK", + "PE", + "PH", + "PL", + "PT", + "QA", + "RO", + "RU", + "SA", + "RS", + "SG", + "SK", + "SI", + "ZA", + "KR", + "ES", + "SE", + "CH", + "TW", + "TH", + "TT", + "TN", + "TR", + "UA", + "AE", + "GB", + "VN", + "YE", + "LY", + "LK", + "UY", + "VE", + "AF", + "AX", + "AL", + "AS", + "AO", + "AI", + "AQ", + "AG", + "AM", + "AW", + "BO", + "BQ", + "BA", + "BW", + "BV", + "IO", + "BN", + "BF", + "BI", + "KH", + "CM", + "CV", + "KY", + "CF", + "TD", + "TL", + "DJ", + "DM", + "DO", + "EC", + "SV", + "GQ", + "ER", + "ET", + "FK", + "FO", + "FJ", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "GH", + "GI", + "GL", + "GD", + "GP", + "GU", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "HN", + "AZ", + "BS", + "BB", + "BY", + "BZ", + "BJ", + "BM", + "BT", + "KM", + "CG", + "CD", + "CK", + "CX", + "CC", + "CI", + "CW", + "JM", + "SJ", + "JE", + "KI", + "KG", + "LA", + "LS", + "LR", + "MO", + "MK", + "MG", + "MW", + "IM", + "MH", + "MQ", + "MU", + "YT", + "FM", + "MD", + "MN", + "MS", + "MZ", + "MM", + "NA", + "NR", + "NP", + "MV", + "ML", + "NC", + "NI", + "NE", + "NU", + "NF", + "PW", + "PS", + "PA", + "PG", + "PY", + "RE", + "RW", + "BL", + "MF", + "WS", + "ST", + "SN", + "MP", + "PN", + "SX", + "SB", + "SO", + "SC", + "SL", + "GS", + "SH", + "KN", + "LC", + "PM", + "VC", + "TJ", + "TZ", + "TG", + "TK", + "TO", + "TM", + "TC", + "TV", + "UM", + "UG", + "VI", + "VG", + "WF", + "EH", + "ZM", + "ZW", + "UZ", + "VU", + "SR", + "SZ", + "AD", + "MC", + "SM", + "ME", + "VA", + "NEUTRAL" + ] + } + ], + "MarketProperties": [ + { + "OriginalReleaseDate": "2010-10-18T20:04:26.4400000Z", + "OriginalReleaseDateFriendlyName": "", + "MinimumUserAge": 12, + "ContentRatings": [ + { + "RatingSystem": "ESRB", + "RatingId": "ESRB:T", + "RatingDescriptors": ["ESRB:DivConDisAdv"], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "PEGI", + "RatingId": "PEGI:!", + "RatingDescriptors": ["PEGI:ParGuiRec"], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "DJCTQ", + "RatingId": "DJCTQ:16", + "RatingDescriptors": [ + "DJCTQ:Vio", + "DJCTQ:SexCon", + "DJCTQ:IllDru" + ], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "USK", + "RatingId": "USK:16", + "RatingDescriptors": ["USK:ConDifAge"], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "IARC", + "RatingId": "IARC:12", + "RatingDescriptors": ["IARC:ParGuiRec"], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "PCBP", + "RatingId": "PCBP:18", + "RatingDescriptors": [], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "CSRR", + "RatingId": "CSRR:PG15", + "RatingDescriptors": [], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "Microsoft", + "RatingId": "Microsoft:12", + "RatingDescriptors": [], + "RatingDisclaimers": [], + "InteractiveElements": [] + }, + { + "RatingSystem": "CCC", + "RatingId": "CCC:14", + "RatingDescriptors": [], + "RatingDisclaimers": [], + "InteractiveElements": [] + } + ], + "RelatedProducts": [], + "UsageData": [ + { + "AggregateTimeSpan": "7Days", + "AverageRating": 3.6, + "PlayCount": 0, + "RatingCount": 201, + "RentalCount": "0", + "TrialCount": "0", + "PurchaseCount": "0" + }, + { + "AggregateTimeSpan": "30Days", + "AverageRating": 3.3, + "PlayCount": 0, + "RatingCount": 947, + "RentalCount": "0", + "TrialCount": "0", + "PurchaseCount": "0" + }, + { + "AggregateTimeSpan": "AllTime", + "AverageRating": 4.0, + "PlayCount": 0, + "RatingCount": 685202, + "RentalCount": "0", + "TrialCount": "0", + "PurchaseCount": "0" + } + ], + "BundleConfig": null, + "Markets": ["US"] + } + ], + "ProductASchema": "Product;3", + "ProductBSchema": "ProductUnifiedApp;3", + "ProductId": "9WZDNCRFJ3TJ", + "Properties": { + "Attributes": [], + "CanInstallToSDCard": true, + "Category": "Entertainment", + "SubCategory": "", + "Categories": null, + "Extensions": null, + "IsAccessible": false, + "IsLineOfBusinessApp": false, + "IsPublishedToLegacyWindowsPhoneStore": true, + "IsPublishedToLegacyWindowsStore": true, + "IsSettingsApp": false, + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "PackageIdentityName": "4DF9E0F8.NETFLIX", + "PublisherCertificateName": "CN=52120C15-ACFA-47FC-A7E3-4974DBA79445", + "PublisherId": "10101050", + "XboxLiveTier": null, + "XboxXPA": null, + "XboxCrossGenSetId": null, + "XboxConsoleGenOptimized": null, + "XboxConsoleGenCompatible": null, + "XboxLiveGoldRequired": false, + "OwnershipType": null, + "PdpBackgroundColor": "#FFFFFF", + "HasAddOns": false, + "RevisionId": "2020-10-09T18:03:52.1324696Z", + "ProductGroupId": "f6c7aeef-99e9-4096-b9fc-b0ddc1f8749b", + "ProductGroupName": "Netflix" + }, + "AlternateIds": [ + { + "IdType": "LegacyWindowsStoreProductId", + "Value": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa" + }, + { + "IdType": "LegacyWindowsPhoneProductId", + "Value": "c3a509cd-61d6-df11-a844-00237de2db9e" + }, + { + "IdType": "XboxTitleId", + "Value": "327370029" + }, + { + "IdType": "SRAProductId", + "Value": "337f7d51-bc20-4b9b-ad6c-2a2395a42ecb" + } + ], + "DomainDataVersion": null, + "IngestionSource": "DCE", + "IsMicrosoftProduct": false, + "PreferredSkuId": "0010", + "ProductType": "Application", + "ValidationData": { + "PassedValidation": false, + "RevisionId": "2020-10-09T18:03:52.1324696Z||.||7319fa59-58e1-4130-9142-e5d991b61b73||1152921505691950666||Null||fullrelease", + "ValidationResultUri": "" + }, + "MerchandizingTags": [], + "PartD": "", + "ProductFamily": "Apps", + "SchemaVersion": "3", + "ProductKind": "Application", + "DisplaySkuAvailabilities": [ + { + "Sku": { + "LastModifiedDate": "2020-10-09T18:02:12.6570851Z", + "LocalizedProperties": [ + { + "Contributors": [], + "Features": [], + "MinimumNotes": "", + "RecommendedNotes": "", + "ReleaseNotes": "", + "DisplayPlatformProperties": null, + "SkuDescription": "Netflix has something for everyone. Watch TV shows and movies recommended just for you, including award-winning Netflix original series, movies, and documentaries. There’s even a safe watching experience just for kids with family-friendly entertainment.\r\n\r\nNow on Windows, you can enjoy every detail of the world’s favorite shows in 4K Ultra HD on Netflix. Download many of your favorite series and movies with the simple click of the download button. You can watch while you’re on the go or without an Internet connection on your PC, tablet or laptop with Windows 10. \r\n\r\nHow does Netflix work?\r\n- Instantly watch TV shows and movies through thousands of internet-connected devices. You can play, pause, and resume watching, all without commercials.\r\n- Netflix adds new content all the time. Browse titles or search for your favorites.\r\n- The more you watch, the better Netflix gets at recommending TV shows and movies that you’ll love — just for you. \r\n- You can create up to five individual profiles within a single Netflix account. Profiles allow different members of your household to have their own personalized Netflix experience built around the movies and TV shows they enjoy. \r\n\r\nIf you decide Netflix isn't for you - no problem. No contract, no cancellation fees, no commitment. Cancel online anytime.\r\n\r\nBy clicking INSTALL, you consent to the installation of the Netflix application and any updates or upgrades thereto.", + "SkuTitle": "Netflix", + "SkuButtonTitle": "", + "DeliveryDateOverlay": null, + "SkuDisplayRank": [], + "TextResources": null, + "Images": [], + "LegalText": { + "AdditionalLicenseTerms": "By downloading this application you agree to the Netflix Terms of Use and Privacy Policy, located at www.netflix.com.\r\n \r\nInternet access and valid payment method are required. Your Netflix membership is a month-to-month subscription that you can cancel at any time. Go to \"Your Account\" on the Netflix website for cancellation instructions. No refund or credit for partial monthly subscription periods. The Netflix service is only available in the country where you originally signed up. A device that streams from Netflix (manufactured and sold separately) and broadband Internet connection are required to watch instantly. For complete terms and conditions, please visit http://www.netflix.com/TermsOfUse.", + "Copyright": "© 1997-2018 Netflix, Inc.", + "CopyrightUri": "", + "PrivacyPolicy": "", + "PrivacyPolicyUri": "https://signup.netflix.com/PrivacyPolicy", + "Tou": "By downloading this application you agree to the Netflix Terms of Use and Privacy Policy, located at www.netflix.com.\r\n \r\nInternet access and valid payment method are required. Your Netflix membership is a month-to-month subscription that you can cancel at any time. Go to \"Your Account\" on the Netflix website for cancellation instructions. No refund or credit for partial monthly subscription periods. The Netflix service is only available in the country where you originally signed up. A device that streams from Netflix (manufactured and sold separately) and broadband Internet connection are required to watch instantly. For complete terms and conditions, please visit http://www.netflix.com/TermsOfUse.", + "TouUri": "" + }, + "Language": "en-us", + "Markets": [ + "US", + "DZ", + "AR", + "AU", + "AT", + "BH", + "BD", + "BE", + "BR", + "BG", + "CA", + "CL", + "CN", + "CO", + "CR", + "HR", + "CY", + "CZ", + "DK", + "EG", + "EE", + "FI", + "FR", + "DE", + "GR", + "GT", + "HK", + "HU", + "IS", + "IN", + "ID", + "IQ", + "IE", + "IL", + "IT", + "JP", + "JO", + "KZ", + "KE", + "KW", + "LV", + "LB", + "LI", + "LT", + "LU", + "MY", + "MT", + "MR", + "MX", + "MA", + "NL", + "NZ", + "NG", + "NO", + "OM", + "PK", + "PE", + "PH", + "PL", + "PT", + "QA", + "RO", + "RU", + "SA", + "RS", + "SG", + "SK", + "SI", + "ZA", + "KR", + "ES", + "SE", + "CH", + "TW", + "TH", + "TT", + "TN", + "TR", + "UA", + "AE", + "GB", + "VN", + "YE", + "LY", + "LK", + "UY", + "VE", + "AF", + "AX", + "AL", + "AS", + "AO", + "AI", + "AQ", + "AG", + "AM", + "AW", + "BO", + "BQ", + "BA", + "BW", + "BV", + "IO", + "BN", + "BF", + "BI", + "KH", + "CM", + "CV", + "KY", + "CF", + "TD", + "TL", + "DJ", + "DM", + "DO", + "EC", + "SV", + "GQ", + "ER", + "ET", + "FK", + "FO", + "FJ", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "GH", + "GI", + "GL", + "GD", + "GP", + "GU", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "HN", + "AZ", + "BS", + "BB", + "BY", + "BZ", + "BJ", + "BM", + "BT", + "KM", + "CG", + "CD", + "CK", + "CX", + "CC", + "CI", + "CW", + "JM", + "SJ", + "JE", + "KI", + "KG", + "LA", + "LS", + "LR", + "MO", + "MK", + "MG", + "MW", + "IM", + "MH", + "MQ", + "MU", + "YT", + "FM", + "MD", + "MN", + "MS", + "MZ", + "MM", + "NA", + "NR", + "NP", + "MV", + "ML", + "NC", + "NI", + "NE", + "NU", + "NF", + "PW", + "PS", + "PA", + "PG", + "PY", + "RE", + "RW", + "BL", + "MF", + "WS", + "ST", + "SN", + "MP", + "PN", + "SX", + "SB", + "SO", + "SC", + "SL", + "GS", + "SH", + "KN", + "LC", + "PM", + "VC", + "TJ", + "TZ", + "TG", + "TK", + "TO", + "TM", + "TC", + "TV", + "UM", + "UG", + "VI", + "VG", + "WF", + "EH", + "ZM", + "ZW", + "UZ", + "VU", + "SR", + "SZ", + "AD", + "MC", + "SM", + "ME", + "VA", + "NEUTRAL" + ] + } + ], + "MarketProperties": [ + { + "FirstAvailableDate": "2010-10-18T20:04:26.4400000Z", + "SupportedLanguages": [ + "en-us", + "da", + "es", + "fi", + "fr", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "de", + "fr-ca", + "en-au", + "es-es", + "it", + "ja", + "pt-pt", + "pt-br", + "da-dk", + "fi-fi", + "nl-nl", + "sv-se", + "es-mx", + "nb-no", + "de-de", + "fr-fr", + "en", + "ko", + "zh-cn", + "zh-tw", + "ar", + "zh-hant", + "pl", + "tr", + "th", + "ro", + "he", + "el", + "id", + "cs", + "hu", + "vi", + "en-in" + ], + "PackageIds": null, + "PIFilter": null, + "Markets": ["US"] + } + ], + "ProductId": "9WZDNCRFJ3TJ", + "Properties": { + "EarlyAdopterEnrollmentUrl": null, + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + }, + "FulfillmentType": "WindowsUpdate", + "FulfillmentPluginId": null, + "HasThirdPartyIAPs": false, + "LastUpdateDate": "2020-10-09T18:02:12.0000000Z", + "HardwareProperties": { + "MinimumHardware": [], + "RecommendedHardware": [], + "MinimumProcessor": null, + "RecommendedProcessor": null, + "MinimumGraphics": null, + "RecommendedGraphics": null + }, + "HardwareRequirements": [], + "HardwareWarningList": [], + "InstallationTerms": "InstallationTermsStandard", + "Packages": [ + { + "Applications": [ + { + "ApplicationId": "Netflix.App", + "DeclarationOrder": 0, + "Extensions": [ + "search-search", + "protocol-netflix", + "backgroundTasks-backgroundTasks" + ] + } + ], + "Architectures": ["x64", "arm", "x86"], + "Capabilities": [ + "internetClient", + "internetClientServer", + "privateNetworkClientServer" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "5JwYk5NZCfrPpZUg2YhKU0W+m6HUP3Vx+3+mS4rXN5Q=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "en-in", + "ar", + "bg", + "cs", + "da", + "de", + "el", + "es", + "fi", + "fr", + "he", + "hu", + "it", + "ja", + "ko", + "nb", + "nl", + "pt", + "pl", + "ro", + "tr", + "sv", + "zh-hant", + "th", + "vi" + ], + "MaxDownloadSizeInBytes": 7250253, + "MaxInstallSizeInBytes": 7610368, + "PackageFormat": "AppxBundle", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_6.97.752.0_neutral_~_mcm4njqhnhss8", + "PackageId": "c76eb995-37f6-0df7-3573-95c498140c24-X86-X64-Arm", + "ContentId": "6f5a9e8f-f920-1658-72ff-16c1448402f9", + "KeyId": null, + "PackageRank": 30003, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2814750438195200, + "MinVersion": 2814750438195200, + "PlatformName": "Windows.Desktop" + }, + { + "MaxTested": 2814750438195200, + "MinVersion": 2814750438195200, + "PlatformName": "Windows.Holographic" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.bundledPackages\":[\"4DF9E0F8.Netflix_6.97.752.0_x64__mcm4njqhnhss8\",\"4DF9E0F8.Netflix_6.97.752.0_arm__mcm4njqhnhss8\",\"4DF9E0F8.Netflix_6.97.752.0_x86__mcm4njqhnhss8\"],\"content.isMain\":false,\"content.packageId\":\"4DF9E0F8.Netflix_6.97.752.0_neutral_~_mcm4njqhnhss8\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.targetPlatforms\":[{\"platform.maxVersionTested\":2814750438195200,\"platform.minVersion\":2814750438195200,\"platform.target\":3},{\"platform.maxVersionTested\":2814750438195200,\"platform.minVersion\":2814750438195200,\"platform.target\":10}],\"content.type\":7,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "~", + "Version": "1689266521374720", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": [ + "DialProtocol-Netflix", + "protocol-netflix", + "appUriHandler-appUriHandler" + ] + } + ], + "Architectures": ["x64"], + "Capabilities": [ + "internetClient", + "internetClientServer", + "privateNetworkClientServer", + "hevcPlayback" + ], + "DeviceCapabilities": [ + "6a7e5907-885c-4bcb-b40a-073c067bd3d5" + ], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 3940651496505344, + "PackageIdentity": "Microsoft.VCLibs.140.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "06P4J+OstU7MzIf5HE769f3XL8mSikambNQFuqzFgaA=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": ["en-us"], + "MaxDownloadSizeInBytes": 81100341, + "MaxInstallSizeInBytes": 81489920, + "PackageFormat": "EMsixBundle", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_8.38.0.70_neutral_~_mcm4njqhnhss8", + "PackageId": "f9ceeb09-ebef-6107-dcbd-e1d3537b3d03-X64", + "ContentId": "6ab456e6-b2e4-5f12-9459-2267c3bd2e01", + "KeyId": "6ab456e6-b2e4-5f12-9459-2267c3bd2e01", + "PackageRank": 30012, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2814750970478592, + "MinVersion": 2814750931222528, + "PlatformName": "Windows.Xbox" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.bundledPackages\":[\"4DF9E0F8.Netflix_8.38.0.70_x64__mcm4njqhnhss8\"],\"content.isMain\":false,\"content.packageId\":\"4DF9E0F8.Netflix_8.38.0.70_neutral_~_mcm4njqhnhss8\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.targetPlatforms\":[{\"platform.maxVersionTested\":2814750970478592,\"platform.minVersion\":2814750931222528,\"platform.target\":5}],\"content.type\":7,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "~", + "Version": "2251963022442566", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "WP", + "DeclarationOrder": 0, + "Extensions": [] + } + ], + "Architectures": ["neutral"], + "Capabilities": [ + "ID_CAP_IDENTITY_DEVICE", + "ID_CAP_MEDIALIB", + "ID_CAP_NETWORKING", + "ID_FNCTNL_SILVERLIGHT_FRAMEWORK", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "", + "HashAlgorithm": "", + "IsStreamingApp": false, + "Languages": [ + "da-dk", + "de-de", + "en", + "en-gb", + "en-us", + "es-es", + "fi-fi", + "fr-ca", + "fr-fr", + "nb-no", + "nl-nl", + "pt-br", + "sv-se" + ], + "MaxDownloadSizeInBytes": 2124298, + "MaxInstallSizeInBytes": null, + "PackageFormat": "Xap", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "", + "PackageId": "6851614b-8337-4b5f-9025-1b1d21966cf0", + "ContentId": "b7bc0da1-a0ff-8753-d972-13d41ea223e1", + "KeyId": null, + "PackageRank": 10000, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2251804108652544, + "MinVersion": 2251799813685248, + "PlatformName": "Windows.WindowsPhone8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.payloadId\":\"6851614b-8337-4b5f-9025-1b1d21966cf0\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.type\":1,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "562992917970944", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "WP", + "DeclarationOrder": 0, + "Extensions": [] + } + ], + "Architectures": ["neutral"], + "Capabilities": [ + "ID_CAP_IDENTITY_DEVICE", + "ID_CAP_MEDIALIB_PLAYBACK", + "ID_CAP_NETWORKING", + "ID_FNCTNL_SILVERLIGHT_FRAMEWORK", + "ID_RESOLUTION_HD720P", + "ID_RESOLUTION_WVGA", + "ID_RESOLUTION_WXGA", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "", + "HashAlgorithm": "", + "IsStreamingApp": false, + "Languages": [ + "da-dk", + "de-de", + "en-gb", + "en-us", + "es-mx", + "fi-fi", + "fr-ca", + "fr-fr", + "nb-no", + "nl-nl", + "pt-br", + "sv-se" + ], + "MaxDownloadSizeInBytes": 2079578, + "MaxInstallSizeInBytes": null, + "PackageFormat": "Xap", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "", + "PackageId": "c828f646-52ec-4c11-847f-768bcf8a6eae", + "ContentId": "b7bc0da1-a0ff-8753-d972-13d41ea223e1", + "KeyId": null, + "PackageRank": 11000, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2251804108652544, + "MinVersion": 2251799813685248, + "PlatformName": "Windows.WindowsPhone8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.payloadId\":\"c828f646-52ec-4c11-847f-768bcf8a6eae\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.type\":2,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "844454994903063", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "WP", + "DeclarationOrder": 0, + "Extensions": [] + } + ], + "Architectures": ["neutral"], + "Capabilities": [ + "internetClient", + "ID_RESOLUTION_WVGA", + "ID_RESOLUTION_WXGA", + "ID_RESOLUTION_HD720P", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": ["microphone"], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562993039212545, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.Phone.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701694013440, + "PackageIdentity": "Microsoft.VCLibs.120.00.Phone" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "GsUkUC+HXkRvEE6PU5EjQnKAR9VfEoEq+WWNCX8MxoA=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 7948191, + "MaxInstallSizeInBytes": 11083776, + "PackageFormat": "Appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_4.15.0.62_arm__mcm4njqhnhss8", + "PackageId": "4c9dc6c4-e410-466a-9e98-eee520f15b5e-Neutral", + "ContentId": "6a97cc96-9d91-fff0-912f-d26c240e578b", + "KeyId": null, + "PackageRank": 17000, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2251804108652544, + "MinVersion": 2251804108652544, + "PlatformName": "Windows.WindowsPhone8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745231360,\"content.minOS\":1688862745231360,\"content.packageId\":\"4DF9E0F8.Netflix_4.15.0.62_arm__mcm4njqhnhss8\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.type\":4,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "1125964331352126", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x64"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562962948292608, + "PackageIdentity": "Microsoft.Media.PlayReadyClient" + }, + { + "MaxTested": 0, + "MinVersion": 3096228093100033, + "PackageIdentity": "Microsoft.VCLibs.110.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "42X7uS/LytxrsxrF7PGreVD3fb8n+u5p6/W9KXeGfgc=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5747705, + "MaxInstallSizeInBytes": 10559488, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_1.33.0.109_x64__mcm4njqhnhss8", + "PackageId": "e20498c8-c01f-440c-a167-5213d4ed9914-X64", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20002, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688858450264064, + "MinVersion": 1688858450264064, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688858450264064,\"content.minOS\":1688858450264064,\"content.packageId\":\"4DF9E0F8.Netflix_1.33.0.109_x64__mcm4njqhnhss8\",\"content.type\":5,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "281616710631533", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x86"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562962948292608, + "PackageIdentity": "Microsoft.Media.PlayReadyClient" + }, + { + "MaxTested": 0, + "MinVersion": 3096228093100033, + "PackageIdentity": "Microsoft.VCLibs.110.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "z7PFAh/WD46LPrHKm0DcT6UloZp0iaTZjf/2nBvdcnc=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5733181, + "MaxInstallSizeInBytes": 10518528, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_1.33.0.109_x86__mcm4njqhnhss8", + "PackageId": "b4cf45f0-2677-4520-b7ef-18728082c0ec-X86", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20001, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688858450264064, + "MinVersion": 1688858450264064, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688858450264064,\"content.minOS\":1688858450264064,\"content.packageId\":\"4DF9E0F8.Netflix_1.33.0.109_x86__mcm4njqhnhss8\",\"content.type\":5,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "281616710631533", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["arm"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562962948292608, + "PackageIdentity": "Microsoft.Media.PlayReadyClient" + }, + { + "MaxTested": 0, + "MinVersion": 3096228093100033, + "PackageIdentity": "Microsoft.VCLibs.110.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "OMZ/IIRve1/aBnMmSb/u639E8E0jXUVlXvoBHqtixYc=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5744175, + "MaxInstallSizeInBytes": 10526720, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_1.33.0.109_arm__mcm4njqhnhss8", + "PackageId": "896936b6-abe8-485d-9542-706b7b1f6fc4-Arm", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20003, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688858450264064, + "MinVersion": 1688858450264064, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688858450264064,\"content.minOS\":1688858450264064,\"content.packageId\":\"4DF9E0F8.Netflix_1.33.0.109_arm__mcm4njqhnhss8\",\"content.type\":5,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "281616710631533", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x86"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562997339226112, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701097111553, + "PackageIdentity": "Microsoft.VCLibs.120.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "IvNSqzzyRmD5ZgCFVU/2x7QddCSw25ak2ix9oMmyh4E=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5925423, + "MaxInstallSizeInBytes": 10891264, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_2.22.0.39_x86__mcm4njqhnhss8", + "PackageId": "3789cd7b-3858-441a-aa0c-523366516efd-X86", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20011, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688862745165824, + "MinVersion": 1688862745165824, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745165824,\"content.minOS\":1688862745165824,\"content.packageId\":\"4DF9E0F8.Netflix_2.22.0.39_x86__mcm4njqhnhss8\",\"content.type\":6,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "563044442701863", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x64"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562997339226112, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701097111553, + "PackageIdentity": "Microsoft.VCLibs.120.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "fA7AhxxOocoGdURdUaAWp9rjM2Kr4JPJE3YQAxznYtw=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5939929, + "MaxInstallSizeInBytes": 10952704, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_2.22.0.39_x64__mcm4njqhnhss8", + "PackageId": "671978e9-fefc-4766-8bc8-0eb62503c5d4-X64", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20012, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688862745165824, + "MinVersion": 1688862745165824, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745165824,\"content.minOS\":1688862745165824,\"content.packageId\":\"4DF9E0F8.Netflix_2.22.0.39_x64__mcm4njqhnhss8\",\"content.type\":6,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "563044442701863", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["arm"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562997339226112, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701097111553, + "PackageIdentity": "Microsoft.VCLibs.120.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "F4dbkqdksFrGfBVewsJJkQd7NHxc3GfFCEFeOa9m56A=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5935941, + "MaxInstallSizeInBytes": 10903552, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_2.22.0.39_arm__mcm4njqhnhss8", + "PackageId": "5f2e3a30-363d-4f64-bc6a-fea9bd3a69a7-Arm", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20013, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688862745165824, + "MinVersion": 1688862745165824, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745165824,\"content.minOS\":1688862745165824,\"content.packageId\":\"4DF9E0F8.Netflix_2.22.0.39_arm__mcm4njqhnhss8\",\"content.type\":6,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "563044442701863", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0010", + "Content": null, + "PackageFeatures": null + } + } + ], + "VersionString": "", + "VisibleToB2BServiceIds": [], + "XboxXPA": false, + "BundledSkus": [], + "IsRepurchasable": false, + "SkuDisplayRank": 0, + "DisplayPhysicalStoreInventory": null, + "AdditionalIdentifiers": [], + "IsTrial": false, + "IsPreOrder": false, + "IsBundle": false + }, + "SkuASchema": "Sku;3", + "SkuBSchema": "SkuUnifiedApp;3", + "SkuId": "0010", + "SkuType": "full", + "RecurrencePolicy": null, + "SubscriptionPolicyId": null + }, + "Availabilities": [ + { + "Actions": [ + "Details", + "Fulfill", + "Purchase", + "Browse", + "Curate", + "Redeem" + ], + "AvailabilityASchema": "Availability;3", + "AvailabilityBSchema": "AvailabilityUnifiedApp;3", + "AvailabilityId": "9NF83GM638LJ", + "Conditions": { + "ClientConditions": { + "AllowedPlatforms": [ + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Desktop" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Mobile" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Xbox" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.8828080" + } + ] + }, + "EndDate": "9998-12-30T00:00:00.0000000Z", + "ResourceSetIds": ["1"], + "StartDate": "1753-01-01T00:00:00.0000000Z" + }, + "LastModifiedDate": "2020-10-09T18:02:17.8524346Z", + "Markets": ["US"], + "OrderManagementData": { + "GrantedEntitlementKeys": [], + "PIFilter": { + "ExclusionProperties": [], + "InclusionProperties": [] + }, + "Price": { + "CurrencyCode": "USD", + "IsPIRequired": false, + "ListPrice": 0.0, + "MSRP": 0.0, + "TaxType": "TaxesNotIncluded", + "WholesaleCurrencyCode": "" + } + }, + "Properties": { + "OriginalReleaseDate": "2010-10-18T20:04:26.4400000Z" + }, + "SkuId": "0010", + "DisplayRank": 0, + "RemediationRequired": false + }, + { + "Actions": ["License", "Browse", "Details"], + "AvailabilityASchema": "Availability;3", + "AvailabilityBSchema": "AvailabilityUnifiedApp;3", + "AvailabilityId": "9PVM1DW12FV2", + "Conditions": { + "ClientConditions": { + "AllowedPlatforms": [ + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Desktop" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Mobile" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Xbox" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.8828080" + } + ] + }, + "EndDate": "9998-12-30T00:00:00.0000000Z", + "ResourceSetIds": ["1"], + "StartDate": "1753-01-01T00:00:00.0000000Z" + }, + "LastModifiedDate": "2020-10-09T18:02:17.8524346Z", + "LicensingData": { + "SatisfyingEntitlementKeys": [ + { + "EntitlementKeys": ["big:9WZDNCRFJ3TJ:0010"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "wes:App:c3a509cd-61d6-df11-a844-00237de2db9e:Full" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "wes:App:d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa:Full" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9WZDNCRFJ3TJ:0001"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9WZDNCRFJ3TJ:0002"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "xbx:GameV2:337f7d51-bc20-4b9b-ad6c-2a2395a42ecb:Full" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "xbx:GameV2:337f7d51-bc20-4b9b-ad6c-2a2395a42ecb:Presale" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9VWGNH0VBZR3:0001"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9VWGNH0VBZR3:0003"], + "LicensingKeyIds": ["1"] + } + ] + }, + "Markets": ["US"], + "OrderManagementData": { + "GrantedEntitlementKeys": [], + "Price": { + "CurrencyCode": "USD", + "IsPIRequired": false, + "ListPrice": 0.0, + "MSRP": 0.0, + "TaxType": "", + "WholesaleCurrencyCode": "" + } + }, + "Properties": {}, + "SkuId": "0010", + "DisplayRank": 1, + "RemediationRequired": false + }, + { + "Actions": ["License", "Details"], + "AvailabilityASchema": "Availability;3", + "AvailabilityBSchema": "AvailabilityUnifiedApp;3", + "AvailabilityId": "9NFKK7NRXLPL", + "Conditions": { + "ClientConditions": { + "AllowedPlatforms": [ + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Team" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Holographic" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Core" + } + ] + }, + "EndDate": "9998-12-30T00:00:00.0000000Z", + "ResourceSetIds": ["1"], + "StartDate": "1753-01-01T00:00:00.0000000Z" + }, + "LastModifiedDate": "2020-10-09T18:02:17.8524346Z", + "LicensingData": { + "SatisfyingEntitlementKeys": [ + { + "EntitlementKeys": ["big:9WZDNCRFJ3TJ:0010"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "wes:App:c3a509cd-61d6-df11-a844-00237de2db9e:Full" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "wes:App:d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa:Full" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9WZDNCRFJ3TJ:0001"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9WZDNCRFJ3TJ:0002"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "xbx:GameV2:337f7d51-bc20-4b9b-ad6c-2a2395a42ecb:Full" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": [ + "xbx:GameV2:337f7d51-bc20-4b9b-ad6c-2a2395a42ecb:Presale" + ], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9VWGNH0VBZR3:0001"], + "LicensingKeyIds": ["1"] + }, + { + "EntitlementKeys": ["big:9VWGNH0VBZR3:0003"], + "LicensingKeyIds": ["1"] + } + ] + }, + "Markets": ["US"], + "OrderManagementData": { + "GrantedEntitlementKeys": [], + "Price": { + "CurrencyCode": "USD", + "IsPIRequired": false, + "ListPrice": 0.0, + "MSRP": 0.0, + "TaxType": "", + "WholesaleCurrencyCode": "" + } + }, + "Properties": {}, + "SkuId": "0010", + "DisplayRank": 2, + "RemediationRequired": false + } + ] + }, + { + "Sku": { + "LastModifiedDate": "2020-10-09T18:02:12.6570851Z", + "LocalizedProperties": [ + { + "Contributors": [], + "Features": [], + "MinimumNotes": "", + "RecommendedNotes": "", + "ReleaseNotes": "", + "DisplayPlatformProperties": null, + "SkuDescription": "Netflix has something for everyone. Watch TV shows and movies recommended just for you, including award-winning Netflix original series, movies, and documentaries. There’s even a safe watching experience just for kids with family-friendly entertainment.\r\n\r\nNow on Windows, you can enjoy every detail of the world’s favorite shows in 4K Ultra HD on Netflix. Download many of your favorite series and movies with the simple click of the download button. You can watch while you’re on the go or without an Internet connection on your PC, tablet or laptop with Windows 10. \r\n\r\nHow does Netflix work?\r\n- Instantly watch TV shows and movies through thousands of internet-connected devices. You can play, pause, and resume watching, all without commercials.\r\n- Netflix adds new content all the time. Browse titles or search for your favorites.\r\n- The more you watch, the better Netflix gets at recommending TV shows and movies that you’ll love — just for you. \r\n- You can create up to five individual profiles within a single Netflix account. Profiles allow different members of your household to have their own personalized Netflix experience built around the movies and TV shows they enjoy. \r\n\r\nIf you decide Netflix isn't for you - no problem. No contract, no cancellation fees, no commitment. Cancel online anytime.\r\n\r\nBy clicking INSTALL, you consent to the installation of the Netflix application and any updates or upgrades thereto.", + "SkuTitle": "Netflix", + "SkuButtonTitle": "", + "DeliveryDateOverlay": null, + "SkuDisplayRank": [], + "TextResources": null, + "Images": [], + "LegalText": { + "AdditionalLicenseTerms": "By downloading this application you agree to the Netflix Terms of Use and Privacy Policy, located at www.netflix.com.\r\n \r\nInternet access and valid payment method are required. Your Netflix membership is a month-to-month subscription that you can cancel at any time. Go to \"Your Account\" on the Netflix website for cancellation instructions. No refund or credit for partial monthly subscription periods. The Netflix service is only available in the country where you originally signed up. A device that streams from Netflix (manufactured and sold separately) and broadband Internet connection are required to watch instantly. For complete terms and conditions, please visit http://www.netflix.com/TermsOfUse.", + "Copyright": "© 1997-2018 Netflix, Inc.", + "CopyrightUri": "", + "PrivacyPolicy": "", + "PrivacyPolicyUri": "https://signup.netflix.com/PrivacyPolicy", + "Tou": "By downloading this application you agree to the Netflix Terms of Use and Privacy Policy, located at www.netflix.com.\r\n \r\nInternet access and valid payment method are required. Your Netflix membership is a month-to-month subscription that you can cancel at any time. Go to \"Your Account\" on the Netflix website for cancellation instructions. No refund or credit for partial monthly subscription periods. The Netflix service is only available in the country where you originally signed up. A device that streams from Netflix (manufactured and sold separately) and broadband Internet connection are required to watch instantly. For complete terms and conditions, please visit http://www.netflix.com/TermsOfUse.", + "TouUri": "" + }, + "Language": "en-us", + "Markets": [ + "US", + "DZ", + "AR", + "AU", + "AT", + "BH", + "BD", + "BE", + "BR", + "BG", + "CA", + "CL", + "CN", + "CO", + "CR", + "HR", + "CY", + "CZ", + "DK", + "EG", + "EE", + "FI", + "FR", + "DE", + "GR", + "GT", + "HK", + "HU", + "IS", + "IN", + "ID", + "IQ", + "IE", + "IL", + "IT", + "JP", + "JO", + "KZ", + "KE", + "KW", + "LV", + "LB", + "LI", + "LT", + "LU", + "MY", + "MT", + "MR", + "MX", + "MA", + "NL", + "NZ", + "NG", + "NO", + "OM", + "PK", + "PE", + "PH", + "PL", + "PT", + "QA", + "RO", + "RU", + "SA", + "RS", + "SG", + "SK", + "SI", + "ZA", + "KR", + "ES", + "SE", + "CH", + "TW", + "TH", + "TT", + "TN", + "TR", + "UA", + "AE", + "GB", + "VN", + "YE", + "LY", + "LK", + "UY", + "VE", + "AF", + "AX", + "AL", + "AS", + "AO", + "AI", + "AQ", + "AG", + "AM", + "AW", + "BO", + "BQ", + "BA", + "BW", + "BV", + "IO", + "BN", + "BF", + "BI", + "KH", + "CM", + "CV", + "KY", + "CF", + "TD", + "TL", + "DJ", + "DM", + "DO", + "EC", + "SV", + "GQ", + "ER", + "ET", + "FK", + "FO", + "FJ", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "GH", + "GI", + "GL", + "GD", + "GP", + "GU", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "HN", + "AZ", + "BS", + "BB", + "BY", + "BZ", + "BJ", + "BM", + "BT", + "KM", + "CG", + "CD", + "CK", + "CX", + "CC", + "CI", + "CW", + "JM", + "SJ", + "JE", + "KI", + "KG", + "LA", + "LS", + "LR", + "MO", + "MK", + "MG", + "MW", + "IM", + "MH", + "MQ", + "MU", + "YT", + "FM", + "MD", + "MN", + "MS", + "MZ", + "MM", + "NA", + "NR", + "NP", + "MV", + "ML", + "NC", + "NI", + "NE", + "NU", + "NF", + "PW", + "PS", + "PA", + "PG", + "PY", + "RE", + "RW", + "BL", + "MF", + "WS", + "ST", + "SN", + "MP", + "PN", + "SX", + "SB", + "SO", + "SC", + "SL", + "GS", + "SH", + "KN", + "LC", + "PM", + "VC", + "TJ", + "TZ", + "TG", + "TK", + "TO", + "TM", + "TC", + "TV", + "UM", + "UG", + "VI", + "VG", + "WF", + "EH", + "ZM", + "ZW", + "UZ", + "VU", + "SR", + "SZ", + "AD", + "MC", + "SM", + "ME", + "VA", + "NEUTRAL" + ] + } + ], + "MarketProperties": [ + { + "FirstAvailableDate": "2010-10-18T20:04:26.4400000Z", + "SupportedLanguages": [ + "en-us", + "da", + "es", + "fi", + "fr", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "de", + "fr-ca", + "en-au", + "es-es", + "it", + "ja", + "pt-pt", + "pt-br", + "da-dk", + "fi-fi", + "nl-nl", + "sv-se", + "es-mx", + "nb-no", + "de-de", + "fr-fr", + "en", + "ko", + "zh-cn", + "zh-tw", + "ar", + "zh-hant", + "pl", + "tr", + "th", + "ro", + "he", + "el", + "id", + "cs", + "hu", + "vi", + "en-in" + ], + "PackageIds": null, + "PIFilter": null, + "Markets": ["US"] + } + ], + "ProductId": "9WZDNCRFJ3TJ", + "Properties": { + "EarlyAdopterEnrollmentUrl": null, + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + }, + "FulfillmentType": "WindowsUpdate", + "FulfillmentPluginId": null, + "HasThirdPartyIAPs": false, + "LastUpdateDate": "2020-10-09T18:02:12.0000000Z", + "HardwareProperties": { + "MinimumHardware": [], + "RecommendedHardware": [], + "MinimumProcessor": null, + "RecommendedProcessor": null, + "MinimumGraphics": null, + "RecommendedGraphics": null + }, + "HardwareRequirements": [], + "HardwareWarningList": [], + "InstallationTerms": "InstallationTermsStandard", + "Packages": [ + { + "Applications": [ + { + "ApplicationId": "Netflix.App", + "DeclarationOrder": 0, + "Extensions": [ + "search-search", + "protocol-netflix", + "backgroundTasks-backgroundTasks" + ] + } + ], + "Architectures": ["x64", "arm", "x86"], + "Capabilities": [ + "internetClient", + "internetClientServer", + "privateNetworkClientServer" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "5JwYk5NZCfrPpZUg2YhKU0W+m6HUP3Vx+3+mS4rXN5Q=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "en-in", + "ar", + "bg", + "cs", + "da", + "de", + "el", + "es", + "fi", + "fr", + "he", + "hu", + "it", + "ja", + "ko", + "nb", + "nl", + "pt", + "pl", + "ro", + "tr", + "sv", + "zh-hant", + "th", + "vi" + ], + "MaxDownloadSizeInBytes": 7250253, + "MaxInstallSizeInBytes": 7610368, + "PackageFormat": "AppxBundle", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_6.97.752.0_neutral_~_mcm4njqhnhss8", + "PackageId": "c76eb995-37f6-0df7-3573-95c498140c24-X86-X64-Arm", + "ContentId": "6f5a9e8f-f920-1658-72ff-16c1448402f9", + "KeyId": null, + "PackageRank": 30003, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2814750438195200, + "MinVersion": 2814750438195200, + "PlatformName": "Windows.Desktop" + }, + { + "MaxTested": 2814750438195200, + "MinVersion": 2814750438195200, + "PlatformName": "Windows.Holographic" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.bundledPackages\":[\"4DF9E0F8.Netflix_6.97.752.0_x64__mcm4njqhnhss8\",\"4DF9E0F8.Netflix_6.97.752.0_arm__mcm4njqhnhss8\",\"4DF9E0F8.Netflix_6.97.752.0_x86__mcm4njqhnhss8\"],\"content.isMain\":false,\"content.packageId\":\"4DF9E0F8.Netflix_6.97.752.0_neutral_~_mcm4njqhnhss8\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.targetPlatforms\":[{\"platform.maxVersionTested\":2814750438195200,\"platform.minVersion\":2814750438195200,\"platform.target\":3},{\"platform.maxVersionTested\":2814750438195200,\"platform.minVersion\":2814750438195200,\"platform.target\":10}],\"content.type\":7,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "~", + "Version": "1689266521374720", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": [ + "DialProtocol-Netflix", + "protocol-netflix", + "appUriHandler-appUriHandler" + ] + } + ], + "Architectures": ["x64"], + "Capabilities": [ + "internetClient", + "internetClientServer", + "privateNetworkClientServer", + "hevcPlayback" + ], + "DeviceCapabilities": [ + "6a7e5907-885c-4bcb-b40a-073c067bd3d5" + ], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 3940651496505344, + "PackageIdentity": "Microsoft.VCLibs.140.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "06P4J+OstU7MzIf5HE769f3XL8mSikambNQFuqzFgaA=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": ["en-us"], + "MaxDownloadSizeInBytes": 81100341, + "MaxInstallSizeInBytes": 81489920, + "PackageFormat": "EMsixBundle", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_8.38.0.70_neutral_~_mcm4njqhnhss8", + "PackageId": "f9ceeb09-ebef-6107-dcbd-e1d3537b3d03-X64", + "ContentId": "6ab456e6-b2e4-5f12-9459-2267c3bd2e01", + "KeyId": "6ab456e6-b2e4-5f12-9459-2267c3bd2e01", + "PackageRank": 30012, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2814750970478592, + "MinVersion": 2814750931222528, + "PlatformName": "Windows.Xbox" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.bundledPackages\":[\"4DF9E0F8.Netflix_8.38.0.70_x64__mcm4njqhnhss8\"],\"content.isMain\":false,\"content.packageId\":\"4DF9E0F8.Netflix_8.38.0.70_neutral_~_mcm4njqhnhss8\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.targetPlatforms\":[{\"platform.maxVersionTested\":2814750970478592,\"platform.minVersion\":2814750931222528,\"platform.target\":5}],\"content.type\":7,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "~", + "Version": "2251963022442566", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "WP", + "DeclarationOrder": 0, + "Extensions": [] + } + ], + "Architectures": ["neutral"], + "Capabilities": [ + "ID_CAP_IDENTITY_DEVICE", + "ID_CAP_MEDIALIB", + "ID_CAP_NETWORKING", + "ID_FNCTNL_SILVERLIGHT_FRAMEWORK", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "", + "HashAlgorithm": "", + "IsStreamingApp": false, + "Languages": [ + "da-dk", + "de-de", + "en", + "en-gb", + "en-us", + "es-es", + "fi-fi", + "fr-ca", + "fr-fr", + "nb-no", + "nl-nl", + "pt-br", + "sv-se" + ], + "MaxDownloadSizeInBytes": 2124298, + "MaxInstallSizeInBytes": null, + "PackageFormat": "Xap", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "", + "PackageId": "6851614b-8337-4b5f-9025-1b1d21966cf0", + "ContentId": "b7bc0da1-a0ff-8753-d972-13d41ea223e1", + "KeyId": null, + "PackageRank": 10000, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2251804108652544, + "MinVersion": 2251799813685248, + "PlatformName": "Windows.WindowsPhone8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.payloadId\":\"6851614b-8337-4b5f-9025-1b1d21966cf0\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.type\":1,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "562992917970944", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "WP", + "DeclarationOrder": 0, + "Extensions": [] + } + ], + "Architectures": ["neutral"], + "Capabilities": [ + "ID_CAP_IDENTITY_DEVICE", + "ID_CAP_MEDIALIB_PLAYBACK", + "ID_CAP_NETWORKING", + "ID_FNCTNL_SILVERLIGHT_FRAMEWORK", + "ID_RESOLUTION_HD720P", + "ID_RESOLUTION_WVGA", + "ID_RESOLUTION_WXGA", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "", + "HashAlgorithm": "", + "IsStreamingApp": false, + "Languages": [ + "da-dk", + "de-de", + "en-gb", + "en-us", + "es-mx", + "fi-fi", + "fr-ca", + "fr-fr", + "nb-no", + "nl-nl", + "pt-br", + "sv-se" + ], + "MaxDownloadSizeInBytes": 2079578, + "MaxInstallSizeInBytes": null, + "PackageFormat": "Xap", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "", + "PackageId": "c828f646-52ec-4c11-847f-768bcf8a6eae", + "ContentId": "b7bc0da1-a0ff-8753-d972-13d41ea223e1", + "KeyId": null, + "PackageRank": 11000, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2251804108652544, + "MinVersion": 2251799813685248, + "PlatformName": "Windows.WindowsPhone8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.payloadId\":\"c828f646-52ec-4c11-847f-768bcf8a6eae\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.type\":2,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "844454994903063", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "WP", + "DeclarationOrder": 0, + "Extensions": [] + } + ], + "Architectures": ["neutral"], + "Capabilities": [ + "internetClient", + "ID_RESOLUTION_WVGA", + "ID_RESOLUTION_WXGA", + "ID_RESOLUTION_HD720P", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": ["microphone"], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562993039212545, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.Phone.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701694013440, + "PackageIdentity": "Microsoft.VCLibs.120.00.Phone" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "GsUkUC+HXkRvEE6PU5EjQnKAR9VfEoEq+WWNCX8MxoA=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 7948191, + "MaxInstallSizeInBytes": 11083776, + "PackageFormat": "Appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_4.15.0.62_arm__mcm4njqhnhss8", + "PackageId": "4c9dc6c4-e410-466a-9e98-eee520f15b5e-Neutral", + "ContentId": "6a97cc96-9d91-fff0-912f-d26c240e578b", + "KeyId": null, + "PackageRank": 17000, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 2251804108652544, + "MinVersion": 2251804108652544, + "PlatformName": "Windows.WindowsPhone8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745231360,\"content.minOS\":1688862745231360,\"content.packageId\":\"4DF9E0F8.Netflix_4.15.0.62_arm__mcm4njqhnhss8\",\"content.productId\":\"c3a509cd-61d6-df11-a844-00237de2db9e\",\"content.type\":4,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "1125964331352126", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x64"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562962948292608, + "PackageIdentity": "Microsoft.Media.PlayReadyClient" + }, + { + "MaxTested": 0, + "MinVersion": 3096228093100033, + "PackageIdentity": "Microsoft.VCLibs.110.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "42X7uS/LytxrsxrF7PGreVD3fb8n+u5p6/W9KXeGfgc=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5747705, + "MaxInstallSizeInBytes": 10559488, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_1.33.0.109_x64__mcm4njqhnhss8", + "PackageId": "e20498c8-c01f-440c-a167-5213d4ed9914-X64", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20002, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688858450264064, + "MinVersion": 1688858450264064, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688858450264064,\"content.minOS\":1688858450264064,\"content.packageId\":\"4DF9E0F8.Netflix_1.33.0.109_x64__mcm4njqhnhss8\",\"content.type\":5,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "281616710631533", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x86"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562962948292608, + "PackageIdentity": "Microsoft.Media.PlayReadyClient" + }, + { + "MaxTested": 0, + "MinVersion": 3096228093100033, + "PackageIdentity": "Microsoft.VCLibs.110.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "z7PFAh/WD46LPrHKm0DcT6UloZp0iaTZjf/2nBvdcnc=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5733181, + "MaxInstallSizeInBytes": 10518528, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_1.33.0.109_x86__mcm4njqhnhss8", + "PackageId": "b4cf45f0-2677-4520-b7ef-18728082c0ec-X86", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20001, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688858450264064, + "MinVersion": 1688858450264064, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688858450264064,\"content.minOS\":1688858450264064,\"content.packageId\":\"4DF9E0F8.Netflix_1.33.0.109_x86__mcm4njqhnhss8\",\"content.type\":5,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "281616710631533", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["arm"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562962948292608, + "PackageIdentity": "Microsoft.Media.PlayReadyClient" + }, + { + "MaxTested": 0, + "MinVersion": 3096228093100033, + "PackageIdentity": "Microsoft.VCLibs.110.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "OMZ/IIRve1/aBnMmSb/u639E8E0jXUVlXvoBHqtixYc=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5744175, + "MaxInstallSizeInBytes": 10526720, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_1.33.0.109_arm__mcm4njqhnhss8", + "PackageId": "896936b6-abe8-485d-9542-706b7b1f6fc4-Arm", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20003, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688858450264064, + "MinVersion": 1688858450264064, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688858450264064,\"content.minOS\":1688858450264064,\"content.packageId\":\"4DF9E0F8.Netflix_1.33.0.109_arm__mcm4njqhnhss8\",\"content.type\":5,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "281616710631533", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x86"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562997339226112, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701097111553, + "PackageIdentity": "Microsoft.VCLibs.120.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "IvNSqzzyRmD5ZgCFVU/2x7QddCSw25ak2ix9oMmyh4E=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5925423, + "MaxInstallSizeInBytes": 10891264, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_2.22.0.39_x86__mcm4njqhnhss8", + "PackageId": "3789cd7b-3858-441a-aa0c-523366516efd-X86", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20011, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688862745165824, + "MinVersion": 1688862745165824, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745165824,\"content.minOS\":1688862745165824,\"content.packageId\":\"4DF9E0F8.Netflix_2.22.0.39_x86__mcm4njqhnhss8\",\"content.type\":6,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "563044442701863", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["x64"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562997339226112, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701097111553, + "PackageIdentity": "Microsoft.VCLibs.120.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "fA7AhxxOocoGdURdUaAWp9rjM2Kr4JPJE3YQAxznYtw=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5939929, + "MaxInstallSizeInBytes": 10952704, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_2.22.0.39_x64__mcm4njqhnhss8", + "PackageId": "671978e9-fefc-4766-8bc8-0eb62503c5d4-X64", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20012, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688862745165824, + "MinVersion": 1688862745165824, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745165824,\"content.minOS\":1688862745165824,\"content.packageId\":\"4DF9E0F8.Netflix_2.22.0.39_x64__mcm4njqhnhss8\",\"content.type\":6,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "563044442701863", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + }, + { + "Applications": [ + { + "ApplicationId": "App", + "DeclarationOrder": 0, + "Extensions": ["search-search", "protocol-netflix"] + } + ], + "Architectures": ["arm"], + "Capabilities": [ + "internetClient", + "Microsoft.storeFilter.core.notSupported_8wekyb3d8bbwe" + ], + "DeviceCapabilities": [], + "ExperienceIds": [], + "FrameworkDependencies": [ + { + "MaxTested": 0, + "MinVersion": 562997339226112, + "PackageIdentity": "Microsoft.Media.PlayReadyClient.2" + }, + { + "MaxTested": 0, + "MinVersion": 3377701097111553, + "PackageIdentity": "Microsoft.VCLibs.120.00" + } + ], + "HardwareDependencies": [], + "HardwareRequirements": [], + "Hash": "F4dbkqdksFrGfBVewsJJkQd7NHxc3GfFCEFeOa9m56A=", + "HashAlgorithm": "SHA256", + "IsStreamingApp": false, + "Languages": [ + "en-us", + "da", + "de", + "es", + "fi", + "fr", + "fr-ca", + "nb", + "nl", + "pt", + "sv", + "en-gb", + "en-ca", + "en-au", + "es-es", + "it", + "ja", + "ko", + "pl", + "pt-pt", + "th", + "tr", + "zh-cn", + "zh-tw" + ], + "MaxDownloadSizeInBytes": 5935941, + "MaxInstallSizeInBytes": 10903552, + "PackageFormat": "appx", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "MainPackageFamilyNameForDlc": null, + "PackageFullName": "4DF9E0F8.Netflix_2.22.0.39_arm__mcm4njqhnhss8", + "PackageId": "5f2e3a30-363d-4f64-bc6a-fea9bd3a69a7-Arm", + "ContentId": "f1ebc660-8f05-a12f-4aa3-4d888433c435", + "KeyId": null, + "PackageRank": 20013, + "PackageUri": "https://productingestionbin1.blob.core.windows.net", + "PlatformDependencies": [ + { + "MaxTested": 1688862745165824, + "MinVersion": 1688862745165824, + "PlatformName": "Windows.Windows8x" + } + ], + "PlatformDependencyXmlBlob": "{\"blob.version\":1688867040526336,\"content.isMain\":false,\"content.maxOSTested\":1688862745165824,\"content.minOS\":1688862745165824,\"content.packageId\":\"4DF9E0F8.Netflix_2.22.0.39_arm__mcm4njqhnhss8\",\"content.type\":6,\"policy\":{\"category.first\":\"app\",\"category.second\":\"Entertainment\",\"optOut.backupRestore\":false,\"optOut.removeableMedia\":false},\"policy2\":{\"ageRating\":3,\"optOut.DVR\":false,\"thirdPartyAppRatings\":[{\"level\":9,\"systemId\":3},{\"level\":81,\"systemId\":5},{\"level\":52,\"systemId\":12},{\"level\":30,\"systemId\":9},{\"level\":78,\"systemId\":16},{\"level\":72,\"systemId\":15},{\"level\":67,\"systemId\":13}]}}", + "ResourceId": "", + "Version": "563044442701863", + "PackageDownloadUris": null, + "DriverDependencies": [], + "FulfillmentData": { + "ProductId": "9WZDNCRFJ3TJ", + "WuBundleId": "cb9ef3a5-ffd4-438f-9291-6874513df1dc", + "WuCategoryId": "d8d75bb2-c5cd-44f2-8c26-c1d1ae5b13fa", + "PackageFamilyName": "4DF9E0F8.Netflix_mcm4njqhnhss8", + "SkuId": "0011", + "Content": null, + "PackageFeatures": null + } + } + ], + "VersionString": "", + "VisibleToB2BServiceIds": [], + "XboxXPA": false, + "BundledSkus": [], + "IsRepurchasable": false, + "SkuDisplayRank": 2, + "DisplayPhysicalStoreInventory": null, + "AdditionalIdentifiers": [], + "IsTrial": true, + "IsPreOrder": false, + "IsBundle": false + }, + "SkuASchema": "Sku;3", + "SkuBSchema": "SkuUnifiedApp;3", + "SkuId": "0011", + "SkuType": "trial", + "RecurrencePolicy": null, + "SubscriptionPolicyId": null + }, + "Availabilities": [ + { + "Actions": ["Details", "Fulfill"], + "AvailabilityASchema": "Availability;3", + "AvailabilityBSchema": "AvailabilityUnifiedApp;3", + "AvailabilityId": "9V8PWXLLKR4Z", + "Conditions": { + "ClientConditions": { + "AllowedPlatforms": [ + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Desktop" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Mobile" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Xbox" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.8828080" + } + ] + }, + "EndDate": "9998-12-30T00:00:00.0000000Z", + "ResourceSetIds": ["1"], + "StartDate": "1753-01-01T00:00:00.0000000Z" + }, + "LastModifiedDate": "2020-10-09T18:02:17.8524346Z", + "Markets": ["US"], + "OrderManagementData": { + "GrantedEntitlementKeys": [], + "Price": { + "CurrencyCode": "USD", + "IsPIRequired": false, + "ListPrice": 0.0, + "MSRP": 0.0, + "TaxType": "", + "WholesaleCurrencyCode": "" + } + }, + "Properties": {}, + "SkuId": "0011", + "DisplayRank": 0, + "RemediationRequired": false + }, + { + "Actions": ["License", "Details"], + "AvailabilityASchema": "Availability;3", + "AvailabilityBSchema": "AvailabilityUnifiedApp;3", + "AvailabilityId": "9W02NT053STL", + "Conditions": { + "ClientConditions": { + "AllowedPlatforms": [ + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Desktop" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Mobile" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Xbox" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.8828080" + } + ] + }, + "EndDate": "9998-12-30T00:00:00.0000000Z", + "ResourceSetIds": ["1"], + "StartDate": "1753-01-01T00:00:00.0000000Z" + }, + "LastModifiedDate": "2020-10-09T18:02:17.8524346Z", + "Markets": ["US"], + "OrderManagementData": { + "GrantedEntitlementKeys": [], + "Price": { + "CurrencyCode": "USD", + "IsPIRequired": false, + "ListPrice": 0.0, + "MSRP": 0.0, + "TaxType": "", + "WholesaleCurrencyCode": "" + } + }, + "Properties": {}, + "SkuId": "0011", + "DisplayRank": 1, + "RemediationRequired": false + }, + { + "Actions": ["License", "Details"], + "AvailabilityASchema": "Availability;3", + "AvailabilityBSchema": "AvailabilityUnifiedApp;3", + "AvailabilityId": "B290Z3766JN5", + "Conditions": { + "ClientConditions": { + "AllowedPlatforms": [ + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Team" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Holographic" + }, + { + "MaxVersion": 2147483647, + "MinVersion": 0, + "PlatformName": "Windows.Core" + } + ] + }, + "EndDate": "9998-12-30T00:00:00.0000000Z", + "ResourceSetIds": ["1"], + "StartDate": "1753-01-01T00:00:00.0000000Z" + }, + "LastModifiedDate": "2020-10-09T18:02:17.8524346Z", + "Markets": ["US"], + "OrderManagementData": { + "GrantedEntitlementKeys": [], + "Price": { + "CurrencyCode": "USD", + "IsPIRequired": false, + "ListPrice": 0.0, + "MSRP": 0.0, + "TaxType": "", + "WholesaleCurrencyCode": "" + } + }, + "Properties": {}, + "SkuId": "0011", + "DisplayRank": 2, + "RemediationRequired": false + } + ] + } + ] + } + ], + "TotalResultCount": 1 +} diff --git a/tests/components/xbox/fixtures/people_batch.json b/tests/components/xbox/fixtures/people_batch.json new file mode 100644 index 00000000000000..c4495e9d630ea7 --- /dev/null +++ b/tests/components/xbox/fixtures/people_batch.json @@ -0,0 +1,255 @@ +{ + "people": [ + { + "xuid": "271958441785640", + "isFavorite": false, + "isFollowingCaller": false, + "isFollowedByCaller": false, + "isIdentityShared": false, + "addedDateTimeUtc": null, + "displayName": null, + "realName": "Test Test", + "displayPicRaw": "https://images-eds-ssl.xboxlive.com/image?url=wHwbXKif8cus8csoZ03RW_ES.ojiJijNBGRVUbTnZKsoCCCkjlsEJrrMqDkYqs3M0aLOK2kxE9mbLm9M2.R0stAQYoDsGCDJxqDzG9WF3oa4rOCjEK7DbZXdBmBWnMrfErA3M_Q4y_mUTEQLqSAEeYFGlGeCXYsccnQMvEecxRg-&format=png", + "showUserAsAvatar": "0", + "gamertag": "GSR Ae", + "gamerScore": "27750", + "modernGamertag": "GSR Ae", + "modernGamertagSuffix": "", + "uniqueModernGamertag": "GSR Ae", + "xboxOneRep": "GoodPlayer", + "presenceState": "Offline", + "presenceText": "Last seen 49m ago: Xbox App", + "presenceDevices": null, + "isBroadcasting": false, + "isCloaked": false, + "isQuarantined": false, + "isXbox360Gamerpic": false, + "lastSeenDateTimeUtc": "2020-10-09T00:12:27.8684906Z", + "suggestion": null, + "recommendation": null, + "search": null, + "titleHistory": null, + "multiplayerSummary": { + "InMultiplayerSession": 0, + "InParty": 0 + }, + "recentPlayer": null, + "follower": null, + "preferredColor": { + "primaryColor": "193e91", + "secondaryColor": "101836", + "tertiaryColor": "102c69" + }, + "presenceDetails": [ + { + "IsBroadcasting": false, + "Device": "iOS", + "PresenceText": "Last seen 49m ago: Xbox App", + "State": "LastSeen", + "TitleId": "328178078", + "TitleType": null, + "IsPrimary": true, + "IsGame": false, + "RichPresenceText": null + } + ], + "titlePresence": null, + "titleSummaries": null, + "presenceTitleIds": null, + "detail": { + "accountTier": "Gold", + "bio": null, + "isVerified": false, + "location": null, + "tenure": null, + "watermarks": [], + "blocked": false, + "mute": false, + "followerCount": 105, + "followingCount": 121, + "hasGamePass": false + }, + "communityManagerTitles": null, + "socialManager": null, + "broadcast": null, + "tournamentSummary": null, + "avatar": null, + "linkedAccounts": [], + "colorTheme": "gamerpicblur", + "preferredFlag": "", + "preferredPlatforms": [] + }, + { + "xuid": "277923030577271", + "isFavorite": false, + "isFollowingCaller": true, + "isFollowedByCaller": true, + "isIdentityShared": false, + "addedDateTimeUtc": null, + "displayName": null, + "realName": "Test Test", + "displayPicRaw": "https://images-eds-ssl.xboxlive.com/image?url=z951ykn43p4FqWbbFvR2Ec.8vbDhj8G2Xe7JngaTToBrrCmIEEXHC9UNrdJ6P7KIwuPiuIs6TLDV4WsQAGzSwgbaLlf_CiIdb0jJCiBao9CB40sjycuA5l0Jf.hfuP8l&format=png", + "showUserAsAvatar": "2", + "gamertag": "Iqnavs", + "gamerScore": "48336", + "modernGamertag": "Iqnavs", + "modernGamertagSuffix": "", + "uniqueModernGamertag": "Iqnavs", + "xboxOneRep": "GoodPlayer", + "presenceState": "Online", + "presenceText": "Online", + "presenceDevices": null, + "isBroadcasting": false, + "isCloaked": null, + "isQuarantined": false, + "isXbox360Gamerpic": false, + "lastSeenDateTimeUtc": null, + "suggestion": null, + "recommendation": null, + "search": null, + "titleHistory": null, + "multiplayerSummary": { + "InMultiplayerSession": 0, + "InParty": 0 + }, + "recentPlayer": null, + "follower": null, + "preferredColor": { + "primaryColor": "193e91", + "secondaryColor": "101836", + "tertiaryColor": "102c69" + }, + "presenceDetails": [ + { + "IsBroadcasting": false, + "Device": "WindowsOneCore", + "PresenceText": "Online", + "State": "Active", + "TitleId": "1022622766", + "TitleType": null, + "IsPrimary": true, + "IsGame": false, + "RichPresenceText": null + } + ], + "titlePresence": null, + "titleSummaries": null, + "presenceTitleIds": null, + "detail": { + "accountTier": "Gold", + "bio": null, + "isVerified": false, + "location": null, + "tenure": null, + "watermarks": [], + "blocked": false, + "mute": false, + "followerCount": 78, + "followingCount": 83, + "hasGamePass": false + }, + "communityManagerTitles": null, + "socialManager": null, + "broadcast": null, + "tournamentSummary": null, + "avatar": null, + "linkedAccounts": [], + "colorTheme": "gamerpicblur", + "preferredFlag": "", + "preferredPlatforms": [] + }, + { + "xuid": "266932102913935", + "isFavorite": false, + "isFollowingCaller": false, + "isFollowedByCaller": false, + "isIdentityShared": false, + "addedDateTimeUtc": null, + "displayName": null, + "realName": "Test Test", + "displayPicRaw": "https://images-eds-ssl.xboxlive.com/image?url=z951ykn43p4FqWbbFvR2Ec.8vbDhj8G2Xe7JngaTToBrrCmIEEXHC9UNrdJ6P7KIl_5PaIHeJ592LG1L.uCOWneEDBhHctvuC06CzW38LKNYiVGTXqxcsQqYGIrr8hFz&format=png", + "showUserAsAvatar": "2", + "gamertag": "e", + "gamerScore": "98096", + "modernGamertag": "e", + "modernGamertagSuffix": "", + "uniqueModernGamertag": "e", + "xboxOneRep": "Superstar", + "presenceState": "Online", + "presenceText": "Amazon Instant Video", + "presenceDevices": null, + "isBroadcasting": false, + "isCloaked": null, + "isQuarantined": false, + "isXbox360Gamerpic": false, + "lastSeenDateTimeUtc": null, + "suggestion": null, + "recommendation": null, + "search": null, + "titleHistory": null, + "multiplayerSummary": { + "InMultiplayerSession": 0, + "InParty": 0 + }, + "recentPlayer": null, + "follower": null, + "preferredColor": { + "primaryColor": "107c10", + "secondaryColor": "102b14", + "tertiaryColor": "155715" + }, + "presenceDetails": [ + { + "IsBroadcasting": false, + "Device": "XboxOne", + "PresenceText": "Home", + "State": "Active", + "TitleId": "750323071", + "TitleType": null, + "IsPrimary": false, + "IsGame": false, + "RichPresenceText": null + }, + { + "IsBroadcasting": false, + "Device": "XboxOne", + "PresenceText": "Amazon Instant Video", + "State": "Active", + "TitleId": "874889576", + "TitleType": null, + "IsPrimary": true, + "IsGame": false, + "RichPresenceText": null + } + ], + "titlePresence": null, + "titleSummaries": null, + "presenceTitleIds": null, + "detail": { + "accountTier": "Gold", + "bio": null, + "isVerified": false, + "location": null, + "tenure": null, + "watermarks": [], + "blocked": false, + "mute": false, + "followerCount": 27659, + "followingCount": 0, + "hasGamePass": false + }, + "communityManagerTitles": null, + "socialManager": null, + "broadcast": null, + "tournamentSummary": null, + "avatar": null, + "linkedAccounts": [], + "colorTheme": "gamerpicblur", + "preferredFlag": "", + "preferredPlatforms": [] + } + ], + "recommendationSummary": null, + "friendFinderState": null, + "accountLinkDetails": null +} diff --git a/tests/components/xbox/fixtures/people_friends_own.json b/tests/components/xbox/fixtures/people_friends_own.json new file mode 100644 index 00000000000000..135f4b5bc3ee6b --- /dev/null +++ b/tests/components/xbox/fixtures/people_friends_own.json @@ -0,0 +1,197 @@ +{ + "people": [ + { + "xuid": "2533274838782903", + "isFavorite": true, + "isFollowingCaller": true, + "isFollowedByCaller": true, + "isIdentityShared": true, + "addedDateTimeUtc": "2016-06-29T20:59:22.5050886Z", + "displayName": "Ikken Hissatsuu", + "realName": "", + "displayPicRaw": "https://images-eds-ssl.xboxlive.com/image?url=7OTVnZUMVj4OV2zUUGecWvn3U00nQQLfK7_kwpANogj9vJpb.t4ZQMMLIWOuBZBBZs5MjD7okwh5Zwnit1SAtO3OAsFXxJc1ALIbaVoRo7gsiun9FdcaTpzkM60nqzT8ip1659eQpB1SLyupscP.ec_wAGvXwkhCcTKCNHQMrxg-&format=png", + "showUserAsAvatar": "1", + "gamertag": "Ikken Hissatsuu", + "gamerScore": "27210", + "modernGamertag": "Ikken Hissatsuu", + "modernGamertagSuffix": "", + "uniqueModernGamertag": "Ikken Hissatsuu", + "xboxOneRep": "GoodPlayer", + "presenceState": "Offline", + "presenceText": "Offline", + "presenceDevices": null, + "isBroadcasting": false, + "isCloaked": null, + "isQuarantined": false, + "isXbox360Gamerpic": false, + "lastSeenDateTimeUtc": null, + "suggestion": { + "Type": null, + "Priority": 0, + "Reasons": null, + "TitleId": null + }, + "recommendation": null, + "search": null, + "titleHistory": null, + "multiplayerSummary": { + "InMultiplayerSession": 0, + "InParty": 0 + }, + "recentPlayer": { + "titles": [], + "text": null + }, + "follower": { + "text": null, + "followedDateTime": "0001-01-01T00:00:00" + }, + "preferredColor": { + "primaryColor": "744DA9", + "secondaryColor": "24153B", + "tertiaryColor": "4c208a" + }, + "presenceDetails": [], + "titlePresence": { + "IsCurrentlyPlaying": false, + "PresenceText": null, + "TitleName": null, + "TitleId": null + }, + "titleSummaries": null, + "presenceTitleIds": [], + "detail": { + "accountTier": "Gold", + "bio": "Bio", + "isVerified": false, + "location": "Rock Hill", + "tenure": "8", + "watermarks": [], + "blocked": false, + "mute": false, + "followerCount": 81, + "followingCount": 73, + "hasGamePass": false + }, + "communityManagerTitles": null, + "socialManager": { + "titleIds": [], + "pages": [] + }, + "broadcast": [], + "tournamentSummary": null, + "avatar": { + "updateTimeOffset": "0001-01-01T00:00:00+00:00", + "spritesheetMetadata": null + }, + "linkedAccounts": [], + "colorTheme": "gamerpicblur", + "preferredFlag": "", + "preferredPlatforms": [] + }, + { + "xuid": "2533274913657542", + "isFavorite": true, + "isFollowingCaller": true, + "isFollowedByCaller": true, + "isIdentityShared": false, + "addedDateTimeUtc": "2012-12-14T03:41:43.177Z", + "displayName": "erics273", + "realName": "", + "displayPicRaw": "http://images-eds.xboxlive.com/image?url=rwljod2fPqLqGP3DBV9F_yK9iuxAt3_MH6tcOnQXTc8LY1LO8JeulzCEFHaqqItKdg9oJ84qjO.VNwvUWuq_iR5iTyx1gQsqHSvWLbqIrRI-&background=0xababab&mode=Padding&format=png", + "showUserAsAvatar": "2", + "gamertag": "erics273", + "gamerScore": "3802", + "modernGamertag": "erics273", + "modernGamertagSuffix": "", + "uniqueModernGamertag": "erics273", + "xboxOneRep": "GoodPlayer", + "presenceState": "Offline", + "presenceText": "Last seen 17h ago: Home", + "presenceDevices": null, + "isBroadcasting": false, + "isCloaked": null, + "isQuarantined": false, + "isXbox360Gamerpic": true, + "lastSeenDateTimeUtc": "2020-10-08T04:19:58.3208237Z", + "suggestion": { + "Type": null, + "Priority": 0, + "Reasons": null, + "TitleId": null + }, + "recommendation": null, + "search": null, + "titleHistory": null, + "multiplayerSummary": { + "InMultiplayerSession": 0, + "InParty": 0 + }, + "recentPlayer": { + "titles": [], + "text": null + }, + "follower": { + "text": null, + "followedDateTime": "0001-01-01T00:00:00" + }, + "preferredColor": { + "primaryColor": "107c10", + "secondaryColor": "102b14", + "tertiaryColor": "155715" + }, + "presenceDetails": [ + { + "IsBroadcasting": false, + "Device": "XboxOne", + "PresenceText": "Last seen 17h ago: Home", + "State": "LastSeen", + "TitleId": "750323071", + "TitleType": null, + "IsPrimary": true, + "IsGame": false, + "RichPresenceText": null + } + ], + "titlePresence": { + "IsCurrentlyPlaying": false, + "PresenceText": null, + "TitleName": null, + "TitleId": null + }, + "titleSummaries": null, + "presenceTitleIds": ["750323071"], + "detail": { + "accountTier": "Silver", + "bio": "", + "isVerified": false, + "location": "home", + "tenure": "0", + "watermarks": [], + "blocked": false, + "mute": false, + "followerCount": 18, + "followingCount": 12, + "hasGamePass": false + }, + "communityManagerTitles": null, + "socialManager": { + "titleIds": [], + "pages": [] + }, + "broadcast": [], + "tournamentSummary": null, + "avatar": { + "updateTimeOffset": "0001-01-01T00:00:00+00:00", + "spritesheetMetadata": null + }, + "linkedAccounts": [], + "colorTheme": "gamerpicblur", + "preferredFlag": "", + "preferredPlatforms": [] + } + ], + "recommendationSummary": null, + "friendFinderState": null, + "accountLinkDetails": null +} diff --git a/tests/components/xbox/fixtures/smartglass_console_list.json b/tests/components/xbox/fixtures/smartglass_console_list.json new file mode 100644 index 00000000000000..7f1fe1d5a76558 --- /dev/null +++ b/tests/components/xbox/fixtures/smartglass_console_list.json @@ -0,0 +1,54 @@ +{ + "status": { + "errorCode": "OK", + "errorMessage": null + }, + "result": [ + { + "id": "ABCDEFG", + "name": "XONEX", + "locale": "en-US", + "consoleType": "XboxOneX", + "powerState": "ConnectedStandby", + "digitalAssistantRemoteControlEnabled": true, + "remoteManagementEnabled": true, + "consoleStreamingEnabled": false, + "storageDevices": [ + { + "storageDeviceId": "1", + "storageDeviceName": "Internal", + "isDefault": true, + "freeSpaceBytes": 236267835392.0, + "totalSpaceBytes": 838592360448.0 + } + ] + }, + { + "id": "HIJKLMN", + "name": "XONE", + "locale": "en-US", + "consoleType": "XboxOne", + "powerState": "ConnectedStandby", + "digitalAssistantRemoteControlEnabled": true, + "remoteManagementEnabled": true, + "consoleStreamingEnabled": false, + "storageDevices": [ + { + "storageDeviceId": "2", + "storageDeviceName": "Internal", + "isDefault": false, + "freeSpaceBytes": 147163541504.0, + "totalSpaceBytes": 391915761664.0 + }, + { + "storageDeviceId": "3", + "storageDeviceName": "External", + "isDefault": true, + "freeSpaceBytes": 3200714067968.0, + "totalSpaceBytes": 4000787029504.0 + } + ] + } + ], + "agentUserId": null +} diff --git a/tests/components/xbox/fixtures/smartglass_console_status.json b/tests/components/xbox/fixtures/smartglass_console_status.json new file mode 100644 index 00000000000000..be732c8b54f40c --- /dev/null +++ b/tests/components/xbox/fixtures/smartglass_console_status.json @@ -0,0 +1,14 @@ +{ + "status": { + "errorCode": "OK", + "errorMessage": null + }, + "powerState": "ConnectedStandby", + "playbackState": "Stopped", + "loginState": null, + "focusAppAumid": "4DF9E0F8.Netflix_mcm4njqhnhss8!App", + "isTvConfigured": true, + "digitalAssistantRemoteControlEnabled": true, + "consoleStreamingEnabled": false, + "remoteManagementEnabled": true +} diff --git a/tests/components/xbox/snapshots/test_sensor.ambr b/tests/components/xbox/snapshots/test_sensor.ambr new file mode 100644 index 00000000000000..e5e8cb662c5925 --- /dev/null +++ b/tests/components/xbox/snapshots/test_sensor.ambr @@ -0,0 +1,589 @@ +# serializer version: 1 +# name: test_sensors[sensor.erics273_account_tier-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.erics273_account_tier', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'erics273 Account Tier', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274913657542_account_tier', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.erics273_account_tier-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=rwljod2fPqLqGP3DBV9F_yK9iuxAt3_MH6tcOnQXTc8LY1LO8JeulzCEFHaqqItKdg9oJ84qjO.VNwvUWuq_iR5iTyx1gQsqHSvWLbqIrRI-&background=0xababab&format=png', + 'friendly_name': 'erics273 Account Tier', + }), + 'context': , + 'entity_id': 'sensor.erics273_account_tier', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'Silver', + }) +# --- +# name: test_sensors[sensor.erics273_gamer_score-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.erics273_gamer_score', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'erics273 Gamer Score', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274913657542_gamer_score', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.erics273_gamer_score-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=rwljod2fPqLqGP3DBV9F_yK9iuxAt3_MH6tcOnQXTc8LY1LO8JeulzCEFHaqqItKdg9oJ84qjO.VNwvUWuq_iR5iTyx1gQsqHSvWLbqIrRI-&background=0xababab&format=png', + 'friendly_name': 'erics273 Gamer Score', + }), + 'context': , + 'entity_id': 'sensor.erics273_gamer_score', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '3802', + }) +# --- +# name: test_sensors[sensor.erics273_gold_tenure-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.erics273_gold_tenure', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'erics273 Gold Tenure', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274913657542_gold_tenure', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.erics273_gold_tenure-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=rwljod2fPqLqGP3DBV9F_yK9iuxAt3_MH6tcOnQXTc8LY1LO8JeulzCEFHaqqItKdg9oJ84qjO.VNwvUWuq_iR5iTyx1gQsqHSvWLbqIrRI-&background=0xababab&format=png', + 'friendly_name': 'erics273 Gold Tenure', + }), + 'context': , + 'entity_id': 'sensor.erics273_gold_tenure', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0', + }) +# --- +# name: test_sensors[sensor.erics273_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.erics273_status', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'erics273 Status', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274913657542_status', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.erics273_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=rwljod2fPqLqGP3DBV9F_yK9iuxAt3_MH6tcOnQXTc8LY1LO8JeulzCEFHaqqItKdg9oJ84qjO.VNwvUWuq_iR5iTyx1gQsqHSvWLbqIrRI-&background=0xababab&format=png', + 'friendly_name': 'erics273 Status', + }), + 'context': , + 'entity_id': 'sensor.erics273_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'Last seen 17h ago: Home', + }) +# --- +# name: test_sensors[sensor.gsr_ae_account_tier-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.gsr_ae_account_tier', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'GSR Ae Account Tier', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '271958441785640_account_tier', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.gsr_ae_account_tier-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=wHwbXKif8cus8csoZ03RW_ES.ojiJijNBGRVUbTnZKsoCCCkjlsEJrrMqDkYqs3M0aLOK2kxE9mbLm9M2.R0stAQYoDsGCDJxqDzG9WF3oa4rOCjEK7DbZXdBmBWnMrfErA3M_Q4y_mUTEQLqSAEeYFGlGeCXYsccnQMvEecxRg-&format=png', + 'friendly_name': 'GSR Ae Account Tier', + }), + 'context': , + 'entity_id': 'sensor.gsr_ae_account_tier', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'Gold', + }) +# --- +# name: test_sensors[sensor.gsr_ae_gamer_score-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.gsr_ae_gamer_score', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'GSR Ae Gamer Score', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '271958441785640_gamer_score', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.gsr_ae_gamer_score-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=wHwbXKif8cus8csoZ03RW_ES.ojiJijNBGRVUbTnZKsoCCCkjlsEJrrMqDkYqs3M0aLOK2kxE9mbLm9M2.R0stAQYoDsGCDJxqDzG9WF3oa4rOCjEK7DbZXdBmBWnMrfErA3M_Q4y_mUTEQLqSAEeYFGlGeCXYsccnQMvEecxRg-&format=png', + 'friendly_name': 'GSR Ae Gamer Score', + }), + 'context': , + 'entity_id': 'sensor.gsr_ae_gamer_score', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '27750', + }) +# --- +# name: test_sensors[sensor.gsr_ae_gold_tenure-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.gsr_ae_gold_tenure', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'GSR Ae Gold Tenure', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '271958441785640_gold_tenure', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.gsr_ae_gold_tenure-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=wHwbXKif8cus8csoZ03RW_ES.ojiJijNBGRVUbTnZKsoCCCkjlsEJrrMqDkYqs3M0aLOK2kxE9mbLm9M2.R0stAQYoDsGCDJxqDzG9WF3oa4rOCjEK7DbZXdBmBWnMrfErA3M_Q4y_mUTEQLqSAEeYFGlGeCXYsccnQMvEecxRg-&format=png', + 'friendly_name': 'GSR Ae Gold Tenure', + }), + 'context': , + 'entity_id': 'sensor.gsr_ae_gold_tenure', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[sensor.gsr_ae_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.gsr_ae_status', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'GSR Ae Status', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '271958441785640_status', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.gsr_ae_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=wHwbXKif8cus8csoZ03RW_ES.ojiJijNBGRVUbTnZKsoCCCkjlsEJrrMqDkYqs3M0aLOK2kxE9mbLm9M2.R0stAQYoDsGCDJxqDzG9WF3oa4rOCjEK7DbZXdBmBWnMrfErA3M_Q4y_mUTEQLqSAEeYFGlGeCXYsccnQMvEecxRg-&format=png', + 'friendly_name': 'GSR Ae Status', + }), + 'context': , + 'entity_id': 'sensor.gsr_ae_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'Last seen 49m ago: Xbox App', + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_account_tier-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.ikken_hissatsuu_account_tier', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Ikken Hissatsuu Account Tier', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274838782903_account_tier', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_account_tier-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=7OTVnZUMVj4OV2zUUGecWvn3U00nQQLfK7_kwpANogj9vJpb.t4ZQMMLIWOuBZBBZs5MjD7okwh5Zwnit1SAtO3OAsFXxJc1ALIbaVoRo7gsiun9FdcaTpzkM60nqzT8ip1659eQpB1SLyupscP.ec_wAGvXwkhCcTKCNHQMrxg-&format=png', + 'friendly_name': 'Ikken Hissatsuu Account Tier', + }), + 'context': , + 'entity_id': 'sensor.ikken_hissatsuu_account_tier', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'Gold', + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_gamer_score-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.ikken_hissatsuu_gamer_score', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Ikken Hissatsuu Gamer Score', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274838782903_gamer_score', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_gamer_score-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=7OTVnZUMVj4OV2zUUGecWvn3U00nQQLfK7_kwpANogj9vJpb.t4ZQMMLIWOuBZBBZs5MjD7okwh5Zwnit1SAtO3OAsFXxJc1ALIbaVoRo7gsiun9FdcaTpzkM60nqzT8ip1659eQpB1SLyupscP.ec_wAGvXwkhCcTKCNHQMrxg-&format=png', + 'friendly_name': 'Ikken Hissatsuu Gamer Score', + }), + 'context': , + 'entity_id': 'sensor.ikken_hissatsuu_gamer_score', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '27210', + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_gold_tenure-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.ikken_hissatsuu_gold_tenure', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Ikken Hissatsuu Gold Tenure', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274838782903_gold_tenure', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_gold_tenure-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=7OTVnZUMVj4OV2zUUGecWvn3U00nQQLfK7_kwpANogj9vJpb.t4ZQMMLIWOuBZBBZs5MjD7okwh5Zwnit1SAtO3OAsFXxJc1ALIbaVoRo7gsiun9FdcaTpzkM60nqzT8ip1659eQpB1SLyupscP.ec_wAGvXwkhCcTKCNHQMrxg-&format=png', + 'friendly_name': 'Ikken Hissatsuu Gold Tenure', + }), + 'context': , + 'entity_id': 'sensor.ikken_hissatsuu_gold_tenure', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '8', + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.ikken_hissatsuu_status', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Ikken Hissatsuu Status', + 'platform': 'xbox', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '2533274838782903_status', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.ikken_hissatsuu_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'entity_picture': 'https://images-eds-ssl.xboxlive.com/image?url=7OTVnZUMVj4OV2zUUGecWvn3U00nQQLfK7_kwpANogj9vJpb.t4ZQMMLIWOuBZBBZs5MjD7okwh5Zwnit1SAtO3OAsFXxJc1ALIbaVoRo7gsiun9FdcaTpzkM60nqzT8ip1659eQpB1SLyupscP.ec_wAGvXwkhCcTKCNHQMrxg-&format=png', + 'friendly_name': 'Ikken Hissatsuu Status', + }), + 'context': , + 'entity_id': 'sensor.ikken_hissatsuu_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'Offline', + }) +# --- diff --git a/tests/components/xbox/test_config_flow.py b/tests/components/xbox/test_config_flow.py index 8c2e6df6f8915b..533b2359ad3c02 100644 --- a/tests/components/xbox/test_config_flow.py +++ b/tests/components/xbox/test_config_flow.py @@ -5,23 +5,18 @@ import pytest -from homeassistant import config_entries, setup -from homeassistant.components.application_credentials import ( - ClientCredential, - async_import_client_credential, -) +from homeassistant import config_entries from homeassistant.components.xbox.const import DOMAIN, OAUTH2_AUTHORIZE, OAUTH2_TOKEN from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import FlowResultType from homeassistant.helpers import config_entry_oauth2_flow +from .conftest import CLIENT_ID + from tests.common import MockConfigEntry from tests.test_util.aiohttp import AiohttpClientMocker from tests.typing import ClientSessionGenerator -CLIENT_ID = "1234" -CLIENT_SECRET = "5678" - async def test_abort_if_existing_entry(hass: HomeAssistant) -> None: """Check flow abort when an entry already exist.""" @@ -41,10 +36,6 @@ async def test_full_flow( aioclient_mock: AiohttpClientMocker, ) -> None: """Check full flow.""" - assert await setup.async_setup_component(hass, "application_credentials", {}) - await async_import_client_credential( - hass, DOMAIN, ClientCredential(CLIENT_ID, CLIENT_SECRET), "imported-cred" - ) result = await hass.config_entries.flow.async_init( "xbox", context={"source": config_entries.SOURCE_USER} diff --git a/tests/components/xbox/test_sensor.py b/tests/components/xbox/test_sensor.py new file mode 100644 index 00000000000000..727a946c98a95b --- /dev/null +++ b/tests/components/xbox/test_sensor.py @@ -0,0 +1,42 @@ +"""Test the Xbox sensor platform.""" + +from collections.abc import Generator +from unittest.mock import patch + +import pytest +from syrupy.assertion import SnapshotAssertion + +from homeassistant.config_entries import ConfigEntryState +from homeassistant.const import Platform +from homeassistant.core import HomeAssistant +from homeassistant.helpers import entity_registry as er + +from tests.common import MockConfigEntry, snapshot_platform + + +@pytest.fixture(autouse=True) +def sensor_only() -> Generator[None]: + """Enable only the sensor platform.""" + with patch( + "homeassistant.components.xbox.PLATFORMS", + [Platform.SENSOR], + ): + yield + + +@pytest.mark.usefixtures("xbox_live_client", "entity_registry_enabled_by_default") +async def test_sensors( + hass: HomeAssistant, + config_entry: MockConfigEntry, + snapshot: SnapshotAssertion, + entity_registry: er.EntityRegistry, +) -> None: + """Test setup of the Xbox sensor platform.""" + + config_entry.add_to_hass(hass) + await hass.config_entries.async_setup(config_entry.entry_id) + await hass.async_block_till_done() + + assert config_entry.state is ConfigEntryState.LOADED + + await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)