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, Inisiator mengkueri Target yang menyediakan:

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

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

Tindakan Data Laporan

Arah: Target -> Inisiator

Dalam Tindakan ini, Target merespons dengan:

  • Laporan Atribut: daftar nol atau beberapa Atribut yang dilaporkan yang diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar nol atau beberapa Peristiwa yang dilaporkan.
  • Respons Batalkan: flag yang menentukan apakah respons status untuk tindakan ini harus dibatalkan.
  • 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 -> Inisiator atau Inisiator -> Target

Setelah menerima data yang diminta, Inisiator secara default harus membuat Tindakan Respons Status. Tindakan ini dikirim dari Inisiator, yang mengonfirmasi penerimaan data yang dilaporkan. Jika flag Batalkan Respons Status ditetapkan, Inisiator tidak boleh mengirim Tindakan Respons Status.

Setelah Tindakan Respons Status dikirim oleh Inisiator, atau Tindakan Data Laporan diterima oleh Inisiator dengan flag Batalkan Respons diaktifkan, kueri baca/laporan akan selesai.

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

Batasan Baca

Tindakan Permintaan Baca dan Tindakan Data Laporan hanya Unicast-only. Selain itu, Jalur permintaan ini tidak dapat menargetkan Grup Node.

Tindakan Respons Status hanya Unicast-only 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, Inisiator juga dapat berlangganan update berkala 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 mana Target secara berkala membuat Tindakan Data Laporan ke Inisiator. Inisiator adalah Pelanggan dan Target adalah Penayang.

Tindakan Permintaan Berlangganan berisi:

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

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

Inisiator kemudian mengonfirmasi Tindakan Data Laporan dengan Tindakan Respons Status yang dikirim ke Target. Setelah menerima Tindakan Respons Status yang melaporkan tidak ada error, Target akan mengirim Tindakan Respons Berlangganan.

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

Tindakan Respons Berlangganan

Arah: Target -> Inisiator

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

  • ID Langganan: bilangan bulat yang mengidentifikasi langganan.
  • Interval Minimum: interval minimum akhir, ditentukan antar-laporan.
  • Interval Maksimum: interval maksimum akhir, ditentukan antar- laporan.

Batasan Berlangganan

  • Tindakan Permintaan Berlangganan dan Tindakan Respons Berlangganan adalah Unicast-only actions.
  • Semua Tindakan Data Laporan dalam Interaksi Langganan harus memiliki ID Langganan yang sama.
  • Jika Pelanggan tidak menerima Tindakan Data Laporan dalam interval maksimum yang dinegosiasikan antar-Tindakan, langganan akan dihentikan.
  • Sebagai konsekuensi dari aturan sebelumnya, Penayang dapat menghentikan Interaksi Langganan dengan berhenti mengirim Tindakan Data Laporan berkala.
  • Pelanggan dapat menghentikan Interaksi Langganan dengan merespons Tindakan Data Laporan dengan kode status INACTIVE_SUBSCRIPTION.