Işık cihazları, armatürleri tanımlamak, güç durumlarını değiştirmek ve parlaklık seviyelerini ayarlamak için standart Matter özelliklerini kullanır.
En temel ışık cihazı türü, OnOff ve Identify özellikleriyle uygulanan ve isteğe bağlı olarak LevelControl ile LightEffects özelliklerini destekleyen OnOffLight türüdür.
Diğer ışık türleri ek özellikler sunar ve farklı özelliklerle uygulanır:
| Home API'leri Cihaz Türü | Özellikler | Kotlin Örnek Uygulaması | Kullanım Örneği |
|---|---|---|---|
|
Renk Sıcaklığı Işığı
Açılıp kapatılabilen, ışık yoğunluğu ve renk sıcaklığı ayarlanabilen bir aydınlatma cihazı. |
Gerekli Özellikler matter Identify matter OnOff matter LevelControl matter ColorControl |
açma ve kapatma, parlaklık |
Açık |
|
Parlaklığı Ayarlanabilir Işık
Açılıp kapatılabilen, ışığının yoğunluğu ayarlanabilen ve bağlı bir varlık sensörü aracılığıyla açılıp kapatılabilen bir aydınlatma cihazı. |
Gerekli Özellikler matter Identify matter OnOff matter LevelControl |
açma ve kapatma, parlaklık |
Açık |
|
Genişletilmiş Renkli Işık
Açılıp kapatılabilen, ışık yoğunluğu ve renk sıcaklığı ayarlanabilen ve bağlı bir varlık sensörü aracılığıyla açılıp kapatılabilen aydınlatma cihazı. |
Gerekli Özellikler matter Identify matter OnOff matter LevelControl matter ColorControl |
açma ve kapatma, parlaklık |
Açık |
|
Açma/Kapama Işığı
Açılıp kapatılabilen bir aydınlatma cihazı. |
Gerekli Özellikler matter Tanımlama matter OnOff |
açma ve kapatma, parlaklık |
Açık |
Herhangi bir özelliği kullanmadan veya özellikleri güncellemeye çalışmadan önce her zaman cihazın özellik ve komut desteğini kontrol edin. Daha fazla bilgi için Androidcihazlarını kontrol etme başlıklı makaleyi inceleyin.
Ön koşullar
Aydınlatma cihazları ve aydınlatma eğrileriyle çalışmadan önce uygulamanızın Home SDK'yı başlattığından ve gerekli içe aktarma işlemlerini içerdiğinden emin olun:
import com.google.home.HomeDevice import com.google.home.Structure import com.google.home.google.DayOfWeek import com.google.home.google.ExtendedColorControl import com.google.home.google.ExtendedColorControlTrait import com.google.home.google.LightingCurve import com.google.home.google.LightingCurveTrait import com.google.home.matter.standard.ColorControl import com.google.home.matter.standard.ColorControlTrait import com.google.home.matter.standard.ColorTemperatureLightDevice import com.google.home.matter.standard.DimmableLightDevice import com.google.home.matter.standard.ExtendedColorLightDevice import com.google.home.matter.standard.GeneralDiagnostics import com.google.home.matter.standard.Identify import com.google.home.matter.standard.IdentifyTrait import com.google.home.matter.standard.LevelControl import com.google.home.matter.standard.LevelControlTrait import com.google.home.matter.standard.OnOff import com.google.home.matter.standard.OnOffLightDevice import com.google.home.matter.standard.OnOffTrait import com.google.home.matter.standard.RootNodeDevice import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.firstOrNull
Işık cihazlarını bulma
Bir yapıdaki aydınlatma cihazlarını bulmak için cihaz listesini cihaz türüne göre filtreleyin. Örneğin,
OnOffLightDevice
ve
DimmableLightDevice
.
// Get all On/Off Light devices in the structure val onOffLights: List<HomeDevice> = home.devices().list().filter { it.has(OnOffLightDevice) } // Get all Dimmable Light devices in the structure val dimmableLights: List<HomeDevice> = home.devices().list().filter { it.has(DimmableLightDevice) } // Retrieve a specific device type instance to access its traits val onOffLightDevice: OnOffLightDevice? = onOffLights.firstOrNull()?.type(OnOffLightDevice)?.firstOrNull() val dimmableLightDevice: DimmableLightDevice? = dimmableLights.firstOrNull()?.type(DimmableLightDevice)?.firstOrNull()
Ayrıca, tek bir filtrede birden fazla ışık cihazı türündeki tüm aydınlatma cihazlarını alabilirsiniz:
// Get a list of devices with similar device types (lights) val lightDevices = home.devices().map { devices -> devices.filter { it.has(DimmableLightDevice) || it.has(OnOffLightDevice) || it.has(ColorTemperatureLightDevice) || it.has(ExtendedColorLightDevice) } }
Cihaz hakkında temel bilgileri alma
Android için örnek uygulamada uygulanır
BasicInformation özelliği; cihazın tedarikçi adı, tedarikçi kimliği, ürün kimliği, ürün adı (model bilgilerini içerir) ve yazılım sürümü gibi bilgileri içerir:
// Get device basic information. All general information traits are on the RootNodeDevice type. device.type(RootNodeDevice).first().standardTraits.basicInformation?.let { basicInformation -> println("vendorName ${basicInformation.vendorName}") println("vendorId ${basicInformation.vendorId}") println("productId ${basicInformation.productId}") println("productName ${basicInformation.productName}") println("softwareVersion ${basicInformation.softwareVersion}") }
Aydınlatma cihazını tanımlama
Bir odada birden fazla ışık varsa görsel bir tanımlama durumu (ör. ışığı birkaç saniye boyunca yanıp söndürme) tetikleyerek kullanıcıların belirli bir fiziksel armatürü bulmasına yardımcı olabilirsiniz. Dört ışık cihazı türünün tümü Identify özelliğini gerektirir.
Tanımlama durumunu başlatmak için identify komutunu saniye cinsinden identifyTime süresiyle çağırın. 0 değerini iletmek, tanımlama durumunu hemen durdurur. Blink veya Breathe gibi belirli bir görsel efekti çalıştırmak için triggerEffect işlevini de çağırabilirsiniz.
suspend fun identifyLight(lightDevice: DimmableLightDevice) {
val identifyTrait = lightDevice.standardTraits.identify ?: return
// Blink the light for 10 seconds so the user can locate it
if (identifyTrait.supports(Identify.Command.Identify)) {
identifyTrait.identify(identifyTime = 10u)
}
// Or trigger a specific visual identification effect
if (identifyTrait.supports(Identify.Command.TriggerEffect)) {
identifyTrait.triggerEffect(
effectIdentifier = IdentifyTrait.EffectIdentifierEnum.Blink,
effectVariant = IdentifyTrait.EffectVariantEnum.Default
)
}
}
Işıklandırma cihazının bağlantısını kontrol etme
Bazı cihazlar birden fazla cihaz türünü desteklediğinden, bir cihazın bağlantısı aslında cihaz türü düzeyinde kontrol edilir. Döndürülen durum, söz konusu cihazdaki tüm özelliklerin bağlantı durumlarının birleşimidir.
let lightConnectivity = dimmableLightDeviceType.metadata.sourceConnectivity .connectivityState
İnternet bağlantısı olmadığında karma cihaz türleri için partiallyOnline durumu görülebilir. Matter standart özellikleri, yerel yönlendirme nedeniyle hâlâ online olabilir ancak bulut tabanlı özellikler çevrimdışı olur.
Cihazın IP adresini alma
Cihazın IP adresini bulmak için GeneralDiagnosticsTrait'nin networkInterfaces özelliğini kullanın.
Adresler Data nesneleri olarak döndürülür. Network çerçevesini kullanarak bunları standart IPv4 veya IPv6 dizeleri olarak biçimlendirebilirsiniz:
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
}
Aydınlatma cihazlarını kontrol etme
OnOffLight ve DimmableLight cihaz türleri, armatürleri tanımlamak, güç durumlarını değiştirmek ve parlaklık seviyelerini ayarlamak için standart Matter özelliklerini kullanır.
Işığı açma veya kapatma
Bir OnOffLight veya DimmableLight cihazının mevcut güç durumunu okumak ve ışığı açıp kapatmak için OnOff özelliğini kullanın.
onOff özelliğini okumadan önce cihazın bu özelliği desteklediğini doğrulayın. Bazı cihazlar yalnızca komut uç noktaları olarak çalışır ve durum bildirmez.
// Check if the OnOff trait supports the onOff attribute. if (onOffTrait.supports(OnOff.Attribute.onOff)) { println("onOffTrait supports onOff state") } else { println("onOffTrait is for a command only device!") }
onOff, true olduğunda ışık yanar. onOff, false olduğunda ışık kapalıdır.
Işığın güç durumunu değiştirmek için özelliğin istenen komutu desteklediğini doğrulayın ve ardından on(), off() veya toggle() komutunu çağırın.
// Check if the OnOff trait supports the toggle command. if (onOffTrait.supports(OnOff.Command.Toggle)) { println("onOffTrait supports toggle command") } else { println("onOffTrait does not support stateful toggle command") }
// Calling a command on a trait. try { onOffTrait.toggle() } catch (e: HomeException) { // Code for handling the exception }
Ayrıca, açık bir durum ayarlamak için doğrudan on() ve off() işlevlerini de çağırabilirsiniz:
onOffTrait.off() onOffTrait.on()
Bir ışığı kademeli görsel geçişle kapatmak için offWithEffect() işlevini çağırın ve bir EffectIdentifierEnum değeri belirtin:
// Turn off the light using the DyingLight effect. onOffTrait.offWithEffect( effectIdentifier = OnOffTrait.EffectIdentifierEnum.DyingLight, effectVariant = 0u, )
Parlaklık düzeylerini ayarlayın
DimmableLight için LevelControl özelliği gerekir. OnOffLight ise bu özelliği isteğe bağlı olarak destekleyebilir. Bu özelliği kullanarak bir ışığın parlaklık seviyesini okuyabilir ve kontrol edebilirsiniz.
currentLevel özelliği, mevcut parlaklık seviyesini 0 ile 254 arasında bir ölçekte bildirir. Donanım tarafından desteklenen geçerli parlaklık aralığını belirlemek için minLevel ve maxLevel değerlerini de inceleyebilirsiniz.
Parlaklığı belirli bir değere ayarlamak için moveToLevel() yöntemini çağırın. moveToLevel(), optionsOverride'i executeIfOff ile yapılandırmadığınız sürece yalnızca ışık açıkken mevcut seviyeyi değiştirir. Sıfır olmayan bir parlaklık seviyesi ayarlarken ışığı otomatik olarak açmak (veya seviyeyi minimuma ayarlarken kapatmak) için moveToLevelWithOnOff() kullanın.
// Change the brightness of the light to 50% levelControlTrait.moveToLevel( level = 127u.toUByte(), transitionTime = null, optionsMask = LevelControlTrait.OptionsBitmap(), optionsOverride = LevelControlTrait.OptionsBitmap(), )
Aşağıdaki örnekte mevcut parlaklık seviyesi okunur ve kısılabilir bir ışığı 1 saniyelik (10u saniyenin onda biri) geçişle% 75 parlaklığa (190u) ayarlamak için moveToLevelWithOnOff() kullanılır:
suspend fun setLightBrightness(lightDevice: DimmableLightDevice) { val levelControl = lightDevice.standardTraits.levelControl ?: return // Read the current brightness level (0 to 254) val currentLevel: UByte? = levelControl.currentLevel println("Current brightness level: $currentLevel") // Move to ~75% brightness (190 out of 254) and turn on the light if it is off if (levelControl.supports(LevelControl.Command.MoveToLevelWithOnOff)) { levelControl.moveToLevelWithOnOff( level = 190u, transitionTime = 10u, optionsMask = LevelControlTrait.OptionsBitmap(), optionsOverride = LevelControlTrait.OptionsBitmap() ) } }
Ayrıca stepWithOnOff() komutunu StepModeEnum.Up veya StepModeEnum.Down ve bir stepSize ile çağırarak parlaklığı mevcut seviyeye göre artırabilir veya azaltabilirsiniz.
Kontrol rengi
ColorControl
özelliği hem
ColorTemperatureLightDevice
hem de
ExtendedColorLightDevice
üzerinde kullanılabilir.
Bu özellik, renk sıcaklığını mikro karşılıklı derece veya mired cinsinden ayarlamanıza olanak tanır.
val colorControlTrait = colorTempLightDevice.standardTraits.colorControl ?: 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) val currentMireds = colorControlTrait.colorTemperatureMireds val minMireds = colorControlTrait.colorTempPhysicalMinMireds ?: 153u // ~6500K (coolest) val maxMireds = colorControlTrait.colorTempPhysicalMaxMireds ?: 500u // 2000K (warmest) // Clamp target (370 mireds ≈ 2700K) to the device's physical bounds val targetMireds = 370u.toUShort().coerceIn(minMireds, maxMireds) if ( colorControlTrait.supports( ColorControl.Command.MoveToColorTemperature ) ) { colorControlTrait.moveToColorTemperature( colorTemperatureMireds = targetMireds, transitionTime = 20u, // 2.0 seconds (in 0.1s units) optionsMask = ColorControlTrait.OptionsBitmap(), optionsOverride = ColorControlTrait.OptionsBitmap() ) }
Ayrıca CIE 1931 renk koordinatlarını ve 16 bit renk tonu ve doygunluk değerlerini kullanarak rengi ayarlayabilirsiniz.
val colorControlTrait = extendedColorLightDevice.standardTraits.colorControl ?: 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.supports(ColorControl.Command.MoveToColor)) { colorControlTrait.moveToColor( colorX = 20493u, colorY = 21561u, transitionTime = 10u, // 1.0 second (in 0.1s units) optionsMask = ColorControlTrait.OptionsBitmap(), optionsOverride = ColorControlTrait.OptionsBitmap() ) } val currentX = colorControlTrait.currentX val currentY = colorControlTrait.currentY // 2. Move to 16-bit Enhanced Hue (0..65534) and 8-bit Saturation (0..254) if ( colorControlTrait.supports( ColorControl.Command.EnhancedMoveToHueAndSaturation ) ) { colorControlTrait.enhancedMoveToHueAndSaturation( enhancedHue = 43690u, // ~240° (Blue) on the 0..65534 scale saturation = 254u, // Full saturation transitionTime = 15u, // 1.5 seconds (in 0.1s units) optionsMask = ColorControlTrait.OptionsBitmap(), optionsOverride = ColorControlTrait.OptionsBitmap() ) } // 3. Start a hardware color loop across the device's hue range if (colorControlTrait.supports(ColorControl.Command.ColorLoopSet)) { colorControlTrait.colorLoopSet( updateFlags = ColorControlTrait.UpdateFlagsBitmap( updateAction = true, updateDirection = true, updateTime = true, updateStartHue = true ), action = ColorControlTrait.ColorLoopActionEnum .ActivateFromColorLoopStartEnhancedHue, direction = ColorControlTrait.ColorLoopDirectionEnum.Increment, time = 30u, // 30 seconds per full cycle startHue = 0u, optionsMask = ColorControlTrait.OptionsBitmap(), optionsOverride = ColorControlTrait.OptionsBitmap() ) }
ExtendedColorControl, ExtendedColorLightDevice
üzerinde isteğe bağlı bir Google özelliğidir.
Renk adlarını, RGB değerlerini veya renk ile parlaklığı tek bir birimde birleştiren birleşik kayan nokta HSV değerlerini kabul ederek renk kontrolünü basitleştirir.
val extendedColorControlTrait = extendedColorLightDevice.googleTraits.extendedColorControl ?: return // 1. Set color by name if ( extendedColorControlTrait.supports( ExtendedColorControl.Command.MoveToColorName ) ) { extendedColorControlTrait.moveToColorName(colorName = "Lavender") } val currentColorName = extendedColorControlTrait.currentName // 2. Set color using 8-bit RGB values (0..255 per channel) // Automatically coordinates brightness (LevelControl) and color (ColorControl) if ( extendedColorControlTrait.supports( ExtendedColorControl.Command.MoveToColorRgb ) ) { extendedColorControlTrait.moveToColorRgb( red = 255u, green = 128u, blue = 0u ) } val currentRed = extendedColorControlTrait.currentRed val currentGreen = extendedColorControlTrait.currentGreen val currentBlue = extendedColorControlTrait.currentBlue // 3. Set color and brightness together using floating-point HSV // hue: 0.0f..360.0f, saturation: 0.0f..1.0f, value (brightness): 0.0f..1.0f if ( extendedColorControlTrait.supports( ExtendedColorControl.Command.MoveToColorHsv ) ) { extendedColorControlTrait.moveToColorHsv( hue = 210.0f, saturation = 0.85f, value = 0.75f ) } val currentHue = extendedColorControlTrait.currentHue val currentSaturation = extendedColorControlTrait.currentSaturation val currentValue = extendedColorControlTrait.currentValue
Işık eğrilerini yönetme
Aydınlatma eğrisi, gün boyunca hedef ışıkların parlaklığını ve isteğe bağlı renk sıcaklığını sorunsuz bir şekilde değiştiren otomatik bir program tanımlar. Örneğin, bir aydınlatma eğrisi sabahları ışıkları kademeli olarak açabilir ve akşamları daha sıcak bir tona kısabilir. Yalnızca parlaklığı destekleyen ışık cihazı türleri (ör. kısılabilir ışık), parlaklık eğrisini takip eder ve renk sıcaklığını yok sayar.
LightingCurve özelliği, yapı düzeyinde bir Google Home platform özelliğidir. Bu özelliğe tek bir aydınlatma cihazından değil, Structure örneğinden erişirsiniz.
Özellikteki her program, benzersiz bir settingId ile LightingCurveConfig değerini eşleyen bir LightingCurveSetting ile temsil edilir. Aşağıdaki tabloda LightingCurveConfig aracının yapılandırma alanları açıklanmaktadır:
| Alan | Açıklama |
|---|---|
curvePointsList |
Farklı zamanlara sahip en az iki CurvePoint öğesinden oluşan bir dizi. Her nokta bir time (0 ile 23 arasında hours ve 0 ile 59 arasında minutes içeren CurveTimeOfDay), bir brightnessPercent (0 ile 100 arasında) ve Kelvin cinsinden isteğe bağlı bir colorTemperature belirtir. Herhangi bir nokta için colorTemperature belirtilirse tüm noktalar için pozitif bir değer olmalıdır. |
roomId |
Hedef odanın kimliği (ör. room@{uuid}). Aydınlatma eğrisini, o odadaki uyumlu, kısılabilir ve renk sıcaklığı ışıklarına uygular. roomId veya devices değerlerinden birini belirtin. |
devices |
Her biri bir cihaz id ve cihaz type kimliği (DimmableLight için home.matter.0000.types.0101 veya ColorTemperatureLight için home.matter.0000.types.010c gibi) içeren TargetDevice girişlerinin listesini içeren bir TargetDevices nesnesi. devices veya roomId değerini belirtin. |
daysOfWeekList |
Işıklandırma eğrisinin çalıştığı haftanın günleri (DayOfWeek). Liste boşsa ışıklandırma eğrisi her gün çalışır. |
adaptive |
Işık eğrisinin uyarlanabilir olup olmadığını belirten isteğe bağlı Boole değeri. Uyarlanabilir ışık eğrisi, hedef ışığın planlanan zaman aralığında açıldığında etkin eğri seviyesine devam ettiği anlamına gelir. false etkin olduğunda, bir ışıkta manuel olarak yapılan değişiklik, günün geri kalanında ışığı aydınlatma eğrisinden ayırır. true olduğunda, planlama zaman aralığı sırasında kapatılıp tekrar açılan bir ışık, ışık eğrisiyle yeniden etkileşime girerek eğrinin mevcut parlaklığına ve renk sıcaklığına uyar ve eğriyi oradan takip eder. |
enabled |
Işık eğrisi ayarının etkin olup olmadığını gösteren isteğe bağlı boole değeri. Yeni bir ayar oluşturulurken varsayılan olarak true değerine ayarlanır. enabled, bir güncelleme komutundan çıkarıldığında enabled durumu değişmez. |
Işık eğrisi ayarlarını okuma
Bir yapı için yapılandırılmış aydınlatma eğrilerini incelemek için Structure özelliğinden LightingCurve özelliğini alın ve lightingCurveSettingsList özelliğini okuyun.
suspend fun readLightingCurves(structure: Structure) {
val lightingCurve = structure.trait(LightingCurve).firstOrNull() ?: return
for (setting in lightingCurve.lightingCurveSettingsList) {
val settingId = setting.settingId
val config = setting.config
println("Setting ID: $settingId, enabled: ${config?.enabled}")
config?.curvePointsList?.forEach { point ->
println(
" Time: ${point.time?.hours}:${point.time?.minutes}, " +
"Brightness: ${point.brightnessPercent}%, " +
"ColorTemp: ${point.colorTemperature}K"
)
}
}
}
Işıklandırma eğrisi ayarı oluşturma
Bir yapıda yeni bir aydınlatma eğrisi programı oluşturmak için en az iki CurvePoint girişi, hedef ışıklar (roomId veya devices ile belirtilir) ve haftanın etkin günlerini içeren bir LightingCurveConfig oluşturun. Ardından yapılandırmayı createLightingCurveSetting() öğesine iletin. Komut, yeni ışıklandırma eğrisi ayarına atanan benzersiz settingId değerini döndürür.
Aşağıdaki örnekte, bir oda için hafta içi aydınlatma eğrisi oluşturulmaktadır. Sabah 07:00'de 2.700 K sıcaklıkta% 30 parlaklıktan sabah 09:00'da 4.000 K daha soğuk bir sıcaklıkta% 80 parlaklığa yükselir, ardından akşam 21:00'de 2.200 K çok sıcak bir sıcaklıkta% 20 parlaklığa düşer:
suspend fun createRoomLightingCurve(
structure: Structure,
targetRoomId: String
): String? {
val lightingCurve = structure.trait(LightingCurve).firstOrNull() ?: return null
val curvePoints = listOf(
LightingCurveTrait.CurvePoint(
time = LightingCurveTrait.CurveTimeOfDay(hours = 7, minutes = 0),
brightnessPercent = 30,
colorTemperature = 2700
),
LightingCurveTrait.CurvePoint(
time = LightingCurveTrait.CurveTimeOfDay(hours = 9, minutes = 0),
brightnessPercent = 80,
colorTemperature = 4000
),
LightingCurveTrait.CurvePoint(
time = LightingCurveTrait.CurveTimeOfDay(hours = 21, minutes = 0),
brightnessPercent = 20,
colorTemperature = 2200
)
)
val config = LightingCurveTrait.LightingCurveConfig(
curvePointsList = curvePoints,
roomId = targetRoomId,
daysOfWeekList = listOf(
DayOfWeek.MONDAY,
DayOfWeek.TUESDAY,
DayOfWeek.WEDNESDAY,
DayOfWeek.THURSDAY,
DayOfWeek.FRIDAY
),
adaptive = true,
enabled = true
)
// Returns the newly created settingId
return lightingCurve.createLightingCurveSetting(config = config)
}
Tüm oda yerine belirli aydınlatma cihazlarını hedeflemek için LightingCurveTrait.TargetDevices kullanarak devices parametresini sağlayın:
val targetDevices = LightingCurveTrait.TargetDevices(
devicesList = listOf(
LightingCurveTrait.TargetDevice(
id = dimmableLight.id.id,
type = DimmableLightDevice.TYPE_ID
)
)
)
val deviceCurveConfig = LightingCurveTrait.LightingCurveConfig(
curvePointsList = curvePoints,
devices = targetDevices,
daysOfWeekList = listOf(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY),
adaptive = true,
enabled = true
)
val settingId = lightingCurve.createLightingCurveSetting(
config = deviceCurveConfig
)
Işık eğrisi ayarını güncelleme
Mevcut bir aydınlatma eğrisini değiştirmek (ör. eğri noktalarını değiştirmek, haftanın etkin günlerini güncellemek veya programı etkinleştirip devre dışı bırakmak) için hedef settingId ve güncellenmiş LightingCurveConfig ile updateLightingCurveSetting() yöntemini çağırın.
suspend fun updateLightingCurve(
structure: Structure,
settingId: String,
updatedConfig: LightingCurveTrait.LightingCurveConfig
) {
val lightingCurve = structure.trait(LightingCurve).firstOrNull() ?: return
lightingCurve.updateLightingCurveSetting(
settingId = settingId,
config = updatedConfig
)
}
Işıklandırma eğrisi ayarını silme
Bir yapıdan ışıklandırma eğrisi ayarını kaldırmak için silmek istediğiniz ayarın settingId değeriyle deleteLightingCurveSetting() yöntemini çağırın.
suspend fun deleteLightingCurve(
structure: Structure,
settingId: String
) {
val lightingCurve = structure.trait(LightingCurve).firstOrNull() ?: return
lightingCurve.deleteLightingCurveSetting(settingId = settingId)
}