Daftar Isi:

Cara Bekerja Dengan JSON di Node-RED: 13 Langkah
Cara Bekerja Dengan JSON di Node-RED: 13 Langkah

Video: Cara Bekerja Dengan JSON di Node-RED: 13 Langkah

Video: Cara Bekerja Dengan JSON di Node-RED: 13 Langkah
Video: Belajar NodeJS | 16. Express Middleware 2024, September
Anonim
Cara Bekerja Dengan JSON di Node-RED
Cara Bekerja Dengan JSON di Node-RED

Instruksi ini akan mengajari Anda cara bekerja dengan JSON di node-RED. Saya akan menunjukkan kepada Anda cara mengontrol soket daya jaringan dengan mentransfer file json melalui http get and post. Dan Anda dapat menggunakan pengetahuan ini nanti untuk mengontrol perangkat apa pun yang mendukung protokol JSON.

Untuk tujuan pengajaran saya akan menggunakan soket listrik jaringan NETIO 4All, tetapi jangan khawatir, Anda tidak perlu membeli apa pun. NETIO memiliki demo online 4All yang luar biasa yang dapat Anda gunakan.

Perlengkapan

NETIO 4All jaringan kekuatan soket atau 4All demo online:

Node-RED

Langkah 1: REST JSON Http Protocol

REST JSON Protokol Http
REST JSON Protokol Http

Bagian ini sedikit teknis tapi tolong bersabarlah. Jika saya tidak menjelaskan bagian ini maka Anda akan mengalami masalah dalam memahami nilai dalam file json yang akan kami kirimkan dalam node-RED.

Tindakan yang berlaku untuk setiap output (soket listrik):

Di semua protokol M2M, soket daya NETIO menggunakan tindakan yang sama yang dapat diterapkan ke masing-masing output. Misalnya, tindakan Toggle atau Short Off dapat ditulis ke output apa pun.

Namun, variabel Action hanya dapat digunakan untuk menulis nilai, tidak dapat digunakan untuk membaca status outlet saat ini.

Ini adalah tindakan yang dapat Anda terapkan untuk setiap keluaran:

0 = Keluaran dimatikan (Mati)

1 = Output dihidupkan (On)

2 = Output dimatikan untuk waktu yang singkat (short Off)

3 = Output dihidupkan untuk waktu yang singkat (short On)

4 = Output dialihkan dari satu keadaan ke keadaan lain (beralih)

5 = Status keluaran tidak berubah (tidak ada perubahan)

6 = Diabaikan

Contoh – File JSON untuk mengaktifkan no output. 1:

{

"Keluaran": [{

"ID": 1, "Aksi": 4

}]

}

ID - nomor ini menunjukkan output mana yang akan kita gunakan

Tindakan - bagian ini, adalah tindakan yang akan dilakukan keluaran (misalnya 1 (Aktifkan keluaran))

Langkah 2: Aliran

Mengalir
Mengalir

Dan sekarang bagian utama. Seperti inilah lingkungan node-RED.

Kami telah mengimpor aliran API URL (Proyek yang Anda lihat. Nanti saya akan menunjukkan cara mengimpor aliran dan proyek ini) Proyek ini terdiri dari dua bagian:

  1. Aliran NETIO AN30 (JSON REST API)
  2. Dashboard (Antarmuka grafis dimana Anda dapat mengoperasikan program Anda)

Langkah 3: Dasbor

Dasbor
Dasbor

Beginilah tampilan dasbor di node-RED untuk instruksi ini. Anda dapat menyesuaikannya jika Anda ingin sesuai dengan selera Anda.

Dasbor untuk proyek ini dibagi menjadi 4 bagian:

  1. Status Perangkat - menampilkan informasi perangkat seperti model, alamat mac, atau versi firmware.
  2. (POST) Control Output 1 - Berisi 5 tombol yang mengontrol output 1. Setiap tombol menjalankan tindakan yang berbeda
  3. (GET) O1 - O4 Output States - Bagian ini menunjukkan status saat ini dari setiap output dari perangkat Anda.
  4. Manajemen Perangkat - Di bagian ini Anda dapat menemukan semua jenis grafik dan pengukur yang menunjukkan nilai terukur saat ini dari perangkat NETIO 4Aall

Langkah 4: Alur Impor (proyek, Skrip, Dll)

Alur Impor (proyek, Skrip, Dll)
Alur Impor (proyek, Skrip, Dll)

Di menu (pojok kanan atas) pilih Impor lalu Clipboard.

Kemudian, salin teks di bawah ini ke bidang yang ditunjukkan dan klik Impor.

Memasang node yang hilang

Node dimuat ke dalam aliran yang dipilih. Ada kemungkinan bahwa pesan kesalahan ditampilkan dengan daftar node yang sedang diimpor tetapi belum diinstal di Node-RED. Dalam hal ini, node yang hilang perlu diinstal.

Jika ada node yang hilang, pilih Manage palette di menu, klik Install dan temukan dan instal node yang hilang.

Impor teks:

[{"id":"56b9510c.98c6f", "type":"tab", "label":"NETIO AN30 (REST JSON)", "dinonaktifkan":false, "info":""}, {"id ":"6a66b637.da1558", "type":"http request", "z":"56b9510c.98c6f", "name":"HTTP Request (POST)", "method":"POST", "ret":"txt", "url":"https://netio-4All.netio-products.com:8080/netio.json", "tls":"", "x":430, "y":100, "kabel":

Langkah 5: Bagaimana Semuanya Bekerja Bersama

Bagaimana Semuanya Bekerja Bersama
Bagaimana Semuanya Bekerja Bersama

Alur pada dasarnya dibagi menjadi dua bagian: POST dan GET.

POSTING: Menulis ke O1

  • Lima tombol yang dibuat di Dasbor di Alur ditampilkan di Dasbor.
  • Setelah mengklik tombol Output 1 = ON di Dashboard, payload diatur ke file netio.json yang menentukan output dan tindakan (didefinisikan untuk setiap tombol).
  • Blok HTTP Request (POST) mengirimkan file netio.json sebagai permintaan ke alamat IP.
  • Respons server (status) dikembalikan sebagai output.
  • Blok Msg.payload menampilkan hasil dari HTTP Request (POST).

DAPATKAN: Membaca dari O1 – O4

  • Blok Pengulangan 1 Detik mengaktifkan, dengan periode satu detik, blok Permintaan HTTP (GET), yang pada gilirannya mengirimkan netio.json sebagai permintaan GET dan mengembalikan file JSON lengkap dengan status soket seperti yang diterima dari server.
  • Blok JSON Parse mengubah file JSON dari blok HTTP Request (GET) menjadi Objek JSON sehingga memungkinkan untuk memanipulasi properti di file JSON.
  • Blok Fungsi mengambil bagian individual dari objek JSON dan mengubahnya menjadi properti objek msg untuk digunakan nanti.
  • Blok Bagan Saat Ini menyetel msg.payload ke properti msg. TotalCurrent dari objek msg, karena blok Bagan Saat Ini (Perangkat) berikutnya hanya dapat menampilkan nilai msg.payload.
  • Berbagai node keluaran kemudian mengikuti untuk menampilkan properti yang dipilih dari objek msg, seperti yang diambil dari objek JSON, di Dasbor.

Objek msg dan msg.payload

Untuk penjelasan sederhana dan ringkas, lihat di sini:

www.steves-internet-guide.com/node-red-mess…

Langkah 6: HTTP POST dan DAPATKAN

HTTP POST dan DAPATKAN
HTTP POST dan DAPATKAN
HTTP POST dan DAPATKAN
HTTP POST dan DAPATKAN

Permintaan HTTP (POST)

Node ini mengirimkan file perintah netio.json sebagai HTTP Request (POST) untuk mengontrol perangkat NETIO 4All.

Permintaan HTTP (DAPATKAN)

Node ini mengirimkan Permintaan HTTP (GET) dan mengembalikan respons status.

Alamat yang telah diisi sebelumnya menunjuk ke demo online NETIO 4All, di mana Anda dapat menguji koneksi tanpa memiliki perangkat NETIO di meja Anda.

netio-4all.netio-products.com

Dimungkinkan untuk mengatur alamat IP Anda sendiri di node ini; namun, IP perlu diubah di kedua node Permintaan HTTP, POST serta GET.

Langkah 7: Tombol Node

Tombol Node
Tombol Node
Tombol Node
Tombol Node

Mengklik node tombol menghasilkan pesan yang berisi file netio.json (Gambar kanan) yang kemudian dikirim melalui node posting http ke soket daya netio smart.

Langkah 8: Fungsi Node

Simpul Fungsi
Simpul Fungsi
Simpul Fungsi
Simpul Fungsi

Simpul fungsi adalah simpul khusus yang memungkinkan penulisan fungsi JavaScript khusus.

Dalam instruksi ini, fungsi mengambil nilai dari file JSON yang diurai (sekarang menjadi objek JSON) dan menetapkannya ke properti objek msg.

Kode ini dibagi menjadi empat bagian:

  1. Menetapkan nilai dari objek JSON ke properti individual dari objek msg
  2. Penanganan kesalahan jika soket daya jaringan tidak mendukung pengukuran global

    Jika soket daya jaringan tidak mendukung pengukuran nilai global, Node-RED akan menampilkan kesalahan karena fungsi ini tidak akan menemukan properti masing-masing, mis. msg.payload. GlobalMeasure. Voltage, karena tidak akan ada di objek JSON. Dalam hal ini, properti dari objek msg, mis. msg. Voltage, disetel ke 0 dan kesalahan ditangani.

  3. Menetapkan nilai status keluaran
  4. Mengatur warna nilai status keluaran yang ditampilkan sesuai dengan status keluaran

Langkah 9: Node JSON dan Inject Node

Node JSON dan Node Injeksi
Node JSON dan Node Injeksi
Node JSON dan Node Injeksi
Node JSON dan Node Injeksi

simpul JSON

Node JSON mem-parsing file JSON dan mengubahnya menjadi objek JSON.

Sebagai respons dari server terhadap permintaan GET, node Permintaan HTTP mengembalikan file JSON yang berisi status perangkat NETIO 4x saat ini, tetapi hanya berupa file teks, jadi untuk bekerja dengan data, file JSON perlu untuk diurai menjadi objek JSON.

Menyuntikkan simpul

Setiap detik, node ini mengaktifkan node HTTP Request yang mengirimkan permintaan GET.

Akibatnya, nilai-nilai di Dasbor diperbarui dengan periode satu detik

Langkah 10: Node Teks dan Node Debug

Node Teks dan Node Debug
Node Teks dan Node Debug
Node Teks dan Node Debug
Node Teks dan Node Debug

simpul teks

Menampilkan bidang teks di Dasbor. Dalam instruksi ini, node teks menampilkan arus, tegangan, model, versi firmware atau versi JSON.

Label ditampilkan di Dashboard, dan Name adalah nama node yang ditampilkan dalam aliran di Node-RED.

Node debug

Menampilkan msg.payload.

Langkah 11: Node Bagan

Node Bagan
Node Bagan
Node Bagan
Node Bagan

Node ini memplot bagan saat ini di Dasbor sesuai dengan nilai payload.

Node ini hanya dapat memplot grafik sesuai dengan nilai payload.

Untuk alasan ini, node fungsi digunakan untuk mengatur msg.payload ke nilai yang perlu ditampilkan.

msg.payload = msg. TotalCurrent;

Langkah 12: Gauge Node dan Link Node

Gauge Node dan Link Node
Gauge Node dan Link Node
Gauge Node dan Link Node
Gauge Node dan Link Node

simpul pengukur

Node ini menambahkan widget pengukur ke Dasbor.

Dalam instruksi ini, setiap pengukur memvisualisasikan satu properti dari objek pesan: tegangan [V], arus [A], frekuensi [Hz] dan Faktor Daya Sejati (TPF) keseluruhan.

Tautkan simpul

Tautan masuk dan tautan keluar bekerja seperti terowongan. msg.payload tiba ke tautan di simpul dan keluar dari simpul tautan keluar.

Saya menggunakannya untuk membuat alurnya sedikit lebih jelas dan lebih mudah dibaca.

Langkah 13: Terima kasih telah Membaca Instruksi Saya

Saya harap Anda menikmati instruksi saya dan semoga belajar sesuatu yang baru.

Instruksi ini hanya versi singkat dari panduan berbeda yang saya buat

Panduan asli lebih panjang dan lebih berorientasi pada detail dan umumnya terstruktur dengan lebih baik. Jika Anda tidak memahami sesuatu atau berpikir saya melewatkan atau tidak cukup menjelaskan sesuatu, maka Anda pasti dapat menemukannya di sana.

Saya berjanji Anda tidak akan kecewa

Asli:

Juga ada panduan serupa tentang berbagai penggunaan node-RED, jadi jika Anda tertarik, silakan jelajahi:

Bekerja dengan REST URL API di node-RED

www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x

Bekerja dengan REST XML di node-RED

www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x

Bekerja dengan TCP/Modbus di node-RED

Segera hadir:)

Direkomendasikan: