Membaca Transaksi

Membaca Transaksi

Salah satu kasus penggunaan pertama saat berinteraksi dengan Node di Matter adalah membaca Atribut dari Node lain, seperti nilai suhu dari sensor. Dalam Interaksi tersebut, Tindakan pertama yang harus dilakukan adalah Tindakan Permintaan Baca.

Urutan operasi Transaksi Baca
Gambar 1: Transaksi Baca

Tindakan Permintaan Baca

Arah: Inisiator -> Target

Dalam Tindakan ini, Pemrakarsa mengkueri Target dengan memberikan:

  • Permintaan Atribut: daftar nol atau lebih Atribut Target. Daftar ini terdiri dari nol atau lebih Jalur ke Atribut yang diminta Target.
  • Permintaan Peristiwa: daftar nol atau lebih Jalur ke Peristiwa yang diminta Target.

Setelah Tindakan Permintaan Baca diterima oleh Target, Target akan menyusun Tindakan Data Laporan dengan informasi yang diminta.

Tindakan Data Laporan

Arah: Target -> Pemrakarsa

Dalam Tindakan ini, Target merespons dengan:

  • Laporan Atribut: daftar nol atau lebih Atribut yang dilaporkan yang diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar nol atau lebih Peristiwa yang dilaporkan.
  • Tekan Respons: tanda yang menentukan apakah respons status untuk tindakan ini harus ditekan.
  • ID langganan: jika laporan ini adalah bagian dari transaksi langganan, laporan ini harus menyertakan bilangan bulat yang digunakan untuk mengidentifikasi transaksi langganan.

Tindakan Respons Status

Arah: Target -> Pemrakarsa atau Pemrakarsa -> Target

Setelah menerima data yang diminta, secara default, Pemrakarsa harus membuat Tindakan Respons Status. Tindakan ini dikirim dari Pemrakarsa, yang mengonfirmasi penerimaan data yang dilaporkan. Jika tanda Suppress Status Response ditetapkan, Pemrakarsa tidak boleh mengirimkan Tindakan Respons Status.

Setelah Tindakan Respons Status dikirim oleh Pemrakarsa, atau Tindakan Data Laporan diterima oleh Pemrakarsa dengan tanda Sembunyikan Respons diaktifkan, kueri baca/laporan selesai.

Tindakan Respons Status hanya berisi kolom status yang akan mengonfirmasi keberhasilan operasi atau menampilkan kode kegagalan.

Membaca Batasan

Tindakan Permintaan Baca dan Tindakan Data Laporan hanya untuk Unicast. Selain itu, Jalur permintaan ini mungkin tidak menargetkan Grup Node.

Tindakan Respons Status hanya untuk Unicast dan tidak dapat dibuat sebagai respons terhadap groupcast.

Transaksi Langganan

Urutan operasi Transaksi Langganan
Gambar 2: Transaksi Langganan

Tindakan Permintaan Berlangganan

Arah: Inisiator -> Target

Selain Tindakan Permintaan Baca tunggal, Pemrakarsa juga dapat berlangganan untuk mendapatkan update berkala dari Atribut atau Peristiwa. Dengan demikian, Tindakan Data Laporan yang sama dapat dibuat sebagai hasil dari update data berkala yang mengikuti Transaksi Langganan.

Interaksi Langganan membuat hubungan antara dua Node, yang di dalamnya Target secara berkala menghasilkan Tindakan Data Laporan untuk Pemrakarsa. Inisiator adalah Subscriber dan Target adalah Publisher.

Tindakan Permintaan Berlangganan berisi:

  • Dasar Interval Min: interval minimum antar-laporan.
  • Batas Interval Maksimum: interval maksimum antara laporan.
  • Laporan Atribut: daftar nol atau lebih Atribut yang dilaporkan yang diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar nol atau lebih Peristiwa yang dilaporkan.

Setelah Permintaan Berlangganan, Target merespons Inisiator dengan Tindakan Data Laporan yang berisi batch pertama data yang dilaporkan: Data yang Dipublikasikan yang Siap Pakai.

Kemudian, Pemrakarsa mengonfirmasi Tindakan Data Laporan dengan Tindakan Respons Status yang dikirim ke Target. Setelah Target menerima Tindakan Respons Status yang melaporkan tidak ada error, Target akan mengirimkan Tindakan Respons Berlangganan.

Selanjutnya, Target akan mengirimkan Tindakan Data Laporan secara berkala pada interval yang dinegosiasikan dan Pemrakarsa akan merespons Tindakan tersebut hingga langganan hilang atau dibatalkan.

Tindakan Respons Berlangganan

Arah: Target -> Pemrakarsa

Ini adalah Tindakan terakhir pada Transaksi Langganan dan mengakhiri proses. Ini mencakup:

  • ID langganan: bilangan bulat yang mengidentifikasi langganan.
  • Interval Min: final, interval minimum yang ditentukan antar-laporan.
  • Interval Maksimum: final, ditentukan interval maksimum antara laporan.

Batasan Berlangganan

  • Tindakan Permintaan Berlangganan dan Tindakan Respons Berlangganan adalah tindakan khusus Unicast.
  • Semua Tindakan Data Laporan dalam Interaksi Langganan harus memiliki ID Langganan yang sama.
  • Jika Pelanggan tidak menerima Tindakan Data Laporan dalam interval yang dinegosiasikan maksimum antara Tindakan, langganan akan dihentikan.
  • Sebagai konsekuensi dari aturan sebelumnya, Penerbit dapat menghentikan Interaksi Langganan hanya dengan berhenti mengirimkan Tindakan Data Laporan berkala.
  • Pelanggan dapat mengakhiri Interaksi Langganan dengan merespons Tindakan Data Laporan dengan kode status INACTIVE_SUBSCRIPTION.