diff --git a/panels/zwave/ha-panel-zwave.html b/panels/zwave/ha-panel-zwave.html
index baa8c4d05b..f17e2a6692 100644
--- a/panels/zwave/ha-panel-zwave.html
+++ b/panels/zwave/ha-panel-zwave.html
@@ -324,15 +324,7 @@ Polymer({
return (!ent.attributes.hidden &&
(ent.entity_id).match('zwave[.]'));
})
- .sort(function (entityA, entityB) {
- if (entityA.entity_id < entityB.entity_id) {
- return -1;
- }
- if (entityA.entity_id > entityB.entity_id) {
- return 1;
- }
- return 0;
- });
+ .sort(window.hassUtil.sortByName);
},
computeEntities: function (selectedNode) {
@@ -350,17 +342,7 @@ Polymer({
ent.attributes.node_id === nodeid &&
(!(ent.entity_id).match('zwave[.]')));
})
- .sort(function (entityA, entityB) {
- var nameA = window.hassUtil.computeStateName(entityA);
- var nameB = window.hassUtil.computeStateName(entityB);
- if (nameA < nameB) {
- return -1;
- }
- if (nameA > nameB) {
- return 1;
- }
- return 0;
- });
+ .sort(window.hassUtil.sortByName);
},
selectedNodeChanged: function (selectedNode) {
diff --git a/src/util/hass-util.html b/src/util/hass-util.html
index ab14ccfb3b..24ac29b083 100644
--- a/src/util/hass-util.html
+++ b/src/util/hass-util.html
@@ -425,6 +425,18 @@ window.hassUtil.computeStateName = function (stateObj) {
return stateObj._entityDisplay;
};
+window.hassUtil.sortByName = function (entityA, entityB) {
+ var nameA = window.hassUtil.computeStateName(entityA);
+ var nameB = window.hassUtil.computeStateName(entityB);
+ if (nameA < nameB) {
+ return -1;
+ }
+ if (nameA > nameB) {
+ return 1;
+ }
+ return 0;
+};
+
window.hassUtil.computeStateState = function (stateObj) {
if (!stateObj._stateDisplay) {
stateObj._stateDisplay = stateObj.state.replace(/_/g, ' ');