How to avoid updates to http binding after expire

Hi all,

Q: How do I avoid outgoing updates to the http binding due to it expiring ?

My heating has a wifi interface which now and then goes offline for some minutes (low wifi coverage). If that happens I find some settings in the heater reset to 0.

I guess what happens is that:

  1. http binding tries to read the remote device (is offline) and times out. (time t= 0)
  2. it times out again. (t+6min)
  3. device comes back online (t+10min)
  4. expire binding sets the value to UNDEF before it is read again. (t+12min)
  5. since device is online now, UNDEF is posted to the device (somehow maps to 0).

Its hard to reproduce but it is probably due to the device coming back online just before expire sets the value to UNDEF.

This is the item:

Number Vito_RaumtemperaturSoll “RaumtemperaturSoll” (gHeating)
{ http="<[^[0-9]+\.[0-9]+))] >[CHANGED:POST:$s]" , expire=“12m” }

Can I filter outgoing UNDEF updates ? Or better: outgoing expire updates ?

What is the purpose or the expire binding in your case?

to see if my heater is offline so I can believe what I see

The way you have your items configured the Expire Binding is updating the item, not commanding it. Consequently, the UNDEF goes no further than OH. It doesn’t trigger the http binding, normally.

However, you are using CHANGED in the outgoing binding config and updating the item to UNDEF is a change.

You need to change the outgoing to only post on a command. And you have to make sure that everything that changes this item except for expire issues a command. And changes made on the UIs will come as a command.

Sounds reasonable. But according to the documentation there is no option to update the out-bound channel on commands only:

For the “out” binding, there are two special commands available:

* - this means the following URL is called regardless of which command has been issued
CHANGED - this means the following URL is called whenever the state of the given item has changed

Maybe * does actually mean “act on commands only” while CHANGE means “act on state changes” only.
If thats the case, I think the naming should be changed to COMMAND / STATE. * is usually associated with “anything” which implies commands AND state changes.

Alternatively a note in the manual would help.