diff --git a/bundles/org.openhab.ui/web/src/components/thing/channel-list.vue b/bundles/org.openhab.ui/web/src/components/thing/channel-list.vue index b5ed1f980..76c9fc698 100644 --- a/bundles/org.openhab.ui/web/src/components/thing/channel-list.vue +++ b/bundles/org.openhab.ui/web/src/components/thing/channel-list.vue @@ -187,8 +187,8 @@ export default { let newItemName = (this.newItemsPrefix) ? this.newItemsPrefix : diacritic.clean(this.thing.label).replace(/[^0-9a-z]/gi, '') newItemName += '_' let suffix = channel.label || channelType.label || channel.id - if (this.thing.channels.filter((c) => c.label === suffix).length > 1 || this.channelTypes.filter((c) => c.label === suffix).length > 1) { - suffix = channel.id.replace('#', '_') + if (this.thing.channels.filter((c) => c.label === suffix || (c.channelTypeUID && this.channelTypesMap[c.channelTypeUID] && this.channelTypesMap[c.channelTypeUID].label === suffix)).length > 1) { + suffix = channel.id.replace('#', '_').replace(/(^\w{1})|(_+\w{1})/g, letter => letter.toUpperCase()) } newItemName += diacritic.clean(suffix).replace(/[^0-9a-z_]/gi, '') const defaultTags = (channel.defaultTags.length > 0) ? channel.defaultTags : channelType.tags diff --git a/bundles/org.openhab.ui/web/src/pages/settings/model/add-from-thing.vue b/bundles/org.openhab.ui/web/src/pages/settings/model/add-from-thing.vue index fd600cd25..18080bf2a 100644 --- a/bundles/org.openhab.ui/web/src/pages/settings/model/add-from-thing.vue +++ b/bundles/org.openhab.ui/web/src/pages/settings/model/add-from-thing.vue @@ -63,7 +63,7 @@ + :new-items="newPointItems" /> diff --git a/bundles/org.openhab.ui/web/src/pages/settings/model/generate-textual-definition.js b/bundles/org.openhab.ui/web/src/pages/settings/model/generate-textual-definition.js index d3a074a9a..38c175046 100644 --- a/bundles/org.openhab.ui/web/src/pages/settings/model/generate-textual-definition.js +++ b/bundles/org.openhab.ui/web/src/pages/settings/model/generate-textual-definition.js @@ -27,8 +27,8 @@ export default (thing, channelTypes, newEquipmentItem, parentGroupsForEquipment, let newItemName = (newEquipmentItem) ? newEquipmentItem.name : diacritic.clean(thing.label).replace(/[^0-9a-z]/gi, '') newItemName += '_' let suffix = channel.label || channel.id - if (thing.channels.filter((c) => c.label === suffix).length > 1) { - suffix = channel.id.replace('#', '_') + if (thing.channels.filter((c) => c.label === suffix || (c.channelTypeUID && channelTypesMap[c.channelTypeUID] && channelTypesMap[c.channelTypeUID].label === suffix)).length > 1) { + suffix = channel.id.replace('#', '_').replace(/(^\w{1})|(_+\w{1})/g, letter => letter.toUpperCase()) } newItemName += diacritic.clean(suffix).replace(/[^0-9a-z_]/gi, '') const defaultTags = (channel.defaultTags.length > 0) ? channel.defaultTags : channelType.tags