[Умный дом] Получение данных с датчика углекислого газа Даджет в системы умного дома
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Датчик углекислого газа Даджет KIT MT8057S давно зарекомендовал себя как достаточно надежный и недорогой прибор. Один недостаток, на мой взгляд — официально данные с него можно получать только фирменной программой под windows, и никак иначе.
Тем не менее, получить данные в linux относительно несложно. Пришлось использовать небольшой костыль, но в итоге показатели co2 и температуры можно получить в консоль, и отправить дальше.
В этой статье рассмотрена отправка данных в IoBroker и Home Assistant.
Потребуется библиотека libhidapi и небольшая программка co2mon, размещена на гитхабе.
apt-get install git cmake g++ pkg-config libhidapi-dev
Скачиваем и компилируем программу co2mon
mkdir co2
cd co2
git clone github.com/dmage/co2mon.git
cd co2mon
mkdir build
cd build
cmake…
make
cd co2mond
mv co2mond ../../../co2mond
Возможно, пути придется подкорректировать под вашу систему.
Программа эта работает в двух режимах — постоянное получение данных в консоли, и в режиме демона. Будучи запущенной без параметров, программа постоянно выводит в консоль текущие показания, пока не будет принудительно закрыта. Немного странное решение, может я не разобрался, но работаем с тем что имеем.
В обоих режимах программа может сохранять данные в текстовые файлы, достаточно добавить ключ -D и указать путь к каталогу.
Я не хотел вешать на и без того слабенький сервер умного дома еще один демон, да и данные об углекислом газе не меняются быстро. Поэтому накидал простенький скрипт, который запускает программу, ждет пять секунд, и убивает ее.
#!/bin/bash
cd /home/server/co2
./co2mond -D /home/server/co2 > log.txt &
sleep 5
pkill co2mond
rm log.txt
Добавляем скрипт в cron, я запускаю его раз в минуту, этого более чем достаточно.
Готово! Теперь в двух текстовых файлах, которые создает программа, есть текущие показания климата.
Важный момент — для получения данных с usb нужны администраторские права, то есть cron надо запускать от root'a, соответственно создаваемые текстовые файлы будут тоже рутовыми, это надо учитывать.
Теперь вторая часть — отправляем полученные данные в системы умного дома. Начнем с IoBroker. Для начала с него, так как на тот момент, когда я задался этой задачей, пользовался им.
Там все просто — есть адаптор systeminfo, который умеет читать в том числе и файлы с файловой системы. Не то, чтобы данные температуры были нужны, но почему бы и нет.
Сохраняем, и вуаля:
А потом я перешел на Home Assistant. В нем я использую mosquitto, и данные решил отправлять через него, нацеливаясь на разделение компьютеров в будущем или добавление датчиков. Установку и настройку брокера не рассматриваю, это выходит за пределы статьи.
На компьютер, к которому подключен датчик, надо установить клиент mosquitto, если он не стоит:
apt-get install mosquitto-clients
В конфиг Home Assistant добавляем два сенсора, и перезагружаем:
— platform: mqtt
state_topic: «co2/co2»
name: «co2.co2»
unit_of_measurement: ppm
— platform: mqtt
state_topic: «co2/temp»
name: «co2.temp»
unit_of_measurement: °C
В скрипт, который получает данные, добавляем четыре строчки:
read co2 /home/server/co2/CntR
read temp /home/server/co2/Tamb
mosquitto_pub -h localhost -t «co2/co2» -m $co2 -u «пользователь» -P «пароль»
mosquitto_pub -h localhost -t «co2/temp» -m $temp -u «пользователь» -P «пароль»
Готово, вы прекрасны) Теперь наш крон раз в минуту публикует показания датчиков в топик co2, и которого Home Assistant в свою очередь их считывает:
Теперь мы имеем в системе умного дома данные датчиков, и можно запланировать автоматизацию. У меня включается вытяжка, управляемой приточной вентиляции у меня пока нет, но если включить вытяжку, воздух постепенно обновляется.
===========
Источник:
habr.com
===========
Похожие новости:
- [Гаджеты, Голосовые интерфейсы, Разработка для интернета вещей, Умный дом, Яндекс API] Управление Яндекс.Станцией и другими колонками с Алисой из Home Assistant
- [Гаджеты, Периферия, Умный дом] Владельцы домашней техники Samsung создали на Сhange.org петицию и требуют от производителя публично признать проблему
- [Программирование, Промышленное программирование, Умный дом] Управление освещением на программируемых реле
- [Гаджеты, Интернет вещей, Периферия, Умный дом] Владельцы Blu-ray плееров Samsung по всему миру жалуются на их цикличную перезагрузку, производитель не знает ее причины
- [Умный дом, Экология] Уничтожение комаров
- [Интернет вещей] Умный дом в умном городе
- [Open source, Веб-дизайн, Гаджеты, Настройка Linux, Умный дом] Умная хрущёвка на максималках. Продолжение
- [Инженерные системы, Интернет вещей, Умный дом] Автоматизация квартиры
- [Умный дом] Безопасный доступ к умному дому при отсутствии публичного IP (часть 2)
- [Настройка Linux, Веб-дизайн, Open source, Гаджеты, Умный дом] Умная хрущёвка на максималках
Теги для поиска: #_umnyj_dom (Умный дом), #_co2_monitor (co2 монитор), #_home_assistant, #_iobroker, #_avtomatizatsija_doma (автоматизация дома), #_umnyj_dom (
Умный дом
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 04:37
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Датчик углекислого газа Даджет KIT MT8057S давно зарекомендовал себя как достаточно надежный и недорогой прибор. Один недостаток, на мой взгляд — официально данные с него можно получать только фирменной программой под windows, и никак иначе. Тем не менее, получить данные в linux относительно несложно. Пришлось использовать небольшой костыль, но в итоге показатели co2 и температуры можно получить в консоль, и отправить дальше. В этой статье рассмотрена отправка данных в IoBroker и Home Assistant. Потребуется библиотека libhidapi и небольшая программка co2mon, размещена на гитхабе. apt-get install git cmake g++ pkg-config libhidapi-dev
Скачиваем и компилируем программу co2mon mkdir co2
cd co2 git clone github.com/dmage/co2mon.git cd co2mon mkdir build cd build cmake… make cd co2mond mv co2mond ../../../co2mond Возможно, пути придется подкорректировать под вашу систему. Программа эта работает в двух режимах — постоянное получение данных в консоли, и в режиме демона. Будучи запущенной без параметров, программа постоянно выводит в консоль текущие показания, пока не будет принудительно закрыта. Немного странное решение, может я не разобрался, но работаем с тем что имеем. В обоих режимах программа может сохранять данные в текстовые файлы, достаточно добавить ключ -D и указать путь к каталогу. Я не хотел вешать на и без того слабенький сервер умного дома еще один демон, да и данные об углекислом газе не меняются быстро. Поэтому накидал простенький скрипт, который запускает программу, ждет пять секунд, и убивает ее. #!/bin/bash
cd /home/server/co2 ./co2mond -D /home/server/co2 > log.txt & sleep 5 pkill co2mond rm log.txt Добавляем скрипт в cron, я запускаю его раз в минуту, этого более чем достаточно. Готово! Теперь в двух текстовых файлах, которые создает программа, есть текущие показания климата. Важный момент — для получения данных с usb нужны администраторские права, то есть cron надо запускать от root'a, соответственно создаваемые текстовые файлы будут тоже рутовыми, это надо учитывать. Теперь вторая часть — отправляем полученные данные в системы умного дома. Начнем с IoBroker. Для начала с него, так как на тот момент, когда я задался этой задачей, пользовался им. Там все просто — есть адаптор systeminfo, который умеет читать в том числе и файлы с файловой системы. Не то, чтобы данные температуры были нужны, но почему бы и нет. Сохраняем, и вуаля: А потом я перешел на Home Assistant. В нем я использую mosquitto, и данные решил отправлять через него, нацеливаясь на разделение компьютеров в будущем или добавление датчиков. Установку и настройку брокера не рассматриваю, это выходит за пределы статьи. На компьютер, к которому подключен датчик, надо установить клиент mosquitto, если он не стоит: apt-get install mosquitto-clients
В конфиг Home Assistant добавляем два сенсора, и перезагружаем: — platform: mqtt
state_topic: «co2/co2» name: «co2.co2» unit_of_measurement: ppm — platform: mqtt state_topic: «co2/temp» name: «co2.temp» unit_of_measurement: °C В скрипт, который получает данные, добавляем четыре строчки: read co2 /home/server/co2/CntR
read temp /home/server/co2/Tamb mosquitto_pub -h localhost -t «co2/co2» -m $co2 -u «пользователь» -P «пароль» mosquitto_pub -h localhost -t «co2/temp» -m $temp -u «пользователь» -P «пароль» Готово, вы прекрасны) Теперь наш крон раз в минуту публикует показания датчиков в топик co2, и которого Home Assistant в свою очередь их считывает: Теперь мы имеем в системе умного дома данные датчиков, и можно запланировать автоматизацию. У меня включается вытяжка, управляемой приточной вентиляции у меня пока нет, но если включить вытяжку, воздух постепенно обновляется. =========== Источник: habr.com =========== Похожие новости:
Умный дом ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 04:37
Часовой пояс: UTC + 5