В статье я использовал USB SDR R828D: https://alii.pub/6wloa6?erid=2SDnjcWwxcx
Сервер Home Assistant был установлен на ТВ приставке: https://alii.pub/6ten7r?erid=2SDnjeHU55r
Пробовал работать с Уличным датчиком температуры и влажности 433 mhz: https://alii.pub/6x057r?erid=2SDnje9xFDS
Датчик открытия двери 433mhz: https://alii.pub/6×0594?erid=2SDnjePJ8kY
Всяких сенсоров таких как датчик температуры ила датчик открытия двери работающих по радио на частоте 433 мегагерца довольно много и они существенно дешевле датчиков работающих например по Zigbee. Это потому, что в таких устройствах контроллеры используются, которые стоят гораздо дешевле, чем те же Zigbee.
Но используя дешевые 433mhz устройства мы теряем в безопасности, так как датчики 433mhz безопасными не назвать. По сути их могут соседи легко поймать и тоже принимать с них данные. Но используя например датчик температуры, мне вообще все равно поймают ли показания с него соседи или нет. Моей инфраструктуре умного дома это никак не повредит. Так, что будем считать его приемлемым для использования в умном доме.
Точно так-же и с датчиком открытия двери. Он охранный, отправляет показания, только когда дверь открывается (когда закрывается, он не шлёт ничего). И по сути это тоже мне никак не повредит, если этот сигнал перехватят.
Для снятия значений с датчиков по 433Mhz я использую USB свисток R828D & SDR. Он умеет работать на частотах от 25 МГц до 1760 МГц. Собственно как видите свисток очень крутой и с ним можно много делов наделать. Но мы будет в рамках этой статьи использовать только частоту 433Mhz, которая вписывается в этот диапазон.
При подключении этого свистка к серверу (например в моем случае это тв бокс rk3318 H96Max), у меня на usb 2.0 интерфейсе не запустился он. Ему не хватило питания. А вот в USB 3.0 все довольно отлично запустилось. По этому подключаю его к USB3.0. И когда будете делать самостоятельно, то обратите на это внимание, может не взлететь… Ему нужно хорошее USB питание, он прожерливый.
Но и на USB 2.0 будет конечно тоже работать на компьютерах. Просто в USB 3.0 обычно питание посерьезнее.
Установка Дополнения в Home Assistant для работы с SDR:
Дополнение называется “SDR to Home Assistant”. ЧТоб его добавить, нам необходимо добавить в репозитории дополнений в Home Assistant новую ссылку.
Для этого заходим в Настройки->Дополнения->магазин дополнений-> троеточие вверху -> Репозитории и добавляем туда репозиторий https://github.com/thejeffreystone/hassio_addons
После этого перезагружаем Home Assistant и в Магазине дополнений появится новый аддон под названием “SDR to Home Assistant”. Берем и устанавливаем его.
После установки аддона, нам нужно выставить верные параметры ему перед запуском. Мои настройки примерно такие:
Ну и давайте пробежимся по настройкам основным. Первое что нужно сразу понимать, это то, что аддон работает с MQTT и все данные будет передавать по MQTT, по этому нужно здесь указать настройки MQTT сервера.
mqtt_host – тут указывается ip адрес вашего Mqtt сервера, обычно это сам Home Assistant.
mqtt_port – тут указывается mqtt порт, стандартный порт 1883.
mqtt_user – тут указывается пользователь от mqtt сервера.
mqtt_password – тут указывается пароль от mqtt сервера.
mqtt_topic – тут указывается топик куда будут отправляться данные этим дополнением.
frequency – тут указывается частота которую будет слушать SDR.
protocol – тут указывается тип устройства из списка: https://github.com/thejeffreystone/hassio_addons/blob/main/sdr2mqtt/PROTOCOLS.md . Например у меня датчик температуры типа inFactory. Этот тип датчика в списке 91, по этому я указываю -R 91.
Тип датчика можно определить программой rtl_433 из под линукс. Как пользоваться этой программой и получать показания датчиков в Linux я описывал в этой статье:
Работа с устройствами умного дома работающими по радио 443 mhz
В общем сканируем все датчики – если не знаете их заранее и потом в графе protocol по порядку их прописываете через пробел.
Остальные настройки оставляем по умолчанию, единственное обратите внимание на галочку auto_discovery – ее лучше отключить, или включить только во время первого прилёта показаний с датчиков. Так как параметр auto_discovery автоматически добавит сенсор в Home Assistant, а так как SDR находится в постоянном сканировании сети, то может понадобавлять кучу лишнего.
Так-же обратите внимание, что порт ненужно указывать к которому подключен USB SDR, он программой rtl_433 находится автоматически.
Собственно после заполнения всех полей в конфигурации аддона, запускаем его.
Получение данных по MQTT:
Для первых испытаний я взял датчик температуры и открыл программу MQTT Explorer, для того, чтоб понять что прилетает в MQTT.
Ну собственно и получил вот такой результат:
Собственно тут видно, что данные прилетели на сервер 192.168.31.146 в топик rtl_433 в подтопик inFactory-TH, и тут видим данные протокола, модель, id, канал (их 3 у датчика), Статус батареи, Температура, влажность и так далее.
А с этого скрина видно в какие топики какие данные прилетают и из него видно, что нам нужно в Home Assistant слушать топик rtl_433/inFactory-TH/135/1 чтоб получать данные:
Зная куда прилетают данные, в сервере Home Assistant, мы легко сможем в блоке MQTT создать сенсор.
mqtt:
sensor:
#433MHz
#Показания температуры
- name: "temperature_433"
unit_of_measurement: "°C"
device_class: "temperature"
state_class: "measurement"
state_topic: "rtl_433/inFactory-TH/135/1/temperature_C"
#Показания влажности
- name: "humidity_433"
unit_of_measurement: "%"
device_class: "humidity"
state_class: "measurement"
state_topic: "rtl_433/inFactory-TH/135/1/humidity"
Ну и по итогу у нас появятся 2 сенсора temperature_433 и humidity_433
На этом пожалуй все. Надеюсь Вам было понятно и интересно.
Послесловие.
Единственное, что хотелось бы сказать, это причина, почему я этим занялся (я имею ввиду раскуриванием 433mhz). Дело в том, что хороших датчиков температуры уличных мало для умного дома. Всякие Zigbee как-то не стабильно работают, про wi-fi и речи нет. А хотелось бы беспроводной хороший датчик температуры.
Ну вот существуют метеостанции например как эта: https://alii.pub/6x07fh?erid=2SDnjeJsWqE FanJu FJ3365. И в ней как-раз используется внешний уличный датчик температуры, который вполне себе продаётся отдельно и его можно докупить дополнительным для работы с этой метеостанцией. Вот я и решил проверить как такой датчик будет вести себя на улице.
Следующей зимой проверим.