these changes must be made in HaDesigner - it is entirely related to the designObj layout. I can change these, commit the changes, and then you could use sqlcvs to pull the changes into your install. However, with so much work going in on the 0810 release, we would have to get the blessing from some of the bigger devs before messing with any of the designObj tables.
Again, the support is there already, regardless of whether the OSD on the floorplan is showing. If you delete the picture floorplan, you will get the datagrid version, which will display the OSD for you for testing purposes so you know how your string replacement is working.
As far as string replacement - I think what is needed is much more complex. A simple lexer comes to mind - one that supports some simple tags (like <%state%>, <%mode%>, etc), assignment, comparative operations (=, <, >, <>), a simple PHP-like if statement, and simple text. They your device data can look like:
"Temperature:" + <%temperature%> > 80 ? "Hot" : "Cold"
(if the temperature > 80 degrees, then "Temperature: Hot" would be displayed. Else, "Temperature: Cold" would be displayed.)
Embedded Ruby could work, but I have no experience with that.
SImple string replacement is still ok, just not very flexable. Catch me on IRC over the next few days, we'll talk about it