Ported the relevant lazyhome.ru dokuwiki pages to markdown, verified against the code; each page carries a 'cross-check with code' section where behavior differs from or extends the wiki.
5.6 KiB
Подключение 1-Wire датчиков
Источник: Wiki LightHub (lazyhome.ru), страница «подключение_1-wire_датчиков». Снапшот от 2026-10-02.
Подключение к контроллеру
Подключение производится к клеммам:
- X5 - +5В
- X4 - GND
- X3 - 1wire
(см. иллюстрацию на wiki-странице, файл 1wire.png)
На рисунке снизу вверх черными точками: 5B, gnd, 1wire.
Конфигурация контроллера
Дополнительная информация по настройке приведена тут конфигурирование: что такое execobj
В корне прописываем:
"ow":{
"АДРЕС_ДАТЧИКА":{"emit":"Temperature01"}
},
АДРЕС_ДАТЧИКА в виде: 282DA307D6013C08
MQTT
Подписываемся на топик "myhome/s_out/Temperature01" и получаем значения температуры.
Простой релейный термостат (теплый пол)
добавляем
"items":{
"local_termostat":[5,24,33]
}
5 - тип релейный термостат 24 - номер пина 33 - (опционально) - температура по-умолчанию
Добавляем связку между термометром и локальным термостатом
"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: команды, применимые для кондиционера и термостата
Поиск устройств на шине
Начиная с v4.3 автоматическое периодическое сканирование шины 1-wire отменено. Датчики опрашиваются последовательно, согласно настройкам в разделе ow
Чтобы просканировать шину и узнать адреса вновь подключенных устройств, можно выдать команду search в CLI интерфейс
Результаты сканирования будут выданы в лог
Сверка с кодом (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 не описано.