Membaca Transaksi

Membaca Transaksi

Salah satu kasus penggunaan pertama saat berinteraksi dengan Node di Matter adalah pembacaan 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 akan mengkueri Target dengan memberikan:

  • Permintaan Atribut: daftar yang berisi nol atau beberapa Atribut Target. Daftar ini terdiri dari nol atau beberapa Jalur ke Atribut yang diminta Target.
  • Permintaan Peristiwa: daftar yang berisi nol atau beberapa 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 -> Inisiator

Dalam Tindakan ini, Target merespons dengan:

  • Laporan Atribut: daftar berisi nol atau beberapa Atribut yang dilaporkan yang diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar yang berisi nol atau beberapa Peristiwa yang dilaporkan.
  • Tahan Respons: flag yang menentukan apakah respons status terhadap tindakan ini harus disembunyikan.
  • ID Langganan: jika laporan ini adalah bagian dari transaksi langganan, laporan 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 harus membuat Tindakan Respons Status secara default. Tindakan ini dikirim dari Inisiator, yang mengonfirmasi telah menerima data yang dilaporkan. Jika tanda Sembunyikan 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 tanda Sembunyikan Respons yang diaktifkan, kueri baca/laporkan selesai.

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

Baca Batasan

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

Tindakan Respons Status bersifat Unicast saja dan tidak dapat dibuat sebagai respons terhadap groupcast.

Transaksi Langganan

Urutan operasi Transaksi Langganan
Gambar 2: Transaksi Langganan

Tindakan Permintaan Langganan

Arah: Inisiator -> Target

Selain Tindakan Permintaan Baca tunggal, Inisiator juga dapat berlangganan pembaruan berkala Atribut atau Peristiwa. Dengan demikian, Tindakan Data Laporan yang sama dapat dihasilkan akibat pembaruan data berkala yang mengikuti Transaksi Langganan.

Interaksi Langganan menciptakan hubungan antara dua Node, saat Target secara berkala menghasilkan Tindakan Data Laporan kepada Inisiator. Inisiator adalah Subscriber dan Targetnya adalah Publisher.

Tindakan Permintaan Berlangganan berisi:

  • Minimum Interval Minimum: interval minimum antarlaporan.
  • Batas Interval Maks: interval maksimum antarlaporan.
  • Laporan Atribut: daftar berisi nol atau beberapa Atribut yang dilaporkan yang diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar yang berisi 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 Primed.

Inisiator kemudian mengonfirmasi Tindakan Data Laporan dengan Tindakan Respons Status yang dikirim ke Target. Setelah tidak menerima laporan Tindakan Respons Status, Target akan mengirimkan Tindakan Respons Langganan.

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

Tindakan Respons Langganan

Arah: Target -> Inisiator

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

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

Pembatasan Langganan

  • Tindakan Permintaan Berlangganan dan Tindakan Respons Langganan 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 negosiasi maksimum antar-Action, langganan akan dihentikan.
  • Sebagai konsekuensi dari aturan sebelumnya, Penayang dapat menghentikan Interaksi Langganan hanya dengan berhenti mengirim Tindakan Data Laporan secara berkala.
  • Pelanggan dapat menghentikan Interaksi Langganan dengan merespons Tindakan Data Laporan menggunakan kode status INACTIVE_SUBSCRIPTION.