Handle enabled by default for enum types / select|sensor entities (#8087)

* Disable power_on_behavior select entities by default

* Populate a bunch more

* Restore text type action lookup, it is used for DIY devices

* Remove stale comment
This commit is contained in:
Franck Nijhof
2021-07-20 16:53:49 +02:00
committed by GitHub
parent 46e2a772fe
commit 7675dd1bcb
+17 -2
View File
@@ -489,6 +489,22 @@ class HomeAssistant extends Extension {
} else if (firstExpose.type === 'enum') {
const lookup = {
action: {icon: 'mdi:gesture-double-tap'},
backlight_auto_dim: {enabled_by_default: false, icon: 'mdi:brightness-auto'},
backlight_mode: {enabled_by_default: false, icon: 'mdi:lightbulb'},
color_power_on_behavior: {enabled_by_default: false, icon: 'mdi:palette'},
device_mode: {enabled_by_default: false, icon: 'mdi:tune'},
keep_time: {enabled_by_default: false, icon: 'mdi:av-timer'},
melody: {icon: 'mdi:music-note'},
mode_phase_control: {enabled_by_default: false, icon: 'mdi:tune'},
mode: {enabled_by_default: false, icon: 'mdi:tune'},
motion_sensitivity: {enabled_by_default: false, icon: 'mdi:tune'},
operation_mode: {enabled_by_default: false, icon: 'mdi:tune'},
power_on_behavior: {enabled_by_default: false, icon: 'mdi:power-settings'},
power_outage_memory: {enabled_by_default: false, icon: 'mdi:power-settings'},
sensitivity: {enabled_by_default: false, icon: 'mdi:tune'},
sensors_type: {enabled_by_default: false, icon: 'mdi:tune'},
switch_type: {enabled_by_default: false, icon: 'mdi:tune'},
volume: {icon: 'mdi: volume-high'},
};
if (firstExpose.access & ACCESS_STATE) {
@@ -497,6 +513,7 @@ class HomeAssistant extends Extension {
object_id: firstExpose.property,
discovery_payload: {
value_template: `{{ value_json.${firstExpose.property} }}`,
enabled_by_default: !(firstExpose.access & ACCESS_SET),
...lookup[firstExpose.name],
},
});
@@ -505,8 +522,6 @@ class HomeAssistant extends Extension {
* If enum attribute has SET access then expose as SELECT entity too.
*/
if ((firstExpose.access & ACCESS_SET)) {
// Make the sensor disabled by default for new entities.
discoveryEntries[discoveryEntries.length - 1].discovery_payload.enabled_by_default = false;
discoveryEntries.push({
type: 'select',
object_id: firstExpose.property,