# DoorbellDevice


```
class DoorbellDevice : DeviceType
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) |||
| ↳ | [com.google.home.DeviceType](https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType) ||
|   | ↳ | [com.google.home.matter.standard.DoorbellDevice](https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice) |

*** ** * ** ***

A switch which when pressed usually causes a chime to activate.

## Summary

| ### Nested types |
|---|
| `class https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice.StandardTraits` Trait Container for DoorbellDevice Standard Traits. |

| ### Public constructors |
|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice#DoorbellDevice(com.google.home.DeviceType.Metadata,com.google.home.TraitProvider,com.google.home.HasEvents,com.google.home.HasParts,com.google.home.matter.standard.DoorbellDevice.StandardTraits)( metadata: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType.Metadata, traitProvider: https://developers.home.google.com/reference/kotlin/com/google/home/TraitProvider, eventProvider: https://developers.home.google.com/reference/kotlin/com/google/home/HasEvents, partsProvider: https://developers.home.google.com/reference/kotlin/com/google/home/HasParts, standardTraits: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice.StandardTraits )` Creates the DoorbellDevice class. |

| ### Public properties |
|---|---|
| `open https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice#factory()` |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType.Metadata` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice#metadata()` |
| `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice.StandardTraits` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/DoorbellDevice#standardTraits()` |

| ### Inherited functions |
|---|
| From [com.google.home.DeviceType](https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType) |---|---| | `open https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/Event>` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalApi https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType#eventsRecursive()()` Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Event`s spanning this entire device type, including events emitted by this device type itself and all of its subordinate parts. | |
| From [com.google.home.HasEvents](https://developers.home.google.com/reference/kotlin/com/google/home/HasEvents) |---|---| | `open https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/Event>` | `https://developers.home.google.com/reference/kotlin/com/google/home/HasEvents#events()()` Gets a flow of all Events available for the object. | | `open https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/HasEvents#events(com.google.home.EventFactory)(event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>)` Gets a flow of a specific Event. | | `open https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/Event>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/HasEvents#events(com.google.home.TraitFactory)(trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>)` Gets a flow of all Events by this `https://developers.home.google.com/reference/kotlin/com/google/home/Trait`. | |
| From [com.google.home.HasParts](https://developers.home.google.com/reference/kotlin/com/google/home/HasParts) |---|---| | `open T` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType> https://developers.home.google.com/reference/kotlin/com/google/home/HasParts#part(com.google.home.DeviceTypeFactory,kotlin.Array)(type: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<T>, vararg tags: https://developers.home.google.com/reference/kotlin/com/google/home/Tag)` Returns the first part that matches the given type and tags. | | `open T?` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType> https://developers.home.google.com/reference/kotlin/com/google/home/HasParts#partOrNull(com.google.home.DeviceTypeFactory,kotlin.Array)(type: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<T>, vararg tags: https://developers.home.google.com/reference/kotlin/com/google/home/Tag)` Returns the first part that matches the given type and tags. | |
| From [com.google.home.TraitProvider](https://developers.home.google.com/reference/kotlin/com/google/home/TraitProvider) |---|---| | `open https://developers.home.google.com/reference/kotlin/com/google/home/Trait.TraitMetadata?` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/TraitProvider#metadata(com.google.home.TraitFactory)(traitFactory: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>)` Access a specific trait metadata on the provider given a caller-provided TraitFactory. | | `open T?` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/TraitProvider#trait(com.google.home.TraitFactory)(traitFactory: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>)` Access a specific trait on the provider given a caller-provided TraitFactory. | | `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/Trait>` | `https://developers.home.google.com/reference/kotlin/com/google/home/TraitProvider#traits()()` Given a similar accessible trait set as the function above, returns a subset of those traits that are present in the associated `https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig#factoryRegistry()` union'ed with those already known to the extended sub-class (e.g specific DeviceType that is aware of the set of `https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory`s specified in its type definition). | |

| ### Inherited properties |
|---|
| From [com.google.home.DeviceType](https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType) |---|---| | `https://developers.home.google.com/reference/kotlin/com/google/home/TraitProvider` | `https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType#traitProvider()` | |
| From [com.google.home.HasParts](https://developers.home.google.com/reference/kotlin/com/google/home/HasParts) |---|---| | `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>` | `https://developers.home.google.com/reference/kotlin/com/google/home/HasParts#parts()` The parts of this object represented as a set of device types. | |

## Public constructors

### DoorbellDevice

```
DoorbellDevice(
    metadata: DeviceType.Metadata,
    traitProvider: TraitProvider,
    eventProvider: HasEvents,
    partsProvider: HasParts,
    standardTraits: DoorbellDevice.StandardTraits
)
```

Creates the DoorbellDevice class.

## Public properties

### factory

```
open val factory: DeviceTypeFactory<DoorbellDevice>
```

### metadata

```
open val metadata: DeviceType.Metadata
```

### standardTraits

```
val standardTraits: DoorbellDevice.StandardTraits
```