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 mengajukan kueri Target yang memberikan:

  • 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 Data Laporan akan disusun dengan informasi yang diminta.

Melaporkan Tindakan Data

Arah: Target -> Inisiator

Dalam Tindakan ini, Target merespons dengan:

  • Laporan Atribut: daftar nol atau beberapa Atribut yang dilaporkan dan diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar berisi nol atau beberapa Peristiwa yang dilaporkan.
  • Suppress Response: 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 Inisiator menerima data yang diminta, secara default Inisiator harus menghasilkan Tindakan Respons Status. Tindakan ini dikirim dari Inisiator, yang mengonfirmasi bahwa data yang dilaporkan telah diterima. Jika flag 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 flag Sembunyikan Respons diaktifkan, kueri baca/laporan selesai.

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

Baca Batasan

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

Tindakan Respons Status bersifat khusus 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 satu Tindakan Permintaan Baca tunggal, Inisiator juga dapat berlangganan ke pembaruan berkala Atribut atau Peristiwa. Dengan demikian, Tindakan Data Laporan yang sama dapat dibuat sebagai hasil dari pembaruan data berkala yang mengikuti Transaksi Langganan.

Interaksi Langganan menciptakan hubungan antara dua Node, yang mana Target secara berkala menghasilkan Tindakan Data Laporan kepada Inisiator. Inisiator adalah Pelanggan dan Targetnya adalah Penayang.

Tindakan Permintaan Berlangganan berisi:

  • Minimum Interval Minimum: interval minimum antarlaporan.
  • Batas Interval Maks: interval maksimum antar-laporan.
  • Laporan Atribut: daftar nol atau beberapa Atribut yang dilaporkan dan 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 Primer.

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 mengirimkan Tindakan Respons Berlangganan.

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 Berlangganan

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 final, yang ditentukan antarlaporan.
  • Interval Maks: interval maksimum akhir yang ditentukan antarlaporan.

Batasan Langganan

  • 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 maksimum yang dinegosiasikan antara Tindakan, langganan akan dihentikan.
  • Sebagai konsekuensi dari aturan sebelumnya, Penayang dapat menghentikan Interaksi Langganan cukup dengan menghentikan pengiriman Tindakan Data Laporan berkala.
  • Pelanggan dapat menghentikan Interaksi Langganan dengan merespons Tindakan Data Laporan menggunakan kode status INACTIVE_SUBSCRIPTION.