Статью писал для себя, чтобы не забыть порядок действий если придется переустанавливать. Покупать Даджет под умный дом не рекомендую, лучше собрать на базе 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=="04d9", ATTR=="a052", MODE="0666"
6. Перезапускаем правила и перезагружаем компьютер
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
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
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И добавляем в конфиг:
"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 и если на нем стоит пароль, то не забудьте указать имя и пароль.
Отличная статья, спасибо за раскрытие вопроса со стороны ХА и ХБ ;)
mqtt лучше и проще установить в HA. и конечно доступ к брокеру ТОЛЬКО через имя и пароль.
Home Assistant имеет встроенный MQTT брокер, но многие жалуются на его нестабильность из-за этого я остановил свой выбор на MQTT брокере Mosquitto. Более подробно о брокере Mosquitto можно почитать тут: https://sprut.ai/client/article/284">MQTT брокер Mosquitto . Пароль поставить желательно но не обязательно (на усмотрение пользователя)
Почему только через пароль доступ к брокеру? Чем чревато?
подскажи по поводу исходников.
никак не могу найти исходники чтобы скомпилировать под свое ядро, поделись пожалуйста )
Привет, я качал тут https://github.com/dmage/co2mon">исходники