Hi,
Looking into my logs, I see hundreds of entries indicating that openhab tries to write a value to a read only knx imtem. Besides the fact that this write should not happen at all, it also looks like openhab uses the wrong format so that additional error messages are created.
Java Runtime Environment: openjdk version “1.8.0_152”
openHAB version: 2.5.0 release (but also seen in 2.3) - v1 knx binding
Item Config:
Number Strom_Kueche_Spuel_Std “Betriebsstunden [%d h]” (gStrom_Betrieb) {knx="<7.007:6/1/47"}
Log Output openhab.log:
2020-01-15 08:10:34.284 [WARN ] [.binding.knx.internal.bus.KNXBinding] - Value ‘20480.0’ could not be sent to the KNX bus using datapoint ‘command DP 6/1/47 Stro
m_Kueche_Kuehl_Std, DPT main 0 id 7.007, low priority’ - retrying one time: 7.007 Time period in hours: wrong value format: 20480.0
2020-01-15 08:10:34.295 [ERROR] [.binding.knx.internal.bus.KNXBinding] - Value ‘20480.0’ could not be sent to the KNX bus using datapoint ‘command DP 6/1/47 Stro
m_Kueche_Kuehl_Std, DPT main 0 id 7.007, low priority’ - giving up after second try: 7.007 Time period in hours: wrong value format: 20480.0
No, nothing. The items are defined once and only used to show their value in a text element. There are no rules or anything like that that could modify the value and trigger commands. The only thing that I identified is: The item is in a group that has an attached persistence rule. But the rule only has persist strategies (everychange, everyday) but no load strategy (restoreOnStartup) attached.
I think i found the root cause. at least i can reproduce switching the behavior on and off.
Problem seems to lie in the way how groups with asterisks are handled in the persistence models.
In my influxdb.persist config i had the line “gStrom_Betrieb* : strategy = everyChange, every5Minutes” even though the group was only gStrom_Betrieb. So the asterisk was not required. As soon as I remove the asterisk, the problem disappears.
To clarify what persistence does with that * - it is not a wildcard.
gStrom_Betrieb* : strategy = will individually record all members of Group gStrom_Betrieb and also members of any subgroups it may have. It does not record the state of the Group itself.
gStrom_Betrieb : strategy = will record the state of the Group Item only (no members at all) - if that Group Item has been configured for a state.
So you’ve made a big change in what you persist now.
Hard to see any relevance to KNX here though - no matter what you do with persistence it simply doesn’t command openHAB Items. Even with restoreOnStartup, it could only make updates at boot time.
You should be able to configure a read-only KNX binding, meaning it will ignore OH Item commands. I don’t know enough about KNX, never mind the KNX v1 binding, to comment on what you have there.
In KNX-2 at least, you can configure control channels that act “back-to-front” ; KNX data is converted to openHAB commands, OH updates are sent to KNX. I don’t know if that is what you have done by accident.
Or is looping in and out ?