Why not create more built-in “generic” integrations similar to the existing native Generic Thermostat, Generic Hygrostat, and Generic Camera integrations and have those included in Home Assistant core as a fast and easy way create common basic virtual devices?
Would it not be a good idea to also have some additional “generic” integrations that can convert a combination of a few simple entities (from other devices) to create new virtual devices that are just a little more complexed can be used in dashboards and automations, all from the UI (without the users having to learn to use templating).
Such as for example:
-
Generic Doorbell = i.e. combining a button and a siren (FIY, a “siren” can also be a chime that siren integration).
-
Generic Button = (similar or even a more or less a copy of the existing input button) i.e. create a virtual button device using a button entity that make then can easily be added to dashboards and can be used in automations. Maybe just need a rename to be consistent with other generic devices?
-
Generic Cover = i.e. create virtual cover device using one or more switches in combination with one or more binary sensor and sensor (to for example create a custom garage door opener).
-
Generic Siren = i.e. combining a switch and a dumb electric siren or chime that only needs power to work.
-
Generic Lock = i.e. combining a switch and dumb electric locks that only needs power (on/off) to work.
-
Generic Fan = i.e. create custom virtual fan device with multi-speed support using more than one switch to set different speeds for dumb electric fans.
-
Generic Valve = i.e. create custom virtual valve device using more than one switch to set on or off or various “open” procentages.
-
Generic Irrigation = i.e. combining one or more switch and one or more sensor for moisture, humidity, and/or temperature with electric water pump(s). Can probably copy much from the the existing Generic Hygrostat or use that as a base?
-
Generic Humidifier = (similar or even a more or less a copy of the existing Generic Hygrostat) i.e. create a custom virtual humidifier device combining a switch and a humidity sensor (and perhaps also a temperature sensor) with a dumb humidifier.
-
Generic Dehumidifier = (similar or even a more or less a copy of the existing Generic Hygrostat) i.e. create custom virtual humidifier device combining a switch and a humidity sensor (and perhaps also a temperature sensor) with a dumb dehumidifier.
-
Generic Water Heater = (similar or even a more or less a copy of the existing Generic Thermostat) i.e. create custom virtual Water Heater device combining a switch and a temperature sensor (and perhaps also a sensor) with a dumb water heater. (Maybe also option to add more sensors like water level?).
-
Generic Climate Control Device (as in a virtual HVAC) = (extended variant of the existing Generic Thermostat) i.e. create custom virtual climate control device (like a virtual HVAC device) by combining several switch entities and one or more temperature sensor entity (and perhaps also other sensor entities) to control a legacy HVAC that not only offers heating but also cooling via an air conditioning (e.g. a mini-split air conditioners)
-
Generic energy meter (as in a virtual power sensor) = i.e. a standardized virtual energy meter device, e.g. template that creates virtual power sensors using premade scripts that help calculate estimated energy usage (power consumption of devices without real energy meters) based on the time it is powered on and estimated Watt entered manually from its specifications, see example Powercalc → Powercalc - Virtual power sensors
-
Generic Device Tracker = Not sure if could create a good generic device tracker as a custom virtual device, but there are some basic ways to track devices, such as ping on WiFi or various Bluetooth trackers, as well as maybe using GPS with Geolocation.
-
Generic Alarm Control Panel = Not sure if could create a good generic Alarm control panel from just any standard devices (like example a bunch of buttons) but could use simpler devices like some buttons for disarm, arm away, arm home, and there is a Template Alarm control panel so be worth to look into to adding a generic integration that creates a virtual alarm control panel device (all from the UI)?
As a bonus the core of those generic integrations could perhaps also serve as a baseline for future custom and third-party integrations (e.g. also kind of act as templates to look as and use as a base for developers who want to creating new custom integrations).
FYI, related to this be aware that many of those may need to use the existing integration that allow change device type of a switch as well as remote as building blocks(?).
Also note that for some of the suggested examples above, such as fan, cover, and lock there are premade templates that also combine various integrations and provide virtual devices, however using those templates is more advanced and not user-friendly as can not be done entirely from the UI (because they require YAML configuration). However those can probably be used as building blocks for the above suggested generic devices(?).
So I know the existing “generic” integrations that are a part of Home Assistant core can be more or less act as Template and/or a Blueprint but I think that sometimes and for some things the concept of built-in “generic” integrations makes more sense than creating new Templates or finding the right Blueprints, and more importantly I believe that in some use cases it would be much more intuitive for new users and beginners to just have some “generic” integrations than having new users needing to learn Templating look for the best Blueprint in the Blueprint Echance that match their specific usecase.
PS: I guess that this concept could indirectly go hand in hand with the roadmap goal of making automations easier to create as it should be easier for new users to create a automation if there is first easier to create virtual device as new integrations(?) → https://www.home-assistant.io/blog/2024/06/12/roadmap-2024h1#current-priority-2-make-automations-easier-to-create