2021-03-07 05:46:28 +01:00
|
|
|
{ stdenv
|
|
|
|
, lib
|
|
|
|
, fetchFromGitHub
|
|
|
|
, python3
|
2021-05-18 02:43:52 +02:00
|
|
|
, inetutils
|
2021-03-07 05:46:28 +01:00
|
|
|
, nixosTests
|
2018-07-29 21:49:46 +02:00
|
|
|
|
|
|
|
# Look up dependencies of specified components in component-packages.nix
|
2019-12-20 08:25:56 +01:00
|
|
|
, extraComponents ? [ ]
|
2018-07-29 21:49:46 +02:00
|
|
|
|
|
|
|
# Additional packages to add to propagatedBuildInputs
|
2018-01-14 22:26:52 +01:00
|
|
|
, extraPackages ? ps: []
|
2018-07-29 21:49:46 +02:00
|
|
|
|
2018-08-21 02:27:55 +02:00
|
|
|
# Override Python packages using
|
|
|
|
# self: super: { pkg = super.pkg.overridePythonAttrs (oldAttrs: { ... }); }
|
|
|
|
# Applied after defaultOverrides
|
2021-02-04 15:02:14 +01:00
|
|
|
, packageOverrides ? self: super: {}
|
2018-08-21 02:27:55 +02:00
|
|
|
|
2018-07-29 21:49:46 +02:00
|
|
|
# Skip pip install of required packages on startup
|
2018-01-14 22:26:52 +01:00
|
|
|
, skipPip ? true }:
|
|
|
|
|
|
|
|
let
|
2018-08-21 02:27:55 +02:00
|
|
|
defaultOverrides = [
|
2021-06-03 03:43:31 +02:00
|
|
|
# Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
|
|
|
|
|
2021-06-21 03:21:38 +02:00
|
|
|
# Pinned due to API changes in aiopvpc>=2.2.0, remove after 2021.7.0
|
2021-06-03 03:43:31 +02:00
|
|
|
(self: super: {
|
2021-06-21 03:21:38 +02:00
|
|
|
aiopvpc = super.aiopvpc.overridePythonAttrs (oldAttr: rec {
|
|
|
|
version = "2.1.2";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "azogue";
|
|
|
|
repo = "aiopvpc";
|
|
|
|
rev = "v${version}";
|
|
|
|
sha256 = "0s8ki46dh39kw6qvsjcfcxa0gblyi33m3hry137kbi4lw5ws6qhr";
|
2021-06-03 03:43:31 +02:00
|
|
|
};
|
|
|
|
});
|
|
|
|
})
|
2018-11-10 13:42:15 +01:00
|
|
|
|
2021-03-21 04:14:48 +01:00
|
|
|
# Pinned due to API changes in iaqualink>=2.0, remove after
|
|
|
|
# https://github.com/home-assistant/core/pull/48137 was merged
|
|
|
|
(self: super: {
|
|
|
|
iaqualink = super.iaqualink.overridePythonAttrs (oldAttrs: rec {
|
2021-06-15 21:11:09 +02:00
|
|
|
version = "0.3.90";
|
2021-03-21 04:14:48 +01:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "flz";
|
|
|
|
repo = "iaqualink-py";
|
2021-03-22 21:14:43 +01:00
|
|
|
rev = "v${version}";
|
2021-06-15 21:11:09 +02:00
|
|
|
sha256 = "0c8ckbbr1n8gx5k63ymgyfkbz3d0rbdvghg8fqdvbg4nrigrs5v0";
|
2021-03-21 04:14:48 +01:00
|
|
|
};
|
|
|
|
checkInputs = oldAttrs.checkInputs ++ [ python3.pkgs.asynctest ];
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
2021-03-27 02:25:31 +01:00
|
|
|
# Pinned due to API changes in pyjwt>=2.0
|
2021-05-10 17:50:08 +02:00
|
|
|
(self: super: {
|
|
|
|
pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "1.7.1";
|
|
|
|
src = oldAttrs.src.override {
|
2021-06-03 03:43:31 +02:00
|
|
|
inherit version;
|
2021-05-10 17:50:08 +02:00
|
|
|
sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
|
|
|
|
};
|
|
|
|
disabledTests = [
|
|
|
|
"test_ec_verify_should_return_false_if_signature_invalid"
|
|
|
|
];
|
|
|
|
});
|
|
|
|
})
|
2021-03-27 02:25:31 +01:00
|
|
|
|
2021-02-24 20:10:59 +01:00
|
|
|
# Pinned due to bug in ring-doorbell 0.7.0
|
|
|
|
# https://github.com/tchellomello/python-ring-doorbell/issues/240
|
|
|
|
(mkOverride "ring-doorbell" "0.6.2"
|
|
|
|
"fbd537722a27b3b854c26506d894b7399bb8dc57ff36083285971227a2d46560")
|
|
|
|
|
2021-06-21 03:21:38 +02:00
|
|
|
# Pinned due to API changes in pyatmo>=5.1.0
|
|
|
|
(self: super: {
|
|
|
|
pyatmo = super.pyatmo.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "5.0.1";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "jabesq";
|
|
|
|
repo = "pyatmo";
|
|
|
|
rev = "v${version}";
|
|
|
|
sha256 = "0can9v602iqfn0l01fd7gr63qzvcngfm0qka4s1x0pldh6avxmfh";
|
|
|
|
};
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
|
|
|
# Pinned due to API changes in pyatv>=0.8.0
|
|
|
|
(self: super: {
|
|
|
|
pyatv = super.pyatv.overridePythonAttrs (olAttrs: rec {
|
|
|
|
version = "0.7.7";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "postlund";
|
|
|
|
repo = "pyatv";
|
|
|
|
rev = "v${version}";
|
|
|
|
sha256 = "sha256-dPnh8XZN7ZVR2rYNnj7GSYXW5I2GNQwD/KRDTgs2AtI=";
|
|
|
|
};
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
2021-05-18 01:50:01 +02:00
|
|
|
# Pinned due to API changes in pyflunearyou>=2.0
|
|
|
|
(self: super: {
|
|
|
|
pyflunearyou = super.pyflunearyou.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "1.0.7";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "bachya";
|
|
|
|
repo = "pyflunearyou";
|
|
|
|
rev = version;
|
|
|
|
sha256 = "0hq55k298m9a90qb3lasw9bi093hzndrah00rfq94bp53aq0is99";
|
|
|
|
};
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace pyproject.toml \
|
|
|
|
--replace "poetry.masonry.api" "poetry.core.masonry.api" \
|
|
|
|
--replace 'msgpack = "^0.6.2"' 'msgpack = "*"' \
|
|
|
|
--replace 'ujson = "^1.35"' 'ujson = "*"'
|
|
|
|
'';
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
home-assistant: pin pylast at 4.2.0
The following test failure occurs with 4.2.1, due to `network` not being
allowed to be None after https://github.com/pylast/pylast/commit/6fe9aa632b2147eaf7278230def9ea735eb73f4e.
_________________________ test_update_playing[pyloop] __________________________
[gw20] linux -- Python 3.8.9 /nix/store/hq6mrm0pc6xn6j8y6lm4qcgg9rwmqd8q-python3-3.8.9/bin/python3.8
hass = <homeassistant.core.HomeAssistant object at 0x7ffdcba15700>
lastfm_network = <MagicMock name='LastFMNetwork' id='140728019800752'>
async def test_update_playing(hass, lastfm_network):
"""Test update when song playing."""
lastfm_network.return_value.get_user.return_value = MockUser(
> Track("artist", "title", None)
)
hass = <homeassistant.core.HomeAssistant object at 0x7ffdcba15700>
lastfm_network = <MagicMock name='LastFMNetwork' id='140728019800752'>
tests/components/lastfm/test_sensor.py:70:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/f0ci60zk59rz5767l9lfy7q767zna6j5-python3.8-pylast-4.2.1/lib/python3.8/site-packages/pylast/__init__.py:2095: in __init__
super().__init__(artist, title, network, "track", username, info)
__class__ = <class 'pylast.Track'>
artist = 'artist'
info = None
network = None
self = pylast.Track('artist', 'title', None)
title = 'title'
username = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = pylast.Track('artist', 'title', None), artist = 'artist', title = 'title'
network = None, ws_prefix = 'track', username = None, info = {}
def __init__(self, artist, title, network, ws_prefix, username=None, info=None):
"""
Create an opus instance.
# Parameters:
* artist: An artist name or an Artist object.
* title: The album or track title.
* ws_prefix: 'album' or 'track'
"""
if info is None:
info = {}
super().__init__(network=network, ws_prefix=ws_prefix)
if isinstance(artist, Artist):
self.artist = artist
else:
self.artist = Artist(artist, self.network)
self.title = title
self.username = (
> username if username else network.username
) # Default to current user
E AttributeError: 'NoneType' object has no attribute 'username'
__class__ = <class 'pylast._Opus'>
artist = 'artist'
info = {}
network = None
self = pylast.Track('artist', 'title', None)
title = 'title'
username = None
ws_prefix = 'track'
/nix/store/f0ci60zk59rz5767l9lfy7q767zna6j5-python3.8-pylast-4.2.1/lib/python3.8/site-packages/pylast/__init__.py:1520: AttributeError
2021-05-18 02:37:54 +02:00
|
|
|
# Pinned due to API changes in pylast 4.2.1
|
|
|
|
(mkOverride "pylast" "4.2.0"
|
|
|
|
"0zd0dn2l738ndz62vpa751z0ldnm91dcz9zzbvxv53r08l0s9yf3")
|
|
|
|
|
2021-05-18 01:58:52 +02:00
|
|
|
# Pinned due to API changes in pyopenuv>=1.1.0
|
|
|
|
(self: super: {
|
|
|
|
pyopenuv = super.pyopenuv.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "1.0.13";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "bachya";
|
|
|
|
repo = "pyopenuv";
|
|
|
|
rev = version;
|
|
|
|
sha256 = "1gx9xjkyvqqy8410lnbshq1j5y4cb0cdc4m505g17rwdzdwb01y8";
|
|
|
|
};
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace pyproject.toml \
|
|
|
|
--replace "poetry.masonry.api" "poetry.core.masonry.api"
|
|
|
|
'';
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
2021-04-12 01:48:30 +02:00
|
|
|
# Pinned due to API changes in pyruckus>0.12
|
|
|
|
(self: super: {
|
|
|
|
pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "0.12";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "gabe565";
|
|
|
|
repo = "pyruckus";
|
|
|
|
rev = version;
|
|
|
|
sha256 = "0ykv6r6blbj3fg9fplk9i7xclkv5d93rwvx0fm5s8ms9f2s9ih8z";
|
|
|
|
};
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
2021-06-21 03:21:38 +02:00
|
|
|
(mkOverride "pysma" "0.4.3" "sha256-vriMnJFS7yfTyDT1f4sx1xEBTQjqc4ZHmkdHp1vcd+Q=")
|
|
|
|
|
2021-06-18 01:19:46 +02:00
|
|
|
# Pinned due to API changes in eebrightbox>=0.0.5
|
|
|
|
(self: super: {
|
|
|
|
eebrightbox = super.eebrightbox.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "0.0.4";
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "krygal";
|
|
|
|
repo = "eebrightbox";
|
|
|
|
rev = version;
|
|
|
|
sha256 = "0d8mmpwgrd7gymw5263r1v2wjv6dx6w6pq13d62fkfm4h2hya4a4";
|
|
|
|
};
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
2021-06-15 15:28:31 +02:00
|
|
|
# home-assistant-frontend does not exist in python3.pkgs
|
2018-08-21 02:27:55 +02:00
|
|
|
(self: super: {
|
2021-06-15 15:28:31 +02:00
|
|
|
home-assistant-frontend = self.callPackage ./frontend.nix { };
|
2018-08-21 02:27:55 +02:00
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
mkOverride = attrname: version: sha256:
|
|
|
|
self: super: {
|
|
|
|
${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
|
|
|
|
inherit version;
|
2018-05-11 19:39:37 +02:00
|
|
|
src = oldAttrs.src.override {
|
2018-08-21 02:27:55 +02:00
|
|
|
inherit version sha256;
|
2018-05-11 19:39:37 +02:00
|
|
|
};
|
|
|
|
});
|
2018-01-14 22:26:52 +01:00
|
|
|
};
|
2019-07-25 11:51:55 +02:00
|
|
|
|
2018-12-12 14:01:39 +01:00
|
|
|
py = python3.override {
|
2018-08-21 02:27:55 +02:00
|
|
|
# Put packageOverrides at the start so they are applied after defaultOverrides
|
|
|
|
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([ packageOverrides ] ++ defaultOverrides);
|
2018-01-14 22:26:52 +01:00
|
|
|
};
|
|
|
|
|
2018-02-01 13:42:07 +01:00
|
|
|
componentPackages = import ./component-packages.nix;
|
|
|
|
|
|
|
|
availableComponents = builtins.attrNames componentPackages.components;
|
|
|
|
|
|
|
|
getPackages = component: builtins.getAttr component componentPackages.components;
|
|
|
|
|
2018-04-08 13:21:52 +02:00
|
|
|
componentBuildInputs = lib.concatMap (component: getPackages component py.pkgs) extraComponents;
|
2018-02-01 13:42:07 +01:00
|
|
|
|
2018-01-14 22:26:52 +01:00
|
|
|
# Ensure that we are using a consistent package set
|
|
|
|
extraBuildInputs = extraPackages py.pkgs;
|
|
|
|
|
2018-02-01 13:42:07 +01:00
|
|
|
# Don't forget to run parse-requirements.py after updating
|
2021-06-22 03:28:11 +02:00
|
|
|
hassVersion = "2021.6.6";
|
2018-02-01 13:42:07 +01:00
|
|
|
|
2018-01-14 22:26:52 +01:00
|
|
|
in with py.pkgs; buildPythonApplication rec {
|
|
|
|
pname = "homeassistant";
|
2018-02-01 13:42:07 +01:00
|
|
|
version = assert (componentPackages.version == hassVersion); hassVersion;
|
2018-01-14 22:26:52 +01:00
|
|
|
|
2020-10-07 20:28:25 +02:00
|
|
|
# check REQUIRED_PYTHON_VER in homeassistant/const.py
|
2021-03-03 22:21:01 +01:00
|
|
|
disabled = pythonOlder "3.8";
|
2020-02-26 16:51:25 +01:00
|
|
|
|
2021-01-07 00:20:39 +01:00
|
|
|
# don't try and fail to strip 6600+ python files, it takes minutes!
|
|
|
|
dontStrip = true;
|
|
|
|
|
2018-01-14 22:26:52 +01:00
|
|
|
# PyPI tarball is missing tests/ directory
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "home-assistant";
|
2020-05-20 23:41:42 +02:00
|
|
|
repo = "core";
|
2018-01-14 22:26:52 +01:00
|
|
|
rev = version;
|
2021-06-22 03:28:11 +02:00
|
|
|
sha256 = "0r8l2qya9pdl65kq3xrnb1vhmbnxm3bj12hn1wyxmw56l8m9l5d5";
|
2018-01-14 22:26:52 +01:00
|
|
|
};
|
|
|
|
|
2020-11-04 12:52:54 +01:00
|
|
|
# leave this in, so users don't have to constantly update their downstream patch handling
|
2021-03-07 05:46:28 +01:00
|
|
|
patches = [
|
|
|
|
];
|
2020-11-04 12:52:54 +01:00
|
|
|
|
2020-08-18 10:07:27 +02:00
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace setup.py \
|
2021-06-03 03:43:31 +02:00
|
|
|
--replace "attrs==21.2.0" "attrs" \
|
|
|
|
--replace "awesomeversion==21.4.0" "awesomeversion" \
|
2021-04-07 20:34:08 +02:00
|
|
|
--replace "bcrypt==3.1.7" "bcrypt" \
|
2021-03-03 22:21:01 +01:00
|
|
|
--replace "cryptography==3.3.2" "cryptography" \
|
2020-12-11 14:30:12 +01:00
|
|
|
--replace "pip>=8.0.3,<20.3" "pip" \
|
2021-04-07 20:34:08 +02:00
|
|
|
--replace "ruamel.yaml==0.15.100" "ruamel.yaml"
|
2020-10-07 20:28:25 +02:00
|
|
|
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
|
2020-08-18 10:07:27 +02:00
|
|
|
'';
|
|
|
|
|
2018-01-14 22:26:52 +01:00
|
|
|
propagatedBuildInputs = [
|
2021-06-15 21:16:08 +02:00
|
|
|
# Only packages required in setup.py
|
2021-02-04 17:36:21 +01:00
|
|
|
aiohttp
|
|
|
|
astral
|
|
|
|
async-timeout
|
|
|
|
attrs
|
2021-02-05 14:48:53 +01:00
|
|
|
awesomeversion
|
2021-02-04 17:36:21 +01:00
|
|
|
bcrypt
|
|
|
|
certifi
|
|
|
|
ciso8601
|
|
|
|
cryptography
|
|
|
|
httpx
|
|
|
|
jinja2
|
|
|
|
pip
|
|
|
|
pyjwt
|
|
|
|
python-slugify
|
|
|
|
pytz
|
|
|
|
pyyaml
|
|
|
|
requests
|
|
|
|
ruamel_yaml
|
|
|
|
voluptuous
|
|
|
|
voluptuous-serialize
|
|
|
|
yarl
|
2021-06-03 03:43:31 +02:00
|
|
|
] ++ lib.optionals (pythonOlder "3.9") [
|
|
|
|
backports-zoneinfo
|
2018-02-01 13:42:07 +01:00
|
|
|
] ++ componentBuildInputs ++ extraBuildInputs;
|
2018-01-14 22:26:52 +01:00
|
|
|
|
2021-02-06 04:47:04 +01:00
|
|
|
makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
|
|
|
|
|
2020-05-06 08:27:19 +02:00
|
|
|
# upstream only tests on Linux, so do we.
|
|
|
|
doCheck = stdenv.isLinux;
|
|
|
|
|
2018-01-14 22:26:52 +01:00
|
|
|
checkInputs = [
|
2021-05-10 21:25:43 +02:00
|
|
|
# test infrastructure (selectively from requirement_test.txt)
|
2021-02-04 17:36:21 +01:00
|
|
|
pytest-aiohttp
|
2021-05-07 17:22:57 +02:00
|
|
|
pytest-mock
|
2021-03-02 17:56:33 +01:00
|
|
|
pytest-rerunfailures
|
2021-02-04 17:36:21 +01:00
|
|
|
pytest-xdist
|
|
|
|
pytestCheckHook
|
|
|
|
requests-mock
|
2021-05-10 21:25:43 +02:00
|
|
|
jsonpickle
|
2021-02-06 04:47:04 +01:00
|
|
|
respx
|
2021-05-10 21:25:43 +02:00
|
|
|
# required by tests/auth/mfa_modules
|
|
|
|
pyotp
|
2021-02-04 17:36:21 +01:00
|
|
|
] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
|
2019-12-20 08:25:56 +01:00
|
|
|
|
2021-02-06 04:47:04 +01:00
|
|
|
# We can reasonably test components that don't communicate with any network
|
|
|
|
# services. Before adding new components to this list make sure we have all
|
|
|
|
# its dependencies packaged and listed in ./component-packages.nix.
|
2020-10-08 01:27:42 +02:00
|
|
|
componentTests = [
|
2021-05-18 02:43:52 +02:00
|
|
|
"abode"
|
2021-04-01 11:57:16 +02:00
|
|
|
"accuweather"
|
2021-05-18 02:43:52 +02:00
|
|
|
"acmeda"
|
|
|
|
"adguard"
|
|
|
|
"advantage_air"
|
2021-06-14 00:52:40 +02:00
|
|
|
"aemet"
|
2021-05-18 02:43:52 +02:00
|
|
|
"agent_dvr"
|
|
|
|
"air_quality"
|
2021-04-01 21:16:42 +02:00
|
|
|
"airly"
|
2021-05-18 02:43:52 +02:00
|
|
|
"airnow"
|
|
|
|
"airvisual"
|
|
|
|
"alarm_control_panel"
|
|
|
|
"alarmdecoder"
|
|
|
|
"alert"
|
|
|
|
"alexa"
|
|
|
|
"almond"
|
|
|
|
"ambiclimate"
|
|
|
|
"ambient_station"
|
2021-04-07 20:34:08 +02:00
|
|
|
"analytics"
|
2021-05-09 23:01:02 +02:00
|
|
|
"androidtv"
|
2021-05-18 02:43:52 +02:00
|
|
|
"apache_kafka"
|
2020-10-08 01:27:42 +02:00
|
|
|
"api"
|
2021-05-18 02:43:52 +02:00
|
|
|
"apple_tv"
|
|
|
|
"apprise"
|
2021-06-14 01:11:25 +02:00
|
|
|
"aprs"
|
2021-06-15 17:53:23 +02:00
|
|
|
"arcam_fmj"
|
2021-05-18 02:43:52 +02:00
|
|
|
"arlo"
|
|
|
|
"asuswrt"
|
2021-06-14 00:04:53 +02:00
|
|
|
"atag"
|
2021-05-18 02:43:52 +02:00
|
|
|
"august"
|
|
|
|
"aurora"
|
2021-02-06 04:47:04 +01:00
|
|
|
"auth"
|
2020-10-08 01:27:42 +02:00
|
|
|
"automation"
|
2021-05-18 02:43:52 +02:00
|
|
|
"awair"
|
|
|
|
"aws"
|
2021-04-03 15:15:49 +02:00
|
|
|
"axis"
|
2021-06-15 18:15:38 +02:00
|
|
|
"azure_devops"
|
2021-06-15 18:48:47 +02:00
|
|
|
"azure_event_hub"
|
2021-02-06 04:47:04 +01:00
|
|
|
"bayesian"
|
|
|
|
"binary_sensor"
|
2021-05-18 02:43:52 +02:00
|
|
|
"blackbird"
|
2021-06-15 19:44:00 +02:00
|
|
|
"blebox"
|
2021-06-15 19:59:58 +02:00
|
|
|
"blink"
|
2021-05-18 02:43:52 +02:00
|
|
|
"blueprint"
|
|
|
|
"bluetooth_le_tracker"
|
2021-06-15 21:07:49 +02:00
|
|
|
"bmw_connected_drive"
|
2021-06-15 23:57:18 +02:00
|
|
|
"bond"
|
2021-06-03 03:43:31 +02:00
|
|
|
"bosch_shc"
|
2021-05-18 02:43:52 +02:00
|
|
|
"braviatv"
|
|
|
|
"broadlink"
|
2021-04-22 15:32:12 +02:00
|
|
|
"brother"
|
2021-05-18 02:43:52 +02:00
|
|
|
"bsblan"
|
2021-06-13 21:24:57 +02:00
|
|
|
"buienradar"
|
2021-02-06 04:47:04 +01:00
|
|
|
"caldav"
|
|
|
|
"calendar"
|
|
|
|
"camera"
|
2021-05-16 00:53:40 +02:00
|
|
|
"canary"
|
2021-04-07 15:30:34 +02:00
|
|
|
"cast"
|
2021-05-18 02:43:52 +02:00
|
|
|
"cert_expiry"
|
2021-05-07 16:04:19 +02:00
|
|
|
"climacell"
|
2021-02-06 04:47:04 +01:00
|
|
|
"climate"
|
|
|
|
"cloud"
|
2021-05-18 02:43:52 +02:00
|
|
|
"cloudflare"
|
2021-06-16 14:24:33 +02:00
|
|
|
"color_extractor"
|
2021-04-11 13:02:33 +02:00
|
|
|
"comfoconnect"
|
2021-02-06 04:47:04 +01:00
|
|
|
"command_line"
|
2021-05-18 02:43:52 +02:00
|
|
|
"compensation"
|
2020-10-08 01:27:42 +02:00
|
|
|
"config"
|
|
|
|
"configurator"
|
2021-06-16 15:00:06 +02:00
|
|
|
"control4"
|
2021-02-06 04:47:04 +01:00
|
|
|
"conversation"
|
2021-06-16 16:20:31 +02:00
|
|
|
"coolmaster"
|
2021-05-18 02:43:52 +02:00
|
|
|
"coronavirus"
|
2021-02-03 18:57:09 +01:00
|
|
|
"counter"
|
2021-02-06 04:47:04 +01:00
|
|
|
"cover"
|
2021-05-18 02:43:52 +02:00
|
|
|
"daikin"
|
|
|
|
"darksky"
|
|
|
|
"datadog"
|
2021-03-23 00:12:47 +01:00
|
|
|
"deconz"
|
2020-10-08 01:27:42 +02:00
|
|
|
"default_config"
|
|
|
|
"demo"
|
2021-05-07 18:57:23 +02:00
|
|
|
"denonavr"
|
2021-02-06 04:47:04 +01:00
|
|
|
"derivative"
|
|
|
|
"device_automation"
|
|
|
|
"device_sun_light_trigger"
|
|
|
|
"device_tracker"
|
2021-04-01 13:59:46 +02:00
|
|
|
"devolo_home_control"
|
2021-05-18 02:43:52 +02:00
|
|
|
"dexcom"
|
2021-02-03 18:57:09 +01:00
|
|
|
"dhcp"
|
2021-05-18 02:43:52 +02:00
|
|
|
"dialogflow"
|
2021-06-17 12:34:28 +02:00
|
|
|
"directv"
|
2020-10-08 01:27:42 +02:00
|
|
|
"discovery"
|
2021-06-17 12:49:21 +02:00
|
|
|
"doorbird"
|
2021-04-21 23:55:09 +02:00
|
|
|
"dsmr"
|
2021-05-18 02:43:52 +02:00
|
|
|
"dte_energy_bridge"
|
|
|
|
"duckdns"
|
2021-06-17 20:14:21 +02:00
|
|
|
"dunehd"
|
2021-05-18 02:43:52 +02:00
|
|
|
"dyson"
|
|
|
|
"eafm"
|
2021-06-18 00:24:32 +02:00
|
|
|
"ecobee"
|
2021-04-11 16:24:21 +02:00
|
|
|
"econet"
|
2021-06-18 01:19:46 +02:00
|
|
|
"ee_brightbox"
|
2021-05-18 02:43:52 +02:00
|
|
|
"efergy"
|
2021-06-17 19:57:43 +02:00
|
|
|
"elgato"
|
2021-05-18 02:43:52 +02:00
|
|
|
"emonitor"
|
2021-02-06 04:47:04 +01:00
|
|
|
"emulated_hue"
|
2021-06-18 15:41:07 +02:00
|
|
|
"emulated_kasa"
|
2021-06-18 23:47:19 +02:00
|
|
|
"emulated_roku"
|
2021-06-18 18:00:34 +02:00
|
|
|
"enocean"
|
2021-05-19 22:50:18 +02:00
|
|
|
"enphase_envoy"
|
2021-06-18 16:03:41 +02:00
|
|
|
"epson"
|
2021-02-06 04:47:04 +01:00
|
|
|
"esphome"
|
2021-05-18 02:43:52 +02:00
|
|
|
"everlights"
|
|
|
|
"ezviz"
|
2021-03-03 22:21:01 +01:00
|
|
|
"faa_delays"
|
2021-05-18 02:43:52 +02:00
|
|
|
"facebook"
|
|
|
|
"facebox"
|
|
|
|
"fail2ban"
|
|
|
|
"fan"
|
|
|
|
"feedreader"
|
2021-02-06 04:47:04 +01:00
|
|
|
"ffmpeg"
|
2021-05-18 02:43:52 +02:00
|
|
|
"fido"
|
2021-02-06 04:47:04 +01:00
|
|
|
"file"
|
|
|
|
"filesize"
|
|
|
|
"filter"
|
2021-06-15 12:20:51 +02:00
|
|
|
"fireservicerota"
|
2021-05-18 02:43:52 +02:00
|
|
|
"firmata"
|
2021-06-15 12:30:50 +02:00
|
|
|
"flick_electric"
|
2021-05-18 02:43:52 +02:00
|
|
|
"flo"
|
|
|
|
"flume"
|
|
|
|
"flunearyou"
|
2021-02-06 04:47:04 +01:00
|
|
|
"flux"
|
|
|
|
"folder"
|
|
|
|
"folder_watcher"
|
2021-06-15 13:05:03 +02:00
|
|
|
"foobot"
|
2021-06-15 13:16:31 +02:00
|
|
|
"foscam"
|
2021-04-03 18:23:36 +02:00
|
|
|
"freebox"
|
2021-05-18 02:43:52 +02:00
|
|
|
"freedns"
|
2021-05-07 17:22:57 +02:00
|
|
|
"fritz"
|
2021-02-06 04:47:04 +01:00
|
|
|
"fritzbox"
|
|
|
|
"fritzbox_callmonitor"
|
2020-10-08 01:27:42 +02:00
|
|
|
"frontend"
|
2021-06-15 13:37:53 +02:00
|
|
|
"garages_amsterdam"
|
2021-06-12 13:22:18 +02:00
|
|
|
"garmin_connect"
|
2021-06-15 13:37:53 +02:00
|
|
|
"gdacs"
|
2021-02-06 04:47:04 +01:00
|
|
|
"generic"
|
|
|
|
"generic_thermostat"
|
|
|
|
"geo_json_events"
|
|
|
|
"geo_location"
|
2021-06-14 12:20:28 +02:00
|
|
|
"geo_rss_events"
|
2021-05-18 02:43:52 +02:00
|
|
|
"geofency"
|
2021-06-14 12:20:28 +02:00
|
|
|
"geonetnz_quakes"
|
|
|
|
"geonetnz_volcano"
|
2021-05-28 09:21:51 +02:00
|
|
|
"gios"
|
2021-06-15 13:37:53 +02:00
|
|
|
"glances"
|
2021-06-15 13:51:17 +02:00
|
|
|
"goalzero"
|
2021-06-03 03:43:31 +02:00
|
|
|
"gogogate2"
|
2021-05-18 02:43:52 +02:00
|
|
|
"google"
|
|
|
|
"google_assistant"
|
|
|
|
"google_domains"
|
|
|
|
"google_pubsub"
|
|
|
|
"google_translate"
|
|
|
|
"google_travel_time"
|
|
|
|
"google_wifi"
|
|
|
|
"gpslogger"
|
|
|
|
"graphite"
|
2021-06-15 14:15:20 +02:00
|
|
|
"gree"
|
2020-10-08 01:27:42 +02:00
|
|
|
"group"
|
2021-05-16 01:46:24 +02:00
|
|
|
"growatt_server"
|
2021-05-18 02:43:52 +02:00
|
|
|
"guardian"
|
2021-06-19 11:46:33 +02:00
|
|
|
"habitica"
|
2021-06-19 13:35:01 +02:00
|
|
|
"hangouts"
|
2021-05-18 02:43:52 +02:00
|
|
|
"harmony"
|
|
|
|
"hassio"
|
2021-02-06 04:47:04 +01:00
|
|
|
"hddtemp"
|
2021-06-19 17:34:52 +02:00
|
|
|
"heos"
|
2021-06-20 18:11:08 +02:00
|
|
|
"here_travel_time"
|
2021-06-23 15:13:37 +02:00
|
|
|
"hisense_aehw4a1"
|
2020-10-08 01:27:42 +02:00
|
|
|
"history"
|
2021-02-06 04:47:04 +01:00
|
|
|
"history_stats"
|
2021-06-19 18:13:04 +02:00
|
|
|
"hive"
|
2021-06-23 16:32:13 +02:00
|
|
|
"hlk_sw16"
|
2021-04-24 14:55:29 +02:00
|
|
|
"home_connect"
|
2021-04-07 20:34:08 +02:00
|
|
|
"home_plus_control"
|
2021-05-18 02:43:52 +02:00
|
|
|
"homeassistant"
|
2021-04-03 15:57:40 +02:00
|
|
|
"homekit"
|
2021-03-03 22:21:01 +01:00
|
|
|
"homekit_controller"
|
2021-04-01 13:22:11 +02:00
|
|
|
"homematic"
|
2021-04-10 00:05:09 +02:00
|
|
|
"homematicip_cloud"
|
2021-06-23 16:44:24 +02:00
|
|
|
"honeywell"
|
2021-02-06 04:47:04 +01:00
|
|
|
"html5"
|
2020-10-08 01:27:42 +02:00
|
|
|
"http"
|
2021-06-23 16:55:05 +02:00
|
|
|
"huawei_lte"
|
2021-02-04 17:36:21 +01:00
|
|
|
"hue"
|
2021-06-23 18:53:38 +02:00
|
|
|
"huisbaasje"
|
2021-05-18 02:43:52 +02:00
|
|
|
"humidifier"
|
2021-06-23 19:09:14 +02:00
|
|
|
"hvv_departures"
|
2021-04-21 23:19:47 +02:00
|
|
|
"hyperion"
|
2021-05-18 02:43:52 +02:00
|
|
|
"ialarm"
|
2021-03-21 01:08:49 +01:00
|
|
|
"iaqualink"
|
2021-05-18 02:43:52 +02:00
|
|
|
"icloud"
|
2021-02-06 04:47:04 +01:00
|
|
|
"ifttt"
|
2021-06-23 19:14:37 +02:00
|
|
|
"ign_sismologia"
|
2021-02-06 04:47:04 +01:00
|
|
|
"image"
|
|
|
|
"image_processing"
|
2021-05-18 02:43:52 +02:00
|
|
|
"imap_email_content"
|
2021-02-06 04:47:04 +01:00
|
|
|
"influxdb"
|
2020-10-08 01:27:42 +02:00
|
|
|
"input_boolean"
|
|
|
|
"input_datetime"
|
|
|
|
"input_number"
|
|
|
|
"input_select"
|
2021-05-18 02:43:52 +02:00
|
|
|
"input_text"
|
|
|
|
"insteon"
|
|
|
|
"integration"
|
2021-02-06 04:47:04 +01:00
|
|
|
"intent"
|
|
|
|
"intent_script"
|
2021-05-18 02:43:52 +02:00
|
|
|
"ios"
|
2021-06-20 11:33:01 +02:00
|
|
|
"ipma"
|
2021-02-06 04:47:04 +01:00
|
|
|
"ipp"
|
2021-05-18 02:43:52 +02:00
|
|
|
"iqvia"
|
2021-05-15 20:47:36 +02:00
|
|
|
"islamic_prayer_times"
|
2021-06-23 19:42:14 +02:00
|
|
|
"isy994"
|
2021-06-24 18:17:48 +02:00
|
|
|
"izone"
|
2021-04-09 17:37:47 +02:00
|
|
|
"jewish_calendar"
|
2021-06-24 11:16:25 +02:00
|
|
|
"keenetic_ndms2"
|
2021-05-18 02:43:52 +02:00
|
|
|
"kira"
|
2021-03-03 22:21:01 +01:00
|
|
|
"kmtronic"
|
2021-04-23 22:34:46 +02:00
|
|
|
"knx"
|
2021-04-10 01:43:57 +02:00
|
|
|
"kodi"
|
2021-06-24 13:10:29 +02:00
|
|
|
"konnected"
|
2021-06-25 20:55:09 +02:00
|
|
|
"kraken"
|
2021-06-12 11:32:36 +02:00
|
|
|
"kulersky"
|
2021-05-18 02:43:52 +02:00
|
|
|
"lastfm"
|
|
|
|
"lcn"
|
2021-02-06 04:47:04 +01:00
|
|
|
"light"
|
2021-04-07 20:34:08 +02:00
|
|
|
"litterrobot"
|
2021-02-06 04:47:04 +01:00
|
|
|
"local_file"
|
|
|
|
"local_ip"
|
2021-05-18 02:43:52 +02:00
|
|
|
"locative"
|
2021-02-06 04:47:04 +01:00
|
|
|
"lock"
|
2020-10-08 01:27:42 +02:00
|
|
|
"logbook"
|
2021-02-06 04:47:04 +01:00
|
|
|
"logentries"
|
2020-10-08 01:27:42 +02:00
|
|
|
"logger"
|
2021-05-18 02:43:52 +02:00
|
|
|
"london_air"
|
2021-02-06 04:47:04 +01:00
|
|
|
"lovelace"
|
2021-05-18 02:43:52 +02:00
|
|
|
"luftdaten"
|
2021-04-11 15:22:38 +02:00
|
|
|
"lutron_caseta"
|
2021-05-18 02:43:52 +02:00
|
|
|
"lyric"
|
|
|
|
"mailbox"
|
2021-02-06 04:47:04 +01:00
|
|
|
"manual"
|
|
|
|
"manual_mqtt"
|
2021-03-03 22:21:01 +01:00
|
|
|
"mazda"
|
2021-02-06 04:47:04 +01:00
|
|
|
"media_player"
|
2020-10-08 01:27:42 +02:00
|
|
|
"media_source"
|
2021-05-18 02:43:52 +02:00
|
|
|
"meraki"
|
2021-02-06 04:47:04 +01:00
|
|
|
"met"
|
2021-05-06 20:11:52 +02:00
|
|
|
"met_eireann"
|
2021-06-12 11:38:05 +02:00
|
|
|
"meteoclimatic"
|
2021-06-18 16:13:42 +02:00
|
|
|
"mhz19"
|
2021-05-18 02:43:52 +02:00
|
|
|
"microsoft_face"
|
|
|
|
"microsoft_face_detect"
|
|
|
|
"microsoft_face_identify"
|
|
|
|
"mikrotik"
|
2021-06-20 11:46:35 +02:00
|
|
|
"mill"
|
2021-05-18 02:43:52 +02:00
|
|
|
"min_max"
|
2021-04-01 09:30:22 +02:00
|
|
|
"minecraft_server"
|
2021-05-18 02:43:52 +02:00
|
|
|
"minio"
|
2020-10-08 01:27:42 +02:00
|
|
|
"mobile_app"
|
2021-02-06 04:47:04 +01:00
|
|
|
"modbus"
|
2021-05-18 02:43:52 +02:00
|
|
|
"mold_indicator"
|
2021-02-06 04:47:04 +01:00
|
|
|
"moon"
|
2021-05-06 18:56:57 +02:00
|
|
|
"motioneye"
|
2021-02-06 04:47:04 +01:00
|
|
|
"mqtt"
|
|
|
|
"mqtt_eventstream"
|
|
|
|
"mqtt_json"
|
|
|
|
"mqtt_room"
|
|
|
|
"mqtt_statestream"
|
2021-03-03 22:21:01 +01:00
|
|
|
"mullvad"
|
2021-05-06 21:09:31 +02:00
|
|
|
"mutesync"
|
2021-05-18 02:43:52 +02:00
|
|
|
"my"
|
|
|
|
"myq"
|
|
|
|
"mysensors"
|
2021-06-12 11:58:54 +02:00
|
|
|
"nam"
|
2021-05-18 02:43:52 +02:00
|
|
|
"namecheapdns"
|
|
|
|
"neato"
|
|
|
|
"netatmo"
|
2021-04-13 03:06:39 +02:00
|
|
|
"nexia"
|
2021-05-18 02:43:52 +02:00
|
|
|
"no_ip"
|
2021-02-06 04:47:04 +01:00
|
|
|
"notify"
|
2021-03-20 23:49:26 +01:00
|
|
|
"notion"
|
2021-06-14 12:20:28 +02:00
|
|
|
"nsw_rural_fire_service_feed"
|
2021-05-18 02:43:52 +02:00
|
|
|
"nuki"
|
2021-02-06 04:47:04 +01:00
|
|
|
"number"
|
2021-05-18 02:43:52 +02:00
|
|
|
"nws"
|
2021-04-22 23:03:54 +02:00
|
|
|
"nx584"
|
2021-04-09 18:49:21 +02:00
|
|
|
"omnilogic"
|
2021-05-18 02:43:52 +02:00
|
|
|
"onboarding"
|
2021-04-22 21:23:29 +02:00
|
|
|
"ondilo_ico"
|
2021-05-18 02:43:52 +02:00
|
|
|
"openalpr_cloud"
|
|
|
|
"openalpr_local"
|
2021-04-22 21:55:05 +02:00
|
|
|
"openerz"
|
2021-05-18 02:43:52 +02:00
|
|
|
"openhardwaremonitor"
|
2021-04-25 16:41:18 +02:00
|
|
|
"opentherm_gw"
|
2021-05-18 02:43:52 +02:00
|
|
|
"openuv"
|
|
|
|
"openweathermap"
|
|
|
|
"opnsense"
|
2021-05-16 01:04:59 +02:00
|
|
|
"ovo_energy"
|
2021-05-18 02:43:52 +02:00
|
|
|
"owntracks"
|
2021-02-06 04:47:04 +01:00
|
|
|
"ozw"
|
|
|
|
"panel_custom"
|
|
|
|
"panel_iframe"
|
|
|
|
"persistent_notification"
|
2020-10-08 01:27:42 +02:00
|
|
|
"person"
|
2021-05-16 01:58:57 +02:00
|
|
|
"philips_js"
|
2021-05-18 02:43:52 +02:00
|
|
|
"pi_hole"
|
|
|
|
"picnic"
|
|
|
|
"ping"
|
2021-03-03 22:21:01 +01:00
|
|
|
"plaato"
|
2021-05-18 02:43:52 +02:00
|
|
|
"plant"
|
|
|
|
"plex"
|
2021-05-07 00:16:44 +02:00
|
|
|
"plugwise"
|
2021-05-18 02:43:52 +02:00
|
|
|
"poolsense"
|
|
|
|
"profiler"
|
2021-02-06 04:47:04 +01:00
|
|
|
"prometheus"
|
|
|
|
"proximity"
|
|
|
|
"push"
|
2021-05-18 02:43:52 +02:00
|
|
|
"pushbullet"
|
2021-04-22 22:24:39 +02:00
|
|
|
"pvpc_hourly_pricing"
|
2021-02-06 04:47:04 +01:00
|
|
|
"python_script"
|
2021-05-18 02:43:52 +02:00
|
|
|
"rachio"
|
|
|
|
"radarr"
|
|
|
|
"rainmachine"
|
2021-02-06 04:47:04 +01:00
|
|
|
"random"
|
2021-05-18 02:43:52 +02:00
|
|
|
"recollect_waste"
|
2021-02-06 04:47:04 +01:00
|
|
|
"recorder"
|
2021-05-18 02:43:52 +02:00
|
|
|
"reddit"
|
|
|
|
"remote"
|
2021-02-06 04:47:04 +01:00
|
|
|
"rest"
|
|
|
|
"rest_command"
|
2021-06-25 14:53:27 +02:00
|
|
|
"rflink"
|
2021-05-18 02:43:52 +02:00
|
|
|
"ring"
|
|
|
|
"risco"
|
2021-03-03 22:21:01 +01:00
|
|
|
"rituals_perfume_genie"
|
2021-02-06 04:47:04 +01:00
|
|
|
"rmvtransport"
|
2021-04-23 02:42:05 +02:00
|
|
|
"roku"
|
2021-05-05 21:41:14 +02:00
|
|
|
"roomba"
|
2021-05-28 00:07:09 +02:00
|
|
|
"roon"
|
2021-02-06 04:47:04 +01:00
|
|
|
"rss_feed_template"
|
2021-04-12 01:48:30 +02:00
|
|
|
"ruckus_unleashed"
|
2021-02-06 04:47:04 +01:00
|
|
|
"safe_mode"
|
2021-05-18 02:43:52 +02:00
|
|
|
"samsungtv"
|
2020-10-08 01:27:42 +02:00
|
|
|
"scene"
|
2021-04-07 20:34:08 +02:00
|
|
|
"screenlogic"
|
2020-10-08 01:27:42 +02:00
|
|
|
"script"
|
2021-02-06 04:47:04 +01:00
|
|
|
"search"
|
2021-05-18 02:43:52 +02:00
|
|
|
"season"
|
2021-06-18 15:41:07 +02:00
|
|
|
"sense"
|
2021-05-18 02:43:52 +02:00
|
|
|
"sensor"
|
|
|
|
"sentry"
|
|
|
|
"sharkiq"
|
2020-10-08 01:27:42 +02:00
|
|
|
"shell_command"
|
2021-05-18 02:43:52 +02:00
|
|
|
"shelly"
|
2021-02-06 04:47:04 +01:00
|
|
|
"shopping_list"
|
2021-06-25 20:34:41 +02:00
|
|
|
"sia"
|
2021-05-18 02:43:52 +02:00
|
|
|
"sigfox"
|
|
|
|
"sighthound"
|
2021-03-20 23:33:37 +01:00
|
|
|
"simplisafe"
|
2021-02-06 04:47:04 +01:00
|
|
|
"simulated"
|
2021-05-18 02:43:52 +02:00
|
|
|
"slack"
|
2021-04-11 19:02:46 +02:00
|
|
|
"sleepiq"
|
2021-03-23 00:41:26 +01:00
|
|
|
"sma"
|
2021-05-18 02:43:52 +02:00
|
|
|
"smappee"
|
2021-04-24 23:08:08 +02:00
|
|
|
"smartthings"
|
2021-03-03 22:21:01 +01:00
|
|
|
"smarttub"
|
2021-05-18 02:43:52 +02:00
|
|
|
"smhi"
|
2021-02-06 04:47:04 +01:00
|
|
|
"smtp"
|
2021-05-18 02:43:52 +02:00
|
|
|
"snips"
|
2021-03-24 23:49:55 +01:00
|
|
|
"solaredge"
|
2021-05-18 02:43:52 +02:00
|
|
|
"soma"
|
|
|
|
"somfy"
|
2021-03-30 14:15:14 +02:00
|
|
|
"sonos"
|
2021-05-18 02:43:52 +02:00
|
|
|
"soundtouch"
|
|
|
|
"spaceapi"
|
|
|
|
"speedtestdotnet"
|
2021-06-13 23:48:33 +02:00
|
|
|
"spider"
|
2021-04-01 15:42:31 +02:00
|
|
|
"spotify"
|
2021-02-06 04:47:04 +01:00
|
|
|
"sql"
|
2021-05-18 02:43:52 +02:00
|
|
|
"squeezebox"
|
2020-10-08 01:27:42 +02:00
|
|
|
"ssdp"
|
2021-05-18 02:43:52 +02:00
|
|
|
"startca"
|
|
|
|
"statistics"
|
|
|
|
"statsd"
|
2021-02-06 04:47:04 +01:00
|
|
|
"stream"
|
2021-05-18 02:43:52 +02:00
|
|
|
"stt"
|
2021-03-23 00:55:41 +01:00
|
|
|
"subaru"
|
2020-10-08 01:27:42 +02:00
|
|
|
"sun"
|
2021-05-07 20:01:11 +02:00
|
|
|
"surepetcare"
|
2021-02-06 04:47:04 +01:00
|
|
|
"switch"
|
2021-05-18 02:43:52 +02:00
|
|
|
"switcher_kis"
|
2021-06-25 21:49:27 +02:00
|
|
|
"syncthing"
|
2020-10-08 01:27:42 +02:00
|
|
|
"system_health"
|
|
|
|
"system_log"
|
2021-05-18 02:43:52 +02:00
|
|
|
"tado"
|
2020-10-08 01:27:42 +02:00
|
|
|
"tag"
|
2021-02-06 04:47:04 +01:00
|
|
|
"tasmota"
|
|
|
|
"tcp"
|
2021-05-18 02:43:52 +02:00
|
|
|
"telegram"
|
|
|
|
"tellduslive"
|
2021-02-06 04:47:04 +01:00
|
|
|
"template"
|
2021-06-21 16:08:33 +02:00
|
|
|
# disable tesla comonent tests while typer is incompatible with click>=8.0
|
|
|
|
# "tesla"
|
2021-02-06 04:47:04 +01:00
|
|
|
"threshold"
|
2021-06-15 15:08:24 +02:00
|
|
|
"tibber"
|
2021-05-18 02:43:52 +02:00
|
|
|
"tile"
|
2021-02-06 04:47:04 +01:00
|
|
|
"time_date"
|
2021-02-03 18:57:09 +01:00
|
|
|
"timer"
|
2021-02-06 04:47:04 +01:00
|
|
|
"tod"
|
2021-05-18 02:43:52 +02:00
|
|
|
"tomato"
|
|
|
|
"toon"
|
2021-06-27 12:24:39 +02:00
|
|
|
"totalconnect"
|
2021-05-18 02:43:52 +02:00
|
|
|
"tplink"
|
2021-04-07 20:34:08 +02:00
|
|
|
"trace"
|
2021-06-26 14:41:07 +02:00
|
|
|
"tradfri"
|
2021-05-18 02:43:52 +02:00
|
|
|
"transmission"
|
|
|
|
"trend"
|
2021-02-06 04:47:04 +01:00
|
|
|
"tts"
|
2021-05-18 02:43:52 +02:00
|
|
|
"tuya"
|
|
|
|
"twentemilieu"
|
|
|
|
"twilio"
|
|
|
|
"twinkly"
|
|
|
|
"twitch"
|
|
|
|
"uk_transport"
|
|
|
|
"unifi"
|
|
|
|
"unifi_direct"
|
2021-02-06 04:47:04 +01:00
|
|
|
"universal"
|
2021-06-26 14:13:50 +02:00
|
|
|
"upb"
|
2021-02-06 04:47:04 +01:00
|
|
|
"updater"
|
|
|
|
"upnp"
|
|
|
|
"uptime"
|
2021-05-18 02:43:52 +02:00
|
|
|
"usgs_earthquakes_feed"
|
|
|
|
"utility_meter"
|
|
|
|
"uvc"
|
2021-02-06 04:47:04 +01:00
|
|
|
"vacuum"
|
2021-05-18 02:43:52 +02:00
|
|
|
"velbus"
|
2021-05-29 11:25:31 +02:00
|
|
|
"venstar"
|
2021-05-18 02:43:52 +02:00
|
|
|
"vera"
|
2021-04-01 10:57:50 +02:00
|
|
|
"verisure"
|
2021-05-14 03:46:14 +02:00
|
|
|
"version"
|
2021-05-14 00:07:31 +02:00
|
|
|
"vesync"
|
2021-06-25 19:52:04 +02:00
|
|
|
"vilfo"
|
2021-05-18 02:43:52 +02:00
|
|
|
"vizio"
|
|
|
|
"voicerss"
|
|
|
|
"volumio"
|
|
|
|
"vultr"
|
|
|
|
"wake_on_lan"
|
2021-06-15 14:13:02 +02:00
|
|
|
"wallbox"
|
2021-05-18 02:43:52 +02:00
|
|
|
"water_heater"
|
|
|
|
"waze_travel_time"
|
2021-02-06 04:47:04 +01:00
|
|
|
"weather"
|
2021-02-03 18:57:09 +01:00
|
|
|
"webhook"
|
2021-05-18 02:43:52 +02:00
|
|
|
"webostv"
|
2020-10-08 01:27:42 +02:00
|
|
|
"websocket_api"
|
2021-03-20 08:59:10 +01:00
|
|
|
"wemo"
|
2021-05-18 02:43:52 +02:00
|
|
|
"wiffi"
|
|
|
|
"wilight"
|
2021-02-06 04:47:04 +01:00
|
|
|
"wled"
|
|
|
|
"workday"
|
|
|
|
"worldclock"
|
2021-05-18 02:43:52 +02:00
|
|
|
"wsdot"
|
|
|
|
"wunderground"
|
2021-06-14 20:49:56 +02:00
|
|
|
"xbox"
|
2021-05-18 02:43:52 +02:00
|
|
|
"xiaomi"
|
|
|
|
"xiaomi_aqara"
|
2021-05-07 15:16:09 +02:00
|
|
|
"xiaomi_miio"
|
2021-05-18 02:43:52 +02:00
|
|
|
"yamaha"
|
2021-05-16 20:49:31 +02:00
|
|
|
"yandex_transport"
|
2021-05-18 02:43:52 +02:00
|
|
|
"yandextts"
|
2021-04-13 13:17:51 +02:00
|
|
|
"yeelight"
|
2020-10-08 01:27:42 +02:00
|
|
|
"zeroconf"
|
2021-05-18 02:43:52 +02:00
|
|
|
"zerproc"
|
2021-02-06 04:47:04 +01:00
|
|
|
"zha"
|
2021-05-18 02:43:52 +02:00
|
|
|
"zodiac"
|
2020-10-08 01:27:42 +02:00
|
|
|
"zone"
|
2021-02-04 17:36:21 +01:00
|
|
|
"zwave"
|
2021-04-22 18:12:20 +02:00
|
|
|
"zwave_js"
|
2021-05-13 23:52:56 +02:00
|
|
|
] ++ lib.optionals (builtins.any (s: s == stdenv.hostPlatform.system) debugpy.meta.platforms) [
|
|
|
|
"debugpy"
|
2020-10-08 01:27:42 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
pytestFlagsArray = [
|
2021-05-18 02:43:52 +02:00
|
|
|
# parallelize test run
|
|
|
|
"--numprocesses auto"
|
|
|
|
# assign tests grouped by file to workers
|
|
|
|
"--dist loadfile"
|
2021-03-02 17:56:33 +01:00
|
|
|
# retry racy tests that end in "RuntimeError: Event loop is closed"
|
|
|
|
"--reruns 3"
|
|
|
|
"--only-rerun RuntimeError"
|
2021-05-15 16:56:35 +02:00
|
|
|
# enable full variable printing on error
|
|
|
|
"--showlocals"
|
2021-06-20 18:11:08 +02:00
|
|
|
# here_travel_time/test_sensor.py: Tries to access HERE API: herepy.error.HEREError: Error occured on __get
|
|
|
|
"--deselect tests/components/here_travel_time/test_sensor.py::test_invalid_credentials"
|
2021-04-07 20:34:08 +02:00
|
|
|
# screenlogic/test_config_flow.py: Tries to send out UDP broadcasts
|
|
|
|
"--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect"
|
home-assistant: disable adbode/test_camera.py::test_camera_off test
```
___________________________ test_camera_off[pyloop] ____________________________
[gw5] linux -- Python 3.8.9 /nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/bin/python3.8
hass = <homeassistant.core.HomeAssistant object at 0x7fff4433b580>
async def test_camera_off(hass):
"""Test the camera turn off service."""
await setup_platform(hass, CAMERA_DOMAIN)
with patch("abodepy.AbodeCamera.privacy_mode") as mock_capture:
> await hass.services.async_call(
CAMERA_DOMAIN,
"turn_off",
{ATTR_ENTITY_ID: "camera.test_cam"},
blocking=True,
)
hass = <homeassistant.core.HomeAssistant object at 0x7fff4433b580>
mock_capture = <MagicMock name='privacy_mode' id='140734337787888'>
tests/components/abode/test_camera.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <homeassistant.core.ServiceRegistry object at 0x7fff442c1cd0>
domain = 'camera', service = 'turn_off'
service_data = {'entity_id': 'camera.test_cam'}, blocking = True
context = Context(user_id=None, parent_id=None, id='20e520e6917f171d80558dcc4b10b219')
limit = 10, target = None
async def async_call(
self,
domain: str,
service: str,
service_data: dict | None = None,
blocking: bool = False,
context: Context | None = None,
limit: float | None = SERVICE_CALL_LIMIT,
target: dict | None = None,
) -> bool | None:
"""
Call a service.
Specify blocking=True to wait until service is executed.
Waits a maximum of limit, which may be None for no timeout.
If blocking = True, will return boolean if service executed
successfully within limit.
This method will fire an event to indicate the service has been called.
Because the service is sent as an event you are not allowed to use
the keys ATTR_DOMAIN and ATTR_SERVICE in your service_data.
This method is a coroutine.
"""
domain = domain.lower()
service = service.lower()
context = context or Context()
service_data = service_data or {}
try:
handler = self._services[domain][service]
except KeyError:
> raise ServiceNotFound(domain, service) from None
E homeassistant.exceptions.ServiceNotFound: Unable to find service camera.turn_off
blocking = True
context = Context(user_id=None, parent_id=None, id='20e520e6917f171d80558dcc4b10b219')
domain = 'camera'
limit = 10
self = <homeassistant.core.ServiceRegistry object at 0x7fff442c1cd0>
service = 'turn_off'
service_data = {'entity_id': 'camera.test_cam'}
target = None
homeassistant/core.py:1438: ServiceNotFound
---------------------------- Captured stderr setup -----------------------------
DEBUG:asyncio:Using selector: EpollSelector
------------------------------ Captured log setup ------------------------------
DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector
----------------------------- Captured stderr call -----------------------------
INFO:homeassistant.loader:Loaded abode from homeassistant.components.abode
INFO:homeassistant.setup:Setting up abode
INFO:homeassistant.setup:Setup of domain abode took 0.0 seconds
DEBUG:abodepy:Cache found at: /build/source/tests/testing_config/abodepy_cache.pickle
WARNING:abodepy.utils:Empty pickle file: /build/source/tests/testing_config/abodepy_cache.pickle
DEBUG:abodepy:Removing invalid cache file: /build/source/tests/testing_config/abodepy_cache.pickle
ERROR:homeassistant.config_entries:Error setting up entry Mock Title for abode
Traceback (most recent call last):
File "/build/source/homeassistant/config_entries.py", line 293, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/build/source/homeassistant/components/abode/__init__.py", line 125, in async_setup_entry
abode = await hass.async_add_executor_job(
File "/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/nix/store/6s0sdvk0crvcfyv7w33yc7w4bkzl0y1w-python3.8-abodepy-1.2.1/lib/python3.8/site-packages/abodepy/__init__.py", line 85, in __init__
self._load_cache()
File "/nix/store/6s0sdvk0crvcfyv7w33yc7w4bkzl0y1w-python3.8-abodepy-1.2.1/lib/python3.8/site-packages/abodepy/__init__.py", line 497, in _load_cache
os.remove(self._cache_path)
FileNotFoundError: [Errno 2] No such file or directory: '/build/source/tests/testing_config/abodepy_cache.pickle'
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]:
component=abode>
```
2021-06-20 20:11:45 +02:00
|
|
|
# abode/test_camera.py: Race condition in pickle file creationg
|
|
|
|
"--deselect tests/components/abode/test_camera.py::test_camera_off"
|
2021-05-18 02:43:52 +02:00
|
|
|
# asuswrt/test_config_flow.py: Sandbox network limitations, fails with unexpected error
|
|
|
|
"--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed"
|
|
|
|
# shelly/test_config_flow.py: Tries to join multicast group
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_form"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_title_without_name"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_form_errors_test_connection"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_user_setup_ignored_device"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
|
|
|
|
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_require_auth"
|
home-assistant: disable flaky test in prometheus component
______________________________ test_view[pyloop] _______________________________
[gw49] linux -- Python 3.8.9 /nix/store/7i305r9i4rsb1hmqwkdmphjf430niq3l-python3-3.8.9/bin/python3.8
hass = <homeassistant.core.HomeAssistant object at 0xffff56d041c0>
hass_client = <function hass_client.<locals>.auth_client at 0xffff56a11ca0>
async def test_view(hass, hass_client):
"""Test prometheus metrics view."""
client = await prometheus_client(hass, hass_client)
resp = await client.get(prometheus.API_ENDPOINT)
assert resp.status == 200
assert resp.headers["content-type"] == CONTENT_TYPE_TEXT_PLAIN
body = await resp.text()
body = body.split("\n")
assert len(body) > 3
assert "# HELP python_info Python platform information" in body
assert (
"# HELP python_gc_objects_collected_total "
"Objects collected during gc" in body
)
assert (
'temperature_c{domain="sensor",'
'entity="sensor.outside_temperature",'
'friendly_name="Outside Temperature"} 15.6' in body
)
assert (
'battery_level_percent{domain="sensor",'
'entity="sensor.outside_temperature",'
'friendly_name="Outside Temperature"} 12.0' in body
)
assert (
'current_temperature_c{domain="climate",'
'entity="climate.heatpump",'
'friendly_name="HeatPump"} 25.0' in body
)
> assert (
'humidifier_target_humidity_percent{domain="humidifier",'
'entity="humidifier.humidifier",'
'friendly_name="Humidifier"} 68.0' in body
)
E assert 'humidifier_target_humidity_percent{domain="humidifier",entity="humidifier.humidifier",friendly_name="Humidifier"} 68.0' in ['# HELP python_gc_objects_collected_total Objects collected during gc', '# TYPE python_gc_objects_collected_total cou...al{generation="2"} 175103.0', '# HELP python_gc_objects_uncollectable_total Uncollectable object found during GC', ...]
tests/components/prometheus/test_init.py:130: AssertionError
---------------------------- Captured stderr setup -----------------------------
DEBUG:asyncio:Using selector: EpollSelector
------------------------------ Captured log setup ------------------------------
DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector
----------------------------- Captured stderr call -----------------------------
INFO:homeassistant.loader:Loaded prometheus from homeassistant.components.prometheus
INFO:homeassistant.loader:Loaded http from homeassistant.components.http
DEBUG:homeassistant.setup:Dependency prometheus will wait for dependencies ['http']
INFO:homeassistant.setup:Setting up http
INFO:homeassistant.setup:Setup of domain http took 0.0 seconds
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=http>
INFO:homeassistant.setup:Setting up prometheus
INFO:homeassistant.setup:Setup of domain prometheus took 0.0 seconds
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=prometheus>
INFO:homeassistant.loader:Loaded sensor from homeassistant.components.sensor
INFO:homeassistant.loader:Loaded demo from homeassistant.components.demo
INFO:homeassistant.setup:Setting up sensor
INFO:homeassistant.setup:Setup of domain sensor took 0.0 seconds
DEBUG:homeassistant.setup:Dependency demo will wait for dependencies ['conversation', 'zone', 'group']
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=sensor>
INFO:homeassistant.loader:Loaded conversation from homeassistant.components.conversation
INFO:homeassistant.loader:Loaded zone from homeassistant.components.zone
INFO:homeassistant.setup:Setting up conversation
INFO:homeassistant.loader:Loaded group from homeassistant.components.group
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=conversation, service=process>
INFO:homeassistant.setup:Setup of domain conversation took 0.0 seconds
INFO:homeassistant.loader:Loaded climate from homeassistant.components.climate
INFO:homeassistant.setup:Setting up zone
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=conversation>
INFO:homeassistant.setup:Setting up group
INFO:homeassistant.setup:Setting up climate
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=turn_on>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=turn_off>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_hvac_mode>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_preset_mode>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_aux_heat>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_temperature>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_humidity>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_fan_mode>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_swing_mode>
INFO:homeassistant.setup:Setup of domain climate took 0.0 seconds
DEBUG:homeassistant.setup:Dependency demo will wait for dependencies ['zone', 'group']
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=climate>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=group, service=reload>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=group, service=set>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=group, service=remove>
INFO:homeassistant.setup:Setup of domain group took 0.1 seconds
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=zone, service=reload>
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=group>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=zone.home, old_state=None, new_state=<state zone.home=zoning; latitude=32.87336, longitude=-117.22743, radius=100, passive=False, editable=True, friendly_name=test home, icon=mdi:home @ 2021-05-12T16:02:29.918726+00:00>>
DEBUG:homeassistant.components.prometheus:Handling state update for zone.home
INFO:homeassistant.setup:Setup of domain zone took 0.1 seconds
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=zone>
INFO:homeassistant.setup:Setting up demo
INFO:homeassistant.setup:Setup of domain demo took 0.0 seconds
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=demo>
INFO:homeassistant.components.sensor:Setting up sensor.demo
INFO:homeassistant.components.climate:Setting up climate.demo
INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.outside_temperature
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_temperature>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_temperature, old_state=None, new_state=<state sensor.outside_temperature=15.6; battery_level=12, unit_of_measurement=°C, friendly_name=Outside Temperature, device_class=temperature @ 2021-05-12T16:02:29.931161+00:00>>
INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.outside_humidity
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_humidity>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_humidity, old_state=None, new_state=<state sensor.outside_humidity=54; unit_of_measurement=%, friendly_name=Outside Humidity, device_class=humidity @ 2021-05-12T16:02:29.933965+00:00>>
INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.carbon_monoxide
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.outside_humidity
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_monoxide>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_monoxide, old_state=None, new_state=<state sensor.carbon_monoxide=54; unit_of_measurement=ppm, friendly_name=Carbon monoxide, device_class=carbon_monoxide @ 2021-05-12T16:02:29.954947+00:00>>
INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.carbon_dioxide
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.carbon_monoxide
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_dioxide>
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.outside_temperature
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_dioxide, old_state=None, new_state=<state sensor.carbon_dioxide=54; battery_level=14, unit_of_measurement=ppm, friendly_name=Carbon dioxide, device_class=carbon_dioxide @ 2021-05-12T16:02:29.958608+00:00>>
INFO:homeassistant.helpers.entity_registry:Registered new climate.demo entity: climate.heatpump
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.heatpump>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=climate.heatpump, old_state=None, new_state=<state climate.heatpump=heat; hvac_modes=['heat', 'off'], min_temp=7.0, max_temp=35.0, current_temperature=25.0, temperature=20.0, hvac_action=heating, friendly_name=HeatPump, supported_features=1 @ 2021-05-12T16:02:29.970499+00:00>>
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.carbon_dioxide
DEBUG:homeassistant.components.prometheus:Handling state update for climate.heatpump
INFO:homeassistant.helpers.entity_registry:Registered new climate.demo entity: climate.hvac
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.hvac>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=climate.hvac, old_state=None, new_state=<state climate.hvac=cool; hvac_modes=['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], min_temp=7, max_temp=35, min_humidity=30, max_humidity=99, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=22, temperature=21, target_temp_high=None, target_temp_low=None, current_humidity=54, humidity=67, fan_mode=On High, hvac_action=cooling, swing_mode=Off, aux_heat=off, friendly_name=Hvac, supported_features=111 @ 2021-05-12T16:02:29.980988+00:00>>
INFO:homeassistant.helpers.entity_registry:Registered new climate.demo entity: climate.ecobee
DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.ecobee>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=climate.ecobee, old_state=None, new_state=<state climate.ecobee=heat_cool; hvac_modes=['heat_cool', 'cool', 'heat'], min_temp=7, max_temp=35, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], preset_modes=['home', 'eco'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=23, target_temp_high=24, target_temp_low=21, fan_mode=Auto Low, preset_mode=home, swing_mode=Auto, friendly_name=Ecobee, supported_features=58 @ 2021-05-12T16:02:29.984441+00:00>>
DEBUG:homeassistant.components.prometheus:Handling state update for climate.hvac
DEBUG:homeassistant.components.prometheus:Handling state update for climate.ecobee
INFO:homeassistant.loader:Loaded humidifier from homeassistant.components.humidifier
INFO:homeassistant.setup:Setting up humidifier
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_on>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_off>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=toggle>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_mode>
DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_humidity>
INFO:homeassistant.setup:Setup of domain humidifier took 0.0 seconds
INFO:homeassistant.components.humidifier:Setting up humidifier.demo
DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=humidifier>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.television_energy, old_state=None, new_state=<state sensor.television_energy=74; unit_of_measurement=kWh, friendly_name=Television Energy @ 2021-05-12T16:02:30.004051+00:00>>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.radio_energy, old_state=None, new_state=<state sensor.radio_energy=14; unit_of_measurement=kWh, friendly_name=Radio Energy, device_class=power @ 1970-01-02T00:00:00+00:00>>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.electricity_price, old_state=None, new_state=<state sensor.electricity_price=0.123; unit_of_measurement=SEK/kWh, friendly_name=Electricity price @ 2021-05-12T16:02:30.007311+00:00>>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.wind_direction, old_state=None, new_state=<state sensor.wind_direction=25; unit_of_measurement=°, friendly_name=Wind Direction @ 2021-05-12T16:02:30.008486+00:00>>
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.television_energy
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.radio_energy
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.electricity_price
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.wind_direction
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.sps30_pm_1um_weight_concentration, old_state=None, new_state=<state sensor.sps30_pm_1um_weight_concentration=3.7069; unit_of_measurement=µg/m³, friendly_name=SPS30 PM <1µm Weight concentration @ 2021-05-12T16:02:30.042774+00:00>>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=humidifier.humidifier, old_state=None, new_state=<state humidifier.humidifier=on; min_humidity=0, max_humidity=100, humidity=68, friendly_name=Humidifier, supported_features=0, device_class=humidifier @ 2021-05-12T16:02:30.048191+00:00>>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=humidifier.dehumidifier, old_state=None, new_state=<state humidifier.dehumidifier=on; min_humidity=0, max_humidity=100, humidity=54, friendly_name=Dehumidifier, supported_features=0, device_class=dehumidifier @ 2021-05-12T16:02:30.049812+00:00>>
DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=humidifier.hygrostat, old_state=None, new_state=<state humidifier.hygrostat=on; min_humidity=0, max_humidity=100, available_modes=['home', 'eco'], humidity=50, mode=home, friendly_name=Hygrostat, supported_features=1 @ 2021-05-12T16:02:30.051561+00:00>>
DEBUG:homeassistant.components.http.auth:Authenticated 127.0.0.1 for /api/prometheus using bearer token
DEBUG:homeassistant.components.prometheus:Handling state update for sensor.sps30_pm_1um_weight_concentration
DEBUG:homeassistant.components.http.view:Serving /api/prometheus to 127.0.0.1 (auth: True)
DEBUG:homeassistant.components.prometheus:Handling state update for humidifier.hygrostat
DEBUG:homeassistant.components.prometheus:Handling state update for humidifier.dehumidifier
DEBUG:homeassistant.components.prometheus:Handling state update for humidifier.humidifier
DEBUG:homeassistant.components.prometheus:Received Prometheus metrics request
INFO:aiohttp.access:127.0.0.1 [12/May/2021:16:02:30 +0000] "GET /api/prometheus HTTP/1.1" 200 12216 "-" "Python/3.8 aiohttp/3.7.4.post0"
------------------------------ Captured log call -------------------------------
INFO homeassistant.loader:loader.py:344 Loaded prometheus from homeassistant.components.prometheus
INFO homeassistant.loader:loader.py:344 Loaded http from homeassistant.components.http
DEBUG homeassistant.setup:setup.py:130 Dependency prometheus will wait for dependencies ['http']
INFO homeassistant.setup:setup.py:217 Setting up http
INFO homeassistant.setup:setup.py:265 Setup of domain http took 0.0 seconds
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=http>
INFO homeassistant.setup:setup.py:217 Setting up prometheus
INFO homeassistant.setup:setup.py:265 Setup of domain prometheus took 0.0 seconds
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=prometheus>
INFO homeassistant.loader:loader.py:344 Loaded sensor from homeassistant.components.sensor
INFO homeassistant.loader:loader.py:344 Loaded demo from homeassistant.components.demo
INFO homeassistant.setup:setup.py:217 Setting up sensor
INFO homeassistant.setup:setup.py:265 Setup of domain sensor took 0.0 seconds
DEBUG homeassistant.setup:setup.py:130 Dependency demo will wait for dependencies ['conversation', 'zone', 'group']
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=sensor>
INFO homeassistant.loader:loader.py:344 Loaded conversation from homeassistant.components.conversation
INFO homeassistant.loader:loader.py:344 Loaded zone from homeassistant.components.zone
INFO homeassistant.setup:setup.py:217 Setting up conversation
INFO homeassistant.loader:loader.py:344 Loaded group from homeassistant.components.group
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=conversation, service=process>
INFO homeassistant.setup:setup.py:265 Setup of domain conversation took 0.0 seconds
INFO homeassistant.loader:loader.py:344 Loaded climate from homeassistant.components.climate
INFO homeassistant.setup:setup.py:217 Setting up zone
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=conversation>
INFO homeassistant.setup:setup.py:217 Setting up group
INFO homeassistant.setup:setup.py:217 Setting up climate
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=turn_on>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=turn_off>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_hvac_mode>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_preset_mode>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_aux_heat>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_temperature>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_humidity>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_fan_mode>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_swing_mode>
INFO homeassistant.setup:setup.py:265 Setup of domain climate took 0.0 seconds
DEBUG homeassistant.setup:setup.py:130 Dependency demo will wait for dependencies ['zone', 'group']
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=climate>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=group, service=reload>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=group, service=set>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=group, service=remove>
INFO homeassistant.setup:setup.py:265 Setup of domain group took 0.1 seconds
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=zone, service=reload>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=group>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=zone.home, old_state=None, new_state=<state zone.home=zoning; latitude=32.87336, longitude=-117.22743, radius=100, passive=False, editable=True, friendly_name=test home, icon=mdi:home @ 2021-05-12T16:02:29.918726+00:00>>
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for zone.home
INFO homeassistant.setup:setup.py:265 Setup of domain zone took 0.1 seconds
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=zone>
INFO homeassistant.setup:setup.py:217 Setting up demo
INFO homeassistant.setup:setup.py:265 Setup of domain demo took 0.0 seconds
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=demo>
INFO homeassistant.components.sensor:entity_platform.py:217 Setting up sensor.demo
INFO homeassistant.components.climate:entity_platform.py:217 Setting up climate.demo
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.outside_temperature
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_temperature>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_temperature, old_state=None, new_state=<state sensor.outside_temperature=15.6; battery_level=12, unit_of_measurement=°C, friendly_name=Outside Temperature, device_class=temperature @ 2021-05-12T16:02:29.931161+00:00>>
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.outside_humidity
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_humidity>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_humidity, old_state=None, new_state=<state sensor.outside_humidity=54; unit_of_measurement=%, friendly_name=Outside Humidity, device_class=humidity @ 2021-05-12T16:02:29.933965+00:00>>
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.carbon_monoxide
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.outside_humidity
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_monoxide>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_monoxide, old_state=None, new_state=<state sensor.carbon_monoxide=54; unit_of_measurement=ppm, friendly_name=Carbon monoxide, device_class=carbon_monoxide @ 2021-05-12T16:02:29.954947+00:00>>
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.carbon_dioxide
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.carbon_monoxide
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_dioxide>
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.outside_temperature
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_dioxide, old_state=None, new_state=<state sensor.carbon_dioxide=54; battery_level=14, unit_of_measurement=ppm, friendly_name=Carbon dioxide, device_class=carbon_dioxide @ 2021-05-12T16:02:29.958608+00:00>>
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new climate.demo entity: climate.heatpump
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.heatpump>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=climate.heatpump, old_state=None, new_state=<state climate.heatpump=heat; hvac_modes=['heat', 'off'], min_temp=7.0, max_temp=35.0, current_temperature=25.0, temperature=20.0, hvac_action=heating, friendly_name=HeatPump, supported_features=1 @ 2021-05-12T16:02:29.970499+00:00>>
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.carbon_dioxide
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for climate.heatpump
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new climate.demo entity: climate.hvac
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.hvac>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=climate.hvac, old_state=None, new_state=<state climate.hvac=cool; hvac_modes=['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], min_temp=7, max_temp=35, min_humidity=30, max_humidity=99, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=22, temperature=21, target_temp_high=None, target_temp_low=None, current_humidity=54, humidity=67, fan_mode=On High, hvac_action=cooling, swing_mode=Off, aux_heat=off, friendly_name=Hvac, supported_features=111 @ 2021-05-12T16:02:29.980988+00:00>>
INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new climate.demo entity: climate.ecobee
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.ecobee>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=climate.ecobee, old_state=None, new_state=<state climate.ecobee=heat_cool; hvac_modes=['heat_cool', 'cool', 'heat'], min_temp=7, max_temp=35, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], preset_modes=['home', 'eco'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=23, target_temp_high=24, target_temp_low=21, fan_mode=Auto Low, preset_mode=home, swing_mode=Auto, friendly_name=Ecobee, supported_features=58 @ 2021-05-12T16:02:29.984441+00:00>>
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for climate.hvac
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for climate.ecobee
INFO homeassistant.loader:loader.py:344 Loaded humidifier from homeassistant.components.humidifier
INFO homeassistant.setup:setup.py:217 Setting up humidifier
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_on>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_off>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=toggle>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_mode>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_humidity>
INFO homeassistant.setup:setup.py:265 Setup of domain humidifier took 0.0 seconds
INFO homeassistant.components.humidifier:entity_platform.py:217 Setting up humidifier.demo
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=humidifier>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.television_energy, old_state=None, new_state=<state sensor.television_energy=74; unit_of_measurement=kWh, friendly_name=Television Energy @ 2021-05-12T16:02:30.004051+00:00>>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.radio_energy, old_state=None, new_state=<state sensor.radio_energy=14; unit_of_measurement=kWh, friendly_name=Radio Energy, device_class=power @ 1970-01-02T00:00:00+00:00>>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.electricity_price, old_state=None, new_state=<state sensor.electricity_price=0.123; unit_of_measurement=SEK/kWh, friendly_name=Electricity price @ 2021-05-12T16:02:30.007311+00:00>>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.wind_direction, old_state=None, new_state=<state sensor.wind_direction=25; unit_of_measurement=°, friendly_name=Wind Direction @ 2021-05-12T16:02:30.008486+00:00>>
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.television_energy
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.radio_energy
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.electricity_price
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.wind_direction
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.sps30_pm_1um_weight_concentration, old_state=None, new_state=<state sensor.sps30_pm_1um_weight_concentration=3.7069; unit_of_measurement=µg/m³, friendly_name=SPS30 PM <1µm Weight concentration @ 2021-05-12T16:02:30.042774+00:00>>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=humidifier.humidifier, old_state=None, new_state=<state humidifier.humidifier=on; min_humidity=0, max_humidity=100, humidity=68, friendly_name=Humidifier, supported_features=0, device_class=humidifier @ 2021-05-12T16:02:30.048191+00:00>>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=humidifier.dehumidifier, old_state=None, new_state=<state humidifier.dehumidifier=on; min_humidity=0, max_humidity=100, humidity=54, friendly_name=Dehumidifier, supported_features=0, device_class=dehumidifier @ 2021-05-12T16:02:30.049812+00:00>>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=humidifier.hygrostat, old_state=None, new_state=<state humidifier.hygrostat=on; min_humidity=0, max_humidity=100, available_modes=['home', 'eco'], humidity=50, mode=home, friendly_name=Hygrostat, supported_features=1 @ 2021-05-12T16:02:30.051561+00:00>>
DEBUG homeassistant.components.http.auth:auth.py:127 Authenticated 127.0.0.1 for /api/prometheus using bearer token
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.sps30_pm_1um_weight_concentration
DEBUG homeassistant.components.http.view:view.py:120 Serving /api/prometheus to 127.0.0.1 (auth: True)
DEBUG homeassistant.components.prometheus:__init__.py:491 Received Prometheus metrics request
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for humidifier.hygrostat
INFO aiohttp.access:web_log.py:206 127.0.0.1 [12/May/2021:16:02:30 +0000] "GET /api/prometheus HTTP/1.1" 200 12216 "-" "Python/3.8 aiohttp/3.7.4.post0"
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for humidifier.dehumidifier
DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for humidifier.humidifier
--------------------------- Captured stderr teardown ---------------------------
DEBUG:homeassistant.core:Bus:Handling <Event homeassistant_stop[L]>
DEBUG:homeassistant.core:Bus:Handling <Event homeassistant_final_write[L]>
INFO:tests.common:Writing data to auth: {'version': 1, 'key': 'auth', 'data': {'users': [{'id': '7addd24334454b2fa200bec8bca48fb7', 'group_ids': ['system-admin'], 'is_owner': False, 'is_active': True, 'name': 'Mock User', 'system_generated': False}], 'groups': [{'id': 'system-admin', 'name': 'Administrators'}, {'id': 'system-users', 'name': 'Users'}, {'id': 'system-read-only', 'name': 'Read Only'}], 'credentials': [{'id': 'mock-credential-id', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'auth_provider_type': 'homeassistant', 'auth_provider_id': None, 'data': {'username': 'admin'}}], 'refresh_tokens': [{'id': '6c4c17c1d99848ef922f8e3d91e047e8', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'client_id': 'https://example.com/app', 'client_name': None, 'client_icon': None, 'token_type': 'normal', 'created_at': '2021-05-12T16:02:29.787536+00:00', 'access_token_expiration': 1800.0, 'token': 'f6360b0454c9a629a55879cf598e44469f96fb84ba590a4e1b54a096289b4fa65ab044f54d56ef38cfac698c26840e6025a67062ca3fc8bfa324093451bf12eb', 'jwt_key': 'e15fba373768d8be7a4c3b4055213e5fa6a9e443bcfe406e519b91f38cffc1fcf8463ffa86ec5b8824591f123f6f7059a4c15dcfcd30db3a673c3b9da4dd9dd3', 'last_used_at': '2021-05-12T16:02:29.787737+00:00', 'last_used_ip': None, 'credential_id': 'mock-credential-id', 'version': '2021.5.3'}]}}
INFO:tests.common:Writing data to core.entity_registry: {'version': 1, 'key': 'core.entity_registry', 'data': {'entities': [{'entity_id': 'sensor.outside_temperature', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'temperature', 'unit_of_measurement': '°C', 'original_name': 'Outside Temperature', 'original_icon': None}, {'entity_id': 'sensor.outside_humidity', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'humidity', 'unit_of_measurement': '%', 'original_name': 'Outside Humidity', 'original_icon': None}, {'entity_id': 'sensor.carbon_monoxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_monoxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon monoxide', 'original_icon': None}, {'entity_id': 'sensor.carbon_dioxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_4', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_dioxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon dioxide', 'original_icon': None}, {'entity_id': 'climate.heatpump', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat', 'off'], 'min_temp': 7.0, 'max_temp': 35.0}, 'supported_features': 1, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'HeatPump', 'original_icon': None}, {'entity_id': 'climate.hvac', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], 'min_temp': 7, 'max_temp': 35, 'min_humidity': 30, 'max_humidity': 99, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 111, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Hvac', 'original_icon': None}, {'entity_id': 'climate.ecobee', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat_cool', 'cool', 'heat'], 'min_temp': 7, 'max_temp': 35, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'preset_modes': ['home', 'eco'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 58, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Ecobee', 'original_icon': None}]}}
DEBUG:homeassistant.core:Bus:Handling <Event homeassistant_close[L]>
---------------------------- Captured log teardown -----------------------------
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event homeassistant_stop[L]>
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event homeassistant_final_write[L]>
INFO tests.common:common.py:1013 Writing data to auth: {'version': 1, 'key': 'auth', 'data': {'users': [{'id': '7addd24334454b2fa200bec8bca48fb7', 'group_ids': ['system-admin'], 'is_owner': False, 'is_active': True, 'name': 'Mock User', 'system_generated': False}], 'groups': [{'id': 'system-admin', 'name': 'Administrators'}, {'id': 'system-users', 'name': 'Users'}, {'id': 'system-read-only', 'name': 'Read Only'}], 'credentials': [{'id': 'mock-credential-id', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'auth_provider_type': 'homeassistant', 'auth_provider_id': None, 'data': {'username': 'admin'}}], 'refresh_tokens': [{'id': '6c4c17c1d99848ef922f8e3d91e047e8', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'client_id': 'https://example.com/app', 'client_name': None, 'client_icon': None, 'token_type': 'normal', 'created_at': '2021-05-12T16:02:29.787536+00:00', 'access_token_expiration': 1800.0, 'token': 'f6360b0454c9a629a55879cf598e44469f96fb84ba590a4e1b54a096289b4fa65ab044f54d56ef38cfac698c26840e6025a67062ca3fc8bfa324093451bf12eb', 'jwt_key': 'e15fba373768d8be7a4c3b4055213e5fa6a9e443bcfe406e519b91f38cffc1fcf8463ffa86ec5b8824591f123f6f7059a4c15dcfcd30db3a673c3b9da4dd9dd3', 'last_used_at': '2021-05-12T16:02:29.787737+00:00', 'last_used_ip': None, 'credential_id': 'mock-credential-id', 'version': '2021.5.3'}]}}
INFO tests.common:common.py:1013 Writing data to core.entity_registry: {'version': 1, 'key': 'core.entity_registry', 'data': {'entities': [{'entity_id': 'sensor.outside_temperature', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'temperature', 'unit_of_measurement': '°C', 'original_name': 'Outside Temperature', 'original_icon': None}, {'entity_id': 'sensor.outside_humidity', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'humidity', 'unit_of_measurement': '%', 'original_name': 'Outside Humidity', 'original_icon': None}, {'entity_id': 'sensor.carbon_monoxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_monoxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon monoxide', 'original_icon': None}, {'entity_id': 'sensor.carbon_dioxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_4', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_dioxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon dioxide', 'original_icon': None}, {'entity_id': 'climate.heatpump', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat', 'off'], 'min_temp': 7.0, 'max_temp': 35.0}, 'supported_features': 1, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'HeatPump', 'original_icon': None}, {'entity_id': 'climate.hvac', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], 'min_temp': 7, 'max_temp': 35, 'min_humidity': 30, 'max_humidity': 99, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 111, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Hvac', 'original_icon': None}, {'entity_id': 'climate.ecobee', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat_cool', 'cool', 'heat'], 'min_temp': 7, 'max_temp': 35, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'preset_modes': ['home', 'eco'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 58, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Ecobee', 'original_icon': None}]}}
DEBUG homeassistant.core:core.py:709 Bus:Handling <Event homeassistant_close[L]>
2021-05-26 02:33:12 +02:00
|
|
|
# prometheus/test_init.py: Spurious AssertionError regarding humidifier_target_humidity_percent metric
|
|
|
|
"--deselect tests/components/prometheus/test_init.py::test_view"
|
2021-06-03 03:43:31 +02:00
|
|
|
# smhi/test_init.py: Tries to fetch data from the network: socket.gaierror: [Errno -2] Name or service not known
|
|
|
|
"--deselect tests/components/smhi/test_init.py::test_remove_entry"
|
2021-06-15 14:13:02 +02:00
|
|
|
# wallbox/test_config_flow.py: Tries to connect to api.wall-box.cim: Failed to establish a new connection: [Errno -2] Name or service not known
|
|
|
|
"--deselect tests/components/wallbox/test_config_flow.py::test_form_invalid_auth"
|
|
|
|
"--deselect tests/components/wallbox/test_config_flow.py::test_form_cannot_connect"
|
2021-05-18 02:43:52 +02:00
|
|
|
# tests are located in tests/
|
|
|
|
"tests"
|
2021-02-06 04:47:04 +01:00
|
|
|
# dynamically add packages required for component tests
|
2020-10-08 01:27:42 +02:00
|
|
|
] ++ map (component: "tests/components/" + component) componentTests;
|
|
|
|
|
2021-02-06 04:47:04 +01:00
|
|
|
disabledTestPaths = [
|
|
|
|
# don't bulk test all components
|
|
|
|
"tests/components"
|
|
|
|
# pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
|
|
|
|
"tests/auth/mfa_modules/test_notify.py"
|
|
|
|
];
|
|
|
|
|
2020-10-08 01:27:42 +02:00
|
|
|
disabledTests = [
|
2021-02-05 17:07:53 +01:00
|
|
|
# AssertionError: assert 1 == 0
|
2021-03-03 22:21:01 +01:00
|
|
|
"test_error_posted_as_event"
|
2021-02-05 17:07:53 +01:00
|
|
|
"test_merge"
|
|
|
|
# ModuleNotFoundError: No module named 'pyqwikswitch'
|
|
|
|
"test_merge_id_schema"
|
2021-01-06 19:57:47 +01:00
|
|
|
# keyring.errors.NoKeyringError: No recommended backend was available.
|
|
|
|
"test_secrets_from_unrelated_fails"
|
|
|
|
"test_secrets_credstash"
|
2021-03-03 22:21:01 +01:00
|
|
|
# generic/test_camera.py: AssertionError: 500 == 200
|
|
|
|
"test_fetching_without_verify_ssl"
|
|
|
|
"test_fetching_url_with_verify_ssl"
|
2021-04-07 20:34:08 +02:00
|
|
|
# util/test_package.py: AssertionError on package.is_installed('homeassistant>=999.999.999')
|
|
|
|
"test_check_package_version_does_not_match"
|
2021-05-06 02:29:51 +02:00
|
|
|
# homeassistant/util/thread.py:51: SystemError
|
|
|
|
"test_executor_shutdown_can_interrupt_threads"
|
home-assistant: disable failing test in mobile app component
____________________ test_webhook_handle_get_config[pyloop] ____________________
[gw18] linux -- Python 3.8.9 /nix/store/q6gfck5czr67090pwm53xrdyhpg6bx67-python3-3.8.9/bin/python3.8
hass = <homeassistant.core.HomeAssistant object at 0x7ffe4e71f370>
create_registrations = ({'cloudhook_url': None, 'remote_ui_url': None, 'secret': 'ed8ac650f2b5865733d2cea4ad1b6b02bcfbdcc3e527524bc1c457d5c6f...emote_ui_url': None, 'secret': None, 'webhook_id': '558fde83113d48024a427ccf004e2d2bdf7c56646c6a5a953566c272d51f1bfc'})
webhook_client = <aiohttp.test_utils.TestClient object at 0x7ffe4e640ca0>
async def test_webhook_handle_get_config(hass, create_registrations, webhook_client):
"""Test that we can get config properly."""
resp = await webhook_client.post(
"/api/webhook/{}".format(create_registrations[1]["webhook_id"]),
json={"type": "get_config"},
)
assert resp.status == 200
json = await resp.json()
if "components" in json:
json["components"] = set(json["components"])
if "allowlist_external_dirs" in json:
json["allowlist_external_dirs"] = set(json["allowlist_external_dirs"])
hass_config = hass.config.as_dict()
expected_dict = {
"latitude": hass_config["latitude"],
"longitude": hass_config["longitude"],
"elevation": hass_config["elevation"],
"unit_system": hass_config["unit_system"],
"location_name": hass_config["location_name"],
"time_zone": hass_config["time_zone"],
"components": hass_config["components"],
"version": hass_config["version"],
"theme_color": "#03A9F4", # Default frontend theme color
}
> assert expected_dict == json
E AssertionError: assert {'components'...st home', ...} == {'components'...st home', ...}
E Omitting 8 identical items, use -vv to show
E Differing items:
E {'theme_color': '#03A9F4'} != {'theme_color': 'blue'}
E Use -v to get the full diff
tests/components/mobile_app/test_webhook.py:231: AssertionError
2021-05-17 03:41:47 +02:00
|
|
|
# {'theme_color': '#03A9F4'} != {'theme_color': 'blue'}
|
|
|
|
"test_webhook_handle_get_config"
|
2021-05-18 02:43:52 +02:00
|
|
|
# onboarding tests rpi_power component, for which we are lacking rpi_bad_power library
|
|
|
|
"test_onboarding_core_sets_up_rpi_power"
|
|
|
|
"test_onboarding_core_no_rpi_power"
|
2021-06-17 06:19:49 +02:00
|
|
|
# hue/test_sensor_base.py: Race condition when counting events
|
|
|
|
"test_hue_events"
|
2020-10-08 01:27:42 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
preCheck = ''
|
2021-04-07 20:34:08 +02:00
|
|
|
export HOME="$TEMPDIR"
|
|
|
|
|
2020-10-01 04:07:05 +02:00
|
|
|
# the tests require the existance of a media dir
|
|
|
|
mkdir /build/media
|
2021-04-07 01:41:57 +02:00
|
|
|
|
2021-05-18 02:43:52 +02:00
|
|
|
# put ping binary into PATH, e.g. for wake_on_lan tests
|
|
|
|
export PATH=${inetutils}/bin:$PATH
|
|
|
|
|
2021-04-07 01:41:57 +02:00
|
|
|
# error out when component test directory is missing, otherwise hidden by xdist execution :(
|
|
|
|
for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
|
|
|
|
test -d "tests/components/$component" || {
|
|
|
|
>2& echo "ERROR: Tests for component '$component' were enabled, but they do not exist!"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
done
|
2018-01-14 22:26:52 +01:00
|
|
|
'';
|
|
|
|
|
2020-05-06 08:39:44 +02:00
|
|
|
passthru = {
|
2021-06-16 15:19:04 +02:00
|
|
|
inherit availableComponents;
|
2021-06-15 21:16:08 +02:00
|
|
|
python = py;
|
2020-06-20 12:05:30 +02:00
|
|
|
tests = {
|
|
|
|
inherit (nixosTests) home-assistant;
|
|
|
|
};
|
2020-05-06 08:39:44 +02:00
|
|
|
};
|
|
|
|
|
2018-02-10 23:19:19 +01:00
|
|
|
meta = with lib; {
|
2020-04-01 03:11:51 +02:00
|
|
|
homepage = "https://home-assistant.io/";
|
2020-10-15 13:01:10 +02:00
|
|
|
description = "Open source home automation that puts local control and privacy first";
|
2018-01-14 22:26:52 +01:00
|
|
|
license = licenses.asl20;
|
2021-04-06 01:16:25 +02:00
|
|
|
maintainers = teams.home-assistant.members;
|
2021-04-03 23:39:33 +02:00
|
|
|
platforms = platforms.linux;
|
2018-01-14 22:26:52 +01:00
|
|
|
};
|
|
|
|
}
|