Exemple #1
0
def create_driver(loop, core_alarm):
    config = core_alarm.config.get('homekit', {})
    use_bridge = core_alarm.sensors or config.get('use_bridge', False)

    driver = AccessoryDriver(loop=loop, port=config.get('port', 51001))
    alarm = Alarm(driver, core_alarm, config)
    alarm.set_info_service(model=core_alarm.model,
                          manufacturer='Jablotron',
                          serial_number=core_alarm.serial_number,
                          firmware_revision=core_alarm.firmware_version)

    if use_bridge:
        bridge = Bridge(driver, display_name='Jablotron Bridge')
        bridge.set_info_service(model=core_alarm.model,
                                manufacturer='Jablotron',
                                serial_number=core_alarm.serial_number,
                                firmware_revision=core_alarm.firmware_version)
        bridge.add_accessory(alarm)
        for s in core_alarm.sensors.values():
            bridge.add_accessory(create_sensor_accessory(driver, s))
        driver.add_accessory(bridge)
    else:
        driver.add_accessory(alarm)

    return driver
Exemple #2
0
def get_bridge(driver):
    """Call this method to get a Bridge instead of a standalone accessory."""
    bridge = Bridge(driver, config['bridge_name'])
    bridge.set_info_service(manufacturer="Emsi")

    devices = config['devices']
    for device in devices:
        password = devices[device].get('password') or b'D000000'
        bulb = Bulb(devices[device]['address'].encode(),
                    password=password,
                    verbose=config['verbose']).connect()
        name = devices[device].get('name') or device
        bridge.add_accessory(OortColorBulb(driver, name, bulb))
        if devices[device]['color_switch'] == 'yes':
            bridge.add_accessory(
                OortColorBulbSwitch(driver, '{} color switch'.format(device),
                                    bulb))
    return bridge