cscli — невеликий Python-CLI, який спілкується з CarStream-сервером по HTTPS + WebSocket.
Живі ASCII-датчики, спарклайни, графік RPM/Speed, гігантські одно-польні показники,
сирий JSON-стрім та health-check за один виклик — все з терміналу.
cscli dashboard
┌──── CarStream — Audi Q8 ──────────────────────────────────────────────┐
JWT кешується у ~/.config/carstream/credentials.json з правами 0600.
Токени мають час життя (зазвичай 24 год); на 401 CLI підкаже виконати cscli login ще раз.
Постав cscli dashboard на запасний монітор або Pi Zero на кухні. Завжди на видноті — RPM, швидкість,
охолоджуюча, оливна, паливо. Плюс живий спарклайн на кожен показник і клікабельне посилання
на Google Maps до поточної точки.
Пайп телеметрії куди завгодно
cscli tail пише по одному JSON-обʼєкту на рядок. Збирай ланцюжки з jq, awk, datamash чи
своїх скриптів. Гарячий шлях не парсить JSON взагалі — пропускна здатність майже на рівні мережі.
Моніторинг через cron
cscli status повертає не-нуль на будь-яку червону лінію — ідеально для */5 * * * * пінгів
у Slack, Discord чи Healthchecks.io.
Великий показник на одну метрику
cscli watch speed дає тобі повноекранне pyfiglet-число. Постав на Pi Zero з дешевим HDMI-екраном —
і ось у тебе head-up display у гаражі чи на верстаку.
csclidashboard# автоматично, якщо в тебе одне авто
csclidashboard--car"Audi Q8"# або --car <car_id>, для конкретного авто
Що ти бачиш:
Кластер датчиків зі смужкою + кольоровим значенням + 60-семпловий спарклайн на кожну метрику.
Графік RPM/Speed за тим самим вікном (дві осі Y через plotext).
Статус-панель: назва авто, пілюля ONLINE / STALE / OFFLINE (пороги 5 с / 30 с — як на вебі),
GPS-координати, вік кадру та OSC-8 посилання Open in Google Maps ↗.
Статус-панель на старті заздалегідь смикає /api/telemetry/<id>/last_position, тож рядок GPS і
посилання на Maps зʼявляються одразу — ще до першого WebSocket-кадру. Поки показуємо припарковану
позицію, у GPS-рядку додається (last known), а нижче зʼявляється Parked: <ISO timestamp>. Обидва
зникають, як тільки приходить живий кадр з координатами.
OSC-8 посилання клікабельні в iTerm2, сучасному xterm, gnome-terminal, wezterm, kitty;
у решті терміналів — просто текст. Ctrl-C виходить чисто.
Якщо до акаунта привʼязано більше одного авто, стрімінгові підкоманди
(dashboard, watch, tail) не вгадують і виводять список авто для вибору
(за назвою або id):