Changed vera components over to new config file format
This commit is contained in:
parent
a30d1dcfef
commit
dc8147c46d
3 changed files with 141 additions and 52 deletions
|
@ -1,4 +1,56 @@
|
|||
""" Support for Vera lights. """
|
||||
"""
|
||||
Support for Vera sensors.
|
||||
|
||||
Configuration:
|
||||
To use the Vera sensors you will need to add something like the following to your config/configuration.yaml
|
||||
|
||||
sensor:
|
||||
platform: vera
|
||||
vera_controller_url: http://YOUR_VERA_IP:3480/
|
||||
device_data:
|
||||
-
|
||||
vera_id: 12
|
||||
name: My awesome sensor
|
||||
exclude: true
|
||||
-
|
||||
vera_id: 13
|
||||
name: Another sensor
|
||||
|
||||
VARIABLES:
|
||||
|
||||
vera_controller_url
|
||||
*Required
|
||||
This is the base URL of your vera controller including the port number if not running on 80
|
||||
Example: http://192.168.1.21:3480/
|
||||
|
||||
|
||||
device_data
|
||||
*Optional
|
||||
This contains an array additional device info for your Vera devices. It is not required and if
|
||||
not specified all sensors configured in your Vera controller will be added with default values.
|
||||
|
||||
|
||||
These are the variables for the device_data array:
|
||||
|
||||
vera_id
|
||||
*Required
|
||||
The Vera device id you wish these configuration options to be applied to
|
||||
|
||||
|
||||
name
|
||||
*Optional
|
||||
This parameter allows you to override the name of your Vera device in the HA interface, if not specified the
|
||||
value configured for the device in your Vera will be used
|
||||
|
||||
|
||||
exclude
|
||||
*Optional
|
||||
This parameter allows you to exclude the specified device from homeassistant, it should be set to "true" if
|
||||
you want this device excluded
|
||||
|
||||
|
||||
|
||||
"""
|
||||
import logging
|
||||
import requests
|
||||
import time
|
||||
|
@ -8,7 +60,7 @@ from homeassistant.helpers import Device
|
|||
import homeassistant.external.vera.vera as veraApi
|
||||
from homeassistant.const import (STATE_OPEN, STATE_CLOSED, ATTR_FRIENDLY_NAME)
|
||||
|
||||
_LOGGER = logging.getLogger('Vera_Sensor')
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
vera_controller = None
|
||||
vera_sensors = []
|
||||
|
@ -19,22 +71,22 @@ def get_devices(hass, config):
|
|||
base_url = config.get('vera_controller_url')
|
||||
if not base_url:
|
||||
_LOGGER.error("The required parameter 'vera_controller_url' was not found in config")
|
||||
#return False
|
||||
return False
|
||||
|
||||
device_data_str = config.get('device_data')
|
||||
device_data = None
|
||||
if device_data_str:
|
||||
try:
|
||||
device_data = json.loads(device_data_str)
|
||||
except Exception as json_ex:
|
||||
_LOGGER.error('Vera sensors error parsing device info, should be in the format [{"id" : 12, "name": "Temperature"}]: %s', json_ex)
|
||||
device_data = config.get('device_data', None)
|
||||
|
||||
vera_controller = veraApi.VeraController(base_url)
|
||||
devices = vera_controller.get_devices(['Temperature Sensor', 'Light Sensor', 'Sensor'])
|
||||
|
||||
vera_sensors = []
|
||||
for device in devices:
|
||||
vera_sensors.append(VeraSensor(device, get_extra_device_data(device_data, device.deviceId)))
|
||||
extra_data = get_extra_device_data(device_data, device.deviceId)
|
||||
exclude = False
|
||||
if extra_data:
|
||||
exclude = extra_data.get('exclude', False)
|
||||
|
||||
if exclude is not True:
|
||||
vera_sensors.append(VeraSensor(device, extra_data))
|
||||
|
||||
except Exception as inst:
|
||||
_LOGGER.error("Could not find Vera sensors: %s", inst)
|
||||
|
@ -49,7 +101,7 @@ def get_extra_device_data(device_data, device_id):
|
|||
return None
|
||||
|
||||
for item in device_data:
|
||||
if item.get('id') == device_id:
|
||||
if item.get('vera_id') == device_id:
|
||||
return item
|
||||
return None
|
||||
|
||||
|
@ -75,7 +127,7 @@ class VeraSensor(Device):
|
|||
|
||||
@property
|
||||
def name(self):
|
||||
""" Get the mame of the switch. """
|
||||
""" Get the mame of the sensor. """
|
||||
if self.extra_data and self.extra_data.get('name'):
|
||||
return self.extra_data.get('name')
|
||||
return self.vera_device.name
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue