Merge pull request #1733 from robbiet480/http-zeroconf

ZeroConf component
This commit is contained in:
Robbie Trencheny 2016-04-10 18:17:06 -07:00
commit f1e46e63c0
4 changed files with 57 additions and 2 deletions

View File

@ -65,6 +65,8 @@ omit =
homeassistant/components/scsgate.py
homeassistant/components/*/scsgate.py
homeassistant/components/zeroconf.py
homeassistant/components/binary_sensor/arest.py
homeassistant/components/binary_sensor/rest.py
homeassistant/components/browser.py

View File

@ -15,7 +15,7 @@ from homeassistant.const import (
EVENT_PLATFORM_DISCOVERED)
DOMAIN = "discovery"
REQUIREMENTS = ['netdisco==0.6.2']
REQUIREMENTS = ['netdisco==0.6.4']
SCAN_INTERVAL = 300 # seconds

View File

@ -0,0 +1,50 @@
"""
This module exposes Home Assistant via Zeroconf.
Zeroconf is also known as Bonjour, Avahi or Multicast DNS (mDNS).
For more details about Zeroconf, please refer to the documentation at
https://home-assistant.io/components/zeroconf/
"""
import logging
import socket
from homeassistant.const import (EVENT_HOMEASSISTANT_STOP, __version__)
REQUIREMENTS = ["zeroconf==0.17.5"]
DEPENDENCIES = ["api"]
_LOGGER = logging.getLogger(__name__)
DOMAIN = "zeroconf"
ZEROCONF_TYPE = "_home-assistant._tcp.local."
def setup(hass, config):
"""Set up Zeroconf and make Home Assistant discoverable."""
from zeroconf import Zeroconf, ServiceInfo
zeroconf = Zeroconf()
zeroconf_name = "{}.{}".format(hass.config.location_name,
ZEROCONF_TYPE)
params = {"version": __version__, "base_url": hass.config.api.base_url,
"needs_auth": (hass.config.api.api_password is not None)}
info = ServiceInfo(ZEROCONF_TYPE, zeroconf_name,
socket.inet_aton(hass.config.api.host),
hass.config.api.port, 0, 0, params)
zeroconf.register_service(info)
def stop_zeroconf(event):
"""Stop Zeroconf."""
zeroconf.unregister_service(info)
zeroconf.close()
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_zeroconf)
return True

View File

@ -136,7 +136,7 @@ messagebird==1.1.1
mficlient==0.3.0
# homeassistant.components.discovery
netdisco==0.6.2
netdisco==0.6.4
# homeassistant.components.sensor.neurio_energy
neurio==0.2.10
@ -317,3 +317,6 @@ xbee-helper==0.0.6
# homeassistant.components.sensor.yr
xmltodict
# homeassistant.components.zeroconf
zeroconf==0.17.5