mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-26 19:04:47 +00:00
40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using System.Collections.Generic;
|
|
using Newtonsoft.Json;
|
|
using PepperDash.Core;
|
|
|
|
namespace PepperDash.Essentials.Core
|
|
{
|
|
/// <summary>
|
|
/// Describes the functionality of a device that senses and provides partition state
|
|
/// </summary>
|
|
public interface IPartitionStateProvider : IKeyName
|
|
{
|
|
[JsonIgnore]
|
|
BoolFeedback PartitionPresentFeedback { get; }
|
|
|
|
[JsonProperty("partitionPresent")]
|
|
bool PartitionPresent { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Describes the functionality of a device that can provide partition state either manually via user input or optionally via a sensor state
|
|
/// </summary>
|
|
public interface IPartitionController : IPartitionStateProvider
|
|
{
|
|
[JsonProperty("adjacentRoomKeys")]
|
|
List<string> AdjacentRoomKeys { get; }
|
|
|
|
[JsonProperty("isInAutoMode")]
|
|
bool IsInAutoMode { get; }
|
|
|
|
void SetPartitionStatePresent();
|
|
|
|
void SetPartitionStateNotPresent();
|
|
|
|
void ToggglePartitionState();
|
|
|
|
void SetManualMode();
|
|
|
|
void SetAutoMode();
|
|
}
|
|
} |