Conditions behaviour

Starting to use deCONZ, together with some zigbee relays and thermostats, to control heating manifold actuators.

Keeping it simple initially with two rules per zone, one to turn on when temp is low and one to turn off when temp is high. Working well so far. Based on my understanding of how rule conditions are evaluated, it should be triggering the action whenever a condition value changes, and the conditions evaluate to true. However, it seems to trigger exactly once when the temperature threshold is passed. This means that it doesn’t “ensure” the relay is in the right state, if ever it got misaligned.

Here are the rules expressed as yml. b1e is the room. um-b1e is the corresponding relay for the manifold, b1e-temp is the temperature sensor. Technically, I don’t think the lastupdated condition should be required for these either, but equally shouldn’t hurt.

Am I misunderstanding something here, or is this a bug? Using deCONZ 2.22.02.

  # b1e
  - kind: rule
    name: b1e-temp-low
    actions:
      - address: /lights/um-b1e/state
        body:
          on: true
        method: PUT
    conditions:
      - address: /sensors/b1e-temp/state/lastupdated
        operator: dx
      - address: /sensors/b1e-temp/state/temperature
        operator: lt
        value: '2130'
  - kind: rule
    name: b1e-temp-high
    actions:
      - address: /lights/um-b1e/state
        body:
          on: false
        method: PUT
    conditions:
      - address: /sensors/b1e-temp/state/lastupdated
        operator: dx
      - address: /sensors/b1e-temp/state/temperature
        operator: gt
        value: '2180'