Mobilhálózatos GPS- és OBD-II nyomkövető a saját autómba, az elejétől a végéig: saját firmware ESP32-S3-on SIM7080G modemmel, REST API, idősoros adatbázis és élő térkép.
- ESP32-S3 + SIM7080GGNSS, OBD-II, LTE-M
- REST APIYii2, bearer auth
- TimescaleDBhypertable, PL/pgSQL
- Élő térképLeaflet, SSE
- Firmware, ami a valós világra készült
- Állapotgép adaptív mintavétellel (mozgásban 10 másodpercenként, parkolva 2 percenként), áramszünetet túlélő, flash-alapú várakozási sor, exponenciális backoff jitterrel, deep sleep és OTA frissítés.
- Útdetektálás az adatbázisban
- A PL/pgSQL függvények TimescaleDB háttérfeladatként futnak: a telemetria szüneteiből következtetnek a gyújtásra, és kiszűrik a GPS-sodródást. A hypertable-ök és continuous aggregate-ek gyorsan tartják a lekérdezéseket.
- Élő térkép és előzmények
- Server-Sent Events-szel frissülő Leaflet térkép, útvonal-visszajátszás, OBD-II grafikonok, üzemi napló, CSV export és offline import SD-kártyáról.
- Termékként szállítva
- Docker Compose stack, GitHub Actions deploy verziótagekre, és mintegy 34 automatizált teszt.
Ezekkel készült: C++ (Arduino), ESP32-S3, SIM7080G LTE-M, PHP 8 (Yii2), PostgreSQL, TimescaleDB, Leaflet, Docker, GitHub Actions
AirFlow Manager
2025, saját szerveren
Saját szerveren futó monitorozás és riasztás AUX légkondicionálókhoz, amelyek egyébként csak egy zárt felhős alkalmazással kommunikálnak.
- AUX cloud APIAES, reverse-engineered
- CollectorPHP, cron
- TimescaleDBhypertable
- Dashboard és riasztásYii2, e-mail
- Reverse-engineered kliens portolása
- Az AUX felhőhöz készült közösségi Python klienst újraírtam PHP-ban: AES-titkosított bejelentkezés, régiófüggő végpontok, több fiók és több egység kezelése.
- Idősoros adatgyűjtés
- A cronból futó collector egységenként mintegy 22 paramétert ment TimescaleDB hypertable-be.
- Szabályalapú riasztások
- E-mail értesítés be- és kikapcsolásról, hőmérsékleti küszöbökről, kapcsolatvesztésről és a hűtési hatékonyság romlásáról, egységenként és riasztástípusonként korlátozva.
A protokoll ismerete ebből a nyílt forráskódú projektből származik: maeek/ha-aux-cloud
Ezekkel készült: PHP 8.3 (Yii2), PostgreSQL 17, TimescaleDB, Chart.js, Docker Compose
Egy Tesla Wall Connector töltési adatai a töltő API-ján keresztül gyűjtve, Grafana dashboardokon megjelenítve.
- Wall Connectortöltő API
- Collectorlekérdező szolgáltatás
- TimescaleDBPostgreSQL
- Grafanadashboardok
- Collector szolgáltatás
- Lekérdezi a Wall Connector API-ját, és minden mérést idősoros adatként ment PostgreSQL-be, TimescaleDB-vel.
- Grafana sima SQL-lel
- A dashboardok közvetlenül az adatbázist kérdezik: töltési munkamenetek, teljesítmény és energia az idő függvényében.
Ezekkel készült: PostgreSQL, TimescaleDB, Grafana