Skip to content

Збирач даних ​

Збирач даних дозволяє SVITRIX автоматично отримувати дані із зовнішніх HTTP/HTTPS API та відображати результати на LED-матриці — без системи розумного дому.

Як це працює ​

  1. Ви налаштовуєте одне або кілька джерел даних, кожне з яких вказує на зовнішній API
  2. SVITRIX періодично опитує кожне джерело та витягує значення з JSON-відповіді
  3. Витягнуте значення форматується та відображається як власний застосунок у циклі застосунків

Веб-інтерфейс ​

Перейдіть за адресою 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. Використовуйте крапкову нотацію для навігації структурою.

Як знайти шлях ​

  1. Відкрийте URL API у браузері
  2. Подивіться на структуру JSON
  3. Запишіть шлях, розділяючи рівні крапками

Приклади шляхів ​

Якщо API повертає:

json
{
  "rates": {
    "MXN": 17.45,
    "EUR": 0.92
  }
}

→ Шлях: rates.MXN → Результат: 17.45

Для масивів використовуйте числовий індекс:

json
{
  "data": [
    { "price": 67000 },
    { "price": 3400 }
  ]
}

→ Шлях: data.0.price → Результат: 67000 (перший елемент)


Display Format ​

Display Format використовує синтаксис printf для оформлення витягнутого значення.

Швидка довідка ​

ФорматПриклад виводуОпис
$%.2f$17.45Валюта з 2 десятковими знаками
$%.0f$67432Валюта без десяткових знаків
%.1f°C23.5°CОдин десятковий знак з одиницею виміру
%d%%85%Ціле число із символом %
%stextТекст без змін
(порожньо)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 APIshttps://github.com/public-apis/public-apis1400+ API у 50 категоріях, з фільтрацією за автентифікацією
API Listhttps://apilist.funПошук за темою та популярністю
Free APIshttps://free-apis.github.ioКураторський список безкоштовних API
No Auth APIshttps://mixedanalytics.com/blog/list-actually-free-open-no-auth-needed-apis/API без автентифікації
RapidAPI Freehttps://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.