123
правки
м |
|||
Строка 126: | Строка 126: | ||
= Интеграция с Wiren Board = | = Интеграция с Wiren Board = | ||
Для трансляции значений в контроллер Wiren Board нам понадобится виртуальное устройство, чтобы мы могли в его топики передавать значения через MQTT. | |||
== Создаём виртуальное устройство == | |||
<syntaxhighlight lang="javascript"> | |||
defineVirtualDevice('virtual-garderob', { | |||
title: 'virtual-garderob' , | |||
cells: { | |||
presence_sensor: { | |||
title: "датчик присутствия", | |||
type: "alarm", | |||
value: false, | |||
}, | |||
} | |||
}) | |||
</syntaxhighlight> | |||
== Получаем имя топика == | |||
В веб-интерфейсе Wiren Board в разделе "Настройки -> MQTT топики" ищем наше виртуальное устройство и копируем значение топика (например, /devices/virtual-garderob/controls/presence_sensor) | |||
== Добавляем в конфиг esphome == | |||
ранее мы описывали бинарный сенсор - его нужно дополнить полем id (это нужно чтобы в lambda-функции можно было получение значение сенсора): | |||
<syntaxhighlight lang="yaml"> | |||
binary_sensor: | |||
- platform: ld2410 | |||
has_target: | |||
name: Presence | |||
id: esp_garderob_presence | |||
on_state: | |||
then: | |||
- mqtt.publish: | |||
topic: /devices/virtual-garderob/controls/presence_sensor | |||
payload: !lambda |- | |||
return id(esp_garderob_presence).state ? "1" : "0"; | |||
mqtt: | |||
broker: 10.50.0.253 | |||
</syntaxhighlight> | |||
что мы сделали: | |||
#добавили id к сенсору | |||
#описали mqtt-брокера | |||
#создали триггер on_state, срабатывающий при изменении значения сенсора, используем функцию mqtt.publish для отправки данных в Wiren Board | |||
Теперь можно пойти в раздел устройств в интерфейсе Wiren Board и увидеть такое: | |||
[[Файл:Screenshot from 2024-01-29 13-17-22.png]] | |||
Когда датчик сработает, то будет выглядеть так: | |||
[[Файл:Screenshot from 2024-01-29 13-17-47.png]] | |||
Таким образом, можно использовать wb-rules для автоматизации, или какой-то другой софт. | |||
= Автоматизация освещения = | |||
Совсем коротко про автоматизацию (как это сделал я): | |||
* всё освещение у меня уже прокинуто в Home Assistant при помощи wb-engine (https://github.com/4mr/wb-engine) | |||
* установлен node red с модулем node-red-contrib-home-assistant-websocket и node-red-contrib-wirenboard | |||
Добавляем компонент "events: state" (отлавливает изменение состояния выбранного объекта) | |||
[[Файл:Screenshot from 2024-01-29 13-40-40.png]] | |||
если вы используете компонент первый раз - нужно добавить сервер home assistant (если NR крутится внутри HA, тогда, по идее, это можно пропустить) | |||
[[Файл:Screenshot from 2024-01-29 13-32-32.png]] | |||
указываем объект сенсора | |||
[[Файл:Screenshot from 2024-01-29 13-42-59.png]] | |||
добавляем второй компонент - "wb: out" | |||
[[https://wirenboard.com/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Screenshot_from_2024-01-29_13-40-02.png]] | |||
если вы используете компонент первый раз - нужно добавить сервер wiren board | |||
[[Файл:Screenshot from 2024-01-29 13-38-30.png]] | |||
указываем "светильник" | |||
[[Файл:Screenshot from 2024-01-29 13-44-41.png]] | |||
Далее жмём "Deploy". Теперь при обнаружении присутствия человека в гардеробе будет зажигаться соответствующая группа освещения. | |||
= Автономное подключение = | = Автономное подключение = | ||
У датчика есть OUT-пин, на котором появляется напряжение 3V в случае обнаружения объекта, таким образом, можно приколхозить какое-то реле и управлять освещением автономно, без контроллера УД, мне это было не нужно - поэтому особо не изучал, но эта задача кажется сильно проще чем подключение к HA/WB. | |||
Например, может подойти один из модулей реле (тут надо смотреть, что в действительности выдаёт датчик на пине OUT): | |||
[[Файл:Screenshot from 2024-01-29 11-41-12.png]] | [[Файл:Screenshot from 2024-01-29 11-41-12.png]] | ||
[[Файл:Odnokanalnoe-rele.jpg]] | |||
= Печать корпуса = | = Печать корпуса = | ||
В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился: | |||
[[Файл:Ld2410-case-1.jpeg]] | |||
[[Файл:Ld2410-case-2.jpeg]] | |||
ссылки на схемы: | |||
* https://www.printables.com/model/582630-case-for-esp32-c3-super-mini-and-ld2410c/files | * https://www.printables.com/model/582630-case-for-esp32-c3-super-mini-and-ld2410c/files | ||
* https://cults3d.com/en/3d-model/gadget/ld2410-box-proto-type | * https://cults3d.com/en/3d-model/gadget/ld2410-box-proto-type |
правки