Panduan perangkat ringan

Perangkat lampu menggunakan karakteristik Matter standar untuk mengidentifikasi perabot, mengalihkan status daya, dan menyesuaikan tingkat kecerahan.

Jenis perangkat lampu paling dasar adalah OnOffLightDeviceType yang diimplementasikan dengan trait OnOffTrait dan IdentifyTrait serta secara opsional mendukung trait LevelControlTrait dan trait LightEffectsTrait.

Jenis lampu lainnya menawarkan kemampuan tambahan dan diimplementasikan dengan ciri yang berbeda:

Jenis Perangkat Home API Sifat Aplikasi Contoh Swift Kasus Penggunaan

Lampu Suhu Warna

ColorTemperatureLightDeviceType

home.matter.0000.types.010c

Perangkat pencahayaan yang dapat dinyalakan atau dimatikan, intensitas cahayanya disesuaikan, dan suhu warnanya disesuaikan.

Karakteristik yang Diperlukan
     matter IdentifyTrait
     matter OnOffTrait
     matter LevelControlTrait
     matter ColorControlTrait

Karakteristik Opsional
     google LightEffectsTrait
     google ExtendedColorControlTrait
Terang

Lampu yang Dapat Diredupkan

DimmableLightDeviceType

home.matter.0000.types.0101

Perangkat pencahayaan yang dapat dinyalakan atau dimatikan, intensitas cahayanya disesuaikan, dan dinyalakan atau dimatikan melalui sensor kehadiran yang terikat.

Karakteristik yang Diperlukan
     matter IdentifyTrait
     matter OnOffTrait
     matter LevelControlTrait

Karakteristik Opsional
     google LightEffectsTrait
Terang

Lampu Warna yang Diperluas

ExtendedColorLightDeviceType

home.matter.0000.types.010d

Perangkat pencahayaan yang dapat dinyalakan atau dimatikan, intensitas cahayanya disesuaikan, suhu warnanya disesuaikan, dan dinyalakan/dimatikan melalui sensor kehadiran yang terikat.

Karakteristik yang Diperlukan
     matter IdentifyTrait
     matter OnOffTrait
     matter LevelControlTrait
     matter ColorControlTrait

Karakteristik Opsional
     google LightEffectsTrait
     google ExtendedColorControlTrait
Terang

Lampu On/Off

OnOffLightDeviceType

home.matter.0000.types.0100

Perangkat pencahayaan yang dapat dinyalakan atau dimatikan.

Required Traits
     matter IdentifyTrait
     matter OnOffTrait

Karakteristik Opsional
     matter LevelControlTrait
     google LightEffectsTrait
Terang

Selalu periksa dukungan atribut dan perintah untuk perangkat sebelum menggunakan fitur apa pun atau mencoba memperbarui atribut. Lihat Mengontrol perangkat di iOS untuk mengetahui informasi selengkapnya.

Prasyarat

Sebelum menggunakan perangkat pencahayaan dan kurva pencahayaan, pastikan aplikasi Anda menginisialisasi Home SDK dan menyertakan impor yang diperlukan:

import Foundation
import GoogleHomeSDK
import GoogleHomeTypes
import Network

Menemukan perangkat lampu

Untuk menemukan perangkat pencahayaan dalam struktur, filter daftar perangkat berdasarkan jenis perangkat, seperti OnOffLightDeviceType dan DimmableLightDeviceType .

let allDevices = try await home.devices().list()

// Get all On/Off Light devices in the structure
let onOffLights = allDevices.filter {
  $0.types.contains(OnOffLightDeviceType.self)
}

// Get all Dimmable Light devices in the structure
let dimmableLights = allDevices.filter {
  $0.types.contains(DimmableLightDeviceType.self)
}

// Retrieve a specific device type instance to access its traits
let onOffLightDeviceType =
  await onOffLights.first?.types.get(OnOffLightDeviceType.self)

let dimmableLightDeviceType =
  await dimmableLights.first?.types.get(DimmableLightDeviceType.self)

Anda juga dapat mengambil semua perangkat pencahayaan di beberapa jenis perangkat lampu dalam satu filter:

// Get a list of devices with similar device types (lights)
let lightDevices =
  try await self.home.devices().list().compactMap {
    $0.types.contains(DimmableLightDeviceType.self)
      || $0.types.contains(OnOffLightDeviceType.self)
      || $0.types.contains(ColorTemperatureLightDeviceType.self)
      || $0.types.contains(ExtendedColorLightDeviceType.self)
  }

Mendapatkan informasi dasar tentang perangkat

   Diimplementasikan di Aplikasi Contoh untuk iOS   

Karakteristik BasicInformation mencakup informasi seperti nama vendor, ID vendor, ID produk, nama produk (termasuk informasi model), dan versi software untuk perangkat:

let vendorName = basicInfoTrait.attributes.vendorName!
let vendorID = basicInfoTrait.attributes.vendorID!
let productID = basicInfoTrait.attributes.productID!
let productName = basicInfoTrait.attributes.productName!
let softwareVersion = basicInfoTrait.attributes.softwareVersion!

Mengidentifikasi perangkat pencahayaan

Jika sebuah ruangan berisi beberapa lampu, Anda dapat membantu pengguna menemukan perlengkapan fisik tertentu dengan memicu status identifikasi visual, seperti mengedipkan lampu selama beberapa detik. Keempat jenis perangkat lampu memerlukan ciri Matter.IdentifyTrait.

Panggil perintah identify dengan durasi identifyTime dalam detik untuk memulai status identifikasi. Meneruskan 0 akan segera menghentikan status identifikasi. Anda juga dapat memanggil triggerEffect untuk menjalankan efek visual tertentu, seperti Blink atau Breathe.

func identifyLight(lightDeviceType: DimmableLightDeviceType) async throws {
  guard let identifyTrait = lightDeviceType.matterTraits.identifyTrait else {
    return
  }

  // Blink the light for 10 seconds so the user can locate it
  if identifyTrait.supportsIdentifyCommand {
    try await identifyTrait.identify(identifyTime: 10)
  }

  // Or trigger a specific visual identification effect
  if identifyTrait.supportsTriggerEffectCommand {
    try await identifyTrait.triggerEffect(
      effectIdentifier: .blink,
      effectVariant: .default
    )
  }
}

Memeriksa konektivitas perangkat pencahayaan

Konektivitas untuk perangkat sebenarnya diperiksa di tingkat jenis perangkat karena beberapa perangkat mendukung beberapa jenis perangkat. Status yang ditampilkan adalah kombinasi status konektivitas untuk semua karakteristik di perangkat tersebut.

let lightConnectivity =
  dimmableLightDeviceType.metadata.sourceConnectivity
  .connectivityState

Status partiallyOnline dapat diamati dalam kasus jenis perangkat campuran saat tidak ada konektivitas internet. Karakteristik standar Matter mungkin masih online karena perutean lokal, tetapi karakteristik berbasis cloud akan offline.

Mendapatkan alamat IP perangkat

Untuk menemukan alamat IP perangkat, gunakan atribut networkInterfaces dari GeneralDiagnosticsTrait. Alamat ditampilkan sebagai objek Data, yang dapat Anda format ke string IPv4 atau IPv6 standar menggunakan framework Network:

func getIpAddresses(trait: Matter.GeneralDiagnosticsTrait) -> [String] {
  let interfaces = trait.attributes.networkInterfaces ?? []
  var ipAddresses: [String] = []

  for interface in interfaces {
    for data in interface.iPv4Addresses {
      if let ipv4 = IPv4Address(data) {
        ipAddresses.append(String(describing: ipv4))
      }
    }
    for data in interface.iPv6Addresses {
      if let ipv6 = IPv6Address(data) {
        ipAddresses.append(String(describing: ipv6))
      }
    }
  }

  return ipAddresses
}

Mengontrol perangkat pencahayaan

Jenis perangkat OnOffLight dan DimmableLight menggunakan karakteristik Matter standar untuk mengidentifikasi perlengkapan, mengalihkan status daya, dan menyesuaikan tingkat kecerahan.

Menyalakan atau mematikan lampu

Gunakan karakteristik OnOffTrait untuk membaca status daya saat ini dari OnOffLight atau DimmableLight dan untuk menyalakan atau mematikan lampu.

Sebelum membaca atribut onOff, pastikan perangkat mendukungnya. Beberapa perangkat beroperasi sebagai endpoint khusus perintah dan tidak melaporkan status.

// Check if the OnOff trait supports the onOff attribute.
if onOffTrait.attributes.$onOff.isSupported {
  print("onOffTrait supports onOff state")
} else {
  print("onOffTrait is for a command only device!")
}

Jika onOff adalah true, lampu akan menyala. Jika onOff adalah false, lampu akan mati.

Untuk mengubah status daya lampu, pastikan karakteristik mendukung perintah yang diinginkan, lalu panggil on(), off(), atau toggle().

// Check if the OnOff trait supports the toggle command.
if onOffTraitTest.supportsToggleCommand {
  print("onOffTrait supports toggle command")
} else {
  print("onOffTrait does not support stateful toggle command")
}
// Calling a command on a trait.
do {
  try await onOffTraitTest.toggle()
} catch let _ as HomeError {
  // Code for handling the exception
}

Anda juga dapat memanggil on() dan off() secara langsung untuk menetapkan status eksplisit:

do {
  try await onOffTraitTest.off()
  try await onOffTraitTest.on()
} catch let _ as HomeError {
  // Code for handling the exception
}

Untuk mematikan lampu dengan transisi visual bertahap, panggil offWithEffect() dan tentukan nilai EffectIdentifierEnum:

// Turn off the light using the DyingLight effect.
do {
  try await onOffTraitTest.offWithEffect(
    effectIdentifier: Matter.OnOffTrait.EffectIdentifierEnum.dyingLight,
    effectVariant: 0
  )
} catch let _ as HomeError {
  // Code for handling the exception
}

Atur tingkat kecerahan

DimmableLight memerlukan karakteristik LevelControlTrait, dan OnOffLight dapat mendukungnya secara opsional. Gunakan karakteristik ini untuk membaca dan mengontrol tingkat kecerahan lampu.

Atribut currentLevel melaporkan tingkat kecerahan saat ini dalam skala dari 0 hingga 254. Anda juga dapat memeriksa minLevel dan maxLevel untuk menentukan rentang kecerahan valid yang didukung oleh hardware.

Untuk menyetel kecerahan ke nilai tertentu, panggil moveToLevel(). Perhatikan bahwa moveToLevel() hanya mengubah level saat ini jika lampu sudah menyala, kecuali jika Anda mengonfigurasi optionsOverride dengan executeIfOff. Untuk otomatis menyalakan lampu saat menyetel tingkat kecerahan bukan nol (atau mematikannya saat menyetel tingkat ke minimum), gunakan moveToLevelWithOnOff().

// Change the brightness of the light to 50%
do {
  try await levelControlTraitTest.moveToLevel(
    level: UInt8(127),
    transitionTime: 0,
    optionsMask: Matter.LevelControlTrait.OptionsBitmap(),
    optionsOverride: Matter.LevelControlTrait.OptionsBitmap()
  )
} catch let _ as HomeError {
  // Code for handling the exception
}

Contoh berikut membaca tingkat kecerahan saat ini dan menggunakan moveToLevelWithOnOff() untuk menyetel lampu yang dapat diredupkan ke kecerahan 75% (190) selama transisi 1 detik (10 persepuluh detik):

func setLightBrightness(lightDeviceType: DimmableLightDeviceType) async throws {
  guard let levelControl = lightDeviceType.matterTraits.levelControlTrait else {
    return
  }

  // Read the current brightness level (0 to 254)
  let currentLevel: UInt8? = levelControl.attributes.currentLevel
  print("Current brightness level: \(String(describing: currentLevel))")

  // Move to ~75% brightness (190 out of 254) and turn on the light if it is off
  if levelControl.supportsMoveToLevelWithOnOffCommand {
    try await levelControl.moveToLevelWithOnOff(
      level: UInt8(190),
      transitionTime: 10,
      optionsMask: Matter.LevelControlTrait.OptionsBitmap(),
      optionsOverride: Matter.LevelControlTrait.OptionsBitmap()
    )
  }
}

Anda juga dapat menambah atau mengurangi kecerahan relatif terhadap level saat ini dengan memanggil stepWithOnOff() dengan .up atau .down dan stepSize.

Warna kontrol

Sifat ColorControlTrait tersedia di ColorTemperatureLightDeviceType dan ExtendedColorLightDeviceType.

Sifat ini memungkinkan Anda menyesuaikan suhu warna dalam derajat mikro-timbal balik atau mired.

guard let colorControlTrait =
  colorTempLightDeviceType.matterTraits.colorControlTrait
else {
  return
}
// Read the current color temperature and hardware limits in mireds
// (Mireds = 1,000,000 / Kelvin; e.g., 370 mireds ≈ 2700K warm white, 250 mireds = 4000K cool white)
let currentMireds = colorControlTrait.attributes.colorTemperatureMireds
let minMireds = colorControlTrait.attributes.colorTempPhysicalMinMireds ?? 153
let maxMireds = colorControlTrait.attributes.colorTempPhysicalMaxMireds ?? 500
// Clamp target (370 mireds ≈ 2700K) to the device's physical bounds
let targetMireds = min(max(UInt16(370), minMireds), maxMireds)
if colorControlTrait.supportsMoveToColorTemperatureCommand {
  try await colorControlTrait.moveToColorTemperature(
    colorTemperatureMireds: targetMireds,
    transitionTime: 20, // 2.0 seconds (in 0.1s units)
    optionsMask: Matter.ColorControlTrait.OptionsBitmap(),
    optionsOverride: Matter.ColorControlTrait.OptionsBitmap()
  )
}

Anda juga dapat menetapkan warna menggunakan koordinat kromatisitas CIE 1931 serta nilai hue dan saturasi 16-bit.

guard let colorControlTrait =
  extendedColorLightDeviceType.matterTraits.colorControlTrait
else {
  return
}
// 1. Move to CIE 1931 xy chromaticity coordinates (scaled 0..65279)
// Example: x = 0.3127 (20493), y = 0.3290 (21561) for D65 white point
if colorControlTrait.supportsMoveToColorCommand {
  try await colorControlTrait.moveToColor(
    colorX: 20493,
    colorY: 21561,
    transitionTime: 10, // 1.0 second (in 0.1s units)
    optionsMask: Matter.ColorControlTrait.OptionsBitmap(),
    optionsOverride: Matter.ColorControlTrait.OptionsBitmap()
  )
}
let currentX = colorControlTrait.attributes.currentX
let currentY = colorControlTrait.attributes.currentY
// 2. Move to 16-bit Enhanced Hue (0..65534) and 8-bit Saturation (0..254)
if colorControlTrait.supportsEnhancedMoveToHueAndSaturationCommand {
  try await colorControlTrait.enhancedMoveToHueAndSaturation(
    enhancedHue: 43690, // ~240° (Blue) on the 0..65534 scale
    saturation: 254,    // Full saturation
    transitionTime: 15, // 1.5 seconds (in 0.1s units)
    optionsMask: Matter.ColorControlTrait.OptionsBitmap(),
    optionsOverride: Matter.ColorControlTrait.OptionsBitmap()
  )
}
// 3. Start a hardware color loop across the device's hue range
if colorControlTrait.supportsColorLoopSetCommand {
  try await colorControlTrait.colorLoopSet(
    updateFlags: [
      .updateAction,
      .updateDirection,
      .updateTime,
      .updateStartHue
    ],
    action: .activateFromColorLoopStartEnhancedHue,
    direction: .increment,
    time: 30, // 30 seconds per full cycle
    startHue: 0,
    optionsMask: Matter.ColorControlTrait.OptionsBitmap(),
    optionsOverride: Matter.ColorControlTrait.OptionsBitmap()
  )
}

Google.ExtendedColorControlTrait adalah karakteristik Google opsional di ExtendedColorLightDevice yang menyederhanakan kontrol warna dengan menerima nama warna, nilai RGB, atau nilai HSV floating point terpadu yang menggabungkan warna dan kecerahan dalam satu unit.

guard let extendedColorControlTrait =
  extendedColorLightDeviceType.googleTraits.extendedColorControlTrait
else {
  return
}
// 1. Set color by name
if extendedColorControlTrait.supportsMoveToColorNameCommand {
  try await extendedColorControlTrait.moveToColorName(colorName: "Lavender")
}
let currentColorName = extendedColorControlTrait.attributes.currentName
// 2. Set color using 8-bit RGB values (0..255 per channel)
// Automatically coordinates brightness (LevelControl) and color (ColorControl)
if extendedColorControlTrait.supportsMoveToColorRGBCommand {
  try await extendedColorControlTrait.moveToColorRGB(
    red: 255,
    green: 128,
    blue: 0
  )
}
let currentRed = extendedColorControlTrait.attributes.currentRed
let currentGreen = extendedColorControlTrait.attributes.currentGreen
let currentBlue = extendedColorControlTrait.attributes.currentBlue
// 3. Set color and brightness together using floating-point HSV
// hue: 0.0...360.0, saturation: 0.0...1.0, value (brightness): 0.0...1.0
if extendedColorControlTrait.supportsMoveToColorHSVCommand {
  try await extendedColorControlTrait.moveToColorHSV(
    hue: 210.0,
    saturation: 0.85,
    value: 0.75
  )
}
let currentHue = extendedColorControlTrait.attributes.currentHue
let currentSaturation = extendedColorControlTrait.attributes.currentSaturation
let currentValue = extendedColorControlTrait.attributes.currentValue

Mengelola kurva pencahayaan

Kurva pencahayaan menentukan jadwal otomatis yang mentransisikan kecerahan dan suhu warna opsional lampu target dengan lancar sepanjang hari. Misalnya, kurva pencahayaan dapat meningkatkan kecerahan lampu secara bertahap di pagi hari dan meredupkannya ke nuansa yang lebih hangat di malam hari. Jenis perangkat lampu yang hanya mendukung kecerahan, seperti Lampu yang Dapat Diredupkan, mengikuti kurva kecerahan dan mengabaikan suhu warna.

Karakteristik Google.LightingCurveTrait adalah karakteristik Google Home platform (GHP) tingkat struktur. Anda mengaksesnya dari instance Structure, bukan dari perangkat pencahayaan individual.

Setiap jadwal pada karakteristik diwakili oleh LightingCurveSetting, yang menyandingkan settingId unik dengan LightingCurveConfig. Tabel berikut menjelaskan kolom konfigurasi LightingCurveConfig:

Kolom Deskripsi
curvePointsArray Urutan minimal dua item CurvePoint dengan waktu yang berbeda. Setiap titik menentukan time (CurveTimeOfDay dengan hours dari 0 hingga 23 dan minutes dari 0 hingga 59), brightnessPercent (0 hingga 100), dan colorTemperature opsional dalam Kelvin. Jika colorTemperature ditentukan untuk titik mana pun, nilainya harus positif untuk semua titik.
roomId ID ruangan target (misalnya, room@{uuid}). Menerapkan kurva pencahayaan ke lampu yang kompatibel dengan fitur peredupan dan suhu warna di ruangan tersebut. Tentukan roomId atau devices.
devices Objek TargetDevices yang berisi daftar entri TargetDevice, masing-masing dengan id perangkat dan ID type perangkat (seperti home.matter.0000.types.0101 untuk DimmableLight atau home.matter.0000.types.010c untuk ColorTemperatureLight). Tentukan devices atau roomId.
daysOfWeekArray Hari dalam seminggu saat kurva pencahayaan berjalan (Locale.Weekday). Jika daftar kosong, kurva pencahayaan akan berjalan setiap hari.
adaptive Boolean opsional yang menunjukkan apakah kurva pencahayaan bersifat adaptif, yang berarti lampu target melanjutkan tingkat kurva aktif saat dinyalakan selama periode penjadwalan. Jika false, perubahan manual pada lampu akan melepaskan lampu dari kurva pencahayaan selama sisa hari itu. Jika true, lampu yang dimatikan lalu dinyalakan kembali selama periode penjadwalan akan mengaktifkan kembali lampu dengan kurva pencahayaan, sehingga lampu akan menyesuaikan dengan kecerahan dan color temperature kurva saat ini, dan mengikuti kurva dari sana.
enabled Boolean opsional yang menunjukkan apakah setelan kurva pencahayaan aktif. Setelan defaultnya adalah true saat membuat setelan baru. Jika enabled dihilangkan dari perintah update, status enabled tidak akan berubah.

Membaca setelan kurva pencahayaan

Untuk memeriksa kurva pencahayaan yang dikonfigurasi untuk struktur, ambil karakteristik Google.LightingCurveTrait dari Structure dan baca atribut lightingCurveSettingsArray-nya.

func readLightingCurves(structure: Structure) async {
  guard let lightingCurve = await structure.traits.get(
    Google.LightingCurveTrait.self
  ) else {
    return
  }

  for setting in lightingCurve.attributes.lightingCurveSettingsArray {
    let settingId = setting.settingId
    let config = setting.config
    print(
      "Setting ID: \(String(describing: settingId)), " +
        "enabled: \(String(describing: config?.enabled))"
    )
    for point in config?.curvePointsArray ?? [] {
      print(
        "  Time: \(point.time?.hours ?? 0):\(point.time?.minutes ?? 0), " +
          "Brightness: \(point.brightnessPercent ?? 0)%, " +
          "ColorTemp: \(point.colorTemperature ?? 0)K"
      )
    }
  }
}

Membuat setelan kurva pencahayaan

Untuk membuat jadwal kurva pencahayaan baru pada struktur, buat LightingCurveConfig dengan setidaknya dua entri CurvePoint, lampu target (ditentukan oleh roomId atau devices), dan hari aktif dalam seminggu. Kemudian, teruskan konfigurasi ke createLightingCurveSetting(). Perintah ini menampilkan settingId unik yang ditetapkan ke setelan kurva pencahayaan baru.

Contoh berikut membuat kurva pencahayaan hari kerja untuk ruangan yang meningkatkan kecerahan dari 30% pada pukul 07.00 menjadi 80% pada pukul 09.00 dan meredupkannya menjadi 20% pada pukul 21.00:

func createRoomLightingCurve(
  structure: Structure,
  targetRoomId: String
) async throws -> String? {
  guard let lightingCurve = await structure.traits.get(
    Google.LightingCurveTrait.self
  ) else {
    return nil
  }

  let curvePoints = [
    Google.LightingCurveTrait.CurvePoint(
      time: Google.LightingCurveTrait.CurveTimeOfDay(hours: 7, minutes: 0),
      brightnessPercent: 30,
      colorTemperature: 2700
    ),
    Google.LightingCurveTrait.CurvePoint(
      time: Google.LightingCurveTrait.CurveTimeOfDay(hours: 9, minutes: 0),
      brightnessPercent: 80,
      colorTemperature: 4000
    ),
    Google.LightingCurveTrait.CurvePoint(
      time: Google.LightingCurveTrait.CurveTimeOfDay(hours: 21, minutes: 0),
      brightnessPercent: 20,
      colorTemperature: 2200
    ),
  ]

  let config = Google.LightingCurveTrait.LightingCurveConfig(
    curvePointsArray: curvePoints,
    roomId: targetRoomId,
    daysOfWeekArray: [
      .monday,
      .tuesday,
      .wednesday,
      .thursday,
      .friday,
    ],
    adaptive: true,
    enabled: true
  )

  let response = try await lightingCurve.createLightingCurveSetting(
    config: config
  )
  return response.settingId
}

Untuk menargetkan perangkat pencahayaan tertentu, bukan seluruh ruangan, berikan parameter devices menggunakan Google.LightingCurveTrait.TargetDevices:

let targetDevices = Google.LightingCurveTrait.TargetDevices(
  devicesArray: [
    Google.LightingCurveTrait.TargetDevice(
      id: dimmableLight.id,
      type: DimmableLightDeviceType.identifier
    )
  ]
)

let deviceCurveConfig = Google.LightingCurveTrait.LightingCurveConfig(
  curvePointsArray: curvePoints,
  devices: targetDevices,
  daysOfWeekArray: [.saturday, .sunday],
  adaptive: true,
  enabled: true
)

let response = try await lightingCurve.createLightingCurveSetting(
  config: deviceCurveConfig
)
let settingId = response.settingId

Memperbarui setelan kurva pencahayaan

Untuk mengubah kurva pencahayaan yang ada—seperti mengubah titik kurvanya, memperbarui hari aktif dalam seminggu, atau mengaktifkan dan menonaktifkan jadwal—panggil updateLightingCurveSetting() dengan settingId target dan LightingCurveConfig yang diperbarui.

func updateLightingCurve(
  structure: Structure,
  settingId: String,
  updatedConfig: Google.LightingCurveTrait.LightingCurveConfig
) async throws {
  guard let lightingCurve = await structure.traits.get(
    Google.LightingCurveTrait.self
  ) else {
    return
  }

  _ = try await lightingCurve.updateLightingCurveSetting(
    settingId: settingId,
    config: updatedConfig
  )
}

Menghapus setelan kurva pencahayaan

Untuk menghapus setelan kurva pencahayaan dari struktur, panggil deleteLightingCurveSetting() dengan settingId setelan yang ingin Anda hapus.

func deleteLightingCurve(
  structure: Structure,
  settingId: String
) async throws {
  guard let lightingCurve = await structure.traits.get(
    Google.LightingCurveTrait.self
  ) else {
    return
  }

  _ = try await lightingCurve.deleteLightingCurveSetting(settingId: settingId)
}