feat(hass): add synced input_text for brightness control
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
9f41b0025b
commit
bb4a8791fc
3 changed files with 66 additions and 0 deletions
|
@ -124,6 +124,14 @@ in {
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# TODO: restrict to 0-100
|
||||||
|
config.input_text = {
|
||||||
|
bathroom_light_brightness = {
|
||||||
|
name = "BathroomLightBrightness";
|
||||||
|
pattern = "[0-9]*";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
lovelaceConfig = {
|
lovelaceConfig = {
|
||||||
title = "Our House";
|
title = "Our House";
|
||||||
# I don't want multiple views
|
# I don't want multiple views
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,58 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
using HomeAssistantGenerated;
|
||||||
|
|
||||||
|
using NetDaemon.AppModel;
|
||||||
|
using NetDaemon.HassModel.Entities;
|
||||||
|
|
||||||
|
|
||||||
|
namespace NetDaemonConfig.Apps.Frontend.BathroomLight
|
||||||
|
{
|
||||||
|
[NetDaemonApp]
|
||||||
|
public class BathroomLight
|
||||||
|
{
|
||||||
|
public BathroomLight(Services services, Entities entities)
|
||||||
|
{
|
||||||
|
LightEntity? bathroomLight = entities.Light.Tz3210KatchgxyTs0505bLight;
|
||||||
|
InputTextEntity? bathroomLightBrightness = entities.InputText.BathroomLightBrightness;
|
||||||
|
|
||||||
|
var brightnessCallback = (Action<double, double> callback) =>
|
||||||
|
{
|
||||||
|
double? currentBrightness = bathroomLight?.Attributes?.Brightness;
|
||||||
|
|
||||||
|
if (currentBrightness is not null)
|
||||||
|
{
|
||||||
|
double currentBrightnessPercent = Math.Floor((double)currentBrightness / 2.54);
|
||||||
|
double inputBrightnessPercent = Double.Parse(bathroomLightBrightness.State ?? "0");
|
||||||
|
|
||||||
|
if (currentBrightnessPercent != inputBrightnessPercent)
|
||||||
|
{
|
||||||
|
callback(currentBrightnessPercent, inputBrightnessPercent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
bathroomLightBrightness
|
||||||
|
.StateAllChanges()
|
||||||
|
.Subscribe((_) => brightnessCallback((current, input) =>
|
||||||
|
{
|
||||||
|
services.Light.TurnOn(
|
||||||
|
target: ServiceTarget.FromEntity("light.tz3210_katchgxy_ts0505b_light"),
|
||||||
|
brightness: Math.Floor(input * 2.54 + 1));
|
||||||
|
}));
|
||||||
|
|
||||||
|
bathroomLight
|
||||||
|
.StateAllChanges()
|
||||||
|
.Subscribe((_) => brightnessCallback((current, input) =>
|
||||||
|
{
|
||||||
|
bathroomLightBrightness.SetValue(current.ToString());
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Init value
|
||||||
|
brightnessCallback((current, input) =>
|
||||||
|
{
|
||||||
|
bathroomLightBrightness.SetValue(current.ToString());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue