RBE (filter) node persistent - or not?

In my three installations of Node-RED the rbe node behaves differently. These are v4.1.11, v.4.2 and v5.0.0.
On deploy the previous value is stored - or not. Initially I expected that the node does not bother about being deployed and storing the previous value somewhere, but this is not the case - in general.
What confuses me is that on one of my three installations (v4.2) the value is stored and the node does what I assumed to be "normal".
Is there any hidden setting which may cause this varying behaviour?

Here's my test flow:

[
    {
        "id": "475a5d2e0711a454",
        "type": "inject",
        "z": "9287d1f74e2d9a4c",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "true",
        "payloadType": "bool",
        "x": 250,
        "y": 540,
        "wires": [
            [
                "655a73953d40cc97"
            ]
        ]
    },
    {
        "id": "d0c7a564ee0ee82d",
        "type": "inject",
        "z": "9287d1f74e2d9a4c",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "false",
        "payloadType": "bool",
        "x": 240,
        "y": 580,
        "wires": [
            [
                "655a73953d40cc97"
            ]
        ]
    },
    {
        "id": "655a73953d40cc97",
        "type": "rbe",
        "z": "9287d1f74e2d9a4c",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "septopics": true,
        "property": "payload",
        "topi": "topic",
        "x": 440,
        "y": 540,
        "wires": [
            [
                "1b20c25a1df60bd2"
            ]
        ]
    },
    {
        "id": "1b20c25a1df60bd2",
        "type": "debug",
        "z": "9287d1f74e2d9a4c",
        "name": "debug 9",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 640,
        "y": 540,
        "wires": []
    }
]

I am not at my computer, but there is a setting in the node defining whether to pass the first message through or not, I think.

In the mode 'Block unless value changes' the first message is always passed on. In the mode `Block unless value changes (ignore initial value)' then the first value is not passed on. It is not completely ignored, it is saved in order to be used to compare with the next value.

Hi, firstly there is no node-red v4.2 so not certain what you are referring to?

Next, if the RBE is modified, it will be recreated on deploy no matter of the deploy mode.

In full deploy mode, RBE will always be recreated and will always lose messages. No matter which mode you have deployed.

In flow deploy mode, if the RBE is connected to any node modified, it will be recreated and messages stored will be lost.

In node deploy mode, only a change to the RBE node will cause it to be recreated.

Perhaps on your other instances you have full deploy mode selected?

EDIT: this is from memory. I should probably check the src to actually see where the RBE stores messages. If no one corrects me, I will try to take a look later.

Thanks a lot, problem solved.

  • it's a v4.1.2, not v4.2, my fault
  • I was not aware, that I've used different deploy modes on the different systems. With "node deploy mode" it works as expected.
  • "ignore initial value" would not have helped in my case. The sensor already only sends changed values and I would miss a changed value.

I thought that you might have that set differently in the two systems, so that when you deployed they behaved differently.