Membaca Transaksi

Transaksi Baca

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, Penginisiasi 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 tersebut akan menyusun Tindakan Data Laporan dengan informasi yang diminta.

Tindakan Data Laporan

Arah: Target -> Penginisiasi

Dalam Tindakan ini, Target merespons dengan:

  • Laporan Atribut: daftar nol atau beberapa Atribut yang dilaporkan yang diminta dalam Permintaan Tindakan Baca.
  • Laporan Peristiwa: daftar Peristiwa yang dilaporkan nol atau lebih.
  • Suppress Response: tanda yang menentukan apakah respons status untuk tindakan ini harus disembunyikan.
  • 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 -> Penginisiasi atau Penginisiasi -> Target

Setelah Pemanggil menerima data yang diminta, secara default, Pemanggil harus menghasilkan Tindakan Respons Status. Tindakan ini dikirim dari Penginisiasi, yang mengonfirmasi penerimaan data yang dilaporkan. Jika tanda Suppress Status Response ditetapkan, Pemrakarsa tidak boleh mengirim Status Response Action.

Setelah Tindakan Respons Status dikirim oleh Penginisiasi, atau Tindakan Data Laporan diterima oleh Penginisiasi dengan tanda Suppress Response 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 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, Penginisiasi juga dapat berlangganan update berkala Atribut atau Peristiwa. Dengan demikian, Tindakan Data Laporan yang sama dapat dihasilkan sebagai hasil dari pembaruan data berkala yang mengikuti Transaksi Langganan.

Interaksi Langganan membuat hubungan antara dua Node, dengan Target secara berkala menghasilkan Tindakan Data Laporan ke Penginisiasi. Inisiator adalah Pelanggan dan Target adalah Penerbit.

Tindakan Permintaan Berlangganan berisi:

  • Min Interval Floor: interval minimum antar-laporan.
  • Max Interval Ceiling: interval maksimum antara 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 Penginisiasi dengan Tindakan Laporkan Data yang berisi batch pertama data yang dilaporkan: Data Publikasikan yang Dipersiapkan.

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

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

Tindakan Respons Berlangganan

Arah: Target -> Penginisiasi

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

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

Batasan Berlangganan

  • Tindakan Permintaan Langganan 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 maksimum yang dinegosiasikan antara 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 Pelaporan Data dengan kode status INACTIVE_SUBSCRIPTION.