I have a thing (unifi) that is linked to a person_ishome item. (checks if my phone is in my local wifi).
However I have other presence detection modes that are faster (for instance when my fingerprint is used to open the door).
However the unifi thing always updates (reverts) the status of the person_ishome thing almost immediately when the person_ishome is changed via another thing.
Can i change the relationship so it is the thing only updates the item when there is a change in thing status?
How would I do that?
My guess: You’ve linked more than one Channel to the same Item.
Just don’t do that. These States are independent, so leave them independent.
Instead, use an unbound Item to get the presence state, for example:
presenceDanielWifipresenceDanielFingerprint and presenceDanielLight, put them into a group gPresenceDaniel with aggregation OR(ON,OFF).
For obvious Reasons the Item presenceDanielFingerprint has to have an expiration timer to reset it to OFF, e.g. after 5 minutes.
The resulting presence is the Group Item state.
Of course you can do it also via a rule:
rule "set presence for Daniel"
when
Member of gPresenceDaniel changed
then
if(gPresenceDaniel.members.filter[i|i.state == ON].size > 0)
Daniel_ishome.postUpdate(ON)
else
Daniel_ishome.postUpdate(OFF)
end
Now you don’t need the aggregation for the Group Item any longer.
Another option without the Group Item:
rule "set presence for Daniel"
when
Item presenceDanielWifi changed or
Item presenceDanielFingerprint changed to ON or
Item presenceDanielLight changed to ON
then
if(triggeringItemName == "presenceDanielWifi" and newState == OFF)
Daniel_ishome.postUpdate(OFF)
else
Daniel_ishome.postUpdate(ON)
end
So only a change from Wifi to OFF will set presence to OFF, all other changes are only used to set the presence to ON.