Proyek ini bertujuan untuk mengintegrasikan dan mengelola data dari sistem baterai yang terdiri dari perangkat RMS, MPPT, dan inverter. Dengan menggunakan protokol API, sistem ini mengumpulkan data dari semua perangkat dan mengirimkannya ke server GraphQL. Dalam situasi di mana server mengalami gangguan sinyal, data sementara akan disimpan di database SQLite dan kemudian dikirim kembali saat koneksi stabil.
Peran:
Backend Developer
Fitur:
- Pengelolaan dan integrasi data dari perangkat RMS, MPPT, dan inverter
- Penyimpanan sementara menggunakan SQLite untuk mengatasi gangguan jaringan
- Pengiriman data ke server GraphQL dengan sinkronisasi otomatis
- Pemantauan data real-time dan kontrol perangkat
Teknologi:
- Node.js
- Express
- GraphQL
- SQLite
- Postman (untuk pengujian API)
Penggunaan:
- Clone repositori ini.
- Install dependensi dengan menjalankan perintah:
npm install
- Perbarui path tempat program ini di-clone di
services_install.js
- Install service dengan menjalankan perintah:
node services_install.js
- Pastikan server GraphQL Anda sedang berjalan (saya menggunakan Hasura GraphQL).
- Perbarui kredensial Anda di file
.env
.
API Endpoints:
Setting Rack:
- GET /rack - List all Rack
- GET /rack/:rack_sn - List specific Rack
- DELETE /mppt/:mppt_sn - Delete mppt by mppt_sn
- POST /mppt - Create a new mppt with JSON body:
{ "rack_sn": "examplerack001", "uuid_user": "example001" }
Setting RMS:
- GET /rms1 - List all RMS
- GET /rms1/:rms_sn - List specific RMS
- DELETE /rms1/:rms_sn - Delete RMS by rms_sn
- POST /rms1 - Create a new rms with JSON body:
{ "rms_sn": "exampleRMS001", "rms_ip": "200.10.2.212", "rack_sn": "example001", "config": { "note": "cms", "frame_name": "default", "total_cell": 32, "uom_current": "A", "capacity_new": 10, "capacity_now": 10, "uom_capacity": "KWH", "cell_not_used": "4, 8, 9, 13, 14, 19, 23, 24, 28, 29, 34, 39, 44", "uom_total_cell": "Pcs", "maximum_current": 200, "uom_temperature": "°C", "uom_cell_voltage": "mV", "maximum_temperature": 56.8, "minimum_temperature": 20.5, "maximum_cell_voltage": 3600, "minimum_cell_voltage": 2600, "maximum_different_cell": 600, "total_frame": 8 } }
Setting Inverter:
- GET /inverter1 - List all inverter
- GET /inverter1/:inverter_sn - List specific inverter
- DELETE /inverter1/:inverter_sn - Delete Inverter by inverter_sn
- POST /inverter1 - Create a new inverter with JSON body:
{ "device_sn": "exampleINV001", "inverter_ip": "200.10.2.220", "rack_sn": "example001" }
Setting MPPT:
- GET /mppt1 - List all Mppt
- GET /mppt1/:mppt_sn - List specific Mppt
- DELETE /mppt1/:mppt_sn - Delete Mppt by mppt_sn
- POST /mppt1 - Create a new mppt with JSON body:
{ "mppt_sn": "exampleMPPT001", "mppt_ip": "200.10.2.230", "rack_sn": "example" }
Setting Interval:
- GET /interval - List all interval
- GET /interval/:device - List specific interval
- DELETE /interval/:device - Delete interval by device
- POST /interval - Create a new interval with JSON body:
{ "device": "inverter", "post_interval": 1 }
Data Fetching:
- GET /rms - Get data fetching from API RMS
- GET /inverter - Get data fetching from API Inverter
- GET /mppt - Get data fetching from API MPPT
Controller:
- POST /start - Starting program
- GET /stop - Stopping program
Postman Collection:
- File koleksi Postman untuk pengujian endpoint API terletak di direktori
postman
dan diberi namadata post graphql.postman_collection.json
. - Untuk mengimpor koleksi Postman, buka Postman, klik tombol
Import
, dan pilih file dari direktoripostman
.
Kesimpulan:
Proyek ini menampilkan kemampuan untuk mengelola data perangkat baterai secara efisien, dengan memastikan data tetap konsisten meskipun terjadi gangguan koneksi. Dengan menggunakan kombinasi teknologi modern, aplikasi ini menawarkan solusi handal untuk integrasi data dalam sistem baterai.
Source Code :
Untuk informasi lebih lanjut tentang proyek ini atau untuk berdiskusi tentang kolaborasi proyek, silakan hubungi saya atau kunjungi website saya
: