some setpoint items can’t be changed any longer (e.g. “Neigung”, + - buttons are thinner and have no function). In earlier versions this worked.
I am wondering if it has something to do with how the Viesmann transformation returns the value with a comma instead of a point, and the current TestFlight version not correctly transforming these different formats yet. Does the Nivau possibly also get received as decimals 0,0 - 10,0? What if you set the Nivau formatting to
stateDescription=""[pattern="%d K"]
I cannot get any decimal comma at all, not matter what the iOS locale and format are set to.
I had expected something like that. Perhaps a selection switch could be added in the properties?
I am wondering if it has something to do with how the Viesmann transformation returns the value with a comma instead of a point, and the current TestFlight version not correctly transforming these different formats yet.
The comma is the German display only. The value itself is 0.3 for example (with decimale point).
What if you set the Nivau formatting to
stateDescription=“”[pattern=“%d K”]
Same behavior. When I remove the channel from the item config, it works.
OK, I could use a “transfer item” and a rule, but that’s a regression.
I’m well aware of that but I still do not get any Decimal comma with my iPhone being Set to Deutsch and Region Deutschland. So I’m not sure why you are getting commas in your Setpoints.
Definitely something to be looked at and to sort out.
Good question. I assume, this doesn’t matter.
The temperature in the line above is also displayed with a comma; here as well the value in OH is 15.2 (with a dot). This setpoint works. (You can see the difference in the brighter + and - icons)
No change. I assume the channel of the item is the reason.
But I assume it works fine in Basic UI in any web browser, so definitely something to look into. Or maybe also wait until the locale number formatting is integrated into the TestFlight builds. I’m still very puzzled as how you got the comma decimal separator
Thanks, do you have a link to docs with some more details?
Colors defined by a human-readable name may be adjusted for higher contrast, e.g. on a dark theme black may be displayed as white, because white has a higher contrast to the dark background compared to black.
Even though I find this is not really the correct description Any monochrome SVG icon, which I assume is also the case for your icons, can be opened in a simple plain text editor. Then changing any colour definition within the text to currentColor, e.g.
path fill="#FFFFFF"
to path fill="currentColor"
and saving it makes the SVG icon light or dark mode aware, in BasicUI in any web as well as in the iOS app, and I assume the Android app as well.
Yes, in Basic UI or Web Browser it still works fine.
For the meantime, I created a work-around with additional items and a rule (also to avoid error by the comma, which wasn’t a problem so far):
Number NeigungM2 "Neigung [%.1f]" (gViessKenn) {channel="exec:command:ViessData:output"[profile="transform:JSONPATH", function="$..[?(@.command=='getNeigungM2')].value"], stateDescription=""[pattern="%.1f"]}
Number Neigung "Neigung [%.1f]" (gViessKennSM)
Number NiveauM2 "Niveau" (gViessKenn) {channel="exec:command:ViessData:output"[profile="transform:JSONPATH", function="$..[?(@.command=='getNiveauM2')].value"], unit="K", stateDescription=""[pattern="%d K"]}
Number Niveau "Niveau" (gViessKennSM) {unit="K", stateDescription=""[pattern="%d K"]}
rule "Heizung: Kennlinie synchronisieren"
when
Member of gViessKennSM changed or
Member of gViessKenn changed
then
if (!(newState instanceof Number)) return;
// Änderung kam aus der Sitemap → an Gerät senden
if (gViessKennSM.members.contains(triggeringItem)) {
if (!(previousState instanceof Number)) return;
val value = String::format(Locale::US, "%.1f", (newState as Number).doubleValue)
val cmd = "set" + triggeringItem.name + "M2 " + value
Viessmann.sendCommand(cmd)
return;
}
// Änderung kam vom Gerät → Sitemap-Item aktualisieren
if (gViessKenn.members.contains(triggeringItem)) {
val baseName = triggeringItem.name.substring(0, triggeringItem.name.length - 2)
val target = gViessKennSM.members.findFirst[i | i.name.startsWith(baseName)]
if (target !== null) {
target.postUpdate(newState)
}
}
end