ThinkingHome.DeviceModel.Drivers.Stubs
ThinkingHome.DeviceModel.Drivers.Stubs
StubCurtain Class
Заглушка шторы — одно свойство «положение» 0–100 % (0 — закрыта, 100 — открыта), как Window Covering (0x0102) в Matter. Принимает две команды: OpenCommand (в положение %) и OnOffCommand (открыть/закрыть = крайние положения, аналог Matter UpOrOpen/DownOrClose). Тумблер on_off для Алисы (умение + состояние) синтезирует маппер — в ядре отдельного on/off-состояния нет.
public sealed class StubCurtain : ThinkingHome.DeviceModel.IDeviceInheritance System.Object → StubCurtain
Implements IDevice
Constructors
StubCurtain(string, StubDeviceConfig) Constructor
Заглушка шторы — одно свойство «положение» 0–100 % (0 — закрыта, 100 — открыта), как Window Covering (0x0102) в Matter. Принимает две команды: OpenCommand (в положение %) и OnOffCommand (открыть/закрыть = крайние положения, аналог Matter UpOrOpen/DownOrClose). Тумблер on_off для Алисы (умение + состояние) синтезирует маппер — в ядре отдельного on/off-состояния нет.
public StubCurtain(string id, ThinkingHome.DeviceModel.Drivers.Stubs.StubDeviceConfig config);Parameters
config StubDeviceConfig
Properties
StubCurtain.Id Property
Стабильный идентификатор устройства.
public string Id { get; }Implements Id
Property Value
Methods
StubCurtain.Describe() Method
Описание устройства (discovery).
public ThinkingHome.DeviceModel.DeviceDescriptor Describe();Implements Describe()
Returns
StubCurtain.ExecuteAsync(DeviceCommand, CancellationToken) Method
Исполнить команду (execute). Незнакомую команду вернуть как Unsupported.
public System.Threading.Tasks.Task<ThinkingHome.DeviceModel.CommandOutcome> ExecuteAsync(ThinkingHome.DeviceModel.Commands.DeviceCommand command, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));Parameters
command DeviceCommand
ct System.Threading.CancellationToken
Implements ExecuteAsync(DeviceCommand, CancellationToken)
Returns
System.Threading.Tasks.Task<CommandOutcome>
StubCurtain.QueryAsync(CancellationToken) Method
Опросить текущее состояние (query).
public System.Threading.Tasks.Task<ThinkingHome.DeviceModel.State.DeviceSnapshot> QueryAsync(System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));Parameters
ct System.Threading.CancellationToken
Implements QueryAsync(CancellationToken)
Returns
System.Threading.Tasks.Task<DeviceSnapshot>
Events
StubCurtain.Changed Event
Изменение состояния (report/push).
public event Action<StateChange>? Changed;Implements Changed