Збирач даних
Збирач даних дозволяє SVITRIX автоматично отримувати дані із зовнішніх HTTP/HTTPS API та відображати результати на LED-матриці — без системи розумного дому.
Як це працює
- Ви налаштовуєте одне або кілька джерел даних, кожне з яких вказує на зовнішній API
- SVITRIX періодично опитує кожне джерело та витягує значення з JSON-відповіді
- Витягнуте значення форматується та відображається як власний застосунок у циклі застосунків
Веб-інтерфейс
Перейдіть за адресою http://[IP]/datafetcher у браузері для керування джерелами даних через візуальний інтерфейс. Ви можете додавати, редагувати та видаляти джерела без написання жодних API-запитів.
Налаштування
Кожне джерело даних має такі параметри:
| Параметр | Опис |
|---|---|
| Name | Унікальний ідентифікатор — стає назвою застосунку, що показується у циклі |
| URL | Повний HTTP або HTTPS URL API-ендпоінту |
| JSON Path | Шлях до значення у відповіді через крапку (напр., bitcoin.usd або data.0.price) |
| Display Format | Необов'язковий формат у стилі printf для одного значення (напр., $%.0f для "$67432", %.1f°C для "23.5°C"). Дозволені специфікатори: %d %i %u %o %x %X %f %g %e %E %s з опціональною шириною та точністю (по 1–2 цифри кожна). Для літерального % використовуйте %% (напр., %d%% → "85%"). |
| Icon | Необов'язкова назва іконки з папки ICONS |
| Color | Необов'язковий колір тексту у форматі hex #RRGGBB |
| Interval | Інтервал опитування у секундах (мінімум 60, за замовчуванням 900) |
| Duration | Тривалість показу у секундах (0 = використовувати глобальний параметр timePerApp) |
| Enabled | Коли вимкнено, джерело зберігається, але не відображається у ротації |
JSON Path
JSON Path вказує, де знайти значення, яке ви хочете витягти з відповіді API. Використовуйте крапкову нотацію для навігації структурою.
Як знайти шлях
- Відкрийте URL API у браузері
- Подивіться на структуру JSON
- Запишіть шлях, розділяючи рівні крапками
Приклади шляхів
Якщо API повертає:
{
"rates": {
"MXN": 17.45,
"EUR": 0.92
}
}→ Шлях: rates.MXN → Результат: 17.45
Для масивів використовуйте числовий індекс:
{
"data": [
{ "price": 67000 },
{ "price": 3400 }
]
}→ Шлях: data.0.price → Результат: 67000 (перший елемент)
Display Format
Display Format використовує синтаксис printf для оформлення витягнутого значення.
Швидка довідка
| Формат | Приклад виводу | Опис |
|---|---|---|
$%.2f | $17.45 | Валюта з 2 десятковими знаками |
$%.0f | $67432 | Валюта без десяткових знаків |
%.1f°C | 23.5°C | Один десятковий знак з одиницею виміру |
%d%% | 85% | Ціле число із символом % |
%s | text | Текст без змін |
| (порожньо) | 17.45 | Необроблене значення |
Дозволені специфікатори
- Числа:
%d%i(цілі),%f%g%e(десяткові) - Текст:
%s(рядок) - Літеральний %:
%%(відображає один %)
Необов'язкові модифікатори
- Мінімальна ширина:
%8d→" 42"(8 символів) - Десяткова точність:
%.2f→"3.14"(2 десяткові знаки) - Комбіновано:
%8.2f→" 3.14"
Icon
Поле Icon приймає:
- Назву файлу: назва іконки у папці
/ICONS/(без розширення) - Номер LaMetric: числовий ID із галереї іконок LaMetric — система шукає
[номер].gifу/ICONS/
Приклади: bitcoin, 16437, weather
Порада: Завантажте іконки в розділі Icons у веб-інтерфейсі перед їх використанням.
Приклади
Ціна Bitcoin
- Name:
btc - URL:
https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd - JSON Path:
bitcoin.usd - Format:
$%.0f - Color:
#F7931A - Interval:
300
Курс USD/MXN
- Name:
USDMXN - URL:
https://open.er-api.com/v6/latest/USD - JSON Path:
rates.MXN - Format:
$%.2f - Color:
#00AA00 - Interval:
3600
Ціна Ethereum
- Name:
eth - URL:
https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd - JSON Path:
ethereum.usd - Format:
$%.0f - Color:
#627EEA - Interval:
300
Зірки GitHub для репозиторію
- Name:
stars - URL:
https://api.github.com/repos/USER/REPO - JSON Path:
stargazers_count - Format:
%d ★ - Color:
#FFD700 - Interval:
3600
Ваша публічна IP-адреса
- Name:
myip - URL:
https://api.ipify.org?format=json - JSON Path:
ip - Format:
%s - Interval:
86400
Джерела публічних API
Ці колекції містять сотні безкоштовних API, сумісних із SVITRIX:
| Ресурс | URL | Опис |
|---|---|---|
| Public APIs | https://github.com/public-apis/public-apis | 1400+ API у 50 категоріях, з фільтрацією за автентифікацією |
| API List | https://apilist.fun | Пошук за темою та популярністю |
| Free APIs | https://free-apis.github.io | Кураторський список безкоштовних API |
| No Auth APIs | https://mixedanalytics.com/blog/list-actually-free-open-no-auth-needed-apis/ | API без автентифікації |
| RapidAPI Free | https://rapidapi.com/collection/list-of-free-apis | З прикладами та документацією |
Вимоги до сумісності
Щоб API працював із SVITRIX:
- ✅ Без автентифікації або API-ключ у URL (без кастомних заголовків)
- ✅ JSON-відповідь менша за 4 КБ
- ✅ Значення, яке можна витягти крапковою нотацією (
data.value,items.0.price) - ✅ Публічний ендпоінт, доступний з вашої мережі
Ідеї за категоріями
| Категорія | Рекомендовані API |
|---|---|
| Фінанси | CoinGecko, ExchangeRate-API, Alpha Vantage |
| Погода | Open-Meteo, WeatherAPI (вже інтегровано) |
| Моніторинг | UptimeRobot, Pi-hole, Home Assistant |
| Розробка | GitHub API, GitLab API |
| Розваги | Spotify (з токеном), Twitch |
| Утиліти | ipify, WorldTimeAPI |
Увімкнення / Вимкнення джерел
Ви можете тимчасово вимкнути джерело без його видалення:
- У веб-інтерфейсі кожне джерело має кнопку Увімкнути/Вимкнути
- Вимкнені джерела залишаються збереженими, але не опитуються і не відображаються
- При повторному увімкненні джерела дані отримуються негайно, і воно повертається до ротації
- Корисно для призупинення джерел під час обслуговування API або для зменшення трафіку
Обмеження
- Максимум 8 джерел даних одночасно
- Відповідь API повинна бути менша за 4 КБ
- Підтримуються лише публічні API (без кастомних заголовків автентифікації)
- Мінімальний інтервал опитування — 60 секунд
- HTTPS підтримується, але без перевірки сертифіката
API
Джерелами даних також можна керувати через HTTP API.