24 lines
1.2 KiB
C#
24 lines
1.2 KiB
C#
using Evergreen.Health.Application.Health.Devices.Contracts;
|
|
using Evergreen.Health.Application.Health.Integrations.HomeAssistant;
|
|
using Evergreen.Health.Application.Health.Models;
|
|
using Evergreen.Health.Application.Health.Scenes;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Evergreen.Health.Application.Health.Devices.Environment;
|
|
|
|
public sealed class EnvironmentModule : HealthDeviceModule
|
|
{
|
|
private readonly HomeAssistantEntityOptions _entities;
|
|
public EnvironmentModule(DeviceActionRunner runner, IOptions<HomeAssistantOptions> options) : base(runner)
|
|
=> _entities = options.Value.Entities;
|
|
public override string Key => "environment";
|
|
public override string Category => nameof(HealthDeviceCategory.EnvironmentSensor);
|
|
public override string DisplayName => "室内环境检测仪";
|
|
public override string PrimaryEntityId => "";
|
|
public override IReadOnlyList<DeviceParameterDefinition> Parameters => [];
|
|
public override IEnumerable<string> EntityIds => new[]
|
|
{
|
|
_entities.Temperature, _entities.Humidity, _entities.Pm25, _entities.Co2, _entities.Formaldehyde, _entities.Tvoc
|
|
}.Where(id => !string.IsNullOrWhiteSpace(id)).Distinct(StringComparer.OrdinalIgnoreCase);
|
|
}
|