Устройства¶
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, m³ и т.д. |
inverted |
Считать спадающие фронты вместо передних |
Состояние счётчика сохраняется на диск каждые 60 секунд — после reboot значение восстановится с погрешностью до минуты.
Сбросить счётчик — действие reset_pulse в задаче или вручную через API.
Лимиты¶
| Платформа | DEVICES_MAX |
|---|---|
| ESP8266 | 4 (после Refactor-8266; раньше было больше, упёрлись в RAM) |
| ESP32 | 16 |
Если упёрлись — пересмотрите, не дублируются ли каналы (например, два dht22_temp с одной кучи не имеют смысла).
Удаление¶
Клик по 🗑️ → диалог подтверждения. Удаление необратимо, но если устройство было задействовано в задаче — задача останется, но действие/триггер с этим device_id перестанет срабатывать (валидация показывает warning в UI задач).
API за этой страницей¶
См. API → Devices.