Детектор углекислого газа Даджет МТ8057 CO2, Homebridge или Home Assistant

03 октября 2018, 12:20

Статью писал для себя, чтобы не забыть порядок действий если придется переустанавливать. Покупать Даджет под умный дом не рекомендую, лучше собрать на базе ESP8266 + senseair s8. (в блоге есть немного информации)

Для облегчения копирования и правки файлов рекомендую установить Midnight Commander (MC)

Установка Midnight Commander

sudo apt-get update
apt-get install mc

Запускать через sudo:

sudo mc

Установка Даджета

1. Для установки Git из исходного кода, устанавливаем:

sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

2. Скачиваем исходники hidapi

mkdir hidapi
cd hidapi/
git init
git clone https://github.com/signal11/hidapi.git

2.1 Устанавливаем hidapi

cd hidapi/
./bootstrap
./configure
make

3. Дополнительные библиотеки:

sudo apt-get install libhidapi-libusb0 libudev-dev libusb-1.0-0-dev libfox-1.6-dev autotools-dev autoconf automake libtool

4.  Вот тут два варианта, можете сами скомпилировать файлы и подправить исходники под себя, если умеете инструкция вам от меня не понадобится, или скачать уже готовые файлы под Rasbbery pi скомпилированные:

Скачиваем файлы скачать (шесть файлов, два bash скрипта, два сервиса, два скомпилированных файла). В исходниках убран бесконечный цикл, лишние знаки после запятой, и разбито на два файла, один для co2, второй для температуры.

В файлах temp.sh, co2.sh можно изменить время опроса датчиков: "sleep 5"

Создаем папку со2 в домашнем каталоге pi, переносим файлы

4.1 Устанавливаем права доступа на скаченные файлы:

sudo chmod -R 777 /home/pi/co2

5. Открываем файл /etc/udev/rules.d/99-com.rules и добавляем:

SUBSYSTEM=="usb", ATTR{idVendor}=="04d9", ATTR{idProduct}=="a052", MODE="0666"

6. Перезапускаем правила и перезагружаем компьютер

sudo udevadm control --reload-rules
sudo udevadm trigger
sudo reboot

7. Заходим через терминал в паку с файлами и пробуем запустить

./temp

./co2

Должен быть ответ:

Если данные получены, то переходим к пункту 8

Если нет, то могут быть 2-е ошибки:

1-вая нет прав: Возвращаемся к пункту 4.1

2-ая в терминале надпись "Unable to open", значит не внесли изменения в пункте 5 (после изменений пункта 5, перезагрузить компьютер) или не установлен пакет sudo apt install libhidapi-libusb0

8. Устанавливаем Mosquitto Broker 

sudo apt update
sudo apt install -y mosquitto mosquitto-clients

8.1 Добавляем в автозапуск

sudo systemctl enable mosquitto.service

9. Тестируем
Переходим в терминале в папку со скаченными файлами

в 1-вом терминале запускаем файл через консоль ./co2.sh (он объявляет топик co2 и отправляет данные)

2-ым терминалом слушаем топик 

mosquitto_sub -d -t co2
Если данные получены, то переходим к пункту 10,
если прием отправка не работает, то ошибка с брокером (возможно у вас уже установлен брокер если у него задан пароль то укажите его, в моем варианте паролей нет)

как это примерно должно выглядеть:

10. Установка автозапуска, через SYSTEMD

Копируем 2-а файла: co2.service, temp.service

в папку etc/systemd/system

10.1 Запускаем сервис

systemctl daemon-reload
sudo systemctl start co2.service
sudo systemctl start temp.service

10. 2 Добавляем в автозагрузку

sudo systemctl enable co2.service
sudo systemctl enable temp.service

Выбираем платформу: Homebridge или Home Assistant

Платформа HomeBridge

Устанавливаем в homebridge плагины

Первый для co2, второй для температуры

sudo npm install -g homebridge-mqtt-co2

sudo npm install -g homebridge-mqttthing

И добавляем в конфиг: 

 "accessories": [
        {
            "accessory": "mqtt-co2",
            "name": "Living Room CO2",
            "url": "mqtt://localhost",
            "log": true,
            "topic": "co2"
        },
        {
            "accessory": "mqttthing",
            "type": "temperatureSensor",
            "name": "temperatire",
            "url": "mqtt://localhost",
            "logMqtt": true,
            "caption": "температура",
            "topics": {
                "getCurrentTemperature": "temp"
            }
        }
    ],

Платформа Home Assistant

Открываем файл конфиг:

sudo nano /home/homeassistant/.homeassistant/configuration.yaml

и добавляем

sensor:
  - platform: mqtt
    name: "Temperature"
    state_topic: "temp"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: "co2"
    state_topic: "co2"
    unit_of_measurement: 'ppm'

mqtt:
  broker: localhost
  port: 1883
  protocol: 3.1

Прокидываем в HomeKit

homekit:
  auto_start: false
  filter:
    include_entities:
    - sensor.co2
    - sensor.temperature

Типичные ошибки в HA

Первая ошибка

Во вкладке config нельзя создавать два "раздела" sensor: (все сенсоры прописываются в один раздел)

если он у вас уже есть, то прописываем в него только платформу

Вторая ошибка 

Отступы не верные, проверьте внимательно отступы, HA на них очень капризен

Третья ошибка

Если у вас уже установлен брокер MQTT и если на нем стоит пароль, то не забудьте указать имя и пароль.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 11 месяцев назад

    Отличная статья, спасибо за раскрытие вопроса со стороны ХА и ХБ ;)

  2. Алексей Костаков (partizan)
    Алексей Костаков (partizan) 11 месяцев назад

    mqtt лучше и проще установить в HA. и конечно доступ к брокеру ТОЛЬКО через имя и пароль.

    • Антон Самсонов (samsonovs)
      Антон Самсонов (samsonovs) 10 месяцев назад

      Home Assistant имеет встроенный MQTT брокер, но многие жалуются на его нестабильность из-за этого я остановил свой выбор на MQTT брокере Mosquitto. Более подробно о брокере Mosquitto можно почитать тут: MQTT брокер Mosquitto . Пароль поставить желательно но не обязательно (на усмотрение пользователя)

    • (meta11ist87)
      (meta11ist87) 7 месяцев назад

      Почему только через пароль доступ к брокеру? Чем чревато?

  3. (g1k)
    (g1k) 5 месяцев назад

    подскажи по поводу исходников. 

    никак не могу найти исходники чтобы скомпилировать под свое ядро, поделись пожалуйста )

К списку статей

Скидки для сообщества

УЮТНЫЙ ДОМ

+7 495 797-21-74
Промокод:
SPRUT
Размер скидки:
5%

Z-Wave Ukraine

+380 68 641 9670
Промокод:
Sprut-UA
Размер скидки:
15%

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
27 августа 2018, 10:14
Интегрируем ХА в HomeKit