Files
lighthub/documentation/integrations/1wire_sensors.md
T
2026-10-11 01:27:15 +03:00

102 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Подключение 1-Wire датчиков
> Источник: Wiki LightHub (lazyhome.ru), страница «подключение\_1-wire\_датчиков». Снапшот от 2026-10-02.
## Подключение к контроллеру
Подключение производится к клеммам:
- X5 - +5В
- X4 - GND
- X3 - 1wire
(см. иллюстрацию на [wiki-странице](https://www.lazyhome.ru/dokuwiki/doku.php?id=подключение_1-wire_датчиков), файл 1wire.png)
На рисунке снизу вверх черными точками: 5B, gnd, 1wire.
## Конфигурация контроллера
Дополнительная информация по настройке приведена тут [конфигурирование: что такое execobj](https://www.lazyhome.ru/dokuwiki/doku.php?id=конфигурирование#что_такое_execobj)
В корне прописываем:
```json
"ow":{
"АДРЕС_ДАТЧИКА":{"emit":"Temperature01"}
},
```
АДРЕС\_ДАТЧИКА в виде: 282DA307D6013C08
## MQTT
Подписываемся на топик "myhome/s\_out/Temperature01" и получаем значения температуры.
## Простой релейный термостат (теплый пол)
добавляем
```json
"items":{
"local_termostat":[5,24,33]
}
```
5 - тип релейный термостат
24 - номер пина
33 - (опционально) - температура по-умолчанию
Добавляем связку между термометром и локальным термостатом
```json
"ow":{
"282DA307D6013C08":{"emit":"Temperature01", "item":"local_termostat/val"}
},
```
Настройка завершена
Суффикс /val при передаче температуры локальным обьектам можно не добавлять
Значение температуры, также, может быть принято с внешних систем или иных контроллеров по MQTT c использованием топика формата /myhome/controller-id/local\_termostat/val
При отсутствии показаний в течение 10 мин термостат отключается и переходит в аварийный режим, выдавая аварию в топик /alarm
Термостат принимает значение температуры через суффикс /set
Через командный суффикс /cmd принимаются команды
- ON
- OFF
- AUTO
- HEAT
- HALT
- REST
- XON
- XOFF
Подробнее тут [работа с mqtt: команды, применимые для кондиционера и термостата](https://www.lazyhome.ru/dokuwiki/doku.php?id=работа_с_mqtt#команды_применимые_для_кондиционера_и_термостата)
## Поиск устройств на шине
Начиная с v4.3 автоматическое периодическое сканирование шины 1-wire отменено. Датчики опрашиваются последовательно, согласно настройкам в разделе ow
Чтобы просканировать шину и узнать адреса вновь подключенных устройств, можно выдать команду search в [CLI интерфейс](../core/cli_interface.md)
Результаты сканирования будут выданы в лог
## Сверка с кодом (2026-10-02)
Сверено с `lighthub/owTerm.cpp`, `lighthub/owTerm.h`, `lighthub/main.cpp`.
- Раздел `"ow"` в корне конфигурации подтвержден: `owArr = aJson.getObjectItem(root, "ow")` (main.cpp:1491).
- Формат записи — имя датчика (16-значный шестнадцатеричный адрес, например `282DA307D6013C08`) → execobj с действиями: в коде имя объекта используется как адрес (`SetBytes(dev, 8, addrstr)`, `SetAddr`, owTerm.cpp:102-104, 196), объект передается в `executeCommand` (owTerm.cpp:69), т.е. `emit`/`item` поддерживаются.
- Передача значения — через суффикс `/val` (`itemCmd(currentTemp).setSuffix(S_VAL)`, owTerm.cpp:69), что согласуется с wiki (суффикс можно не добавлять — он подставляется сам).
- Автоматическое периодическое сканирование шины действительно отменено: `owUpdate()` (сканирование) вызывается только из `owSearch()`, который привязан к CLI-команде `search` (main.cpp:2875, owTerm.cpp:39-42); в цикле `sensors_loop` периодический вызов закомментирован (owTerm.cpp:259).
- Результаты сканирования выводятся в лог (`infoSerial`, owTerm.cpp:96-114) — подтверждено.
- Опрашиваются последовательно только датчики из раздела `ow` (обход `owArr` в `sensors_loop`, owTerm.cpp:256-288) — подтверждено.
- Пин шины задается опцией компиляции `USE_1W_PIN` (owTerm.cpp:134); возможно также использование моста DS2482-100 по I2C (`DS2482_100_I2C_TO_1W_BRIDGE`) — в wiki не описано.