Files
lighthub/documentation/integrations/1wire_sensors.md
T
andry 724224a503 docs: import wiki pages into the repo (core/integrations/hardware)
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.
2026-10-03 00:41:20 +03:00

5.6 KiB
Raw Blame History

Подключение 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 не описано.