SmartThingsPublic — открытая платформа для умного дома своими руками

18 Jul, 2023

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

Представьте: вы купили новую лампочку или датчик, а он не поддерживается вашей системой умного дома. Знакомая ситуация? Именно такие проблемы решает репозиторий SmartThingsPublic — открытая коллекция кода для интеграции практически любых устройств в экосистему SmartThings.

Что скрывается за названием?

SmartThingsPublic — это официальный GitHub-репозиторий Samsung SmartThings, содержащий:

  • Готовые драйверы устройств (Device Type Handlers)
  • Примеры смарт-приложений (SmartApps)
  • Инструменты для работы с Zigbee, Z-Wave и другими протоколами

Особенность проекта — переход на новую архитектуру SmartThings Edge, где логика работы устройств выполняется непосредственно на хабе, а не в облаке. Это значит:

✔️ Меньшая задержка при управлении устройствами ✔️ Работа без интернета (локальные сценарии) ✔️ Поддержка будущих стандартов вроде Matter

Кому это будет полезно?

  1. Разработчикам IoT-устройств — для быстрой интеграции с популярной платформой
  2. Энтузиастам умного дома — чтобы добавить поддержку нестандартных устройств
  3. Системным интеграторам — для создания кастомных решений под нужды клиентов

Три кита SmartThingsPublic

1. Драйверы устройств на Lua

Теперь вместо Groovy (который работал в облаке) используется Lua для локального выполнения на хабе. Пример простого драйвера:

local device_driver = {
  lifecycle_handler = {
    init = function(driver, device)
      -- Инициализация устройства
      device:emit_event(capabilities.switch.switch.off())
    end
  },
  capability_handlers = {
    [capabilities.switch.ID] = {
      [capabilities.switch.commands.on.NAME] = function(driver, device, command)
        -- Включение устройства
        device:emit_event(capabilities.switch.switch.on())
      end
    }
  }
}

2. Локальные автоматизации

Правила (Rules API) теперь выполняются на хабе, что позволяет:

  • Создавать сценарии «если датчик движения сработал — включить свет»
  • Настраивать таймеры и расписания
  • Связывать устройства между собой без облака

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

Из коробки доступна работа с:

  • Zigbee 3.0
  • Z-Wave
  • LAN-устройствами
  • В будущем — Matter и Thread

Как начать работать с репозиторием?

  1. Изучите документацию
  2. Зарегистрируйтесь в Developer Workspace
  3. Подключитесь к сообществу для обмена опытом

Реальные кейсы использования

  • Добавление китайского датчика — взяли за основу похожий драйвер и адаптировали под свой девайс
  • Кастомные уведомления — расширили стандартные смарт-приложения для отправки сообщений в Telegram
  • Локальный сценарий безопасности — при срабатывании датчика включается сирена даже без интернета

Вывод: стоит ли пробовать?

SmartThingsPublic — это:

✅ Возможность «оживить» практически любое устройство ✅ Доступ к экосистеме SmartThings с 89k форков (популярность говорит сама за себя) ✅ Будущее-proof решение с поддержкой новых стандартов

Если вы разрабатываете для умного дома или просто любите кастомизировать свои устройства — этот репозиторий станет вашей палочкой-выручалочкой. Главное — начать с малого: попробуйте модифицировать готовый драйвер под свои нужды!