Skip to content

Устройства

http://<ip-платы>/devices.html — CRUD реле и датчиков. Каждая запись — это «физическая штука на пине».

Список

Таблица: имя · тип · пин(ы) · состояние / значение · действия.

Действия: ✏️ редактировать, 🗑️ удалить (с подтверждением). Кнопка + Добавить открывает модалку.

Поля формы

В модалке набор полей зависит от выбранного типа. Ниже — что значит каждое поле.

Общие поля

Поле Тип Назначение
Имя строка Подпись на дашборде. Уникальность не обязательна, но полезна.
Тип dropdown Из списка скомпилированных плагинов. См. таблицу ниже.
Пин GPIO Главный пин (см. пины ESP8266 / ESP32).
Pin2 GPIO Только для hc_sr04 (echo-пин).
Инверсия bool Для relay/digital_input/pulse_counter: HIGH = выключен, LOW = включён. Полезно для модулей реле с low-active управлением.

Поля по типу

relay

Никаких специфичных полей кроме inverted. Реле выставляется в digitalWrite(pin, inverted ? HIGH : LOW) на старте (= выключено), переключается через /api/v1/devices/{id}/state.

button

Поле Назначение
debounce_ms Время дребезга в миллисекундах. Дефолт 30 мс. Слишком маленькое — фантомные нажатия; слишком большое — пропуски быстрых кликов.

Button можно симулировать через POST /api/v1/devices/{id}/state с {simulate: "press"} — полезно для тестирования сценариев без физического нажатия.

ds18b20

Поле Назначение
address 16-hex адрес OneWire-датчика (28FF...). Если несколько датчиков на одном пине — обязателен.

В модалке есть кнопка Сканировать OneWire — она шлёт POST /api/v1/devices/scan с указанным пином и возвращает список найденных адресов. Удобно когда вы только что подключили датчик и не знаете его адрес.

dht22_temp / dht22_hum

Никаких специфичных полей — DHT22 отдаёт два канала, добавляются как два отдельных устройства на одном пине: один с типом dht22_temp, другой dht22_hum. Плагин внутри делает один опрос на цикл, оба канала получают свежие значения.

bme280_temp / bme280_hum / bme280_pres

Поле Назначение
i2c_address I²C адрес. Обычно 0x76 (118) или 0x77 (119) — определяется SDO-перемычкой на модуле.

I²C-шина — пины SDA/SCL платы (D2/D1 на ESP8266, 21/22 на ESP32). Множественные BME280 на одной шине — разные i2c_address.

hc_sr04

Поле Назначение
pin Trigger-пин (выход)
pin2 Echo-пин (вход)

Возвращает расстояние в сантиметрах. Точность ~±1 см, диапазон 2–400 см. Чувствителен к температуре и поверхности (мягкое поглощает звук — даст завышенное значение).

analog_input

Поле Назначение
calib_min Сырое значение ADC, соответствующее 0% (или min units)
calib_max Сырое значение ADC, соответствующее 100% (или max units)
unit Подпись единицы измерения: %, V, °C и т.д.

ESP8266: один ADC (A0), 10 бит (0..1023), 0–3.3 В.
ESP32: ADC1 на GPIO 32–39, 12 бит (0..4095). ADC2 (GPIO 25–27 и т.д.) не работает одновременно с Wi-Fi — не использовать.

digital_input

Обычный логический вход с pull-up. Возвращает 0 / 1. С inverted: true логика инвертируется (полезно для нормально-замкнутых контактов).

pulse_counter

Поле Назначение
calib_min Единиц на один импульс (например, для счётчика воды 1 импульс = 10 л → calib_min = 10)
unit Единица: L, kWh, и т.д.
inverted Считать спадающие фронты вместо передних

Состояние счётчика сохраняется на диск каждые 60 секунд — после reboot значение восстановится с погрешностью до минуты.

Сбросить счётчик — действие reset_pulse в задаче или вручную через API.

Лимиты

Платформа DEVICES_MAX
ESP8266 4 (после Refactor-8266; раньше было больше, упёрлись в RAM)
ESP32 16

Если упёрлись — пересмотрите, не дублируются ли каналы (например, два dht22_temp с одной кучи не имеют смысла).

Удаление

Клик по 🗑️ → диалог подтверждения. Удаление необратимо, но если устройство было задействовано в задаче — задача останется, но действие/триггер с этим device_id перестанет срабатывать (валидация показывает warning в UI задач).

API за этой страницей

См. API → Devices.