mirror of
https://github.com/home-assistant/core.git
synced 2025-09-22 03:19:33 +00:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
77f595c9a4 | ||
![]() |
8d0b1588be | ||
![]() |
70c5c82541 | ||
![]() |
bf910ef383 | ||
![]() |
99c49c0993 | ||
![]() |
f6e6c21ba6 | ||
![]() |
41b7f5ab1c | ||
![]() |
c5bd6b3d6b | ||
![]() |
7818c98c67 | ||
![]() |
e12222697c | ||
![]() |
58f28f177d | ||
![]() |
6030e419c5 | ||
![]() |
8d2a784831 | ||
![]() |
5dc841ecae |
@@ -159,7 +159,7 @@ jobs:
|
||||
git config --global user.email "pvizeli@syshack.ch"
|
||||
git config --global credential.helper store
|
||||
|
||||
echo "https://$(githubToken):x-oauth-basic@github.com > $HOME\.git-credentials
|
||||
echo "https://$(githubToken):x-oauth-basic@github.com" > $HOME/.git-credentials
|
||||
displayName: 'Install requirements'
|
||||
- script: |
|
||||
set -e
|
||||
|
@@ -1,7 +1,7 @@
|
||||
"""Support for repeating alerts when conditions are met."""
|
||||
import asyncio
|
||||
import logging
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import timedelta
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
@@ -13,6 +13,7 @@ from homeassistant.const import (
|
||||
SERVICE_TURN_ON, SERVICE_TURN_OFF, SERVICE_TOGGLE, ATTR_ENTITY_ID)
|
||||
from homeassistant.helpers import service, event
|
||||
from homeassistant.helpers.entity import ToggleEntity
|
||||
from homeassistant.util.dt import now
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -222,7 +223,7 @@ class Alert(ToggleEntity):
|
||||
async def _schedule_notify(self):
|
||||
"""Schedule a notification."""
|
||||
delay = self._delay[self._next_delay]
|
||||
next_msg = datetime.now() + delay
|
||||
next_msg = now() + delay
|
||||
self._cancel = \
|
||||
event.async_track_point_in_time(self.hass, self._notify, next_msg)
|
||||
self._next_delay = min(self._next_delay + 1, len(self._delay) - 1)
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"name": "Broadlink",
|
||||
"documentation": "https://www.home-assistant.io/components/broadlink",
|
||||
"requirements": [
|
||||
"broadlink==0.9.0"
|
||||
"broadlink==0.10.0"
|
||||
],
|
||||
"dependencies": [],
|
||||
"codeowners": [
|
||||
|
@@ -53,21 +53,20 @@ class DiscordNotificationService(BaseNotificationService):
|
||||
_LOGGER.error("No target specified")
|
||||
return None
|
||||
|
||||
if ATTR_DATA in kwargs:
|
||||
data = kwargs.get(ATTR_DATA)
|
||||
data = kwargs.get(ATTR_DATA) or {}
|
||||
|
||||
if ATTR_IMAGES in data:
|
||||
images = list()
|
||||
if ATTR_IMAGES in data:
|
||||
images = list()
|
||||
|
||||
for image in data.get(ATTR_IMAGES):
|
||||
image_exists = await self.hass.async_add_executor_job(
|
||||
self.file_exists,
|
||||
image)
|
||||
for image in data.get(ATTR_IMAGES):
|
||||
image_exists = await self.hass.async_add_executor_job(
|
||||
self.file_exists,
|
||||
image)
|
||||
|
||||
if image_exists:
|
||||
images.append(image)
|
||||
else:
|
||||
_LOGGER.warning("Image not found: %s", image)
|
||||
if image_exists:
|
||||
images.append(image)
|
||||
else:
|
||||
_LOGGER.warning("Image not found: %s", image)
|
||||
|
||||
# pylint: disable=unused-variable
|
||||
@discord_bot.event
|
||||
|
@@ -53,7 +53,6 @@ TYPE_SENSOR = PREFIX_TYPES + 'SENSOR'
|
||||
TYPE_DOOR = PREFIX_TYPES + 'DOOR'
|
||||
TYPE_TV = PREFIX_TYPES + 'TV'
|
||||
TYPE_SPEAKER = PREFIX_TYPES + 'SPEAKER'
|
||||
TYPE_MEDIA = PREFIX_TYPES + 'MEDIA'
|
||||
|
||||
SERVICE_REQUEST_SYNC = 'request_sync'
|
||||
HOMEGRAPH_URL = 'https://homegraph.googleapis.com/'
|
||||
@@ -89,7 +88,7 @@ DOMAIN_TO_GOOGLE_TYPES = {
|
||||
input_boolean.DOMAIN: TYPE_SWITCH,
|
||||
light.DOMAIN: TYPE_LIGHT,
|
||||
lock.DOMAIN: TYPE_LOCK,
|
||||
media_player.DOMAIN: TYPE_MEDIA,
|
||||
media_player.DOMAIN: TYPE_SWITCH,
|
||||
scene.DOMAIN: TYPE_SCENE,
|
||||
script.DOMAIN: TYPE_SCENE,
|
||||
switch.DOMAIN: TYPE_SWITCH,
|
||||
|
@@ -55,8 +55,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||
|
||||
_LOGGER.warning(
|
||||
"The honeywell component is deprecated for EU (i.e. non-US) systems, "
|
||||
"this functionality will be removed in version 0.96.")
|
||||
_LOGGER.warning(
|
||||
"this functionality will be removed in version 0.96. "
|
||||
"Please switch to the evohome component, "
|
||||
"see: https://home-assistant.io/components/evohome")
|
||||
|
||||
|
@@ -164,27 +164,28 @@ class ONVIFHassCamera(Camera):
|
||||
|
||||
system_date = dt_util.utcnow()
|
||||
device_time = await devicemgmt.GetSystemDateAndTime()
|
||||
cdate = device_time.UTCDateTime
|
||||
cam_date = dt.datetime(cdate.Date.Year, cdate.Date.Month,
|
||||
cdate.Date.Day, cdate.Time.Hour,
|
||||
cdate.Time.Minute, cdate.Time.Second,
|
||||
0, dt_util.UTC)
|
||||
if device_time:
|
||||
cdate = device_time.UTCDateTime
|
||||
cam_date = dt.datetime(cdate.Date.Year, cdate.Date.Month,
|
||||
cdate.Date.Day, cdate.Time.Hour,
|
||||
cdate.Time.Minute, cdate.Time.Second,
|
||||
0, dt_util.UTC)
|
||||
|
||||
_LOGGER.debug("Camera date/time: %s",
|
||||
cam_date)
|
||||
_LOGGER.debug("Camera date/time: %s",
|
||||
cam_date)
|
||||
|
||||
_LOGGER.debug("System date/time: %s",
|
||||
system_date)
|
||||
_LOGGER.debug("System date/time: %s",
|
||||
system_date)
|
||||
|
||||
dt_diff = cam_date - system_date
|
||||
dt_diff_seconds = dt_diff.total_seconds()
|
||||
dt_diff = cam_date - system_date
|
||||
dt_diff_seconds = dt_diff.total_seconds()
|
||||
|
||||
if dt_diff_seconds > 5:
|
||||
_LOGGER.warning("The date/time on the camera is '%s', "
|
||||
"which is different from the system '%s', "
|
||||
"this could lead to authentication issues",
|
||||
cam_date,
|
||||
system_date)
|
||||
if dt_diff_seconds > 5:
|
||||
_LOGGER.warning("The date/time on the camera is '%s', "
|
||||
"which is different from the system '%s', "
|
||||
"this could lead to authentication issues",
|
||||
cam_date,
|
||||
system_date)
|
||||
|
||||
_LOGGER.debug("Obtaining input uri")
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"name": "Traccar",
|
||||
"documentation": "https://www.home-assistant.io/components/traccar",
|
||||
"requirements": [
|
||||
"pytraccar==0.8.0",
|
||||
"pytraccar==0.9.0",
|
||||
"stringcase==1.2.0"
|
||||
],
|
||||
"dependencies": [],
|
||||
|
@@ -2,7 +2,7 @@
|
||||
"""Constants used by Home Assistant components."""
|
||||
MAJOR_VERSION = 0
|
||||
MINOR_VERSION = 93
|
||||
PATCH_VERSION = '0'
|
||||
PATCH_VERSION = '2'
|
||||
__short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION)
|
||||
__version__ = '{}.{}'.format(__short_version__, PATCH_VERSION)
|
||||
REQUIRED_PYTHON_VER = (3, 5, 3)
|
||||
|
@@ -338,12 +338,6 @@ async def check_ha_config_file(hass):
|
||||
result.add_error("Integration not found: {}".format(domain))
|
||||
continue
|
||||
|
||||
try:
|
||||
component = integration.get_component()
|
||||
except ImportError:
|
||||
result.add_error("Component not found: {}".format(domain))
|
||||
continue
|
||||
|
||||
if (not hass.config.skip_pip and integration.requirements and
|
||||
not await requirements.async_process_requirements(
|
||||
hass, integration.domain, integration.requirements)):
|
||||
@@ -351,6 +345,12 @@ async def check_ha_config_file(hass):
|
||||
', '.join(integration.requirements)))
|
||||
continue
|
||||
|
||||
try:
|
||||
component = integration.get_component()
|
||||
except ImportError:
|
||||
result.add_error("Component not found: {}".format(domain))
|
||||
continue
|
||||
|
||||
if hasattr(component, 'CONFIG_SCHEMA'):
|
||||
try:
|
||||
config = component.CONFIG_SCHEMA(config)
|
||||
|
@@ -261,7 +261,7 @@ boto3==1.9.16
|
||||
braviarc-homeassistant==0.3.7.dev0
|
||||
|
||||
# homeassistant.components.broadlink
|
||||
broadlink==0.9.0
|
||||
broadlink==0.10.0
|
||||
|
||||
# homeassistant.components.brottsplatskartan
|
||||
brottsplatskartan==0.0.1
|
||||
@@ -1450,7 +1450,7 @@ pytile==2.0.6
|
||||
pytouchline==0.7
|
||||
|
||||
# homeassistant.components.traccar
|
||||
pytraccar==0.8.0
|
||||
pytraccar==0.9.0
|
||||
|
||||
# homeassistant.components.trackr
|
||||
pytrackr==0.0.5
|
||||
|
@@ -147,7 +147,7 @@ DEMO_DEVICES = [{
|
||||
'action.devices.traits.Modes'
|
||||
],
|
||||
'type':
|
||||
'action.devices.types.MEDIA',
|
||||
'action.devices.types.SWITCH',
|
||||
'willReportState':
|
||||
False
|
||||
}, {
|
||||
@@ -162,7 +162,7 @@ DEMO_DEVICES = [{
|
||||
'action.devices.traits.Modes'
|
||||
],
|
||||
'type':
|
||||
'action.devices.types.MEDIA',
|
||||
'action.devices.types.SWITCH',
|
||||
'willReportState':
|
||||
False
|
||||
}, {
|
||||
@@ -171,7 +171,7 @@ DEMO_DEVICES = [{
|
||||
'name': 'Lounge room'
|
||||
},
|
||||
'traits': ['action.devices.traits.OnOff', 'action.devices.traits.Modes'],
|
||||
'type': 'action.devices.types.MEDIA',
|
||||
'type': 'action.devices.types.SWITCH',
|
||||
'willReportState': False
|
||||
}, {
|
||||
'id':
|
||||
@@ -182,7 +182,7 @@ DEMO_DEVICES = [{
|
||||
'traits':
|
||||
['action.devices.traits.OnOff', 'action.devices.traits.Volume'],
|
||||
'type':
|
||||
'action.devices.types.MEDIA',
|
||||
'action.devices.types.SWITCH',
|
||||
'willReportState':
|
||||
False
|
||||
}, {
|
||||
|
@@ -686,7 +686,7 @@ async def test_device_class_cover(hass, device_class, google_type):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("device_class,google_type", [
|
||||
('non_existing_class', 'action.devices.types.MEDIA'),
|
||||
('non_existing_class', 'action.devices.types.SWITCH'),
|
||||
('speaker', 'action.devices.types.SPEAKER'),
|
||||
('tv', 'action.devices.types.TV'),
|
||||
])
|
||||
|
Reference in New Issue
Block a user