全部产品
Search
文档中心

IoT Platform:Fungsi

更新时间:Jul 02, 2025

IoT Platform menyediakan berbagai fungsi yang dapat digunakan dalam skrip parser untuk memproses data. Fungsi-fungsi ini mencakup konversi tipe data, penerusan data ke tujuan tertentu, dan pemrosesan payload dari tipe data spesifik. Topik ini menjelaskan fungsi-fungsi yang disediakan oleh IoT Platform.

Anda dapat menggunakan fungsi yang didukung oleh Data Forwarding v1.0 dalam skrip parser Data Forwarding v2.0. Untuk informasi lebih lanjut, lihat Fungsi.

Konversi tipe data

Fungsi

Deskripsi

toBoolean(Object)

Mengonversi parameter Object menjadi nilai Boolean. Parameter ini mendukung tipe data berikut:

  • Boolean: Fungsi mengembalikan nilai yang sama dengan parameter.

  • Number: Jika parameter diatur ke 0, fungsi mengembalikan false. Jika tidak, fungsi mengembalikan true.

  • String: Jika parameter diatur ke "true", fungsi mengembalikan true. Jika tidak, fungsi mengembalikan false.

  • Jika parameter diatur ke NULL, fungsi mengembalikan false.

toNumber(Object)

Mengonversi nilai parameter Object menjadi angka. Parameter ini mendukung tipe data berikut:

  • Boolean: Jika parameter diatur ke true, fungsi mengembalikan 1. Jika parameter diatur ke false, fungsi mengembalikan 0.

  • Number: Fungsi mengembalikan nilai yang sama dengan parameter.

  • String: Fungsi mengurai string menjadi angka.

  • Jika parameter diatur ke NULL, fungsi mengembalikan 0.

toString(Object)

Mengonversi nilai parameter Object menjadi string.

Jika parameter diatur ke nilai selain NULL, fungsi mengembalikan nilai sebagai string. Jika parameter diatur ke NULL, fungsi mengembalikan string kosong.

Jika parameter bertipe biner, fungsi mengembalikan nilai yang didekode UTF-8.

toMap(Object)

Mengonversi nilai parameter Object menjadi peta. Parameter ini mendukung tipe data berikut:

  • Map: Fungsi mengembalikan nilai yang sama dengan parameter.

  • String: Fungsi mengurai string menjadi peta dalam format JSON.

  • Jika parameter diatur ke NULL, fungsi mengembalikan peta kosong.

toArray(Object)

Mengonversi nilai parameter Object menjadi array. Parameter ini mendukung tipe data berikut:

  • Array: Fungsi mengembalikan nilai yang sama dengan parameter.

  • String: Fungsi mengurai string menjadi array dalam format JSON.

  • Jika parameter diatur ke NULL, fungsi mengembalikan array kosong.

toBinary(Object)

Mengonversi nilai parameter Object menjadi nilai biner. Parameter ini mendukung tipe data berikut:

  • Biner: Fungsi mengembalikan nilai yang sama dengan parameter.

  • String: Fungsi mengembalikan nilai yang dikodekan UTF-8.

  • Jika parameter diatur ke NULL, fungsi mengembalikan nilai biner kosong.

Konversi format waktu

Fungsi

Deskripsi

format_date(timestamp, patten, timeZone)

Mengonversi timestamp dalam milidetik menjadi nilai waktu dalam format tertentu. String dikembalikan.

  • timestamp: timestamp dalam milidetik.

  • patten: format waktu yang diperlukan. Contoh: yyyy-MM-dd HH:mm:ss.

  • timeZone: zona waktu. Contoh: GMT, UTC, dan CST. Kami merekomendasikan Anda menentukan zona waktu. Jika Anda tidak mengonfigurasi parameter timeZone, fungsi mengembalikan nilai waktu dalam GMT+8.

to_timestamp(dateString, patten, timeZone)

Mengonversi nilai waktu dalam format tertentu menjadi timestamp dalam milidetik. Nilai numerik dikembalikan.

  • dateString: string waktu.

  • patten: format waktu. Contoh: yyyy-MM-dd HH:mm:ss.

  • timeZone: zona waktu. Contoh: GMT, UTC, dan CST. Kami merekomendasikan Anda menentukan zona waktu. Jika Anda tidak mengonfigurasi parameter timeZone, fungsi mengembalikan timestamp dalam GMT+8.

Meneruskan data ke tujuan

Dalam fungsi berikut, parameter destinationId menentukan ID tujuan data, sedangkan parameter payload menentukan isi pesan.

Fungsi

Deskripsi

Contoh

writeAmqp(destinationId, payload, tag)

Meneruskan data ke grup konsumen Advanced Message Queuing Protocol (AMQP).

tag: Parameter ini opsional. Jika Anda menentukan tag, tag tersebut akan ditambahkan ke semua pesan yang diteruskan ke grup konsumen AMQP.

Tag harus memiliki panjang 1 hingga 128 karakter. Anda dapat menentukan konstanta atau variabel dalam tag.

  • Konstanta dapat berisi huruf dan angka.

  • Variabel menentukan nilai kunci dalam data JSON yang diurai dari payload menggunakan skrip. Jika nilainya tidak tersedia, tag tidak akan ditambahkan ke pesan.

Meneruskan Data ke Grup Konsumen AMQP

writeDatahub(destinationId, data)

Meneruskan data ke DataHub.

data: Data yang ingin Anda tulis ke DataHub. Hanya tipe data map dan biner yang didukung.

Meneruskan Data ke DataHub

writeFc(destinationId, data)

Meneruskan data ke Function Compute.

data: Data yang ingin Anda teruskan ke Function Compute.

Meneruskan Data ke Function Compute

writeKafka(destinationId, payload, key)

Meneruskan data ke ApsaraMQ for Kafka.

key: Kunci yang ingin Anda tentukan dalam pesan yang akan diteruskan ke ApsaraMQ for Kafka. Parameter ini opsional.

Anda dapat merutekan pesan berdasarkan tag pada klien konsumen Anda.

writeMns(destinationId, payload)

Meneruskan data ke Simple Message Queue (formerly MNS) (SMQ).

Meneruskan Data ke Message Service (MNS)

writeMq(destinationId, payload, tag)

Meneruskan data ke ApsaraMQ for RocketMQ.

tag: Parameter ini opsional. Jika Anda menentukan tag, tag tersebut akan ditambahkan ke semua pesan yang diteruskan ke ApsaraMQ for RocketMQ. Anda dapat memfilter pesan berdasarkan tag pada klien konsumen Anda.

Tag harus memiliki panjang 1 hingga 128 karakter. Anda dapat menentukan konstanta atau variabel dalam tag.

  • Konstanta dapat berisi huruf dan angka.

  • Variabel menentukan nilai kunci dalam data JSON yang diurai dari payload menggunakan skrip. Jika nilainya tidak tersedia, tag tidak akan ditambahkan ke pesan.

Meneruskan Data ke ApsaraMQ for RocketMQ

writeTableStore(destinationId, data, flowType)

Meneruskan data ke instance Tablestore (OTS) model Wide Column.

  • data: Data yang ingin Anda tulis ke OTS. Hanya tipe data map yang didukung. Kunci menentukan nama kolom tabel dan nilai menentukan nilai kolom.

    Parameter data harus berisi kunci utama OTS.

  • flowType: Parameter ini opsional. Parameter ini menentukan tipe data bidang yang bukan kunci utama.

    • Jika nilai parameter flowType adalah true, sistem mengonversi nilai bidang yang bukan kunci utama menjadi string dan kemudian meneruskan string ke OTS.

    • Jika Anda mengatur parameter flowType ke false atau tidak mengonfigurasi parameter flowType, sistem meneruskan nilai bidang yang bukan kunci utama ke OTS tanpa mengonversi tipe data.

Meneruskan Data ke Instance OTS Model Wide Column

writeTableStoreTs(destinationId, timeInUs, metricName, tags, fields, dataSource)

Meneruskan data ke instance OTS model TimeSeries.

  • timeInUs: Timestamp saat data dikirimkan. Unit: mikrodetik. Tipe data: integer.

  • metricName: Nama besaran fisik atau metrik untuk data dalam deret waktu. Tipe data: string.

  • tags: Tag dari deret waktu. Tipe data: map. Kunci dan nilai tag adalah string.

  • fields: Data dalam deret waktu. Tipe data: map. Beberapa nilai data dapat ditentukan pada titik waktu tertentu dalam deret waktu. Setiap nilai sesuai dengan kolom dalam tabel deret waktu, termasuk nama kolom dan nilai kolom.

    Nama kolom adalah string, dan nilai kolom dapat berupa tipe data Boolean, integer, floating-point, string, dan biner.

  • dataSource: Pengenal sumber data yang digunakan untuk menghasilkan deret waktu. Tipe data: string. Hanya parameter ini yang dapat dibiarkan kosong.

Anda dapat menggunakan fungsi ini untuk menulis data dalam satu baris OTS. Untuk menulis data dalam beberapa baris sekaligus, gunakan fungsi berikut:

writeTableStoreTs(destinationId, [
    {
        "timeInUs": timestamp() * 1000,
        "metricName": "name1",
        "tags":{},
        "fields":{},
        "dataSource": ""
    },
    {
        "timeInUs": timestamp() * 1000,
        "metricName": "name2",
        "tags":{},
        "fields":{},
        "dataSource": ""
    }
]);

Untuk informasi lebih lanjut tentang parameter, lihat Model TimeSeries.

Meneruskan Data ke Instance OTS Model Wide Column

writeRds(destinationId, data)

Menulis data ke tabel ApsaraDB RDS.

data: Data yang ingin Anda tulis ke ApsaraDB RDS. Hanya tipe data map yang didukung. Kunci menentukan nama kolom tabel dan nilai menentukan nilai kolom.

Meneruskan Data ke ApsaraDB RDS

updateRds(destinationId, data, condition, limit)

Memperbarui data yang ditulis ke tabel ApsaraDB RDS.

  • data: Data yang ingin Anda perbarui untuk tabel ApsaraDB RDS. Hanya tipe data map yang didukung. Kunci menentukan nama kolom tabel dan nilai menentukan nilai kolom.

  • condition: Kondisi yang ingin Anda konfigurasikan untuk memperbarui data. Parameter ini wajib. Hanya tipe string yang didukung. Kondisi ditentukan untuk klausa WHERE dari pernyataan SQL. Contoh: a = 3 and b = 3.

  • limit: Jumlah baris yang dapat dikembalikan oleh fungsi. Nilai default: 1. Nilai maksimum: 50.

Contoh:

  • Jika beberapa baris data memenuhi kondisi yang ditentukan oleh parameter condition, fungsi secara otomatis memperbarui data dari baris pertama dalam hasil SQL. Jika Anda mengatur parameter limit ke 1, fungsi memperbarui data dari baris pertama. Jika Anda mengatur parameter limit ke 10, fungsi memperbarui data dari baris pertama hingga baris kesepuluh.

  • Jika hanya satu baris data yang memenuhi kondisi yang ditentukan oleh parameter condition, fungsi hanya memperbarui baris tersebut.

writeTsdb(destinationId, timestamp, metricName, value, tag)

Meneruskan data ke Time Series Database.

  • timestamp: Timestamp.

  • metricName: Nama metrik dalam Time Series Database.

  • value: Nilai titik data dalam Time Series Database. Tipe data string dan map didukung.

  • tag: Tag yang terdiri dari pasangan kunci-nilai. Tipe data adalah map.

Meneruskan Data ke Time Series Database

writeIotTopic(destinationId, topic, payload)

Meneruskan data ke topik lain.

Topik: Topik tujuan ke mana Anda ingin meneruskan data. Topik berikut didukung:

  • Topik kustom: Anda harus mengatur izin pada topik kustom untuk berlangganan. Ini memungkinkan perangkat untuk berlangganan topik ini dan mendapatkan pesan yang diteruskan dari topik.

  • Topik pengiriman data TSL downstream: /sys/${productKey}/${deviceName}/thing/service/property/set. IoT Platform meneruskan pesan ke topik ini. Pesan tersebut mencakup perintah untuk mengonfigurasi properti perangkat. Perangkat menerima pesan yang diteruskan dari topik dan mengonfigurasi properti perangkat berdasarkan payload pesan. Jika Anda ingin mengonfigurasi properti untuk perangkat topik tujuan berdasarkan data yang diteruskan, Anda dapat mengatur parameter Topik ke nilai ini.

Nilai variabel ${productKey} harus sama dengan ProductKey produk yang Anda tentukan dalam parameter destinationId. Anda harus menentukan topik untuk fungsi tersebut. Nama topik tidak boleh berisi karakter wildcard.

Untuk informasi lebih lanjut, lihat Buat Tujuan Data.

Penting Jika perangkat tidak berlangganan topik tujuan, perangkat tidak dapat menerima data yang diteruskan.

Sebagai contoh, jika Anda menggunakan MQTT.fx untuk menghubungkan Perangkat A ke IoT Platform, Perangkat A tidak dapat secara otomatis berlangganan topik perangkat. Jika Perangkat B meneruskan data ke topik thing/service/property/set dan Perangkat A tidak berlangganan topik tersebut, Perangkat A tidak dapat menerima data yang diteruskan oleh Perangkat B.

Untuk informasi lebih lanjut, lihat Langganan Topik Otomatis.

Meneruskan Data ke Topik Lain

writeLindorm(destinationId, timestamp, tags, fields)

Meneruskan data ke Lindorm.

  • timestamp: Timestamp ketika catatan data dihasilkan.

  • tags: Tag. Parameter ini menentukan atribut objek untuk metrik. Tag terdiri dari kunci tag dan nilai tag. Tipe data: map.

  • fields: Catatan data. Catatan data dapat mencakup beberapa nilai bidang, yang menunjukkan objek dari metrik. Tipe data: objek.

Meneruskan Data ke Lindorm

Fungsi yang didukung oleh setiap tipe data dasar

  • Map

    Fungsi

    Deskripsi

    [Object]

    Mendapatkan nilai dari kunci tertentu.

    size()

    Mendapatkan jumlah pasangan kunci-nilai dalam sebuah map.

    containsKey(String)

    Memeriksa apakah sebuah map berisi kunci tertentu.

    keySet()

    Mendapatkan kunci-kunci dalam sebuah map. Sebuah array dikembalikan.

    remove(Object)

    Menghapus pasangan kunci-nilai dari sebuah map berdasarkan kunci tertentu.

    put(Object, Object)

    Menambahkan pasangan kunci-nilai ke sebuah map.

    putAll(map)

    Menambahkan map lain ke map yang sudah ada.

  • Array

    Fungsi

    Deskripsi

    [int]

    Mendapatkan nilai pada indeks tertentu. Indeks elemen pertama dalam array adalah 0.

    contains(Object)

    Memeriksa apakah sebuah array berisi elemen tertentu.

    remove(Object)

    Menghapus elemen tertentu dari sebuah array.

    removeAt(int)

    Menghapus elemen pada indeks tertentu dalam sebuah array.

    add(Object)

    Menambahkan elemen ke akhir array.

    add(index, Object)

    Menambahkan elemen pada indeks tertentu.

    addAll(array)

    Menambahkan array lain ke array.

    size()

    Mendapatkan jumlah elemen dalam array.

  • String

    Fungsi

    Deskripsi

    substring(start, end)

    Mengekstrak string dari posisi start hingga posisi end-1. Jika Anda tidak mengonfigurasi parameter, proses ekstraksi berlanjut hingga akhir string.

    length()

    Meminta panjang string.

    split(String)

    Memisahkan string menggunakan pemisah tertentu.

    startsWith(String)

    Memeriksa apakah string dimulai dengan substring tertentu.

    endsWith(String)

    Memeriksa apakah string diakhiri dengan substring tertentu.

    indexOf(String, index)

    Meminta posisi di mana substring pertama kali muncul dari indeks tertentu dalam string.

    Nilai default parameter index adalah 0.

Fungsi lainnya

Fungsi

Deskripsi

endWith(input, suffix)

Memeriksa apakah string input diakhiri dengan suffix tertentu.

Nilai Boolean dikembalikan.

productKey()

Mengembalikan ProductKey dari produk saat ini.

getDeviceTag(key)

Mengembalikan nilai tag perangkat dari kunci tag. Jika tag yang berisi key tertentu tidak dilampirkan ke perangkat, tidak ada nilai tag yang dikembalikan.

getOrNull(data, "items", ......)

Mengembalikan nilai bidang tertentu dalam parameter data yang diformat JSON.

Anda dapat mengonfigurasi satu atau lebih bidang dalam fungsi tersebut. Beberapa bidang harus dikonfigurasikan berdasarkan level. Fungsi mengembalikan nilai dari bidang terakhir. Jika bidang terakhir tidak ada atau bidang tersebut kosong, fungsi mengembalikan null.

Contoh parameter data:

"items": {
    "Humidity": {
        "value": 25,
        "time": 1626948134319
    }
}

Contoh:

  • getOrNull(data, "items"): mengembalikan nilai bidang items "Humidity": {"value": 25,"time": 1626948134319}.

  • getOrNull(data, "items", "Humidity", "value"): mengembalikan nilai bidang value 25.

  • getOrNull(data, "items", "Temperature"): mengembalikan nilai null jika bidang Temperature tidak ada.

payload(textEncoding)

Mengkodekan payload pesan yang dikirim oleh perangkat. Parameter textEncoding menentukan skema pengkodean.

  • Jika Anda tidak mengonfigurasi parameter, payload pesan dikonversi menjadi string yang dikodekan UTF-8. payload() setara dengan payload('utf-8').

  • Jika Anda mengatur parameter ke 'json', payload pesan dikonversi menjadi map. Jika payload bukan dalam format JSON, kesalahan terjadi.

  • Jika Anda mengatur parameter ke 'binary', payload pesan dikonversi menjadi data biner pass-through.

parseNumber(numberString, radix)

Mengonversi string yang ditentukan oleh parameter numberString menjadi angka berdasarkan sistem angka yang ditentukan oleh parameter radix.

Parameter radix bersifat opsional. Nilai valid:

  • 10 (default): mengonversi string menjadi angka desimal.

  • 2: mengonversi string menjadi angka biner.

  • 16: mengonversi string menjadi angka heksadesimal.

Contoh:

// Perangkat mengirimkan data.
var content = '0xFF';
// Fungsi mendapatkan string FF yang akan dikonversi.
var x = content.substring(2);
// Fungsi mengonversi string FF menjadi angka heksadesimal.
var value = parseNumber(x, 16);

Referensi

Jika Anda ingin meneruskan data ke tujuan, Anda dapat menulis skrip menggunakan sintaks yang didukung untuk memanggil fungsi tertentu. Untuk informasi lebih lanjut, lihat Sintaks Skrip.