diff --git a/src/panels/config/entities/entity-registry-settings.ts b/src/panels/config/entities/entity-registry-settings.ts
index 08bba1f705..782c4a466f 100644
--- a/src/panels/config/entities/entity-registry-settings.ts
+++ b/src/panels/config/entities/entity-registry-settings.ts
@@ -99,7 +99,7 @@ const OVERRIDE_SENSOR_UNITS = {
pressure: ["hPa", "Pa", "kPa", "bar", "cbar", "mbar", "mmHg", "inHg", "psi"],
};
-const SWITCH_AS_DOMAINS = ["light", "lock", "cover", "fan", "siren"];
+const SWITCH_AS_DOMAINS = ["cover", "fan", "light", "lock", "siren"];
@customElement("entity-registry-settings")
export class EntityRegistrySettings extends SubscribeMixin(LitElement) {
@@ -342,10 +342,14 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) {
${domainToName(this.hass.localize, "switch")}
- ${SWITCH_AS_DOMAINS.map(
- (as_domain) => html`
-
- ${domainToName(this.hass.localize, as_domain)}
+
+ ${this._switchAsDomainsSorted(
+ SWITCH_AS_DOMAINS,
+ this.hass.localize
+ ).map(
+ (entry) => html`
+
+ ${entry.label}
`
)}
@@ -729,6 +733,16 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) {
showOptionsFlowDialog(this, this._helperConfigEntry!);
}
+ private _switchAsDomainsSorted = memoizeOne(
+ (domains: string[], localize: LocalizeFunc) =>
+ domains
+ .map((entry) => ({
+ domain: entry,
+ label: domainToName(localize, entry),
+ }))
+ .sort((a, b) => stringCompare(a.label, b.label))
+ );
+
private _deviceClassesSorted = memoizeOne(
(domain: string, deviceClasses: string[], localize: LocalizeFunc) =>
deviceClasses