Статья

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

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

Установка Midnight Commander

bash
Копировать
sudo apt-get update 
apt-get install mc

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

bash
Копировать
sudo mc

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

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

bash
Копировать
sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

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

bash
Копировать
mkdir hidapi
cd hidapi/
git init
git clone https://github.com/signal11/hidapi.git

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

bash
Копировать
cd hidapi/
./bootstrap
./configure
make

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

bash
Копировать
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 Устанавливаем права доступа на скаченные файлы:

bash
Копировать
sudo chmod -R 777 /home/pi/co2

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

bash
Копировать
SUBSYSTEM=="usb", ATTR=="04d9", ATTR=="a052", MODE="0666"

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

bash
Копировать
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo reboot

7. Заходим через терминал в паку с файлами и пробуем запустить./temp./co2Должен быть ответ:

Если данные получены, то переходим к пункту 8Если нет, то могут быть 2-е ошибки:1-вая нет прав: Возвращаемся к пункту 4.12-ая в терминале надпись "Unable to open", значит не внесли изменения в пункте 5 (после изменений пункта 5, перезагрузить компьютер) или не установлен пакет sudo apt install libhidapi-libusb0

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

bash
Копировать
sudo apt update
sudo apt install -y mosquitto mosquitto-clients

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

bash
Копировать
sudo systemctl enable mosquitto.service

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

bash
Копировать
mosquitto_sub -d -t co2

Если данные получены, то переходим к пункту 10,если прием отправка не работает, то ошибка с брокером (возможно у вас уже установлен брокер если у него задан пароль то укажите его, в моем варианте паролей нет)
как это примерно должно выглядеть:

10. Установка автозапуска, через SYSTEMD Копируем 2-а файла: co2.service, temp.serviceв папку etc/systemd/system

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

bash
Копировать
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

bash
Копировать
sudo systemctl enable co2.service
sudo systemctl enable temp.service

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

Платформа HomeBridge

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

Первый для co2, второй для температурыsudo npm install -g homebridge-mqtt-co2sudo npm install -g homebridge-mqttthingИ добавляем в конфиг: 

json
Копировать
"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

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

bash
Копировать
sudo nano /home/homeassistant/.homeassistant/configuration.yaml

и добавляем

bash
Копировать
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

yaml
Копировать
homekit:
  auto_start: false
  filter:
    include_entities:
    - sensor.co2
    - sensor.temperature

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

Первая ошибкаВо вкладке config нельзя создавать два "раздела" sensor: (все сенсоры прописываются в один раздел)если он у вас уже есть, то прописываем в него только платформуВторая ошибка Отступы не верные, проверьте внимательно отступы, HA на них очень капризенТретья ошибкаЕсли у вас уже установлен брокер MQTT и если на нем стоит пароль, то не забудьте указать имя и пароль.


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

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

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

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

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

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

Привет, я качал тут https://github.com/dmage/co2mon">исходники


Вернуться назад
Вернуться назад