Channel profile will not help you. A Switch type Item may only have useful states ON and OFF, no matter how you manipulate a channel. That’s fine, just go back to a normal default channel profile (which means none at all when defining in xxx.items files).
Doing random stuff without understanding isn’t going to help, no-one suggested a profile for this job.
What a MAP transformation does is look up the actual Item state in a simple lookup table, and present the new value for display in your UI. For display only, the actual Item state remains unchanged.
There’s a few things you need to get right for it to work. MAP works for everyone else, so you know it’s just a mistake or omission.
So you need a xxx.map file. What you have shown us for your gd.map
looks like sensible content.
You need to put the file in the right folder. Exactly where depends on your operating system. but typically "something-openabbish"/conf/transform
You’ll know when you are at the right folder because when the openhab install created it, files de.map and en.map were put there.
The file needs to be in UTF-8 format, like all openhab config files. How you arrange that depends on your text editor.
You need to install the MAP transformation service. It’s an optional add-on.
You’ve not confirmed that you have done or checked that.
Then you need to specify your MAP in the Item label text, the [state presentation] part in square brackets. You specify which transformation service to use, in this case MAP, and any parameters it wants, in this case the map lookup file to use. Then you give an actual print formatter, which is invariably %s
for “string” when any transformation is used.
The Item definition you gave earlier looks fine, with [MAP(gd.map):%s]
When you use a UI that relies on a sitemap, like BasicUI, note that any label you give in your sitemap widget line will override any label you defined in your Item definition.
To be clear, a sitemap entry like
Switch item=GaragedoorStatus label ="some text [%s]"
will stop your MAP content from being visible.
Either leave out the label (and so get the default label you already defined in your Item)
Or use the sitemap defined label with the [transform] specified as well / instead.
If a transformation fails for whatever reason (no service installed, no successful lookup) it will pass the original state unaltered.