Skip to content

ThinkingHome.DeviceModel

ThinkingHome.DeviceModel

IDeviceHost Interface

Потребитель-грань хоста — публичный .NET API слоя устройств. Его вызывают адаптеры экосистем (Алиса, Matter, HomeKit) и код ThinkingHome. Экосистемные адаптеры не лезут в реестр напрямую.

csharp
public interface IDeviceHost

Derived
DeviceHost

Methods

IDeviceHost.ExecuteAsync(string, DeviceCommand, CancellationToken) Method

Исполнить команду над устройством (execute).

csharp
System.Threading.Tasks.Task<ThinkingHome.DeviceModel.CommandOutcome> ExecuteAsync(string deviceId, ThinkingHome.DeviceModel.Commands.DeviceCommand command, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));

Parameters

deviceId System.String

command DeviceCommand

ct System.Threading.CancellationToken

Returns

System.Threading.Tasks.Task<CommandOutcome>

IDeviceHost.GetDeviceAsync(string, CancellationToken) Method

Описание одного устройства или null, если его нет.

csharp
System.Threading.Tasks.Task<ThinkingHome.DeviceModel.DeviceDescriptor?> GetDeviceAsync(string deviceId, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));

Parameters

deviceId System.String

ct System.Threading.CancellationToken

Returns

System.Threading.Tasks.Task<DeviceDescriptor>

IDeviceHost.GetDevicesAsync(CancellationToken) Method

Все зарегистрированные устройства (discovery). Async — может уходить по сети (remote host).

csharp
System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyCollection<ThinkingHome.DeviceModel.DeviceDescriptor>> GetDevicesAsync(System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));

Parameters

ct System.Threading.CancellationToken

Returns

System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyCollection<DeviceDescriptor>>

IDeviceHost.QueryAsync(string, CancellationToken) Method

Опросить состояние устройства (query).

csharp
System.Threading.Tasks.Task<ThinkingHome.DeviceModel.State.DeviceSnapshot> QueryAsync(string deviceId, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));

Parameters

deviceId System.String

ct System.Threading.CancellationToken

Returns

System.Threading.Tasks.Task<DeviceSnapshot>

Events

IDeviceHost.Changed Event

Агрегированный поток изменений состояния всех устройств (report).

csharp
event Action<StateChange> Changed;

Event Type

System.Action<StateChange>

Опубликовано под лицензией MIT