Bump plugwise to v1.7.1 and adapt (#137599)
* Bump plugwise v1.7.1 * Refresh test-fixtures * Adapt integration code * Adapt test code * Fixes * Save updated snapshot * Ruff fixes * More ruff fixespull/137870/head
parent
303ab750ab
commit
7f6855045a
|
@ -82,7 +82,7 @@ def migrate_sensor_entities(
|
|||
|
||||
# Migrating opentherm_outdoor_temperature
|
||||
# to opentherm_outdoor_air_temperature sensor
|
||||
for device_id, device in coordinator.data.devices.items():
|
||||
for device_id, device in coordinator.data.items():
|
||||
if device["dev_class"] != "heater_central":
|
||||
continue
|
||||
|
||||
|
|
|
@ -100,11 +100,7 @@ async def async_setup_entry(
|
|||
async_add_entities(
|
||||
PlugwiseBinarySensorEntity(coordinator, device_id, description)
|
||||
for device_id in coordinator.new_devices
|
||||
if (
|
||||
binary_sensors := coordinator.data.devices[device_id].get(
|
||||
"binary_sensors"
|
||||
)
|
||||
)
|
||||
if (binary_sensors := coordinator.data[device_id].get("binary_sensors"))
|
||||
for description in BINARY_SENSORS
|
||||
if description.key in binary_sensors
|
||||
)
|
||||
|
@ -141,7 +137,8 @@ class PlugwiseBinarySensorEntity(PlugwiseEntity, BinarySensorEntity):
|
|||
return None
|
||||
|
||||
attrs: dict[str, list[str]] = {f"{severity}_msg": [] for severity in SEVERITIES}
|
||||
if notify := self.coordinator.data.gateway["notifications"]:
|
||||
gateway_id = self.coordinator.api.gateway_id
|
||||
if notify := self.coordinator.data[gateway_id]["notifications"]:
|
||||
for details in notify.values():
|
||||
for msg_type, msg in details.items():
|
||||
msg_type = msg_type.lower()
|
||||
|
|
|
@ -8,7 +8,7 @@ from homeassistant.core import HomeAssistant
|
|||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import PlugwiseConfigEntry
|
||||
from .const import GATEWAY_ID, REBOOT
|
||||
from .const import REBOOT
|
||||
from .coordinator import PlugwiseDataUpdateCoordinator
|
||||
from .entity import PlugwiseEntity
|
||||
from .util import plugwise_command
|
||||
|
@ -24,11 +24,10 @@ async def async_setup_entry(
|
|||
"""Set up the Plugwise buttons from a ConfigEntry."""
|
||||
coordinator = entry.runtime_data
|
||||
|
||||
gateway = coordinator.data.gateway
|
||||
async_add_entities(
|
||||
PlugwiseButtonEntity(coordinator, device_id)
|
||||
for device_id in coordinator.data.devices
|
||||
if device_id == gateway[GATEWAY_ID] and REBOOT in gateway
|
||||
for device_id in coordinator.data
|
||||
if device_id == coordinator.api.gateway_id and coordinator.api.reboot
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -41,18 +41,17 @@ async def async_setup_entry(
|
|||
if not coordinator.new_devices:
|
||||
return
|
||||
|
||||
if coordinator.data.gateway["smile_name"] == "Adam":
|
||||
if coordinator.api.smile_name == "Adam":
|
||||
async_add_entities(
|
||||
PlugwiseClimateEntity(coordinator, device_id)
|
||||
for device_id in coordinator.new_devices
|
||||
if coordinator.data.devices[device_id]["dev_class"] == "climate"
|
||||
if coordinator.data[device_id]["dev_class"] == "climate"
|
||||
)
|
||||
else:
|
||||
async_add_entities(
|
||||
PlugwiseClimateEntity(coordinator, device_id)
|
||||
for device_id in coordinator.new_devices
|
||||
if coordinator.data.devices[device_id]["dev_class"]
|
||||
in MASTER_THERMOSTATS
|
||||
if coordinator.data[device_id]["dev_class"] in MASTER_THERMOSTATS
|
||||
)
|
||||
|
||||
_add_entities()
|
||||
|
@ -77,10 +76,8 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
|
|||
super().__init__(coordinator, device_id)
|
||||
self._attr_unique_id = f"{device_id}-climate"
|
||||
|
||||
self._devices = coordinator.data.devices
|
||||
self._gateway = coordinator.data.gateway
|
||||
gateway_id: str = self._gateway["gateway_id"]
|
||||
self._gateway_data = self._devices[gateway_id]
|
||||
gateway_id: str = coordinator.api.gateway_id
|
||||
self._gateway_data = coordinator.data[gateway_id]
|
||||
|
||||
self._location = device_id
|
||||
if (location := self.device.get("location")) is not None:
|
||||
|
@ -88,7 +85,10 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
|
|||
|
||||
# Determine supported features
|
||||
self._attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
if self._gateway["cooling_present"] and self._gateway["smile_name"] != "Adam":
|
||||
if (
|
||||
self.coordinator.api.cooling_present
|
||||
and coordinator.api.smile_name != "Adam"
|
||||
):
|
||||
self._attr_supported_features = (
|
||||
ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
|
||||
)
|
||||
|
@ -170,7 +170,7 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
|
|||
if "available_schedules" in self.device:
|
||||
hvac_modes.append(HVACMode.AUTO)
|
||||
|
||||
if self._gateway["cooling_present"]:
|
||||
if self.coordinator.api.cooling_present:
|
||||
if "regulation_modes" in self._gateway_data:
|
||||
if self._gateway_data["select_regulation_mode"] == "cooling":
|
||||
hvac_modes.append(HVACMode.COOL)
|
||||
|
|
|
@ -17,7 +17,6 @@ FLOW_SMILE: Final = "smile (Adam/Anna/P1)"
|
|||
FLOW_STRETCH: Final = "stretch (Stretch)"
|
||||
FLOW_TYPE: Final = "flow_type"
|
||||
GATEWAY: Final = "gateway"
|
||||
GATEWAY_ID: Final = "gateway_id"
|
||||
LOCATION: Final = "location"
|
||||
PW_TYPE: Final = "plugwise_type"
|
||||
REBOOT: Final = "reboot"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
from datetime import timedelta
|
||||
|
||||
from packaging.version import Version
|
||||
from plugwise import PlugwiseData, Smile
|
||||
from plugwise import GwEntityData, Smile
|
||||
from plugwise.exceptions import (
|
||||
ConnectionFailedError,
|
||||
InvalidAuthentication,
|
||||
|
@ -22,10 +22,10 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
|||
from homeassistant.helpers.debounce import Debouncer
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
|
||||
from .const import DEFAULT_PORT, DEFAULT_USERNAME, DOMAIN, GATEWAY_ID, LOGGER
|
||||
from .const import DEFAULT_PORT, DEFAULT_USERNAME, DOMAIN, LOGGER
|
||||
|
||||
|
||||
class PlugwiseDataUpdateCoordinator(DataUpdateCoordinator[PlugwiseData]):
|
||||
class PlugwiseDataUpdateCoordinator(DataUpdateCoordinator[dict[str, GwEntityData]]):
|
||||
"""Class to manage fetching Plugwise data from single endpoint."""
|
||||
|
||||
_connected: bool = False
|
||||
|
@ -63,10 +63,8 @@ class PlugwiseDataUpdateCoordinator(DataUpdateCoordinator[PlugwiseData]):
|
|||
"""Connect to the Plugwise Smile."""
|
||||
version = await self.api.connect()
|
||||
self._connected = isinstance(version, Version)
|
||||
if self._connected:
|
||||
self.api.get_all_gateway_entities()
|
||||
|
||||
async def _async_update_data(self) -> PlugwiseData:
|
||||
async def _async_update_data(self) -> dict[str, GwEntityData]:
|
||||
"""Fetch data from Plugwise."""
|
||||
try:
|
||||
if not self._connected:
|
||||
|
@ -101,26 +99,28 @@ class PlugwiseDataUpdateCoordinator(DataUpdateCoordinator[PlugwiseData]):
|
|||
self._async_add_remove_devices(data, self.config_entry)
|
||||
return data
|
||||
|
||||
def _async_add_remove_devices(self, data: PlugwiseData, entry: ConfigEntry) -> None:
|
||||
def _async_add_remove_devices(
|
||||
self, data: dict[str, GwEntityData], entry: ConfigEntry
|
||||
) -> None:
|
||||
"""Add new Plugwise devices, remove non-existing devices."""
|
||||
# Check for new or removed devices
|
||||
self.new_devices = set(data.devices) - self._current_devices
|
||||
removed_devices = self._current_devices - set(data.devices)
|
||||
self._current_devices = set(data.devices)
|
||||
self.new_devices = set(data) - self._current_devices
|
||||
removed_devices = self._current_devices - set(data)
|
||||
self._current_devices = set(data)
|
||||
|
||||
if removed_devices:
|
||||
self._async_remove_devices(data, entry)
|
||||
|
||||
def _async_remove_devices(self, data: PlugwiseData, entry: ConfigEntry) -> None:
|
||||
def _async_remove_devices(
|
||||
self, data: dict[str, GwEntityData], entry: ConfigEntry
|
||||
) -> None:
|
||||
"""Clean registries when removed devices found."""
|
||||
device_reg = dr.async_get(self.hass)
|
||||
device_list = dr.async_entries_for_config_entry(
|
||||
device_reg, self.config_entry.entry_id
|
||||
)
|
||||
# First find the Plugwise via_device
|
||||
gateway_device = device_reg.async_get_device(
|
||||
{(DOMAIN, data.gateway[GATEWAY_ID])}
|
||||
)
|
||||
gateway_device = device_reg.async_get_device({(DOMAIN, self.api.gateway_id)})
|
||||
assert gateway_device is not None
|
||||
via_device_id = gateway_device.id
|
||||
|
||||
|
@ -130,7 +130,7 @@ class PlugwiseDataUpdateCoordinator(DataUpdateCoordinator[PlugwiseData]):
|
|||
if identifier[0] == DOMAIN:
|
||||
if (
|
||||
device_entry.via_device_id == via_device_id
|
||||
and identifier[1] not in data.devices
|
||||
and identifier[1] not in data
|
||||
):
|
||||
device_reg.async_update_device(
|
||||
device_entry.id, remove_config_entry_id=entry.entry_id
|
||||
|
|
|
@ -14,7 +14,4 @@ async def async_get_config_entry_diagnostics(
|
|||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
coordinator = entry.runtime_data
|
||||
return {
|
||||
"devices": coordinator.data.devices,
|
||||
"gateway": coordinator.data.gateway,
|
||||
}
|
||||
return coordinator.data
|
||||
|
|
|
@ -34,7 +34,7 @@ class PlugwiseEntity(CoordinatorEntity[PlugwiseDataUpdateCoordinator]):
|
|||
if entry := self.coordinator.config_entry:
|
||||
configuration_url = f"http://{entry.data[CONF_HOST]}"
|
||||
|
||||
data = coordinator.data.devices[device_id]
|
||||
data = coordinator.data[device_id]
|
||||
connections = set()
|
||||
if mac := data.get("mac_address"):
|
||||
connections.add((CONNECTION_NETWORK_MAC, mac))
|
||||
|
@ -48,18 +48,18 @@ class PlugwiseEntity(CoordinatorEntity[PlugwiseDataUpdateCoordinator]):
|
|||
manufacturer=data.get("vendor"),
|
||||
model=data.get("model"),
|
||||
model_id=data.get("model_id"),
|
||||
name=coordinator.data.gateway["smile_name"],
|
||||
name=coordinator.api.smile_name,
|
||||
sw_version=data.get("firmware"),
|
||||
hw_version=data.get("hardware"),
|
||||
)
|
||||
|
||||
if device_id != coordinator.data.gateway["gateway_id"]:
|
||||
if device_id != coordinator.api.gateway_id:
|
||||
self._attr_device_info.update(
|
||||
{
|
||||
ATTR_NAME: data.get("name"),
|
||||
ATTR_VIA_DEVICE: (
|
||||
DOMAIN,
|
||||
str(self.coordinator.data.gateway["gateway_id"]),
|
||||
str(self.coordinator.api.gateway_id),
|
||||
),
|
||||
}
|
||||
)
|
||||
|
@ -68,7 +68,7 @@ class PlugwiseEntity(CoordinatorEntity[PlugwiseDataUpdateCoordinator]):
|
|||
def available(self) -> bool:
|
||||
"""Return if entity is available."""
|
||||
return (
|
||||
self._dev_id in self.coordinator.data.devices
|
||||
self._dev_id in self.coordinator.data
|
||||
and ("available" not in self.device or self.device["available"] is True)
|
||||
and super().available
|
||||
)
|
||||
|
@ -76,4 +76,4 @@ class PlugwiseEntity(CoordinatorEntity[PlugwiseDataUpdateCoordinator]):
|
|||
@property
|
||||
def device(self) -> GwEntityData:
|
||||
"""Return data for this device."""
|
||||
return self.coordinator.data.devices[self._dev_id]
|
||||
return self.coordinator.data[self._dev_id]
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
"iot_class": "local_polling",
|
||||
"loggers": ["plugwise"],
|
||||
"quality_scale": "platinum",
|
||||
"requirements": ["plugwise==1.6.4"],
|
||||
"requirements": ["plugwise==1.7.1"],
|
||||
"zeroconf": ["_plugwise._tcp.local."]
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ async def async_setup_entry(
|
|||
PlugwiseNumberEntity(coordinator, device_id, description)
|
||||
for device_id in coordinator.new_devices
|
||||
for description in NUMBER_TYPES
|
||||
if description.key in coordinator.data.devices[device_id]
|
||||
if description.key in coordinator.data[device_id]
|
||||
)
|
||||
|
||||
_add_entities()
|
||||
|
|
|
@ -71,7 +71,7 @@ async def async_setup_entry(
|
|||
PlugwiseSelectEntity(coordinator, device_id, description)
|
||||
for device_id in coordinator.new_devices
|
||||
for description in SELECT_TYPES
|
||||
if description.options_key in coordinator.data.devices[device_id]
|
||||
if description.options_key in coordinator.data[device_id]
|
||||
)
|
||||
|
||||
_add_entities()
|
||||
|
|
|
@ -420,7 +420,7 @@ async def async_setup_entry(
|
|||
async_add_entities(
|
||||
PlugwiseSensorEntity(coordinator, device_id, description)
|
||||
for device_id in coordinator.new_devices
|
||||
if (sensors := coordinator.data.devices[device_id].get("sensors"))
|
||||
if (sensors := coordinator.data[device_id].get("sensors"))
|
||||
for description in SENSORS
|
||||
if description.key in sensors
|
||||
)
|
||||
|
|
|
@ -72,7 +72,7 @@ async def async_setup_entry(
|
|||
async_add_entities(
|
||||
PlugwiseSwitchEntity(coordinator, device_id, description)
|
||||
for device_id in coordinator.new_devices
|
||||
if (switches := coordinator.data.devices[device_id].get("switches"))
|
||||
if (switches := coordinator.data[device_id].get("switches"))
|
||||
for description in SWITCHES
|
||||
if description.key in switches
|
||||
)
|
||||
|
|
|
@ -1663,7 +1663,7 @@ plexauth==0.0.6
|
|||
plexwebsocket==0.0.14
|
||||
|
||||
# homeassistant.components.plugwise
|
||||
plugwise==1.6.4
|
||||
plugwise==1.7.1
|
||||
|
||||
# homeassistant.components.plum_lightpad
|
||||
plumlightpad==0.0.11
|
||||
|
|
|
@ -1376,7 +1376,7 @@ plexauth==0.0.6
|
|||
plexwebsocket==0.0.14
|
||||
|
||||
# homeassistant.components.plugwise
|
||||
plugwise==1.6.4
|
||||
plugwise==1.7.1
|
||||
|
||||
# homeassistant.components.plum_lightpad
|
||||
plumlightpad==0.0.11
|
||||
|
|
|
@ -8,7 +8,6 @@ from typing import Any
|
|||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
from packaging.version import Version
|
||||
from plugwise import PlugwiseData
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.plugwise.const import DOMAIN
|
||||
|
@ -30,6 +29,15 @@ def _read_json(environment: str, call: str) -> dict[str, Any]:
|
|||
return json.loads(fixture)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def cooling_present(request: pytest.FixtureRequest) -> str:
|
||||
"""Pass the cooling_present boolean.
|
||||
|
||||
Used with fixtures that require parametrization of the cooling capability.
|
||||
"""
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def chosen_env(request: pytest.FixtureRequest) -> str:
|
||||
"""Pass the chosen_env string.
|
||||
|
@ -48,6 +56,24 @@ def gateway_id(request: pytest.FixtureRequest) -> str:
|
|||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def heater_id(request: pytest.FixtureRequest) -> str:
|
||||
"""Pass the heater_idstring.
|
||||
|
||||
Used with fixtures that require parametrization of the heater_id.
|
||||
"""
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def reboot(request: pytest.FixtureRequest) -> str:
|
||||
"""Pass the reboot boolean.
|
||||
|
||||
Used with fixtures that require parametrization of the reboot capability.
|
||||
"""
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_config_entry() -> MockConfigEntry:
|
||||
"""Return the default mocked config entry."""
|
||||
|
@ -82,11 +108,14 @@ def mock_smile_config_flow() -> Generator[MagicMock]:
|
|||
autospec=True,
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.connect.return_value = Version("4.3.2")
|
||||
smile.smile_hostname = "smile12345"
|
||||
smile.smile_model = "Test Model"
|
||||
smile.smile_model_id = "Test Model ID"
|
||||
smile.smile_name = "Test Smile Name"
|
||||
smile.connect.return_value = Version("4.3.2")
|
||||
smile.smile_version = "4.3.2"
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
|
@ -94,7 +123,7 @@ def mock_smile_config_flow() -> Generator[MagicMock]:
|
|||
def mock_smile_adam() -> Generator[MagicMock]:
|
||||
"""Create a Mock Adam environment for testing exceptions."""
|
||||
chosen_env = "m_adam_multiple_devices_per_zone"
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with (
|
||||
patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
|
@ -106,43 +135,45 @@ def mock_smile_adam() -> Generator[MagicMock]:
|
|||
):
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = data
|
||||
smile.cooling_present = False
|
||||
smile.connect.return_value = Version("3.0.15")
|
||||
smile.gateway_id = "fe799307f1624099878210aa0b9f1475"
|
||||
smile.heater_id = "90986d591dcd426cae3ec3e8111ff730"
|
||||
smile.smile_version = "3.0.15"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.reboot = True
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.connect.return_value = Version("3.0.15")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_version = "3.0.15"
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_adam_heat_cool(chosen_env: str) -> Generator[MagicMock]:
|
||||
def mock_smile_adam_heat_cool(
|
||||
chosen_env: str, cooling_present: bool
|
||||
) -> Generator[MagicMock]:
|
||||
"""Create a special base Mock Adam type for testing with different datasets."""
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.async_update.return_value = data
|
||||
smile.connect.return_value = Version("3.6.4")
|
||||
smile.cooling_present = cooling_present
|
||||
smile.gateway_id = "da224107914542988a88561b4452b0f6"
|
||||
smile.heater_id = "056ee145a816487eaa69243c3280f8bf"
|
||||
smile.smile_version = "3.6.4"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.reboot = True
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_version = "3.6.4"
|
||||
|
||||
yield smile
|
||||
|
||||
|
@ -151,49 +182,49 @@ def mock_smile_adam_heat_cool(chosen_env: str) -> Generator[MagicMock]:
|
|||
def mock_smile_adam_jip() -> Generator[MagicMock]:
|
||||
"""Create a Mock adam-jip type for testing exceptions."""
|
||||
chosen_env = "m_adam_jip"
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = data
|
||||
smile.connect.return_value = Version("3.2.8")
|
||||
smile.cooling_present = False
|
||||
smile.gateway_id = "b5c2386c6f6342669e50fe49dd05b188"
|
||||
smile.heater_id = "e4684553153b44afbef2200885f379dc"
|
||||
smile.smile_version = "3.2.8"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.reboot = True
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.connect.return_value = Version("3.2.8")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_version = "3.2.8"
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_anna(chosen_env: str) -> Generator[MagicMock]:
|
||||
def mock_smile_anna(chosen_env: str, cooling_present: bool) -> Generator[MagicMock]:
|
||||
"""Create a Mock Anna type for testing."""
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.async_update.return_value = data
|
||||
smile.connect.return_value = Version("4.0.15")
|
||||
smile.cooling_present = cooling_present
|
||||
smile.gateway_id = "015ae9ea3f964e668e490fa39da3870b"
|
||||
smile.heater_id = "1cbf783bb11e4a7c8a6843dee3a86927"
|
||||
smile.smile_version = "4.0.15"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.reboot = True
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_thermo"
|
||||
smile.smile_name = "Smile Anna"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_version = "4.0.15"
|
||||
|
||||
yield smile
|
||||
|
||||
|
@ -201,18 +232,17 @@ def mock_smile_anna(chosen_env: str) -> Generator[MagicMock]:
|
|||
@pytest.fixture
|
||||
def mock_smile_p1(chosen_env: str, gateway_id: str) -> Generator[MagicMock]:
|
||||
"""Create a base Mock P1 type for testing with different datasets and gateway-ids."""
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.async_update.return_value = data
|
||||
smile.connect.return_value = Version("4.4.2")
|
||||
smile.gateway_id = gateway_id
|
||||
smile.heater_id = None
|
||||
smile.reboot = True
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile"
|
||||
|
@ -227,24 +257,23 @@ def mock_smile_p1(chosen_env: str, gateway_id: str) -> Generator[MagicMock]:
|
|||
def mock_smile_legacy_anna() -> Generator[MagicMock]:
|
||||
"""Create a Mock legacy Anna environment for testing exceptions."""
|
||||
chosen_env = "legacy_anna"
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = data
|
||||
smile.connect.return_value = Version("1.8.22")
|
||||
smile.gateway_id = "0000aaaa0000aaaa0000aaaa0000aa00"
|
||||
smile.heater_id = "04e4cbfe7f4340f090f85ec3b9e6a950"
|
||||
smile.smile_version = "1.8.22"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.reboot = False
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = None
|
||||
smile.smile_name = "Smile Anna"
|
||||
smile.connect.return_value = Version("1.8.22")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_version = "1.8.22"
|
||||
|
||||
yield smile
|
||||
|
||||
|
@ -253,24 +282,23 @@ def mock_smile_legacy_anna() -> Generator[MagicMock]:
|
|||
def mock_stretch() -> Generator[MagicMock]:
|
||||
"""Create a Mock Stretch environment for testing exceptions."""
|
||||
chosen_env = "stretch_v31"
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
data = _read_json(chosen_env, "data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = data
|
||||
smile.connect.return_value = Version("3.1.11")
|
||||
smile.gateway_id = "259882df3c05415b99c2d962534ce820"
|
||||
smile.heater_id = None
|
||||
smile.smile_version = "3.1.11"
|
||||
smile.smile_type = "stretch"
|
||||
smile.reboot = False
|
||||
smile.smile_hostname = "stretch98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = None
|
||||
smile.smile_name = "Stretch"
|
||||
smile.connect.return_value = Version("3.1.11")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.smile_type = "stretch"
|
||||
smile.smile_version = "3.1.11"
|
||||
|
||||
yield smile
|
||||
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"015ae9ea3f964e668e490fa39da3870b": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "4.0.15",
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "a57efe5f145f498c9be62a9b63626fbf",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_thermo",
|
||||
"name": "Smile Anna",
|
||||
"notifications": {},
|
||||
"sensors": {
|
||||
"outdoor_temperature": 20.2
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"1cbf783bb11e4a7c8a6843dee3a86927": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"compressor_state": true,
|
||||
"cooling_enabled": false,
|
||||
"cooling_state": false,
|
||||
"dhw_state": false,
|
||||
"flame_state": false,
|
||||
"heating_state": true,
|
||||
"secondary_boiler_state": false
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "a57efe5f145f498c9be62a9b63626fbf",
|
||||
"max_dhw_temperature": {
|
||||
"lower_bound": 35.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 53.0,
|
||||
"upper_bound": 60.0
|
||||
},
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 1.0,
|
||||
"setpoint": 60.0,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"model": "Generic heater/cooler",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"dhw_temperature": 46.3,
|
||||
"intended_boiler_temperature": 35.0,
|
||||
"modulation_level": 52,
|
||||
"outdoor_air_temperature": 3.0,
|
||||
"return_temperature": 25.1,
|
||||
"water_pressure": 1.57,
|
||||
"water_temperature": 29.1
|
||||
},
|
||||
"switches": {
|
||||
"dhw_cm_switch": false
|
||||
},
|
||||
"vendor": "Techneco"
|
||||
},
|
||||
"3cb70739631c4d17a86b8b12e8a5161b": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": ["standaard", "off"],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "heating",
|
||||
"dev_class": "thermostat",
|
||||
"firmware": "2018-02-08T11:15:53+01:00",
|
||||
"hardware": "6539-1301-5002",
|
||||
"location": "c784ee9fdab44e1395b8dee7d7a497d5",
|
||||
"model": "ThermoTouch",
|
||||
"name": "Anna",
|
||||
"preset_modes": ["no_frost", "home", "away", "asleep", "vacation"],
|
||||
"select_schedule": "standaard",
|
||||
"sensors": {
|
||||
"cooling_activation_outdoor_temperature": 21.0,
|
||||
"cooling_deactivation_threshold": 4.0,
|
||||
"illuminance": 86.0,
|
||||
"setpoint_high": 30.0,
|
||||
"setpoint_low": 20.5,
|
||||
"temperature": 19.3
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": -0.5,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 4.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint_high": 30.0,
|
||||
"setpoint_low": 20.5,
|
||||
"upper_bound": 30.0
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"0000aaaa0000aaaa0000aaaa0000aa00": {
|
||||
"dev_class": "gateway",
|
||||
"firmware": "1.8.22",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"mac_address": "01:23:45:67:89:AB",
|
||||
"model": "Gateway",
|
||||
"name": "Smile Anna",
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"04e4cbfe7f4340f090f85ec3b9e6a950": {
|
||||
"binary_sensors": {
|
||||
"flame_state": true,
|
||||
"heating_state": true
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 50.0,
|
||||
"resolution": 1.0,
|
||||
"setpoint": 50.0,
|
||||
"upper_bound": 90.0
|
||||
},
|
||||
"model": "Generic heater",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"dhw_temperature": 51.2,
|
||||
"intended_boiler_temperature": 17.0,
|
||||
"modulation_level": 0.0,
|
||||
"return_temperature": 21.7,
|
||||
"water_pressure": 1.2,
|
||||
"water_temperature": 23.6
|
||||
},
|
||||
"vendor": "Bosch Thermotechniek B.V."
|
||||
},
|
||||
"0d266432d64443e283b5d708ae98b455": {
|
||||
"active_preset": "home",
|
||||
"climate_mode": "heat",
|
||||
"control_state": "heating",
|
||||
"dev_class": "thermostat",
|
||||
"firmware": "2017-03-13T11:54:58+01:00",
|
||||
"hardware": "6539-1301-500",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"model": "ThermoTouch",
|
||||
"name": "Anna",
|
||||
"preset_modes": ["away", "vacation", "asleep", "home", "no_frost"],
|
||||
"sensors": {
|
||||
"illuminance": 150.8,
|
||||
"setpoint": 20.5,
|
||||
"temperature": 20.4
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 4.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 20.5,
|
||||
"upper_bound": 30.0
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,203 @@
|
|||
{
|
||||
"056ee145a816487eaa69243c3280f8bf": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"cooling_state": true,
|
||||
"dhw_state": false,
|
||||
"flame_state": false,
|
||||
"heating_state": false
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "bc93488efab249e5bc54fd7e175a6f91",
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 25.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 50.0,
|
||||
"upper_bound": 95.0
|
||||
},
|
||||
"model": "Generic heater",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"intended_boiler_temperature": 17.5,
|
||||
"water_temperature": 19.0
|
||||
},
|
||||
"switches": {
|
||||
"dhw_cm_switch": false
|
||||
}
|
||||
},
|
||||
"1772a4ea304041adb83f357b751341ff": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2020-11-04T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "f871b8c4d63549319221e294e4f88074",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Tom Badkamer",
|
||||
"sensors": {
|
||||
"battery": 99,
|
||||
"setpoint": 18.0,
|
||||
"temperature": 21.6,
|
||||
"temperature_difference": -0.2,
|
||||
"valve_position": 100
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.1,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "000D6F000C8FF5EE"
|
||||
},
|
||||
"ad4838d7d35c4d6ea796ee12ae5aedf8": {
|
||||
"available": true,
|
||||
"dev_class": "thermostat",
|
||||
"location": "f2bf9048bef64cc5b6d5110154e33c81",
|
||||
"model": "ThermoTouch",
|
||||
"model_id": "143.1",
|
||||
"name": "Anna",
|
||||
"sensors": {
|
||||
"setpoint": 23.5,
|
||||
"temperature": 25.8
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"da224107914542988a88561b4452b0f6": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "3.7.8",
|
||||
"gateway_modes": ["away", "full", "vacation"],
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "bc93488efab249e5bc54fd7e175a6f91",
|
||||
"mac_address": "012345679891",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_open_therm",
|
||||
"name": "Adam",
|
||||
"notifications": {},
|
||||
"regulation_modes": [
|
||||
"bleeding_hot",
|
||||
"bleeding_cold",
|
||||
"off",
|
||||
"heating",
|
||||
"cooling"
|
||||
],
|
||||
"select_gateway_mode": "full",
|
||||
"select_regulation_mode": "cooling",
|
||||
"sensors": {
|
||||
"outdoor_temperature": 29.65
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "000D6F000D5A168D"
|
||||
},
|
||||
"e2f4322d57924fa090fbbc48b3a140dc": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": true
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-10T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "f871b8c4d63549319221e294e4f88074",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Lisa Badkamer",
|
||||
"sensors": {
|
||||
"battery": 14,
|
||||
"setpoint": 23.5,
|
||||
"temperature": 23.9
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "000D6F000C869B61"
|
||||
},
|
||||
"e8ef2a01ed3b4139a53bf749204fe6b4": {
|
||||
"dev_class": "switching",
|
||||
"members": [
|
||||
"2568cc4b9c1e401495d4741a5f89bee1",
|
||||
"29542b2b6a6a4169acecc15c72a599b8"
|
||||
],
|
||||
"model": "Switchgroup",
|
||||
"name": "Test",
|
||||
"switches": {
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"f2bf9048bef64cc5b6d5110154e33c81": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": [
|
||||
"Badkamer",
|
||||
"Test",
|
||||
"Vakantie",
|
||||
"Weekschema",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "cool",
|
||||
"control_state": "cooling",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Living room",
|
||||
"preset_modes": ["no_frost", "asleep", "vacation", "home", "away"],
|
||||
"select_schedule": "off",
|
||||
"sensors": {
|
||||
"electricity_consumed": 149.9,
|
||||
"electricity_produced": 0.0,
|
||||
"temperature": 25.8
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 1.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 23.5,
|
||||
"upper_bound": 35.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["ad4838d7d35c4d6ea796ee12ae5aedf8"],
|
||||
"secondary": []
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"f871b8c4d63549319221e294e4f88074": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": [
|
||||
"Badkamer",
|
||||
"Test",
|
||||
"Vakantie",
|
||||
"Weekschema",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "cooling",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Bathroom",
|
||||
"preset_modes": ["no_frost", "asleep", "vacation", "home", "away"],
|
||||
"select_schedule": "Badkamer",
|
||||
"sensors": {
|
||||
"electricity_consumed": 0.0,
|
||||
"electricity_produced": 0.0,
|
||||
"temperature": 23.9
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 25.0,
|
||||
"upper_bound": 99.9
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["e2f4322d57924fa090fbbc48b3a140dc"],
|
||||
"secondary": ["1772a4ea304041adb83f357b751341ff"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,202 @@
|
|||
{
|
||||
"056ee145a816487eaa69243c3280f8bf": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"dhw_state": false,
|
||||
"flame_state": false,
|
||||
"heating_state": true
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "bc93488efab249e5bc54fd7e175a6f91",
|
||||
"max_dhw_temperature": {
|
||||
"lower_bound": 40.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 60.0,
|
||||
"upper_bound": 60.0
|
||||
},
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 25.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 50.0,
|
||||
"upper_bound": 95.0
|
||||
},
|
||||
"model": "Generic heater",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"intended_boiler_temperature": 38.1,
|
||||
"water_temperature": 37.0
|
||||
},
|
||||
"switches": {
|
||||
"dhw_cm_switch": false
|
||||
}
|
||||
},
|
||||
"1772a4ea304041adb83f357b751341ff": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2020-11-04T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "f871b8c4d63549319221e294e4f88074",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Tom Badkamer",
|
||||
"sensors": {
|
||||
"battery": 99,
|
||||
"setpoint": 18.0,
|
||||
"temperature": 18.6,
|
||||
"temperature_difference": -0.2,
|
||||
"valve_position": 100
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.1,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "000D6F000C8FF5EE"
|
||||
},
|
||||
"ad4838d7d35c4d6ea796ee12ae5aedf8": {
|
||||
"available": true,
|
||||
"dev_class": "thermostat",
|
||||
"location": "f2bf9048bef64cc5b6d5110154e33c81",
|
||||
"model": "ThermoTouch",
|
||||
"model_id": "143.1",
|
||||
"name": "Anna",
|
||||
"sensors": {
|
||||
"setpoint": 20.0,
|
||||
"temperature": 19.1
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"da224107914542988a88561b4452b0f6": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "3.7.8",
|
||||
"gateway_modes": ["away", "full", "vacation"],
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "bc93488efab249e5bc54fd7e175a6f91",
|
||||
"mac_address": "012345679891",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_open_therm",
|
||||
"name": "Adam",
|
||||
"notifications": {},
|
||||
"regulation_modes": ["bleeding_hot", "bleeding_cold", "off", "heating"],
|
||||
"select_gateway_mode": "full",
|
||||
"select_regulation_mode": "heating",
|
||||
"sensors": {
|
||||
"outdoor_temperature": -1.25
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "000D6F000D5A168D"
|
||||
},
|
||||
"e2f4322d57924fa090fbbc48b3a140dc": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": true
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-10T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "f871b8c4d63549319221e294e4f88074",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Lisa Badkamer",
|
||||
"sensors": {
|
||||
"battery": 14,
|
||||
"setpoint": 15.0,
|
||||
"temperature": 17.9
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "000D6F000C869B61"
|
||||
},
|
||||
"e8ef2a01ed3b4139a53bf749204fe6b4": {
|
||||
"dev_class": "switching",
|
||||
"members": [
|
||||
"2568cc4b9c1e401495d4741a5f89bee1",
|
||||
"29542b2b6a6a4169acecc15c72a599b8"
|
||||
],
|
||||
"model": "Switchgroup",
|
||||
"name": "Test",
|
||||
"switches": {
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"f2bf9048bef64cc5b6d5110154e33c81": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": [
|
||||
"Badkamer",
|
||||
"Test",
|
||||
"Vakantie",
|
||||
"Weekschema",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "heat",
|
||||
"control_state": "preheating",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Living room",
|
||||
"preset_modes": ["no_frost", "asleep", "vacation", "home", "away"],
|
||||
"select_schedule": "off",
|
||||
"sensors": {
|
||||
"electricity_consumed": 149.9,
|
||||
"electricity_produced": 0.0,
|
||||
"temperature": 19.1
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 1.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 20.0,
|
||||
"upper_bound": 35.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["ad4838d7d35c4d6ea796ee12ae5aedf8"],
|
||||
"secondary": []
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"f871b8c4d63549319221e294e4f88074": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": [
|
||||
"Badkamer",
|
||||
"Test",
|
||||
"Vakantie",
|
||||
"Weekschema",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Bathroom",
|
||||
"preset_modes": ["no_frost", "asleep", "vacation", "home", "away"],
|
||||
"select_schedule": "Badkamer",
|
||||
"sensors": {
|
||||
"electricity_consumed": 0.0,
|
||||
"electricity_produced": 0.0,
|
||||
"temperature": 17.9
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 15.0,
|
||||
"upper_bound": 99.9
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["e2f4322d57924fa090fbbc48b3a140dc"],
|
||||
"secondary": ["1772a4ea304041adb83f357b751341ff"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,370 @@
|
|||
{
|
||||
"06aecb3d00354375924f50c47af36bd2": {
|
||||
"active_preset": "no_frost",
|
||||
"climate_mode": "off",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Slaapkamer",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"sensors": {
|
||||
"temperature": 24.2
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 13.0,
|
||||
"upper_bound": 99.9
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["1346fbd8498d4dbcab7e18d51b771f3d"],
|
||||
"secondary": ["356b65335e274d769c338223e7af9c33"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"13228dab8ce04617af318a2888b3c548": {
|
||||
"active_preset": "home",
|
||||
"climate_mode": "heat",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Woonkamer",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"sensors": {
|
||||
"temperature": 27.4
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 4.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 9.0,
|
||||
"upper_bound": 30.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["f61f1a2535f54f52ad006a3d18e459ca"],
|
||||
"secondary": ["833de10f269c4deab58fb9df69901b4e"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"1346fbd8498d4dbcab7e18d51b771f3d": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-27T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "06aecb3d00354375924f50c47af36bd2",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Slaapkamer",
|
||||
"sensors": {
|
||||
"battery": 92,
|
||||
"setpoint": 13.0,
|
||||
"temperature": 24.2
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A03"
|
||||
},
|
||||
"1da4d325838e4ad8aac12177214505c9": {
|
||||
"available": true,
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2020-11-04T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "d58fec52899f4f1c92e4f8fad6d8c48c",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Tom Logeerkamer",
|
||||
"sensors": {
|
||||
"setpoint": 13.0,
|
||||
"temperature": 28.8,
|
||||
"temperature_difference": 2.0,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.1,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A07"
|
||||
},
|
||||
"356b65335e274d769c338223e7af9c33": {
|
||||
"available": true,
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2020-11-04T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "06aecb3d00354375924f50c47af36bd2",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Tom Slaapkamer",
|
||||
"sensors": {
|
||||
"setpoint": 13.0,
|
||||
"temperature": 24.2,
|
||||
"temperature_difference": 1.7,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.1,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A05"
|
||||
},
|
||||
"457ce8414de24596a2d5e7dbc9c7682f": {
|
||||
"available": true,
|
||||
"dev_class": "zz_misc_plug",
|
||||
"location": "9e4433a9d69f40b3aefd15e74395eaec",
|
||||
"model": "Aqara Smart Plug",
|
||||
"model_id": "lumi.plug.maeu01",
|
||||
"name": "Plug",
|
||||
"sensors": {
|
||||
"electricity_consumed_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": false
|
||||
},
|
||||
"vendor": "LUMI",
|
||||
"zigbee_mac_address": "ABCD012345670A06"
|
||||
},
|
||||
"6f3e9d7084214c21b9dfa46f6eeb8700": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-27T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "d27aede973b54be484f6842d1b2802ad",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Kinderkamer",
|
||||
"sensors": {
|
||||
"battery": 79,
|
||||
"setpoint": 13.0,
|
||||
"temperature": 30.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A02"
|
||||
},
|
||||
"833de10f269c4deab58fb9df69901b4e": {
|
||||
"available": true,
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2020-11-04T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "13228dab8ce04617af318a2888b3c548",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Tom Woonkamer",
|
||||
"sensors": {
|
||||
"setpoint": 9.0,
|
||||
"temperature": 24.0,
|
||||
"temperature_difference": 1.8,
|
||||
"valve_position": 100
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.1,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A09"
|
||||
},
|
||||
"a6abc6a129ee499c88a4d420cc413b47": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-27T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "d58fec52899f4f1c92e4f8fad6d8c48c",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Logeerkamer",
|
||||
"sensors": {
|
||||
"battery": 80,
|
||||
"setpoint": 13.0,
|
||||
"temperature": 30.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A01"
|
||||
},
|
||||
"b5c2386c6f6342669e50fe49dd05b188": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "3.2.8",
|
||||
"gateway_modes": ["away", "full", "vacation"],
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "9e4433a9d69f40b3aefd15e74395eaec",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_open_therm",
|
||||
"name": "Adam",
|
||||
"notifications": {},
|
||||
"regulation_modes": ["heating", "off", "bleeding_cold", "bleeding_hot"],
|
||||
"select_gateway_mode": "full",
|
||||
"select_regulation_mode": "heating",
|
||||
"sensors": {
|
||||
"outdoor_temperature": 24.9
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670101"
|
||||
},
|
||||
"d27aede973b54be484f6842d1b2802ad": {
|
||||
"active_preset": "home",
|
||||
"climate_mode": "heat",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Kinderkamer",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"sensors": {
|
||||
"temperature": 30.0
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 13.0,
|
||||
"upper_bound": 99.9
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["6f3e9d7084214c21b9dfa46f6eeb8700"],
|
||||
"secondary": ["d4496250d0e942cfa7aea3476e9070d5"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"d4496250d0e942cfa7aea3476e9070d5": {
|
||||
"available": true,
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2020-11-04T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "d27aede973b54be484f6842d1b2802ad",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Tom Kinderkamer",
|
||||
"sensors": {
|
||||
"setpoint": 13.0,
|
||||
"temperature": 28.7,
|
||||
"temperature_difference": 1.9,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.1,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A04"
|
||||
},
|
||||
"d58fec52899f4f1c92e4f8fad6d8c48c": {
|
||||
"active_preset": "home",
|
||||
"climate_mode": "heat",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Logeerkamer",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"sensors": {
|
||||
"temperature": 30.0
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 13.0,
|
||||
"upper_bound": 99.9
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["a6abc6a129ee499c88a4d420cc413b47"],
|
||||
"secondary": ["1da4d325838e4ad8aac12177214505c9"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"e4684553153b44afbef2200885f379dc": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"dhw_state": false,
|
||||
"flame_state": false,
|
||||
"heating_state": false
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "9e4433a9d69f40b3aefd15e74395eaec",
|
||||
"max_dhw_temperature": {
|
||||
"lower_bound": 40.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 60.0,
|
||||
"upper_bound": 60.0
|
||||
},
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 20.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 90.0,
|
||||
"upper_bound": 90.0
|
||||
},
|
||||
"model": "Generic heater",
|
||||
"model_id": "10.20",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"intended_boiler_temperature": 0.0,
|
||||
"modulation_level": 0.0,
|
||||
"return_temperature": 37.1,
|
||||
"water_pressure": 1.4,
|
||||
"water_temperature": 37.3
|
||||
},
|
||||
"switches": {
|
||||
"dhw_cm_switch": false
|
||||
},
|
||||
"vendor": "Remeha B.V."
|
||||
},
|
||||
"f61f1a2535f54f52ad006a3d18e459ca": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermometer",
|
||||
"firmware": "2020-09-01T02:00:00+02:00",
|
||||
"hardware": "1",
|
||||
"location": "13228dab8ce04617af318a2888b3c548",
|
||||
"model": "Jip",
|
||||
"model_id": "168-01",
|
||||
"name": "Woonkamer",
|
||||
"sensors": {
|
||||
"battery": 100,
|
||||
"humidity": 56.2,
|
||||
"setpoint": 9.0,
|
||||
"temperature": 27.4
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A08"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,584 @@
|
|||
{
|
||||
"02cf28bfec924855854c544690a609ef": {
|
||||
"available": true,
|
||||
"dev_class": "vcr_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "cd143c07248f491493cea0533bc3d669",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "NVR",
|
||||
"sensors": {
|
||||
"electricity_consumed": 34.0,
|
||||
"electricity_consumed_interval": 9.15,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A15"
|
||||
},
|
||||
"08963fec7c53423ca5680aa4cb502c63": {
|
||||
"active_preset": "away",
|
||||
"available_schedules": [
|
||||
"CV Roan",
|
||||
"Bios Schema met Film Avond",
|
||||
"GF7 Woonkamer",
|
||||
"Badkamer Schema",
|
||||
"CV Jessie",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Badkamer",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"select_schedule": "Badkamer Schema",
|
||||
"sensors": {
|
||||
"temperature": 18.9
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 14.0,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": [
|
||||
"f1fee6043d3642a9b0a65297455f008e",
|
||||
"680423ff840043738f42cc7f1ff97a36"
|
||||
],
|
||||
"secondary": []
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"12493538af164a409c6a1c79e38afe1c": {
|
||||
"active_preset": "away",
|
||||
"available_schedules": [
|
||||
"CV Roan",
|
||||
"Bios Schema met Film Avond",
|
||||
"GF7 Woonkamer",
|
||||
"Badkamer Schema",
|
||||
"CV Jessie",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "heat",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Bios",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"select_schedule": "off",
|
||||
"sensors": {
|
||||
"electricity_consumed": 0.0,
|
||||
"electricity_produced": 0.0,
|
||||
"temperature": 16.5
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 13.0,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["df4a4a8169904cdb9c03d61a21f42140"],
|
||||
"secondary": ["a2c3583e0a6349358998b760cea82d2a"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"21f2b542c49845e6bb416884c55778d6": {
|
||||
"available": true,
|
||||
"dev_class": "game_console_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "cd143c07248f491493cea0533bc3d669",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "Playstation Smart Plug",
|
||||
"sensors": {
|
||||
"electricity_consumed": 84.1,
|
||||
"electricity_consumed_interval": 8.6,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": false,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A12"
|
||||
},
|
||||
"446ac08dd04d4eff8ac57489757b7314": {
|
||||
"active_preset": "no_frost",
|
||||
"climate_mode": "heat",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Garage",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"sensors": {
|
||||
"temperature": 15.6
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 5.5,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["e7693eb9582644e5b865dba8d4447cf1"],
|
||||
"secondary": []
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"4a810418d5394b3f82727340b91ba740": {
|
||||
"available": true,
|
||||
"dev_class": "router_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "cd143c07248f491493cea0533bc3d669",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "USG Smart Plug",
|
||||
"sensors": {
|
||||
"electricity_consumed": 8.5,
|
||||
"electricity_consumed_interval": 0.0,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A16"
|
||||
},
|
||||
"675416a629f343c495449970e2ca37b5": {
|
||||
"available": true,
|
||||
"dev_class": "router_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "cd143c07248f491493cea0533bc3d669",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "Ziggo Modem",
|
||||
"sensors": {
|
||||
"electricity_consumed": 12.2,
|
||||
"electricity_consumed_interval": 2.97,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A01"
|
||||
},
|
||||
"680423ff840043738f42cc7f1ff97a36": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2019-03-27T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "08963fec7c53423ca5680aa4cb502c63",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Thermostatic Radiator Badkamer 1",
|
||||
"sensors": {
|
||||
"battery": 51,
|
||||
"setpoint": 14.0,
|
||||
"temperature": 19.1,
|
||||
"temperature_difference": -0.4,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A17"
|
||||
},
|
||||
"6a3bf693d05e48e0b460c815a4fdd09d": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-27T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "82fa13f017d240daa0d0ea1775420f24",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Zone Thermostat Jessie",
|
||||
"sensors": {
|
||||
"battery": 37,
|
||||
"setpoint": 15.0,
|
||||
"temperature": 17.2
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A03"
|
||||
},
|
||||
"78d1126fc4c743db81b61c20e88342a7": {
|
||||
"available": true,
|
||||
"dev_class": "central_heating_pump_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "c50f167537524366a5af7aa3942feb1e",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "CV Pomp",
|
||||
"sensors": {
|
||||
"electricity_consumed": 35.6,
|
||||
"electricity_consumed_interval": 7.37,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A05"
|
||||
},
|
||||
"82fa13f017d240daa0d0ea1775420f24": {
|
||||
"active_preset": "asleep",
|
||||
"available_schedules": [
|
||||
"CV Roan",
|
||||
"Bios Schema met Film Avond",
|
||||
"GF7 Woonkamer",
|
||||
"Badkamer Schema",
|
||||
"CV Jessie",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "idle",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Jessie",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"select_schedule": "CV Jessie",
|
||||
"sensors": {
|
||||
"temperature": 17.2
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 15.0,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["6a3bf693d05e48e0b460c815a4fdd09d"],
|
||||
"secondary": ["d3da73bde12a47d5a6b8f9dad971f2ec"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"90986d591dcd426cae3ec3e8111ff730": {
|
||||
"binary_sensors": {
|
||||
"heating_state": true
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "1f9dcf83fd4e4b66b72ff787957bfe5d",
|
||||
"model": "Unknown",
|
||||
"name": "OnOff",
|
||||
"sensors": {
|
||||
"intended_boiler_temperature": 70.0,
|
||||
"modulation_level": 1,
|
||||
"water_temperature": 70.0
|
||||
}
|
||||
},
|
||||
"a28f588dc4a049a483fd03a30361ad3a": {
|
||||
"available": true,
|
||||
"dev_class": "settop_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "cd143c07248f491493cea0533bc3d669",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "Fibaro HC2",
|
||||
"sensors": {
|
||||
"electricity_consumed": 12.5,
|
||||
"electricity_consumed_interval": 3.8,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A13"
|
||||
},
|
||||
"a2c3583e0a6349358998b760cea82d2a": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2019-03-27T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "12493538af164a409c6a1c79e38afe1c",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Bios Cv Thermostatic Radiator ",
|
||||
"sensors": {
|
||||
"battery": 62,
|
||||
"setpoint": 13.0,
|
||||
"temperature": 17.2,
|
||||
"temperature_difference": -0.2,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A09"
|
||||
},
|
||||
"b310b72a0e354bfab43089919b9a88bf": {
|
||||
"available": true,
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2019-03-27T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "c50f167537524366a5af7aa3942feb1e",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Floor kraan",
|
||||
"sensors": {
|
||||
"setpoint": 21.5,
|
||||
"temperature": 26.0,
|
||||
"temperature_difference": 3.5,
|
||||
"valve_position": 100
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A02"
|
||||
},
|
||||
"b59bcebaf94b499ea7d46e4a66fb62d8": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-08-02T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "c50f167537524366a5af7aa3942feb1e",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Zone Lisa WK",
|
||||
"sensors": {
|
||||
"battery": 34,
|
||||
"setpoint": 21.5,
|
||||
"temperature": 20.9
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A07"
|
||||
},
|
||||
"c50f167537524366a5af7aa3942feb1e": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": [
|
||||
"CV Roan",
|
||||
"Bios Schema met Film Avond",
|
||||
"GF7 Woonkamer",
|
||||
"Badkamer Schema",
|
||||
"CV Jessie",
|
||||
"off"
|
||||
],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "heating",
|
||||
"dev_class": "climate",
|
||||
"model": "ThermoZone",
|
||||
"name": "Woonkamer",
|
||||
"preset_modes": ["home", "asleep", "away", "vacation", "no_frost"],
|
||||
"select_schedule": "GF7 Woonkamer",
|
||||
"sensors": {
|
||||
"electricity_consumed": 35.6,
|
||||
"electricity_produced": 0.0,
|
||||
"temperature": 20.9
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 21.5,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"thermostats": {
|
||||
"primary": ["b59bcebaf94b499ea7d46e4a66fb62d8"],
|
||||
"secondary": ["b310b72a0e354bfab43089919b9a88bf"]
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"cd0ddb54ef694e11ac18ed1cbce5dbbd": {
|
||||
"available": true,
|
||||
"dev_class": "vcr_plug",
|
||||
"firmware": "2019-06-21T02:00:00+02:00",
|
||||
"location": "cd143c07248f491493cea0533bc3d669",
|
||||
"model": "Plug",
|
||||
"model_id": "160-01",
|
||||
"name": "NAS",
|
||||
"sensors": {
|
||||
"electricity_consumed": 16.5,
|
||||
"electricity_consumed_interval": 0.5,
|
||||
"electricity_produced": 0.0,
|
||||
"electricity_produced_interval": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A14"
|
||||
},
|
||||
"d3da73bde12a47d5a6b8f9dad971f2ec": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2019-03-27T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "82fa13f017d240daa0d0ea1775420f24",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "Thermostatic Radiator Jessie",
|
||||
"sensors": {
|
||||
"battery": 62,
|
||||
"setpoint": 15.0,
|
||||
"temperature": 17.1,
|
||||
"temperature_difference": 0.1,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A10"
|
||||
},
|
||||
"df4a4a8169904cdb9c03d61a21f42140": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "zone_thermostat",
|
||||
"firmware": "2016-10-27T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "12493538af164a409c6a1c79e38afe1c",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Zone Lisa Bios",
|
||||
"sensors": {
|
||||
"battery": 67,
|
||||
"setpoint": 13.0,
|
||||
"temperature": 16.5
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A06"
|
||||
},
|
||||
"e7693eb9582644e5b865dba8d4447cf1": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2019-03-27T01:00:00+01:00",
|
||||
"hardware": "1",
|
||||
"location": "446ac08dd04d4eff8ac57489757b7314",
|
||||
"model": "Tom/Floor",
|
||||
"model_id": "106-03",
|
||||
"name": "CV Kraan Garage",
|
||||
"sensors": {
|
||||
"battery": 68,
|
||||
"setpoint": 5.5,
|
||||
"temperature": 15.6,
|
||||
"temperature_difference": 0.0,
|
||||
"valve_position": 0.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A11"
|
||||
},
|
||||
"f1fee6043d3642a9b0a65297455f008e": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"low_battery": false
|
||||
},
|
||||
"dev_class": "thermostatic_radiator_valve",
|
||||
"firmware": "2016-10-27T02:00:00+02:00",
|
||||
"hardware": "255",
|
||||
"location": "08963fec7c53423ca5680aa4cb502c63",
|
||||
"model": "Lisa",
|
||||
"model_id": "158-01",
|
||||
"name": "Thermostatic Radiator Badkamer 2",
|
||||
"sensors": {
|
||||
"battery": 92,
|
||||
"setpoint": 14.0,
|
||||
"temperature": 18.9
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": 0.0,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A08"
|
||||
},
|
||||
"fe799307f1624099878210aa0b9f1475": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": true
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "3.0.15",
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "1f9dcf83fd4e4b66b72ff787957bfe5d",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_open_therm",
|
||||
"name": "Adam",
|
||||
"notifications": {
|
||||
"af82e4ccf9c548528166d38e560662a4": {
|
||||
"warning": "Node Plug (with MAC address 000D6F000D13CB01, in room 'n.a.') has been unreachable since 23:03 2020-01-18. Please check the connection and restart the device."
|
||||
}
|
||||
},
|
||||
"select_regulation_mode": "heating",
|
||||
"sensors": {
|
||||
"outdoor_temperature": 7.81
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670101"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"015ae9ea3f964e668e490fa39da3870b": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "4.0.15",
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "a57efe5f145f498c9be62a9b63626fbf",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_thermo",
|
||||
"name": "Smile Anna",
|
||||
"notifications": {},
|
||||
"sensors": {
|
||||
"outdoor_temperature": 28.2
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"1cbf783bb11e4a7c8a6843dee3a86927": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"compressor_state": true,
|
||||
"cooling_enabled": true,
|
||||
"cooling_state": true,
|
||||
"dhw_state": false,
|
||||
"flame_state": false,
|
||||
"heating_state": false,
|
||||
"secondary_boiler_state": false
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "a57efe5f145f498c9be62a9b63626fbf",
|
||||
"max_dhw_temperature": {
|
||||
"lower_bound": 35.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 53.0,
|
||||
"upper_bound": 60.0
|
||||
},
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 1.0,
|
||||
"setpoint": 60.0,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"model": "Generic heater/cooler",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"dhw_temperature": 41.5,
|
||||
"intended_boiler_temperature": 0.0,
|
||||
"modulation_level": 40,
|
||||
"outdoor_air_temperature": 28.0,
|
||||
"return_temperature": 23.8,
|
||||
"water_pressure": 1.57,
|
||||
"water_temperature": 22.7
|
||||
},
|
||||
"switches": {
|
||||
"dhw_cm_switch": false
|
||||
},
|
||||
"vendor": "Techneco"
|
||||
},
|
||||
"3cb70739631c4d17a86b8b12e8a5161b": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": ["standaard", "off"],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "cooling",
|
||||
"dev_class": "thermostat",
|
||||
"firmware": "2018-02-08T11:15:53+01:00",
|
||||
"hardware": "6539-1301-5002",
|
||||
"location": "c784ee9fdab44e1395b8dee7d7a497d5",
|
||||
"model": "ThermoTouch",
|
||||
"name": "Anna",
|
||||
"preset_modes": ["no_frost", "home", "away", "asleep", "vacation"],
|
||||
"select_schedule": "standaard",
|
||||
"sensors": {
|
||||
"cooling_activation_outdoor_temperature": 21.0,
|
||||
"cooling_deactivation_threshold": 4.0,
|
||||
"illuminance": 86.0,
|
||||
"setpoint_high": 30.0,
|
||||
"setpoint_low": 20.5,
|
||||
"temperature": 26.3
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": -0.5,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 4.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint_high": 30.0,
|
||||
"setpoint_low": 20.5,
|
||||
"upper_bound": 30.0
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"015ae9ea3f964e668e490fa39da3870b": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "4.0.15",
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "a57efe5f145f498c9be62a9b63626fbf",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile_thermo",
|
||||
"name": "Smile Anna",
|
||||
"notifications": {},
|
||||
"sensors": {
|
||||
"outdoor_temperature": 28.2
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"1cbf783bb11e4a7c8a6843dee3a86927": {
|
||||
"available": true,
|
||||
"binary_sensors": {
|
||||
"compressor_state": false,
|
||||
"cooling_enabled": true,
|
||||
"cooling_state": false,
|
||||
"dhw_state": false,
|
||||
"flame_state": false,
|
||||
"heating_state": false,
|
||||
"secondary_boiler_state": false
|
||||
},
|
||||
"dev_class": "heater_central",
|
||||
"location": "a57efe5f145f498c9be62a9b63626fbf",
|
||||
"max_dhw_temperature": {
|
||||
"lower_bound": 35.0,
|
||||
"resolution": 0.01,
|
||||
"setpoint": 53.0,
|
||||
"upper_bound": 60.0
|
||||
},
|
||||
"maximum_boiler_temperature": {
|
||||
"lower_bound": 0.0,
|
||||
"resolution": 1.0,
|
||||
"setpoint": 60.0,
|
||||
"upper_bound": 100.0
|
||||
},
|
||||
"model": "Generic heater/cooler",
|
||||
"name": "OpenTherm",
|
||||
"sensors": {
|
||||
"dhw_temperature": 46.3,
|
||||
"intended_boiler_temperature": 18.0,
|
||||
"modulation_level": 0,
|
||||
"outdoor_air_temperature": 28.2,
|
||||
"return_temperature": 22.0,
|
||||
"water_pressure": 1.57,
|
||||
"water_temperature": 19.1
|
||||
},
|
||||
"switches": {
|
||||
"dhw_cm_switch": false
|
||||
},
|
||||
"vendor": "Techneco"
|
||||
},
|
||||
"3cb70739631c4d17a86b8b12e8a5161b": {
|
||||
"active_preset": "home",
|
||||
"available_schedules": ["standaard", "off"],
|
||||
"climate_mode": "auto",
|
||||
"control_state": "idle",
|
||||
"dev_class": "thermostat",
|
||||
"firmware": "2018-02-08T11:15:53+01:00",
|
||||
"hardware": "6539-1301-5002",
|
||||
"location": "c784ee9fdab44e1395b8dee7d7a497d5",
|
||||
"model": "ThermoTouch",
|
||||
"name": "Anna",
|
||||
"preset_modes": ["no_frost", "home", "away", "asleep", "vacation"],
|
||||
"select_schedule": "standaard",
|
||||
"sensors": {
|
||||
"cooling_activation_outdoor_temperature": 25.0,
|
||||
"cooling_deactivation_threshold": 4.0,
|
||||
"illuminance": 86.0,
|
||||
"setpoint_high": 30.0,
|
||||
"setpoint_low": 20.5,
|
||||
"temperature": 23.0
|
||||
},
|
||||
"temperature_offset": {
|
||||
"lower_bound": -2.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint": -0.5,
|
||||
"upper_bound": 2.0
|
||||
},
|
||||
"thermostat": {
|
||||
"lower_bound": 4.0,
|
||||
"resolution": 0.1,
|
||||
"setpoint_high": 30.0,
|
||||
"setpoint_low": 20.5,
|
||||
"upper_bound": 30.0
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"a455b61e52394b2db5081ce025a430f3": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": false
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "4.4.2",
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "a455b61e52394b2db5081ce025a430f3",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile",
|
||||
"name": "Smile P1",
|
||||
"notifications": {},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"ba4de7613517478da82dd9b6abea36af": {
|
||||
"available": true,
|
||||
"dev_class": "smartmeter",
|
||||
"location": "a455b61e52394b2db5081ce025a430f3",
|
||||
"model": "KFM5KAIFA-METER",
|
||||
"name": "P1",
|
||||
"sensors": {
|
||||
"electricity_consumed_off_peak_cumulative": 17643.423,
|
||||
"electricity_consumed_off_peak_interval": 15,
|
||||
"electricity_consumed_off_peak_point": 486,
|
||||
"electricity_consumed_peak_cumulative": 13966.608,
|
||||
"electricity_consumed_peak_interval": 0,
|
||||
"electricity_consumed_peak_point": 0,
|
||||
"electricity_phase_one_consumed": 486,
|
||||
"electricity_phase_one_produced": 0,
|
||||
"electricity_produced_off_peak_cumulative": 0.0,
|
||||
"electricity_produced_off_peak_interval": 0,
|
||||
"electricity_produced_off_peak_point": 0,
|
||||
"electricity_produced_peak_cumulative": 0.0,
|
||||
"electricity_produced_peak_interval": 0,
|
||||
"electricity_produced_peak_point": 0,
|
||||
"net_electricity_cumulative": 31610.031,
|
||||
"net_electricity_point": 486
|
||||
},
|
||||
"vendor": "SHENZHEN KAIFA TECHNOLOGY \uff08CHENGDU\uff09 CO., LTD."
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"03e65b16e4b247a29ae0d75a78cb492e": {
|
||||
"binary_sensors": {
|
||||
"plugwise_notification": true
|
||||
},
|
||||
"dev_class": "gateway",
|
||||
"firmware": "4.4.2",
|
||||
"hardware": "AME Smile 2.0 board",
|
||||
"location": "03e65b16e4b247a29ae0d75a78cb492e",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"model_id": "smile",
|
||||
"name": "Smile P1",
|
||||
"notifications": {
|
||||
"97a04c0c263049b29350a660b4cdd01e": {
|
||||
"warning": "The Smile P1 is not connected to a smart meter."
|
||||
}
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"b82b6b3322484f2ea4e25e0bd5f3d61f": {
|
||||
"available": true,
|
||||
"dev_class": "smartmeter",
|
||||
"location": "03e65b16e4b247a29ae0d75a78cb492e",
|
||||
"model": "XMX5LGF0010453051839",
|
||||
"name": "P1",
|
||||
"sensors": {
|
||||
"electricity_consumed_off_peak_cumulative": 70537.898,
|
||||
"electricity_consumed_off_peak_interval": 314,
|
||||
"electricity_consumed_off_peak_point": 5553,
|
||||
"electricity_consumed_peak_cumulative": 161328.641,
|
||||
"electricity_consumed_peak_interval": 0,
|
||||
"electricity_consumed_peak_point": 0,
|
||||
"electricity_phase_one_consumed": 1763,
|
||||
"electricity_phase_one_produced": 0,
|
||||
"electricity_phase_three_consumed": 2080,
|
||||
"electricity_phase_three_produced": 0,
|
||||
"electricity_phase_two_consumed": 1703,
|
||||
"electricity_phase_two_produced": 0,
|
||||
"electricity_produced_off_peak_cumulative": 0.0,
|
||||
"electricity_produced_off_peak_interval": 0,
|
||||
"electricity_produced_off_peak_point": 0,
|
||||
"electricity_produced_peak_cumulative": 0.0,
|
||||
"electricity_produced_peak_interval": 0,
|
||||
"electricity_produced_peak_point": 0,
|
||||
"gas_consumed_cumulative": 16811.37,
|
||||
"gas_consumed_interval": 0.06,
|
||||
"net_electricity_cumulative": 231866.539,
|
||||
"net_electricity_point": 5553,
|
||||
"voltage_phase_one": 233.2,
|
||||
"voltage_phase_three": 234.7,
|
||||
"voltage_phase_two": 234.4
|
||||
},
|
||||
"vendor": "XEMEX NV"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"938696c4bcdb4b8a9a595cb38ed43913": {
|
||||
"dev_class": "smartmeter",
|
||||
"location": "938696c4bcdb4b8a9a595cb38ed43913",
|
||||
"model": "Ene5\\T210-DESMR5.0",
|
||||
"name": "P1",
|
||||
"sensors": {
|
||||
"electricity_consumed_off_peak_cumulative": 1642.74,
|
||||
"electricity_consumed_off_peak_interval": 0,
|
||||
"electricity_consumed_peak_cumulative": 1155.195,
|
||||
"electricity_consumed_peak_interval": 250,
|
||||
"electricity_consumed_point": 458,
|
||||
"electricity_produced_off_peak_cumulative": 482.598,
|
||||
"electricity_produced_off_peak_interval": 0,
|
||||
"electricity_produced_peak_cumulative": 1296.136,
|
||||
"electricity_produced_peak_interval": 0,
|
||||
"electricity_produced_point": 0,
|
||||
"gas_consumed_cumulative": 584.433,
|
||||
"gas_consumed_interval": 0.016,
|
||||
"net_electricity_cumulative": 1019.201,
|
||||
"net_electricity_point": 458
|
||||
},
|
||||
"vendor": "Ene5\\T210-DESMR5.0"
|
||||
},
|
||||
"aaaa0000aaaa0000aaaa0000aaaa00aa": {
|
||||
"dev_class": "gateway",
|
||||
"firmware": "2.5.9",
|
||||
"location": "938696c4bcdb4b8a9a595cb38ed43913",
|
||||
"mac_address": "012345670001",
|
||||
"model": "Gateway",
|
||||
"name": "Smile P1",
|
||||
"vendor": "Plugwise"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
"0000aaaa0000aaaa0000aaaa0000aa00": {
|
||||
"dev_class": "gateway",
|
||||
"firmware": "3.1.11",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"mac_address": "01:23:45:67:89:AB",
|
||||
"model": "Gateway",
|
||||
"name": "Stretch",
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670101"
|
||||
},
|
||||
"059e4d03c7a34d278add5c7a4a781d19": {
|
||||
"dev_class": "washingmachine",
|
||||
"firmware": "2011-06-27T10:52:18+02:00",
|
||||
"hardware": "0000-0440-0107",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"model": "Circle type F",
|
||||
"name": "Wasmachine (52AC1)",
|
||||
"sensors": {
|
||||
"electricity_consumed": 0.0,
|
||||
"electricity_consumed_interval": 0.0,
|
||||
"electricity_produced": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": true,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A01"
|
||||
},
|
||||
"5871317346d045bc9f6b987ef25ee638": {
|
||||
"dev_class": "water_heater_vessel",
|
||||
"firmware": "2011-06-27T10:52:18+02:00",
|
||||
"hardware": "6539-0701-4028",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"model": "Circle type F",
|
||||
"name": "Boiler (1EB31)",
|
||||
"sensors": {
|
||||
"electricity_consumed": 1.19,
|
||||
"electricity_consumed_interval": 0.0,
|
||||
"electricity_produced": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": false,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A07"
|
||||
},
|
||||
"aac7b735042c4832ac9ff33aae4f453b": {
|
||||
"dev_class": "dishwasher",
|
||||
"firmware": "2011-06-27T10:52:18+02:00",
|
||||
"hardware": "6539-0701-4022",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"model": "Circle type F",
|
||||
"name": "Vaatwasser (2a1ab)",
|
||||
"sensors": {
|
||||
"electricity_consumed": 0.0,
|
||||
"electricity_consumed_interval": 0.71,
|
||||
"electricity_produced": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": false,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A02"
|
||||
},
|
||||
"cfe95cf3de1948c0b8955125bf754614": {
|
||||
"dev_class": "dryer",
|
||||
"firmware": "2011-06-27T10:52:18+02:00",
|
||||
"hardware": "0000-0440-0107",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"model": "Circle type F",
|
||||
"name": "Droger (52559)",
|
||||
"sensors": {
|
||||
"electricity_consumed": 0.0,
|
||||
"electricity_consumed_interval": 0.0,
|
||||
"electricity_produced": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": false,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "ABCD012345670A04"
|
||||
},
|
||||
"d03738edfcc947f7b8f4573571d90d2d": {
|
||||
"dev_class": "switching",
|
||||
"members": [
|
||||
"059e4d03c7a34d278add5c7a4a781d19",
|
||||
"cfe95cf3de1948c0b8955125bf754614"
|
||||
],
|
||||
"model": "Switchgroup",
|
||||
"name": "Schakel",
|
||||
"switches": {
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"d950b314e9d8499f968e6db8d82ef78c": {
|
||||
"dev_class": "report",
|
||||
"members": [
|
||||
"059e4d03c7a34d278add5c7a4a781d19",
|
||||
"5871317346d045bc9f6b987ef25ee638",
|
||||
"aac7b735042c4832ac9ff33aae4f453b",
|
||||
"cfe95cf3de1948c0b8955125bf754614",
|
||||
"e1c884e7dede431dadee09506ec4f859"
|
||||
],
|
||||
"model": "Switchgroup",
|
||||
"name": "Stroomvreters",
|
||||
"switches": {
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise"
|
||||
},
|
||||
"e1c884e7dede431dadee09506ec4f859": {
|
||||
"dev_class": "refrigerator",
|
||||
"firmware": "2011-06-27T10:47:37+02:00",
|
||||
"hardware": "6539-0700-7330",
|
||||
"location": "0000aaaa0000aaaa0000aaaa0000aa00",
|
||||
"model": "Circle+ type F",
|
||||
"name": "Koelkast (92C4A)",
|
||||
"sensors": {
|
||||
"electricity_consumed": 50.5,
|
||||
"electricity_consumed_interval": 0.08,
|
||||
"electricity_produced": 0.0
|
||||
},
|
||||
"switches": {
|
||||
"lock": false,
|
||||
"relay": true
|
||||
},
|
||||
"vendor": "Plugwise",
|
||||
"zigbee_mac_address": "0123456789AB"
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -12,6 +12,7 @@ from tests.common import MockConfigEntry
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
("entity_id", "expected_state"),
|
||||
[
|
||||
|
@ -35,6 +36,7 @@ async def test_anna_climate_binary_sensor_entities(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_climate_binary_sensor_change(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
|
|
|
@ -80,6 +80,7 @@ async def test_adam_climate_entity_attributes(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [False], indirect=True)
|
||||
async def test_adam_2_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
|
@ -108,6 +109,7 @@ async def test_adam_2_climate_entity_attributes(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_cooling"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_adam_3_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
|
@ -125,18 +127,10 @@ async def test_adam_3_climate_entity_attributes(
|
|||
HVACMode.COOL,
|
||||
]
|
||||
data = mock_smile_adam_heat_cool.async_update.return_value
|
||||
data.devices["da224107914542988a88561b4452b0f6"]["select_regulation_mode"] = (
|
||||
"heating"
|
||||
)
|
||||
data.devices["f2bf9048bef64cc5b6d5110154e33c81"]["control_state"] = (
|
||||
HVACAction.HEATING
|
||||
)
|
||||
data.devices["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"][
|
||||
"cooling_state"
|
||||
] = False
|
||||
data.devices["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"][
|
||||
"heating_state"
|
||||
] = True
|
||||
data["da224107914542988a88561b4452b0f6"]["select_regulation_mode"] = "heating"
|
||||
data["f2bf9048bef64cc5b6d5110154e33c81"]["control_state"] = HVACAction.HEATING
|
||||
data["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"]["cooling_state"] = False
|
||||
data["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"]["heating_state"] = True
|
||||
with patch(HA_PLUGWISE_SMILE_ASYNC_UPDATE, return_value=data):
|
||||
freezer.tick(timedelta(minutes=1))
|
||||
async_fire_time_changed(hass)
|
||||
|
@ -153,18 +147,10 @@ async def test_adam_3_climate_entity_attributes(
|
|||
]
|
||||
|
||||
data = mock_smile_adam_heat_cool.async_update.return_value
|
||||
data.devices["da224107914542988a88561b4452b0f6"]["select_regulation_mode"] = (
|
||||
"cooling"
|
||||
)
|
||||
data.devices["f2bf9048bef64cc5b6d5110154e33c81"]["control_state"] = (
|
||||
HVACAction.COOLING
|
||||
)
|
||||
data.devices["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"][
|
||||
"cooling_state"
|
||||
] = True
|
||||
data.devices["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"][
|
||||
"heating_state"
|
||||
] = False
|
||||
data["da224107914542988a88561b4452b0f6"]["select_regulation_mode"] = "cooling"
|
||||
data["f2bf9048bef64cc5b6d5110154e33c81"]["control_state"] = HVACAction.COOLING
|
||||
data["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"]["cooling_state"] = True
|
||||
data["056ee145a816487eaa69243c3280f8bf"]["binary_sensors"]["heating_state"] = False
|
||||
with patch(HA_PLUGWISE_SMILE_ASYNC_UPDATE, return_value=data):
|
||||
freezer.tick(timedelta(minutes=1))
|
||||
async_fire_time_changed(hass)
|
||||
|
@ -323,6 +309,7 @@ async def test_adam_climate_off_mode_change(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
|
@ -349,6 +336,7 @@ async def test_anna_climate_entity_attributes(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_anna_heatpump_cooling"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_2_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
|
@ -369,6 +357,7 @@ async def test_anna_2_climate_entity_attributes(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_anna_heatpump_idle"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_3_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
|
@ -386,6 +375,7 @@ async def test_anna_3_climate_entity_attributes(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_climate_entity_climate_changes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
|
@ -441,7 +431,7 @@ async def test_anna_climate_entity_climate_changes(
|
|||
)
|
||||
|
||||
data = mock_smile_anna.async_update.return_value
|
||||
data.devices["3cb70739631c4d17a86b8b12e8a5161b"].pop("available_schedules")
|
||||
data["3cb70739631c4d17a86b8b12e8a5161b"].pop("available_schedules")
|
||||
with patch(HA_PLUGWISE_SMILE_ASYNC_UPDATE, return_value=data):
|
||||
freezer.tick(timedelta(minutes=1))
|
||||
async_fire_time_changed(hass)
|
||||
|
|
|
@ -62,6 +62,7 @@ TOM = {
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_load_unload_config_entry(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
|
@ -82,6 +83,7 @@ async def test_load_unload_config_entry(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
("side_effect", "entry_state"),
|
||||
[
|
||||
|
@ -138,6 +140,7 @@ async def test_device_in_dr(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
("entitydata", "old_unique_id", "new_unique_id"),
|
||||
[
|
||||
|
@ -232,6 +235,7 @@ async def test_migrate_unique_id_relay(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_update_device(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
|
@ -265,8 +269,8 @@ async def test_update_device(
|
|||
)
|
||||
|
||||
# Add a 2nd Tom/Floor
|
||||
data.devices.update(TOM)
|
||||
data.devices["f871b8c4d63549319221e294e4f88074"]["thermostats"].update(
|
||||
data.update(TOM)
|
||||
data["f871b8c4d63549319221e294e4f88074"]["thermostats"].update(
|
||||
{
|
||||
"secondary": [
|
||||
"01234567890abcdefghijklmnopqrstu",
|
||||
|
@ -301,10 +305,10 @@ async def test_update_device(
|
|||
assert "01234567890abcdefghijklmnopqrstu" in item_list
|
||||
|
||||
# Remove the existing Tom/Floor
|
||||
data.devices["f871b8c4d63549319221e294e4f88074"]["thermostats"].update(
|
||||
data["f871b8c4d63549319221e294e4f88074"]["thermostats"].update(
|
||||
{"secondary": ["01234567890abcdefghijklmnopqrstu"]}
|
||||
)
|
||||
data.devices.pop("1772a4ea304041adb83f357b751341ff")
|
||||
data.pop("1772a4ea304041adb83f357b751341ff")
|
||||
with patch(HA_PLUGWISE_SMILE_ASYNC_UPDATE, return_value=data):
|
||||
freezer.tick(timedelta(minutes=1))
|
||||
async_fire_time_changed(hass)
|
||||
|
|
|
@ -17,6 +17,7 @@ from tests.common import MockConfigEntry
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_number_entities(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
|
@ -27,6 +28,7 @@ async def test_anna_number_entities(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_max_boiler_temp_change(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
|
@ -48,6 +50,7 @@ async def test_anna_max_boiler_temp_change(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [False], indirect=True)
|
||||
async def test_adam_dhw_setpoint_change(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
|
|
|
@ -51,6 +51,7 @@ async def test_adam_change_select_entity(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_cooling"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_adam_select_regulation_mode(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
|
@ -95,6 +96,7 @@ async def test_legacy_anna_select_entities(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_adam_select_unavailable_regulation_mode(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
|
|
|
@ -95,6 +95,7 @@ async def test_unique_id_migration_humidity(
|
|||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
||||
async def test_anna_as_smt_climate_sensor_entities(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
|
|
Loading…
Reference in New Issue