I have made a rule that extract the names of my thermostats using http and sets the group names dynamically.
It works great.
I have it integrated to homekit using the thermostat tag, but it looks like the dynamic labels for the group is not being read.
I set the group label in the rule like so:
RothTempG0.label = transform("XPATH", "/body/item_list/i[contains(n,'G0.name')]/v", SetPoint_read).toString
As you can see the label is extracted from a XML string.
The label appears correctly in paperUI and the REST interface, but in homekit it just says “Unavailable”.
If I hardcode the label in the items definition is works as expected in homekit also.
Hardcoding it in the rules (instead of extracting from XML) make no difference:
RothTempG0.label = "Jonas"
So far as I can tell, being able to dynamically set
anyItem.label is an undocumented feature.
That means that binding authors may well not have taken any consequences of in-flight changes into account.
Okay that might very well be so.
Not a huge deal for me, it just feels a bit of a shame, now I do get the names imported from the heating controller, I still have to hardcore them just for HomeKit…
You could always make an enhancement request in github. Are you sure the homekit end can handle a label change? Reporting “unavailable” seems odd, suggests it has noticed a change.
Hmm not sure how? Should I just put it as an issue?
Well if I change the label in the items file, the change is reflected immediately. If that’s what you mean?
Maybe. Reflected where? If in Homematic, that is a good step. Reloading an items file triggers a few more things than xxx.label=“blah”, but it would suggest update is feasible.
You mean HomeKit? Yes it is reflected there (have to switch to another room and back).
Nice. I have made a feature request for it: https://github.com/openhab/openhab2-addons/issues/6018