A another great release from NetDaemon! This release is as feature complete we wanted it for beta. So this is the first non pre-release verison but you should consider it still a beta stage. From this release the components will have the -beta postfix. (0.5.1-beta), make sure you update your dev environment!
Using Areas
NetDaemon does match the area where the entity´s device is configured. This means it is very easy to do selections on what area that matches.
All binary sensors (PIRS) in the kitchen turn on the light:
Entities(n => n.Area == "kitchen" && n.EntityId.StartsWith("binary_sensor."))
.WhenStateChange("on").UseEntity("light.light1").TurnOn().Execute();
Or use it directly to turn on all lights in the kitchen area:
Entities(n => n.Area == "kitchen" && n.EntityId.StartsWith("light.")).TurnOn().ExecuteAsync();
You can also use it for selecting the entities to do action on. When pir is on, turn on all lights in the kitchen area:
Entity("binary_sensor.livingroom_pir")
.WhenStateChange("on")
.UseEntities(n => n.Area == "livingroom" && n.EntityId.StartsWith("light."))
.TurnOn()
.Execute();
It will alsoe automatically update in the background when the users change the device info or area info.
Changes in docker
The add-on and docker container now share the same image. This is great for maintainability.
Setting own csproj file for NetDaemon
Setting the HASS_RUN_PROJECT_FOLDER=true as environment var will use the daemonapp.csproj file when building the daemon. Use the one from the template repo. This makes it possible to use custom NUGET packages building your apps. For now this does not work in add-on but will be in next release.
Changes in build strategy
Due to support for custom csproj files to build NetDaemon it now builds the whole daemon pre launch of your apps. This will add some time to start NetDaemon but the benefits of being able to use custom projects with own nuget packages is worth it. In future releases there will be only a singe time build for non custom projects.