Yet, you want to display exactly the same information in the UI! So I don’t understand!
What is the point of storing it in two different places if the end goal is to display the same thing?
How will it be used?
Exactly, for me that’s an argument for factorization!
In the UI, the user should not have to enter values, to read docs (we’re not in Home Assistant) if it’s generalized on the Gladys side, we are able to make a specific UI with pre-filled values.
Example: The On/Off, I made a generic component (the user does not have to know that 0 is off and that 1 is on: the UI does it for him)
Another example: the color:
The user does not have to guess that the color is stored in RGB, in HEX, or whatever: he just wants to control the color, no matter the protocol used, and he has a color picker that does the job no matter the brand, and the color is sent converted to each brand: it’s the developer who did the job, not the user.
Hence my remark for the signal quality, if we generalize the behavior, we will be able to make a component in the UI that allows you to select from 0 to 5 « bars » (it’s up to us to imagine the format of the component), and the user will not even have to read the Zigbee doc
Another argument for factorization!
Here I can see that the signal is clearly negative 
It’s up to us to put a bit of order otherwise it will be a mess, and we will have to code 5 different UIs for each type of device.