Сценарий для роутеров

TPlung как USB-донгл для роутера Keenetic

В этом сценарии роутер Keenetic работает как центральный узел: USB-донгл TPlung делает локальные измерения на собственных датчиках, собирает телеметрию по BLE от других TPlung устройств, публикует значения в MQTT брокер, отправляет ежедневные отчеты на e-mail и может принимать сервисные команды через почтовый ящик.

L

Локальные измерения

USB-донгл продолжает использовать собственные каналы DS18x20, HR202 и термистор как обычный TPlung датчик.

B

BLE-коллектор

Параллельно донгл принимает advertising от других TPlung устройств и передает их показания в систему роутера.

M

MQTT и отчеты

Роутер публикует локальные и BLE-данные в MQTT брокер, ведет архив и отправляет ежедневную сводку на e-mail.

C

Команды по e-mail

Почтовый обработчик принимает разрешенные письма, выполняет сервисные команды и отправляет результат обратно.

Пошагово

Быстрый путь запуска

Ниже опорная последовательность для стенда Keenetic + Entware + TPlung. Набор пакетов и скриптов может отличаться в вашей сборке, но логика этапов остается той же.

01 Подготовка Entware

Разверните подготовленный образ (будет доступен для скачивания) на USB-накопитель.

02 Запуск сервисов TPlung

Подключите USB-донгл к роутеру - все готово к работе.

03 Настройка отчета и MQTT

Задайте параметры в конфигурационных файлах на разделенном SMB-шаре.

MQTT брокер

Пример топиков и проверки

Сервисные настройки

В конфигурационных топиках удобно хранить e-mail адрес, переключатель отчетов и параметры supervise.

Settings/Supervise/mailAddress
Settings/Supervise/reportToEmail
Settings/Supervise/reports/...

Поток телеметрии

Данные датчиков и энергометрии публикуются в прикладные топики и могут быть связаны с устройствами Home Assistant.

Thermo/...
Energy/...
Binding/...

Проверка из CLI

Для диагностики можно подписаться на дерево топиков и убедиться, что значения обновляются в реальном времени.

mosquitto_sub -v -t '#'

Ежедневные e-mail отчеты

Что отправляется каждый день

Основной ежедневный сценарий формирует HTML-отчет устройств: датчики, энергометрия, свежесть данных, RSSI, состояние батареи и расчет потребления по тарифам, если они заданы в конфигурации.

S

HTML-отчет устройств

Карточки датчиков с именем/MAC, временем последнего значения, RSSI, состоянием батареи, температурой и влажностью.

B

Батарея и статусы

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

E

Энергия и тарифы

Показания энергометрии, суммы по парным каналам, прирост за день/месяц и стоимость в рублях при настроенном tarif.cfg.

Пример HTML в теле письма

Ниже упрощенный пример фрагмента отчета, который может отправляться прямо в body письма без вложений.

Пример ежедневного HTML-отчета TPlung в теле письма

E-mail управление

Команды через почтовый ящик

IMAP-слушатель

Роутер проверяет входящую почту, забирает свежие команды и не требует внешнего входящего подключения к объекту.

imapfilter
mailbox: hostname

Фильтр входящих писем

Обрабатываются только свежие письма от адресов из allow-list; остальные отправители и темы игнорируются.

From: allowed@example.com
Subject: command

Выполнение команд

В text/plain части письма передается Perl-хеш: список команд run и, при необходимости, список файлов get.

{
  run => ['date', '/opt/usr/local/bin/report_total.pm'],
  get => ['/opt/usr/local/data/settings.conf']
};

Ответ и файлы

Результат выполнения приходит обратным письмом; запрошенные файлы упаковываются в 7z-архив и прикладываются к ответу.

Subject: results: command
Attachment: 7z_data.7z

Эксплуатация

Надежная работа каждый день

Резерв конфигурации

Храните копии `tarif.cfg`, `mac2name.cfg` и пользовательских скриптов, чтобы быстро восстановить систему после замены носителя.

Контроль доставки

Добавьте контрольный MQTT heartbeat, проверку отправки e-mail и правила OK/FAILURE для батареи, температуры и напряжения.

Разделение ролей

Оставьте MQTT для онлайн-автоматизации, а e-mail отчеты для ежедневной аналитики и журнала состояния объекта.