npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-broadlink-lb1-local

v0.1.2

Published

Local LAN Homebridge platform plugin for BroadLink LB1 smart bulbs.

Readme

homebridge-broadlink-lb1-local

English | Русский

Homebridge-плагин для полностью локального управления умными лампами BroadLink LB1.

Совместимые лампы управляются напрямую по локальной сети через UDP-протокол BroadLink. Для обычной работы не нужны BroadLink Cloud, Magic Home, учётная запись или Python.

Python используется только дополнительными скриптами для первоначальной настройки Wi-Fi и снятия LAN-блокировки.

Совместимость

Совместимая лампа BroadLink LB1 и упаковка

Плагин физически протестирован с лампой, показанной выше.

Подтверждённые данные устройства:

| Параметр | Значение | |---|---| | Класс устройства | lb1 | | Модель | LB1 | | Производитель | Broadlink | | Product ID / devtype | 0x60C8 | | Протестированная прошивка | 57231 | | Протокол | BroadLink UDP, порт 80 |

У разных продавцов упаковка может отличаться. Надёжный способ проверить совместимость — убедиться, что при обнаружении лампа определяется как класс lb1 и devtype 0x60C8.

Другие ревизии ламп BroadLink пока не проверены на реальном оборудовании и не должны считаться официально поддерживаемыми.

Возможности

  • аксессуар HomeKit Lightbulb
  • включение и выключение
  • яркость
  • оттенок и насыщенность
  • цветовая температура
  • локальный опрос состояния
  • автоматический поиск ламп в локальной сети
  • ручная настройка устройств
  • стабильный HomeKit UUID на основе MAC-адреса
  • повторная авторизация после сетевых ошибок и потери сессии
  • watchdog keepalive для прошивки лампы
  • поддержка нескольких ламп
  • отсутствие облачной зависимости при обычной работе

Установка

Установите плагин через интерфейс Homebridge, найдя:

homebridge-broadlink-lb1-local

или из командной строки:

npm install -g homebridge-broadlink-lb1-local

После установки перезапустите Homebridge.

Подготовка лампы для локального управления

Перед использованием в Homebridge лампу необходимо подключить к Wi-Fi и оставить разблокированной для локального LAN-доступа.

Если лампа уже подключена к Wi-Fi и при проверке показывает Locked: False, этот раздел можно пропустить и перейти к настройке Homebridge.

Скрипты из scripts/ используют python-broadlink только на этапе первоначальной подготовки. После этого Homebridge их не использует.

1. Получите скрипты подготовки

Клонируйте репозиторий:

git clone https://github.com/IvanTroshka/homebridge-broadlink-lb1-local.git
cd homebridge-broadlink-lb1-local

2. Установите зависимости вспомогательных скриптов

Создайте временное Python-окружение:

python3 -m venv .venv
. .venv/bin/activate
pip install -r scripts/requirements.txt

3. Переведите лампу в режим настройки

Сбросьте лампу до заводского состояния и переведите её в режим настройки Wi-Fi.

На протестированной LB1 этот режим отображается быстрым миганием.

Если лампа создаёт временную Wi-Fi сеть для настройки, подключите к ней компьютер, на котором запускается скрипт, прежде чем продолжать.

Если ваша цель — полностью локальное управление, не добавляйте лампу обратно в старые сторонние приложения без необходимости. Протестированная лампа после настройки через старое приложение Magic Home находилась в состоянии LAN-lock.

4. Передайте лампе параметры Wi-Fi

Запустите:

python scripts/setup_bulb.py "Имя вашей Wi-Fi сети"

Пароль будет запрошен отдельно и не будет отображаться в терминале.

При необходимости пароль можно передать явно:

python scripts/setup_bulb.py "Имя вашей Wi-Fi сети" --password "пароль-wifi"

Для другого поддерживаемого режима безопасности:

python scripts/setup_bulb.py "Имя вашей Wi-Fi сети" --security wpa1/2

После успешной настройки лампа должна выйти из setup mode и подключиться к вашей обычной Wi-Fi сети.

5. Найдите IP-адрес лампы

Посмотрите адрес в роутере/DHCP-таблице или найдите лампу любым удобным LAN-сканером.

Homebridge идентифицирует аксессуар по MAC-адресу, а не по IP. Поэтому последующая смена IP через DHCP не создаёт дубликат лампы в HomeKit.

6. Снимите блокировку локального управления

Запустите:

python scripts/unlock_lb1.py --ip 192.168.1.50

Замените 192.168.1.50 на реальный адрес вашей лампы.

Скрипт:

  • обнаруживает лампу;
  • выполняет локальную авторизацию;
  • вызывает set_lock(False);
  • повторно обнаруживает устройство;
  • проверяет, что Locked равен False;
  • проверяет, что новая сессия может авторизоваться и прочитать состояние.

Сам Homebridge-плагин никогда намеренно не устанавливает lock=true.

Настройка Homebridge

Пример:

{
  "platform": "BroadlinkLB1Local",
  "name": "BroadLink LB1 Local",
  "discovery": true,
  "pollInterval": 10,
  "keepAliveInterval": 90,
  "devices": [
    {
      "name": "LB1 Lamp",
      "host": "192.168.1.50",
      "mac": "aa:bb:cc:dd:ee:ff"
    }
  ]
}

Устройства, добавленные вручную и найденные автоматически, объединяются по MAC-адресу и не создают дубликаты.

Можно использовать только автоматический поиск:

{
  "platform": "BroadlinkLB1Local",
  "name": "BroadLink LB1 Local",
  "discovery": true,
  "devices": []
}

Параметры конфигурации

| Параметр | По умолчанию | Описание | |---|---:|---| | discovery | true | Автоматически искать лампы при запуске | | discoveryTimeout | 5 | Таймаут обнаружения в секундах | | pollInterval | 10 | Интервал опроса состояния в секундах | | keepAliveInterval | 90 | Интервал watchdog-ping в секундах; 0 отключает его | | commandTimeout | 4 | Таймаут UDP-команды в секундах | | retries | 2 | Максимальное число повторных попыток | | colorDebounceMs | 100 | Задержка для объединения близких HomeKit-команд цвета | | devices | [] | Список ламп, заданных вручную |

Пример ручной записи устройства:

{
  "name": "LB1 Lamp",
  "host": "192.168.1.50",
  "mac": "aa:bb:cc:dd:ee:ff"
}

Дополнительно могут использоваться поля port и devtype.

Решение проблем

Лампа находится, но показывает Locked: True

Плагин не может авторизоваться в лампе с включённой LAN-блокировкой.

Сбросьте/перенастройте лампу и выполните:

python scripts/unlock_lb1.py --ip IP_ЛАМПЫ

Лампа не находится автоматически

Убедитесь, что Homebridge и лампа находятся в одной локальной сети/VLAN и UDP broadcast не блокируется сетевым оборудованием.

Лампу также можно добавить вручную по IP и MAC-адресу.

Лампа работала, но стала недоступна

Плагин автоматически повторяет сетевые запросы и заново авторизуется при необходимости.

Для прошивок с BroadLink watchdog по умолчанию отправляется keepalive-ping каждые 90 секунд.

Цветовая температура

HomeKit использует mired, а протокол LB1 — Kelvin. Плагин преобразует значения автоматически.

В текущей реализации исходящая цветовая температура ограничена диапазоном 2700K..6500K.

Благодарности

Дополнительные скрипты первоначальной настройки используют python-broadlink — MIT-лицензированный проект для локального управления устройствами BroadLink.

Сам Homebridge-плагин общается с лампой напрямую из Node.js/TypeScript и не требует python-broadlink во время обычной работы.