Moved siren to Wink from switch (#9879)

pull/9969/head
William Scanlon 2017-10-20 10:18:32 -04:00 committed by Fabian Affolter
parent d9f5398c56
commit 60053a642c
No known key found for this signature in database
GPG Key ID: DDF3D6F44AAB1336
6 changed files with 334 additions and 309 deletions

View File

@ -223,7 +223,7 @@ omit =
homeassistant/components/wemo.py
homeassistant/components/*/wemo.py
homeassistant/components/wink.py
homeassistant/components/wink/*
homeassistant/components/*/wink.py
homeassistant/components/xiaomi_aqara.py

View File

@ -1,4 +1,5 @@
foursquare:
checkin:
description: Check a user into a Foursquare venue
@ -542,45 +543,6 @@ input_boolean:
description: Entity id of the input boolean to turn on
example: 'input_boolean.notify_alerts'
wink:
pair_new_device:
description: Pair a new device to a Wink Hub.
fields:
hub_name:
description: The name of the hub to pair a new device to.
example: 'My hub'
pairing_mode:
description: One of ["zigbee", "zwave", "zwave_exclusion", "zwave_network_rediscovery", "lutron", "bluetooth", "kidde"]
example: 'zigbee'
kidde_radio_code:
description: A string of 8 1s and 0s one for each dip switch on the kidde device left --> right = 1 --> 8
example: '10101010'
rename_wink_device:
description: Rename the provided device.
fields:
entity_id:
description: The entity_id of the device to rename.
example: binary_sensor.front_door_opened
name:
description: The name to change it to.
example: back_door
delete_wink_device:
description: Remove/unpair device from Wink.
fields:
entity_id:
description: The entity_id of the device to delete.
pull_newly_added_devices_from_wink:
description: Pull newly pair devices from Wink.
refresh_state_from_wink:
description: Pull the latest states for every device.
homeassistant:
check_config:
description: Check the Home Assistant configuration files for errors. Errors will be displayed in the Home Assistant log.
@ -607,4 +569,4 @@ homeassistant:
fields:
entity_id:
description: The entity_id of the device to turn off
example: light.living_room
example: light.living_room

View File

@ -35,79 +35,3 @@ mysensors_send_ir_code:
V_IR_SEND:
description: IR code to send
example: '0xC284'
wink_set_chime_volume:
description: Set the volume of the chime for a Dome siren/chime.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
volume:
description: Volume level. One of ["low", "medium", "high"]
example: "low"
wink_set_siren_volume:
description: Set the volume of the siren for a Dome siren/chime.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
volume:
description: Volume level. One of ["low", "medium", "high"]
example: "high"
wink_enable_chime:
description: Enable the chime of a Dome siren with the provided sound.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
tone:
description: The tone to use for the chime. One of ["doorbell", "fur_elise", "doorbell_extended", "alert", "william_tell", "rondo_alla_turca", "police_siren", "evacuation", "beep_beep", "beep", "inactive"]
example: "doorbell"
wink_set_siren_tone:
description: Set the sound to use when the siren is enabled. (This doesn't enable the siren)
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
tone:
description: The tone to use for the chime. One of ["doorbell", "fur_elise", "doorbell_extended", "alert", "william_tell", "rondo_alla_turca", "police_siren", "evacuation", "beep_beep", "beep", "inactive"]
example: "alert"
wink_siren_set_auto_shutoff:
description: How long to sound the siren before turning off.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
auto_shutoff:
description: The time in seconds to sound the siren. One of [None, -1, 30, 60, 120] (None and -1 are forever. Use None for gocontrol, and -1 for Dome)
example: 60
wink_set_siren_strobe_enabled:
description: Enable or disable the strobe light when the siren is sounding.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
enabled:
description: "True or False"
wink_set_chime_strobe_enabled:
description: Enable or disable the strobe light when the chime is sounding.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
enabled:
description: "True or False"

View File

@ -6,109 +6,19 @@ https://home-assistant.io/components/switch.wink/
"""
import asyncio
import logging
from os import path
import voluptuous as vol
from homeassistant.components.wink import WinkDevice, DOMAIN
from homeassistant.helpers.entity import ToggleEntity
import homeassistant.helpers.config_validation as cv
from homeassistant.const import ATTR_ENTITY_ID
from homeassistant.config import load_yaml_config_file
DEPENDENCIES = ['wink']
_LOGGER = logging.getLogger(__name__)
SERVICE_SET_CHIME_VOLUME = "wink_set_chime_volume"
SERVICE_SET_SIREN_VOLUME = "wink_set_siren_volume"
SERVICE_ENABLE_CHIME = "wink_enable_chime"
SERVICE_SET_SIREN_TONE = "wink_set_siren_tone"
SERVICE_SET_SIREN_AUTO_SHUTOFF = "wink_siren_set_auto_shutoff"
SERVICE_SET_SIREN_STROBE_ENABLED = "wink_set_siren_strobe_enabled"
SERVICE_SET_CHIME_STROBE_ENABLED = "wink_set_chime_strobe_enabled"
ATTR_VOLUME = "volume"
ATTR_TONE = "tone"
ATTR_ENABLED = "enabled"
ATTR_AUTO_SHUTOFF = "auto_shutoff"
VOLUMES = ["low", "medium", "high"]
TONES = ["doorbell", "fur_elise", "doorbell_extended", "alert",
"william_tell", "rondo_alla_turca", "police_siren",
"evacuation", "beep_beep", "beep"]
CHIME_TONES = TONES + ["inactive"]
AUTO_SHUTOFF_TIMES = [None, -1, 30, 60, 120]
SET_VOLUME_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_VOLUME): vol.In(VOLUMES)
})
SET_SIREN_TONE_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_TONE): vol.In(TONES)
})
SET_CHIME_MODE_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_TONE): vol.In(CHIME_TONES)
})
SET_AUTO_SHUTOFF_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_AUTO_SHUTOFF): vol.In(AUTO_SHUTOFF_TIMES)
})
SET_STROBE_ENABLED_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_ENABLED): cv.boolean
})
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the Wink platform."""
import pywink
def service_handle(service):
"""Handler for services."""
entity_ids = service.data.get('entity_id')
all_sirens = []
for switch in hass.data[DOMAIN]['entities']['switch']:
if isinstance(switch, WinkSirenDevice):
all_sirens.append(switch)
sirens_to_set = []
if entity_ids is None:
sirens_to_set = all_sirens
else:
for siren in all_sirens:
if siren.entity_id in entity_ids:
sirens_to_set.append(siren)
for siren in sirens_to_set:
if service.service != SERVICE_SET_SIREN_AUTO_SHUTOFF:
if siren.wink.device_manufacturer() != 'dome':
_LOGGER.error("Service only valid for Dome sirens.")
return
if service.service == SERVICE_SET_CHIME_VOLUME:
siren.wink.set_chime_volume(service.data.get(ATTR_VOLUME))
elif service.service == SERVICE_SET_SIREN_VOLUME:
siren.wink.set_siren_volume(service.data.get(ATTR_VOLUME))
elif service.service == SERVICE_SET_SIREN_TONE:
siren.wink.set_siren_sound(service.data.get(ATTR_TONE))
elif service.service == SERVICE_ENABLE_CHIME:
siren.wink.set_chime(service.data.get(ATTR_TONE))
elif service.service == SERVICE_SET_SIREN_STROBE_ENABLED:
siren.wink.set_siren_strobe_enabled(
service.data.get(ATTR_ENABLED))
elif service.service == SERVICE_SET_CHIME_STROBE_ENABLED:
siren.wink.set_chime_strobe_enabled(
service.data.get(ATTR_ENABLED))
else:
siren.wink.set_auto_shutoff(
service.data.get(ATTR_AUTO_SHUTOFF))
for switch in pywink.get_switches():
_id = switch.object_id() + switch.name()
if _id not in hass.data[DOMAIN]['unique_ids']:
@ -117,10 +27,6 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_id = switch.object_id() + switch.name()
if _id not in hass.data[DOMAIN]['unique_ids']:
add_devices([WinkToggleDevice(switch, hass)])
for siren in pywink.get_sirens():
_id = siren.object_id() + siren.name()
if _id not in hass.data[DOMAIN]['unique_ids']:
add_devices([WinkSirenDevice(siren, hass)])
for sprinkler in pywink.get_sprinklers():
_id = sprinkler.object_id() + sprinkler.name()
if _id not in hass.data[DOMAIN]['unique_ids']:
@ -130,44 +36,6 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
if _id not in hass.data[DOMAIN]['unique_ids']:
add_devices([WinkToggleDevice(switch, hass)])
descriptions = load_yaml_config_file(
path.join(path.dirname(__file__), 'services.yaml'))
hass.services.register(DOMAIN, SERVICE_SET_SIREN_TONE,
service_handle,
descriptions.get(SERVICE_SET_SIREN_TONE),
schema=SET_SIREN_TONE_SCHEMA)
hass.services.register(DOMAIN, SERVICE_ENABLE_CHIME,
service_handle,
descriptions.get(SERVICE_ENABLE_CHIME),
schema=SET_CHIME_MODE_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_SIREN_VOLUME,
service_handle,
descriptions.get(SERVICE_SET_SIREN_VOLUME),
schema=SET_VOLUME_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_CHIME_VOLUME,
service_handle,
descriptions.get(SERVICE_SET_CHIME_VOLUME),
schema=SET_VOLUME_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_SIREN_STROBE_ENABLED,
service_handle,
descriptions.get(SERVICE_SET_SIREN_STROBE_ENABLED),
schema=SET_STROBE_ENABLED_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_CHIME_STROBE_ENABLED,
service_handle,
descriptions.get(SERVICE_SET_CHIME_STROBE_ENABLED),
schema=SET_STROBE_ENABLED_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_SIREN_AUTO_SHUTOFF,
service_handle,
descriptions.get(SERVICE_SET_SIREN_AUTO_SHUTOFF),
schema=SET_AUTO_SHUTOFF_SCHEMA)
class WinkToggleDevice(WinkDevice, ToggleEntity):
"""Representation of a Wink toggle device."""
@ -201,60 +69,3 @@ class WinkToggleDevice(WinkDevice, ToggleEntity):
except AttributeError:
pass
return attributes
class WinkSirenDevice(WinkDevice, ToggleEntity):
"""Representation of a Wink siren device."""
@asyncio.coroutine
def async_added_to_hass(self):
"""Callback when entity is added to hass."""
self.hass.data[DOMAIN]['entities']['switch'].append(self)
@property
def is_on(self):
"""Return true if device is on."""
return self.wink.state()
def turn_on(self, **kwargs):
"""Turn the device on."""
self.wink.set_state(True)
def turn_off(self):
"""Turn the device off."""
self.wink.set_state(False)
@property
def device_state_attributes(self):
"""Return the state attributes."""
attributes = super(WinkSirenDevice, self).device_state_attributes
auto_shutoff = self.wink.auto_shutoff()
if auto_shutoff is not None:
attributes["auto_shutoff"] = auto_shutoff
siren_volume = self.wink.siren_volume()
if siren_volume is not None:
attributes["siren_volume"] = siren_volume
chime_volume = self.wink.chime_volume()
if chime_volume is not None:
attributes["chime_volume"] = chime_volume
strobe_enabled = self.wink.strobe_enabled()
if strobe_enabled is not None:
attributes["siren_strobe_enabled"] = strobe_enabled
chime_strobe_enabled = self.wink.chime_strobe_enabled()
if chime_strobe_enabled is not None:
attributes["chime_strobe_enabled"] = chime_strobe_enabled
siren_sound = self.wink.siren_sound()
if siren_sound is not None:
attributes["siren_sound"] = siren_sound
chime_mode = self.wink.chime_mode()
if chime_mode is not None:
attributes["chime_mode"] = chime_mode
return attributes

View File

@ -4,6 +4,7 @@ Support for Wink hubs.
For more details about this component, please refer to the documentation at
https://home-assistant.io/components/wink/
"""
import asyncio
import logging
import time
import json
@ -20,8 +21,10 @@ from homeassistant.helpers.event import track_time_interval
from homeassistant.const import (
ATTR_BATTERY_LEVEL, CONF_EMAIL, CONF_PASSWORD,
EVENT_HOMEASSISTANT_START,
EVENT_HOMEASSISTANT_STOP, __version__, ATTR_ENTITY_ID)
EVENT_HOMEASSISTANT_STOP, __version__, ATTR_ENTITY_ID,
STATE_ON, STATE_OFF)
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_component import EntityComponent
import homeassistant.helpers.config_validation as cv
from homeassistant.config import load_yaml_config_file
@ -66,7 +69,26 @@ SERVICE_REFRESH_STATES = 'refresh_state_from_wink'
SERVICE_RENAME_DEVICE = 'rename_wink_device'
SERVICE_DELETE_DEVICE = 'delete_wink_device'
SERVICE_SET_PAIRING_MODE = 'pair_new_device'
SERVICE_SET_CHIME_VOLUME = "set_chime_volume"
SERVICE_SET_SIREN_VOLUME = "set_siren_volume"
SERVICE_ENABLE_CHIME = "enable_chime"
SERVICE_SET_SIREN_TONE = "set_siren_tone"
SERVICE_SET_AUTO_SHUTOFF = "siren_set_auto_shutoff"
SERVICE_SIREN_STROBE_ENABLED = "set_siren_strobe_enabled"
SERVICE_CHIME_STROBE_ENABLED = "set_chime_strobe_enabled"
SERVICE_ENABLE_SIREN = "enable_siren"
ATTR_VOLUME = "volume"
ATTR_TONE = "tone"
ATTR_ENABLED = "enabled"
ATTR_AUTO_SHUTOFF = "auto_shutoff"
VOLUMES = ["low", "medium", "high"]
TONES = ["doorbell", "fur_elise", "doorbell_extended", "alert",
"william_tell", "rondo_alla_turca", "police_siren",
"evacuation", "beep_beep", "beep"]
CHIME_TONES = TONES + ["inactive"]
AUTO_SHUTOFF_TIMES = [None, -1, 30, 60, 120]
CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.Schema({
@ -82,7 +104,6 @@ CONFIG_SCHEMA = vol.Schema({
})
}, extra=vol.ALLOW_EXTRA)
RENAME_DEVICE_SCHEMA = vol.Schema({
vol.Required(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_NAME): cv.string
@ -98,6 +119,36 @@ SET_PAIRING_MODE_SCHEMA = vol.Schema({
vol.Optional(ATTR_KIDDE_RADIO_CODE): cv.string
}, extra=vol.ALLOW_EXTRA)
SET_VOLUME_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_VOLUME): vol.In(VOLUMES)
})
SET_SIREN_TONE_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_TONE): vol.In(TONES)
})
SET_CHIME_MODE_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_TONE): vol.In(CHIME_TONES)
})
SET_AUTO_SHUTOFF_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_AUTO_SHUTOFF): vol.In(AUTO_SHUTOFF_TIMES)
})
SET_STROBE_ENABLED_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_ENABLED): cv.boolean
})
ENABLED_SIREN_SCHEMA = vol.Schema({
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
vol.Required(ATTR_ENABLED): cv.boolean
})
WINK_COMPONENTS = [
'binary_sensor', 'sensor', 'light', 'switch', 'lock', 'cover', 'climate',
'fan', 'alarm_control_panel', 'scene'
@ -204,7 +255,7 @@ def setup(hass, config):
from pubnubsubhandler import PubNubSubscriptionHandler
descriptions = load_yaml_config_file(
os.path.join(os.path.dirname(__file__), 'services.yaml')).get(DOMAIN)
os.path.join(os.path.dirname(__file__), 'services.yaml'))
if hass.data.get(DOMAIN) is None:
hass.data[DOMAIN] = {
@ -434,11 +485,110 @@ def setup(hass, config):
descriptions.get(SERVICE_SET_PAIRING_MODE),
schema=SET_PAIRING_MODE_SCHEMA)
def service_handle(service):
"""Handler for services."""
entity_ids = service.data.get('entity_id')
all_sirens = []
for switch in hass.data[DOMAIN]['entities']['switch']:
if isinstance(switch, WinkSirenDevice):
all_sirens.append(switch)
sirens_to_set = []
if entity_ids is None:
sirens_to_set = all_sirens
else:
for siren in all_sirens:
if siren.entity_id in entity_ids:
sirens_to_set.append(siren)
for siren in sirens_to_set:
if (service.service != SERVICE_SET_AUTO_SHUTOFF and
service.service != SERVICE_ENABLE_SIREN and
siren.wink.device_manufacturer() != 'dome'):
_LOGGER.error("Service only valid for Dome sirens.")
return
if service.service == SERVICE_ENABLE_SIREN:
siren.wink.set_state(service.data.get(ATTR_ENABLED))
elif service.service == SERVICE_SET_AUTO_SHUTOFF:
siren.wink.set_auto_shutoff(
service.data.get(ATTR_AUTO_SHUTOFF))
elif service.service == SERVICE_SET_CHIME_VOLUME:
siren.wink.set_chime_volume(service.data.get(ATTR_VOLUME))
elif service.service == SERVICE_SET_SIREN_VOLUME:
siren.wink.set_siren_volume(service.data.get(ATTR_VOLUME))
elif service.service == SERVICE_SET_SIREN_TONE:
siren.wink.set_siren_sound(service.data.get(ATTR_TONE))
elif service.service == SERVICE_ENABLE_CHIME:
siren.wink.set_chime(service.data.get(ATTR_TONE))
elif service.service == SERVICE_SIREN_STROBE_ENABLED:
siren.wink.set_siren_strobe_enabled(
service.data.get(ATTR_ENABLED))
elif service.service == SERVICE_CHIME_STROBE_ENABLED:
siren.wink.set_chime_strobe_enabled(
service.data.get(ATTR_ENABLED))
# Load components for the devices in Wink that we support
for wink_component in WINK_COMPONENTS:
hass.data[DOMAIN]['entities'][wink_component] = []
discovery.load_platform(hass, wink_component, DOMAIN, {}, config)
component = EntityComponent(_LOGGER, DOMAIN, hass)
sirens = []
has_dome_siren = False
for siren in pywink.get_sirens():
if siren.device_manufacturer() == "dome":
has_dome_siren = True
_id = siren.object_id() + siren.name()
if _id not in hass.data[DOMAIN]['unique_ids']:
sirens.append(WinkSirenDevice(siren, hass))
if sirens:
hass.services.register(DOMAIN, SERVICE_SET_AUTO_SHUTOFF,
service_handle,
descriptions.get(SERVICE_SET_AUTO_SHUTOFF),
schema=SET_AUTO_SHUTOFF_SCHEMA)
hass.services.register(DOMAIN, SERVICE_ENABLE_SIREN,
service_handle,
descriptions.get(SERVICE_ENABLE_SIREN),
schema=ENABLED_SIREN_SCHEMA)
if has_dome_siren:
hass.services.register(DOMAIN, SERVICE_SET_SIREN_TONE,
service_handle,
descriptions.get(SERVICE_SET_SIREN_TONE),
schema=SET_SIREN_TONE_SCHEMA)
hass.services.register(DOMAIN, SERVICE_ENABLE_CHIME,
service_handle,
descriptions.get(SERVICE_ENABLE_CHIME),
schema=SET_CHIME_MODE_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_SIREN_VOLUME,
service_handle,
descriptions.get(SERVICE_SET_SIREN_VOLUME),
schema=SET_VOLUME_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SET_CHIME_VOLUME,
service_handle,
descriptions.get(SERVICE_SET_CHIME_VOLUME),
schema=SET_VOLUME_SCHEMA)
hass.services.register(DOMAIN, SERVICE_SIREN_STROBE_ENABLED,
service_handle,
descriptions.get(SERVICE_SIREN_STROBE_ENABLED),
schema=SET_STROBE_ENABLED_SCHEMA)
hass.services.register(DOMAIN, SERVICE_CHIME_STROBE_ENABLED,
service_handle,
descriptions.get(SERVICE_CHIME_STROBE_ENABLED),
schema=SET_STROBE_ENABLED_SCHEMA)
component.add_entities(sirens)
return True
@ -594,3 +744,59 @@ class WinkDevice(Entity):
if hasattr(self.wink, 'tamper_detected'):
return self.wink.tamper_detected()
return None
class WinkSirenDevice(WinkDevice):
"""Representation of a Wink siren device."""
@asyncio.coroutine
def async_added_to_hass(self):
"""Callback when entity is added to hass."""
self.hass.data[DOMAIN]['entities']['switch'].append(self)
@property
def state(self):
"""Return sirens state."""
if self.wink.state():
return STATE_ON
return STATE_OFF
@property
def icon(self):
"""Return the icon to use in the frontend, if any."""
return "mdi:bell-ring"
@property
def device_state_attributes(self):
"""Return the state attributes."""
attributes = super(WinkSirenDevice, self).device_state_attributes
auto_shutoff = self.wink.auto_shutoff()
if auto_shutoff is not None:
attributes["auto_shutoff"] = auto_shutoff
siren_volume = self.wink.siren_volume()
if siren_volume is not None:
attributes["siren_volume"] = siren_volume
chime_volume = self.wink.chime_volume()
if chime_volume is not None:
attributes["chime_volume"] = chime_volume
strobe_enabled = self.wink.strobe_enabled()
if strobe_enabled is not None:
attributes["siren_strobe_enabled"] = strobe_enabled
chime_strobe_enabled = self.wink.chime_strobe_enabled()
if chime_strobe_enabled is not None:
attributes["chime_strobe_enabled"] = chime_strobe_enabled
siren_sound = self.wink.siren_sound()
if siren_sound is not None:
attributes["siren_sound"] = siren_sound
chime_mode = self.wink.chime_mode()
if chime_mode is not None:
attributes["chime_mode"] = chime_mode
return attributes

View File

@ -0,0 +1,122 @@
pair_new_device:
description: Pair a new device to a Wink Hub.
fields:
hub_name:
description: The name of the hub to pair a new device to.
example: 'My hub'
pairing_mode:
description: One of ["zigbee", "zwave", "zwave_exclusion", "zwave_network_rediscovery", "lutron", "bluetooth", "kidde"]
example: 'zigbee'
kidde_radio_code:
description: 'A string of 8 1s and 0s one for each dip switch on the kidde device left --> right = 1 --> 8'
example: '10101010'
rename_wink_device:
description: Rename the provided device.
fields:
entity_id:
description: The entity_id of the device to rename.
example: binary_sensor.front_door_opened
name:
description: The name to change it to.
example: back_door
delete_wink_device:
description: Remove/unpair device from Wink.
fields:
entity_id:
description: The entity_id of the device to delete.
pull_newly_added_devices_from_wink:
description: Pull newly pair devices from Wink.
refresh_state_from_wink:
description: Pull the latest states for every device.
set_siren_volume:
description: Set the volume of the siren for a Dome siren/chime.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
volume:
description: Volume level. One of ["low", "medium", "high"]
example: "high"
enable_chime:
description: Enable the chime of a Dome siren with the provided sound.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
tone:
description: The tone to use for the chime. One of ["doorbell", "fur_elise", "doorbell_extended", "alert", "william_tell", "rondo_alla_turca", "police_siren", "evacuation", "beep_beep", "beep", "inactive"]
example: "doorbell"
set_siren_tone:
description: Set the sound to use when the siren is enabled. (This doesn't enable the siren)
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
tone:
description: The tone to use for the chime. One of ["doorbell", "fur_elise", "doorbell_extended", "alert", "william_tell", "rondo_alla_turca", "police_siren", "evacuation", "beep_beep", "beep", "inactive"]
example: "alert"
siren_set_auto_shutoff:
description: How long to sound the siren before turning off.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
auto_shutoff:
description: The time in seconds to sound the siren. One of [None, -1, 30, 60, 120] (None and -1 are forever. Use None for gocontrol, and -1 for Dome)
example: 60
set_siren_strobe_enabled:
description: Enable or disable the strobe light when the siren is sounding.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
enabled:
description: "True or False"
set_chime_strobe_enabled:
description: Enable or disable the strobe light when the chime is sounding.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
enabled:
description: "True or False"
enable_siren:
description: Enable/disable the siren.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
enabled:
description: "True or False"
set_chime_volume:
description: Set the volume of the chime for a Dome siren/chime.
fields:
entity_id:
description: Name(s) of the entities to set
example: 'switch.dome_siren'
volume:
description: Volume level. One of ["low", "medium", "high"]
example: "low"