Homepoint — это экранный интерфейс для устройств Smarthome, подключенных к MQTT и HomeKit, который работает на наборе микросхем ESP32.
Функции
Демо
Установка
Строить
Конфигурация
Сцены и устройства
Wi-Fi и MQTT
Время NTP (необязательно)
Примеры
Дорожная карта
Известные ошибки и проблемы
Содействие
Купи мне кофе
Лицензия
Просматривайте и запускайте сцены (группы устройств) на переднем экране.
Запускайте отдельные устройства , погружаясь в сцены (нажимая на индикатор или удерживая кнопку).
Быстро просматривайте частично включенные сцены на нескольких устройствах.
Поддержка датчиков температуры, влажности, качества воздуха и показаний энергии Tasmota .
Удаленная настройка : настройте и перезагрузите HomePoint через веб-интерфейс. Не надо перепрошивать.
Обновления по беспроводной сети (бета-версия) : обновление новых версий HomePoint по беспроводной сети.
Поддержка HomeKit Switch (настройка автоматизации в приложении Home для переключения с Homepoint)*
Поддерживает навигацию как с сенсорным экраном, так и с помощью кнопок .
Реактивный : экран обновляется всякий раз, когда устройства запускаются из другого места.
Простая настройка через файл JSON, дополнительный код не требуется.
Заставка экономит электроэнергию, отключая экран через 10 минут.
В строке состояния отображается подключение к Wi-Fi и MQTT, а также время.
Безопасный режим : в случае повреждения конфигурации предоставляется отказоустойчивый режим для удаленного доступа.
Предварительно скомпилированные двоичные файлы : просто прошейте HomePoint на своем устройстве ESP32 без компиляции.
*в настоящее время находится в экспериментальной ветке.
HomePoint поставляется в виде двух предварительно скомпилированных файлов .bin, готовых к прошивке на обычном модуле ESP32 или M5Stack. Более подробную информацию о настройке оборудования можно найти в Wiki.
Шаги по установке:
Загрузите ESPTools с https://github.com/espressif/esptool/releases.
Установите ESPTools с помощью python setup.py install
Запустите esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(или homepoint_m5stack.bin для M5Stack).
Альтернативно, посмотрите видео по установке ниже:
Homepoint был создан с использованием ESP-IDF SDK.
Подробные инструкции по сборке доступны в Wiki.
Конфигурация находится в data/config.json
.
HomePoint поддерживает два типа сцен с выбором устройств для каждого:
Типы СЦЕН | Типы УСТРОЙСТВ |
---|---|
Свет, Переключатель | (нет, ожидается, что все устройства будут коммутаторами) |
Датчик | отображать одно или два значения одновременно с помощью настраиваемых значков (singleValue/комбинированные значения) |
Сгруппированные датчики поддерживают до двух устройств (из-за занимаемого места на экране).
Lights & Switches поддерживают бесконечное количество устройств в группе.
Некоторые датчики используют JSON в качестве формата данных, и в этом случае можно определить ключ . Они могут находиться на любом уровне полезной нагрузки датчика JSON. Для интеллектуальных розеток Tasmota ключевое значение «Мощность» может использоваться для отображения текущего энергопотребления.
Учетные данные WiFi и MQTT должны быть определены на верхнем уровне.
Чтобы установить правильный часовой пояс, скопируйте и вставьте настройку NTP TZ в ключ timezone
.
Некоторые из дисплеев IL9341 отличаются, например, тем, как координаты сенсорного экрана соответствуют дисплею или как управляется светодиодная подсветка. Поэтому мы предлагаем несколько вариантов переопределения значений по умолчанию в файле конфигурации.
Ключ | Тип | Ценить |
---|---|---|
"ledPinPulup" | логическое значение | true или false — управление мощностью подсветки, которая может увеличиваться/уменьшаться в зависимости от устройства. |
"экранРотацияАнгле" | Int | Параметр поворота может быть 0, 1, 2 или 3 с увеличением на 90 градусов. |
"screenSaverMinutes" | Int | Минуты до выключения дисплея (по умолчанию 10) |
"touchXAxisInverted" | Бул | по умолчанию: false , инвертировать ось X сенсорного экрана, если она смещена. |
"touchYAxisInverted" | Бул | по умолчанию: true , инвертировать ось Y сенсорного экрана, если она смещена. |
"displayColorInverted" | Бул | по умолчанию: false , инвертировать цветовое пространство (т. е. для дисплеев ILI9342C) |
Темы MQTT чувствительны к регистру согласно спецификации MQTT.
{ "wifi": "MyWifiSSID", "пароль": "Мой пароль Wi-Fi", "hostname": "optionalhostname", "login": "admin", "webpass": "admin", "mqttbroker": "mqtt: //192.168.1.2", "mqttusername": "mqttusername", "mqttpasswd": "mymqttpassword", "часовой пояс": "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "scenes": [{ "name": "Гостиная", "type" : "Light", "icon": "гостиная", "devices": [{ "name": "Some Light", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue color lamp 1", "onValue": " правда", "offValue": "ложь" }, { "name": "Дверной светильник", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status /lights/Hue color lamp 1", "onValue": "true", "offValue": "false", "icon": "door" }, ] }, { "name": "Спальня", "type": "Датчик", "icon": "door", "devices": [{ "name": "Датчик температуры DHT", "type": "singleValue", " jsondata": true, "firstIcon": "temperature_small", "firstKey": "температура", "getTopic": "спальня/esptemp" }, { "name": "Tasmota Smart Plug", "type": "singleValue", "jsondata": true, "firstKey": "Power", "firstIcon": "wattage_small", "getTopic": "tele/DVES_2F73BE/ ДАТЧИК" }] }] }
Более полностью настроенный пример доступен здесь.
Документация по интеграции с Homebridge-Hue и HomeAssistant/ZigBee2MQTT
Поддержка HomeKit
Тестирование
Если вы обнаружите какие-либо ошибки или вам понадобится помощь, не стесняйтесь и откройте проблему :)
Вклады приветствуются! Просто взломайте и откройте запрос на включение. Но, пожалуйста, следуйте стилю уже существующего кода (т. е. без табуляции и пробелов).
Я разработал HomePoint в свободное время, потому что хотел узнать больше о C++ на ESP32 и решить конкретную проблему в моем умном доме.
По мере того, как разработка продолжалась, я думал о том, как сделать этот проект открытым исходным кодом, более доступным и удобным для сообщества разработчиков.
Если вам нравится использовать HomePoint или эту работу, рассмотрите возможность небольшого пожертвования. Но не волнуйтесь, я все равно продолжу над этим работать ;-).
Массачусетский технологический институт © Маттиас Фрик