Отслеживает доступность и метаданные учетных записей пользовательских API-интерфейсов, совместимых с Xtream.
Адаптер является исключительно инструментом мониторинга. Он не предоставляет, не обнаруживает, не выступает в качестве прокси-сервера, не воспроизводит и не распространяет медиапотоки. Пользователи несут ответственность за конечные точки и службы, которые они настраивают.
Функции
- Отслеживайте состояние нескольких конечных точек в одном экземпляре адаптера.
- Онлайн/офлайн и статус учетной записи
- Время отклика
- Количество активных и максимальное количество подключений
- Срок действия и оставшееся количество дней
- Отметки времени последней проверки, последнего подключения к сети и отключения от сети.
- Классификация ошибок, связанных с таймаутом, DNS, HTTP, недействительным ответом и неактивными учетными записями.
- Ведение журнала является необязательным и происходит только при фактическом изменении состояния онлайн/офлайн.
- Сводные данные о состоянии визуализации для VIS, Grafana и других приложений ioBroker.
Требования
- Node.js 22 или более поздняя версия
- js-controller 7.0.7 или новее
- Администратор 7.6.20 или более поздняя версия
Конфигурация
Добавьте одну или несколько конечных точек в настройки адаптера. Каждая строка содержит:
- Включено — включить конечную точку в мониторинг.
- Название — удобная для пользователя метка
- URL хоста/сервера — базовый URL-адрес конечной точки, совместимой с Xtream.
- Имя пользователя - имя учетной записи
- Пароль — пароль учетной записи; в конфигурации таблицы для этого столбца запрашивается зашифрованное хранение данных.
Также можно настроить интервал опроса, время ожидания запроса и, при необходимости, ведение журнала изменений статуса.
Технические идентификаторы серверов (server1 ,server2 , ...) управляются внутри системы и не отображаются в административном интерфейсе.
Структура объекта
xtream-monitor.0
├── info
│ ├── connection
│ ├── allOnline
│ ├── enabledCount
│ ├── onlineCount
│ ├── offlineCount
│ └── lastCheck
└── servers
├── server1
│ ├── online
│ ├── status
│ ├── responseMs
│ ├── activeConnections
│ ├── maxConnections
│ ├── expiration
│ ├── expirationText
│ ├── daysRemaining
│ ├── lastCheck
│ ├── lastOnline
│ ├── offlineSince
│ └── errorType
└── ...
Конфиденциальность и безопасность
- Адаптер взаимодействует только с конечными точками, явно указанными пользователем.
- Учетные данные никогда намеренно не записываются в журнал ioBroker.
- В таблице Admin столбцы с паролями настроены для зашифрованного хранения.
- Полная конфигурация сервера защищена от доступа других сетевых адаптеров через
protectedNative. - Для мониторинга медиаконтент не загружается; адаптер запрашивает метаданные учетной записи/статуса через совместимую конечную точку API.
Разработка
npm install
npm run build
npm run check
npm run lint
npm run test:package
npm run test:integration
Проверки репозитория можно выполнить с помощью следующих команд:
npx @iobroker/repochecker https://github.com/chrvidal/ioBroker.xtream-monitor main
Changelog
0.2.11 (2026-09-11)
- Prevented request error states from exposing credentials.
- Added regression coverage for credential-safe request errors.
- Added Node.js 26 to the GitHub Actions test matrix.
0.2.10 (2026-09-02)
- Added a compatibility fallback for passwords affected by the ioBroker JSON Config table-encryption regression.
- Automatically remove stale server objects after the corresponding server is deleted from the configuration.
- Added regression tests for password compatibility and deleted-server cleanup.
0.2.9 (2026-09-01)
- Fixed startup handling during persistent server ID migration.
- Added regression coverage for password preservation and scheduled multi-server polling.
- Corrected protected configuration metadata for multi-server credentials.
0.2.8 (2026-08-31)
- Changed polling to schedule the next check only after the current cycle has finished, preventing overlapping API requests.
- Abort active HTTP requests during adapter unload for clean Compact Mode shutdown.
- Preserve
offlineSinceacross adapter restarts while an endpoint remains offline. - Added the explicit
infochannel and corrected per-server ioBroker state roles. - Changed
expirationTextto a language-neutral ISO timestamp. - Protected the configured server table from access by other adapters.
- Added integration tests with local mock API endpoints, including clean-shutdown behavior.
0.2.7 (2026-08-30)
- Fixed repository metadata reported by the ioBroker repository checker.
- Added valid
common.newsmetadata for the current release. - Relaxed the
@iobroker/testingdevDependency to a compatible semver range. - Added Dependabot cooldown configuration.
- Added the required license copyright line.
0.2.6 (2026-08-30)
- Prepared repository metadata for ioBroker public repository review.
- Added all required metadata translations and Admin translations.
- Added a responsive Admin layout and table-level password encryption configuration.
- Added package and integration test scaffolding plus GitHub Actions CI.
- Replaced unmanaged JavaScript timers with ioBroker adapter-managed timers.
- Added adapter icon, Dependabot configuration and editor JSON schemas.
0.2.5 (2026-08-30)
- Removed the technical server ID column from the Admin UI while keeping persistent internal IDs.
0.2.4 (2026-08-30)
- Improved persistent internal server-ID assignment and Admin compatibility.
0.2.3 (2026-08-30)
- Fixed GitHub installation by including the compiled adapter entry point.
0.2.2 (2026-08-30)
- Simplified server-ID handling in the Admin UI.
0.2.1 (2026-08-30)
- Added automatic technical server IDs.
0.2.0 (2026-08-30)
- Added monitoring of multiple endpoints in one adapter instance.
License
MIT License. See LICENSE.
Copyright (c) 2026 chrvidal