Link IoT Edge menyediakan SDK for Python bernama lethingaccesssdk. Topik ini menjelaskan cara menggunakan SDK tersebut.
Untuk informasi lebih lanjut mengenai kode sumber SDK, kunjungi Open-source SDK for Python.
Instalasi dan penggunaan
- Jalankan perintah berikut untuk menginstal SDK:
pip3 install lethingaccesssdk - Setelah SDK terinstal, Anda dapat mengembangkan driver berdasarkan antarmuka SDK.Penting Setelah pengembangan driver selesai, menjalankan driver secara langsung akan menghasilkan error. Anda harus men-deploy driver ke gateway melalui Konsol IoT Platform sebelum menjalankannya. Untuk informasi selengkapnya tentang cara men-deploy driver ke gateway, lihat Pengembangan driver.
Berikut adalah contoh penggunaan SDK untuk mengembangkan driver:
# -*- coding: utf-8 -*- import logging import time import lethingaccesssdk from threading import Timer # Berdasarkan perangkat, pengguna perlu mengimplementasikan fungsi getProperties, setProperties, dan callService. class Temperature_device(lethingaccesssdk.ThingCallback): def __init__(self): self.temperature = 41 self.humidity = 80 def getProperties(self, input_value): ''' Mendapatkan properti dari perangkat fisik dan mengembalikan hasilnya. :param input_value: :return: ''' retDict = { "temperature": 41, "humidity": 80 } return 0, retDict def setProperties(self, input_value): ''' Menetapkan properti ke perangkat fisik dan mengembalikan hasilnya. :param input_value: :return: ''' return 0, {} def callService(self, name, input_value): ''' Memanggil layanan pada perangkat fisik dan mengembalikan hasilnya. :param name: :param input_value: :return: ''' return 0, {} def thing_behavior(client, device): while True: properties = {"temperature": device.temperature, "humidity": device.humidity} client.reportProperties(properties) client.reportEvent("high_temperature", {"temperature": 41}) time.sleep(2) try: thing_config = lethingaccesssdk.Config().getThingInfos() for config in thing_config: device = Temperature_device() client = lethingaccesssdk.ThingAccessClient(config) client.registerAndonline(device) t = Timer(2, thing_behavior, (client, device)) t.start() except Exception as e: logging.error(e) # jangan hapus fungsi ini def handler(event, context): return 'hello world'
Config
Informasi terkait konfigurasi driver.
- Config()
Membuat objek Config baru berdasarkan string konfigurasi.
- getThingInfos()
Mengembalikan semua informasi terkait perangkat.
Nilai kembali dijelaskan sebagai berikut:
Mengembalikan informasi konfigurasi terenkapsulasi yang digunakan perangkat untuk terhubung ke Link IoT Edge.
Tabel 1. Parameter Respons Parameter Tipe Deskripsi ThingInfo List Informasi perangkat. Tabel 2. Deskripsi ThingInfo Parameter Tipe Deskripsi productKey String Pengidentifikasi unik Produk. deviceName String Nama Perangkat. custom Object Konfigurasi perangkat kustom. - getDriverInfo()
Mengembalikan informasi driver.
Respons:dict
ThingCallback
Buat kelas (misalnya, Demo_device) yang mewarisi ThingCallback berdasarkan perangkat fisik, lalu implementasikan fungsi setProperties, getProperties, dan callService dalam kelas tersebut (Demo_device).
- setProperties
Menetapkan properti perangkat.
Tabel 3. Parameter Permintaan Parameter Tipe Deskripsi properties Dict Objek properti. Format nilai properti sebagai berikut: { "property1": "value1", "property2": "value2" }Tabel 4. Parameter Respons Parameter Tipe Deskripsi code Integer Jika permintaan berhasil, dikembalikan nilai 0. Jika gagal, dikembalikan kode kesalahan bukan nol. output Dict Data yang dikembalikan. Anda dapat menyesuaikan isinya. Contoh: { "key1": xxx, "key2": yyy, ... }Jika tidak ada data yang dikembalikan,
{}dikembalikan. - getProperties
Mendapatkan properti perangkat.
Tabel 5. Parameter Permintaan Parameter Type Deskripsi keys List Nama-nama properti. Formatnya sebagai berikut: ['key1', 'key2']Tabel 6. Parameter Respons Parameter Tipe Deskripsi code Integer Jika permintaan berhasil, dikembalikan nilai 0. Jika gagal, dikembalikan kode kesalahan bukan nol. output Dict Nilai kembali. Contoh: { 'property1': xxx, 'property2': yyy, ..}. } - callService
Memanggil layanan perangkat.
Tabel 7. Parameter Permintaan Parameter Tipe Deskripsi name String Nama layanan perangkat. args Dict Daftar parameter input layanan. Formatnya sebagai berikut: { "key1": "value1", "key2": "value2" }Tabel 8. Parameter Respons Parameter Type Deskripsi code Integer Jika permintaan berhasil, dikembalikan nilai 0. Jika gagal, dikembalikan kode kesalahan bukan nol. output Dict Data yang dikembalikan. Anda dapat menyesuaikan isinya. Contoh: { "key1": xxx, "key2": yyy, ... }Jika tidak ada data yang dikembalikan,
{}dikembalikan.
ThingAccessClient(config)
Klien yang memungkinkan perangkat terhubung ke IoT Platform. Anda dapat menggunakan klien ini untuk melaporkan properti dan event, serta mengirim perintah dari cloud ke perangkat.
| Parameter | Tipe | Deskripsi |
| config | Dict | productKey dan deviceName yang diberikan oleh IoT Platform. Contoh: |
- registerAndOnline(ThingCallback)
Mendaftarkan perangkat ke gateway dan memberi tahu gateway untuk menghubungkan perangkat ke IoT Platform. Anda harus mendaftarkan dan menghubungkan perangkat ke IoT Platform agar dapat menerima perintah atau mengirim data ke IoT Platform.
Tabel 10. Parameter Permintaan Parameter Tipe Deskripsi ThingCallback Object Objek callback perangkat. - reportProperties(properties)Melaporkan properti perangkat ke IoT Platform.
Tabel 11. Parameter Permintaan Parameter Tipe Deskripsi properties Dict Kunci dan nilai dalam properti. Formatnya sebagai berikut: { "key1": "value1", "key2": "value2" } - reportEvent(eventName, args)Melaporkan event perangkat ke IoT Platform.
Tabel 12. Parameter Permintaan Parameter Tipe Deskripsi eventName String Nama event, yang sama dengan nama event yang Anda tentukan dalam definisi Produk. args Dict Kunci dan nilai dalam event. Formatnya sebagai berikut: { "key1": "value1", "key2": "value2" } - getTsl()
Mengembalikan string TSL perangkat. Format datanya sama seperti di IoT Platform.
Respons:A TSL string - getTslExtInfo()
Mengembalikan informasi tambahan dari TSL.
Respons:The extended information of the TSL. - online()
Memberi tahu gateway bahwa perangkat sedang online. Antarmuka ini digunakan ketika perangkat offline lalu kembali online.
- offline()
Memberi tahu gateway bahwa perangkat sedang offline.
- cleanup()
Mendaur ulang sumber daya. Anda dapat menggunakan antarmuka ini untuk melepaskan sumber daya.
- unregister()
Memutuskan ikatan perangkat dari gateway. Gunakan antarmuka ini dengan hati-hati.
getConfig()
Mendapatkan informasi terkait konfigurasi driver.
Nilai kembalinya adalah string konfigurasi driver.