Openhab trying to write to readonly knx item

Tags: #<Tag:0x00007fc1fd02a028>

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.

Any idea whats wrong in the item config?

  • Platform information:
    • Hardware: RaspBerryPi, Pigator Knx
    • OS:Linux openHABianPi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux
    • 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

It doesn’t do that spontaneously. Are you sending commands to your Item?

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.

This seems really unlikely.

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 ?