1.Что потребуется
- MQTT-брокер — например, Mosquitto, доступный и METEO_P4, и Home Assistant.
- Одна сеть — METEO_P4 и брокер должны иметь сетевой доступ друг к другу.
- Интеграция MQTT в Home Assistant — установлена и настроена на тот же брокер.
Если Home Assistant установлен как Home Assistant OS или Supervised — проще всего поставить официальное дополнение Mosquitto broker прямо из магазина дополнений HA. Тогда брокер и HA уже в одной сети.
2.Как это работает
После подключения к Wi-Fi METEO_P4 автоматически:
- Подключается к MQTT-брокеру с заданными учётными данными.
- Публикует MQTT Discovery-конфигурации в топики
homeassistant/<тип>/<MAC>/<id>/config. - Начинает регулярно публиковать измерения в
meteo_p4/<MAC>/state. - Публикует статус доступности в
meteo_p4/<MAC>/status.
Благодаря Discovery вручную создавать сущности в YAML не нужно — Home Assistant обнаруживает устройство и добавляет все датчики автоматически.
В Home Assistant должна быть включена опция Enable MQTT Discovery (включена по умолчанию). Сущности появятся в течение нескольких секунд после первого подключения устройства.
3.Топики MQTT
<MAC> — MAC-адрес Wi-Fi интерфейса устройства в нижнем регистре без разделителей, например a1b2c3d4e5f6.
Статус и состояние
online / offline (LWT)Ключи в JSON payload (state)
| Ключ | Описание | Единица |
|---|---|---|
indoor_temperature | Температура в помещении | °C |
outdoor_temperature | Температура на улице | °C |
humidity | Влажность в помещении | % |
outdoor_humidity | Влажность на улице | % |
pressure | Атмосферное давление | hPa |
co2 | CO₂ | ppm |
voc | Индекс VOC (SGP41) | — |
wind | Скорость ветра | м/с |
forecast_temp_now | Температура из прогноза погоды | °C |
wifi_rssi | Уровень Wi-Fi сигнала | dBm |
free_heap | Свободная RAM | байт |
free_psram | Свободная PSRAM | байт |
uptime | Время работы с момента включения | с |
fw_version | Версия прошивки | строка |
Discovery-топики
Публикуются один раз при старте. Пример для датчика температуры:
topichomeassistant/sensor/<MAC>/indoor_temperature/config
4.Датчики в Home Assistant
После обнаружения устройство отображается в HA как единая интеграция METEO P4 со следующими сущностями:
Климат
- Температура в помещении и на улице
- Влажность в помещении и на улице
- Атмосферное давление
- CO₂ (ppm)
- Индекс VOC
Погода
- Скорость ветра
- Температура из прогноза
Диагностика
- Wi-Fi RSSI
- Свободная RAM и PSRAM
- Uptime
- Версия прошивки
5.Настройка подключения
На устройстве откройте: Settings → Server → MQTT.
| Поле | Значение |
|---|---|
| Host | IP-адрес MQTT-брокера, напр. 192.168.100.40 |
| Port | 1883 (без TLS) или 8883 (TLS) |
| User | Логин (если включена аутентификация) |
| Password | Пароль MQTT |
| Interval | Интервал публикации, не менее 10 секунд |
Нажмите SAVE, затем ENABLE MQTT. Устройство подключится и начнёт публиковать данные.
Не используйте allow_anonymous true в рабочей сети. Не публикуйте пароль MQTT, IP-адрес домашней сети или данные доступа к серверу в открытом доступе.
6.Проверка связи
Убедитесь, что устройство публикует данные — подпишитесь на все его топики:
Docker (Mosquitto в контейнере)
bashdocker exec -it meteo_mosquitto mosquitto_sub \
-h localhost -u USER -P PASSWORD \
-t "meteo_p4/#" -v
Windows (Mosquitto установлен локально)
powershellcd "C:\Program Files\mosquitto"
.\mosquitto_sub.exe -h 127.0.0.1 -p 1883 `
-u METEO_P4 -P ваш_пароль `
-t "meteo_p4/#" -v
При рабочем подключении в консоль начнут приходить сообщения вида:
outputmeteo_p4/a1b2c3d4e5f6/status online
meteo_p4/a1b2c3d4e5f6/state {"indoor_temperature":22.4,"humidity":48,...}
Проверка доступности порта с другого ПК
powershellTest-NetConnection -ComputerName IP_СЕРВЕРА -Port 1883
7.Типовые проблемы
| Симптом | Причина / решение |
|---|---|
| Устройство не появляется в Home Assistant | Проверьте, что в HA включена интеграция MQTT и включён MQTT Discovery. Убедитесь, что брокер тот же, что указан в METEO_P4. |
Сущности появились, но значения unavailable |
Устройство не подключено или статус offline. Проверьте Wi-Fi и MQTT-настройки на устройстве. |
Connection refused: not authorised |
Неверный логин или пароль, либо allow_anonymous false — а в клиенте не задан user/pass. |
Данные не приходят, но статус online |
Слишком большой интервал публикации или сенсор не подключён физически. Уменьшите интервал в настройках. |
| METEO_P4 не подключается по TLS (порт 8883) | На устройстве должен быть установлен CA-сертификат или включён trust-bundle. CN сертификата должен совпадать с именем/IP хоста брокера. |
| Дублирующиеся сущности в HA | Удалите старое устройство в HA (Настройки → Устройства и службы → MQTT) и дождитесь повторного Discovery. |