Hi,
I'm using Node-Red for a few years now, for iot and home management in combination with Domoticz (power management) and Home Assistant ( many easily configured different modules).
I use Tasmota (48 active devices), tuya (dunno, 50?) , P1 meter with Domoticz-Rpi3. etc. (all together I count 200 entities in HA). I have a Mqtt service running on a w11 machine. quite stable, more stable than the NodeRed/HA Ubuntu -NUC. (the Rpi3 mqtt server died).
I use 433Hz Pir/contact sensors, which are translated to MQTT with 2 Tasmota Sonoff RF hubs.
Node Red is tasked with translating codes to manageable mqtt hierarchy., and setting defaults back to 'off' after a triggering ('on' ).
Here I use a call-node which is triggered by every single RF sensor/button/thing.
Now my 'Delay' and 'Trigger' functions have stopped to function!
the call part:
[
{
"id": "66bd848d37186bd1",
"type": "link in",
"z": "e8c1d00af083fb50",
"name": "call fx mqtt rf",
"links": [
"6edce0e771790629"
],
"x": 2305,
"y": 200,
"wires": [
[
"50ac2e28452bc687"
]
]
},
{
"id": "50ac2e28452bc687",
"type": "change",
"z": "e8c1d00af083fb50",
"name": "on",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "on",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2530,
"y": 200,
"wires": [
[
"bde328220543c8db",
"28a14bb787e6f9ff",
"59206a6fad86a8a1",
"2c4e2161c1465fd7",
"2a6a6aeb7402be97"
]
]
},
{
"id": "358ced3f24d4f759",
"type": "change",
"z": "e8c1d00af083fb50",
"name": "off",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "off",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2730,
"y": 240,
"wires": [
[
"bde328220543c8db",
"28a14bb787e6f9ff",
"11b4a7091fb62e18"
]
]
},
{
"id": "bde328220543c8db",
"type": "link out",
"z": "e8c1d00af083fb50",
"name": "return rf mqtt",
"mode": "return",
"links": [],
"x": 2985,
"y": 140,
"wires": []
},
{
"id": "28a14bb787e6f9ff",
"type": "mqtt out",
"z": "e8c1d00af083fb50",
"name": "",
"topic": "",
"qos": "1",
"retain": "false",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "524d0d0f.80da54",
"x": 3010,
"y": 200,
"wires": []
},
{
"id": "a68decf986ec831d",
"type": "comment",
"z": "e8c1d00af083fb50",
"name": "RF FX CALL",
"info": "",
"x": 2510,
"y": 140,
"wires": []
},
{
"id": "9391c1a004931d0c",
"type": "debug",
"z": "e8c1d00af083fb50",
"name": "debug off d",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 2850,
"y": 340,
"wires": []
},
{
"id": "11b4a7091fb62e18",
"type": "debug",
"z": "e8c1d00af083fb50",
"name": "debug off t",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 2990,
"y": 260,
"wires": []
},
{
"id": "59206a6fad86a8a1",
"type": "controltimer",
"z": "e8c1d00af083fb50",
"name": "1s",
"timerType": "delay",
"timerDurationUnit": "second",
"timerDurationType": "num",
"timerDuration": 1,
"timerLoopTimeoutUnit": "second",
"timerLoopTimeoutType": "num",
"timerLoopTimeout": 0,
"loopTimeoutMessageType": "str",
"loopTimeoutMessage": "LOOP_TIMEOUT",
"timerMaxLoopIterationsType": "num",
"timerMaxLoopIterations": 0,
"loopMaxIterationsMessageType": "str",
"loopMaxIterationsMessage": "MAX_LOOP_ITERATIONS",
"isRunningTimerProgressVisible": true,
"outputReceivedMessageOnTimerTrigger": true,
"outputReceivedMessageOnTimerHalt": false,
"startTimerOnReceivalOfUnknownMessage": true,
"resetTimerOnReceivalOfUnknownMessage": false,
"resetTimerOnReceivalOfStartAction": false,
"continueTimerOnReceivalOfStartAction": false,
"isDebugModeEnabled": false,
"timerTriggeredMessageType": "str",
"timerTriggeredMessage": "TIMER_TRIGGERED",
"timerHaltedMessageType": "str",
"timerHaltedMessage": "TIMER_HALTED",
"isStartActionEnabled": true,
"isStopActionEnabled": true,
"isResetActionEnabled": true,
"isPauseActionEnabled": true,
"isContinueActionEnabled": true,
"actionPropertyNameType": "str",
"actionPropertyName": "payload",
"startActionNameType": "str",
"startActionName": "START",
"stopActionNameType": "str",
"stopActionName": "STOP",
"resetActionNameType": "str",
"resetActionName": "RESET",
"pauseActionNameType": "str",
"pauseActionName": "PAUSE",
"continueActionNameType": "str",
"continueActionName": "CONTINUE",
"x": 2510,
"y": 240,
"wires": [
[
"358ced3f24d4f759"
],
[]
]
},
{
"id": "2c4e2161c1465fd7",
"type": "delay",
"z": "e8c1d00af083fb50",
"name": "",
"pauseType": "delay",
"timeout": "1",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 2520,
"y": 300,
"wires": [
[
"1962e48785ec94a6"
]
]
},
{
"id": "1962e48785ec94a6",
"type": "change",
"z": "e8c1d00af083fb50",
"name": "off",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "off",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2670,
"y": 300,
"wires": [
[
"9391c1a004931d0c"
]
]
},
{
"id": "2a6a6aeb7402be97",
"type": "debug",
"z": "e8c1d00af083fb50",
"name": "debug on",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 2760,
"y": 120,
"wires": []
},
{
"id": "524d0d0f.80da54",
"type": "mqtt-broker",
"name": "9x9",
"broker": "censured",
"port": "cens",
"clientid": "",
"autoConnect": true,
"usetls": false,
"compatmode": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthRetain": "false",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
}
]
Only "Debug on" and "Debug off t" have output. That means the delay function has no output at all.
When using Trigger instead, only on output works.
(as for test I walked past 3 pir sensors)
debug result:
20-12-2023 17:39:04node: debug onhome/RF/cmnd/pir8 : msg.payload : string[2]
"on"
20-12-2023 17:39:04node: debug off thome/RF/cmnd/pir8 : msg.payload : string[3]
"off"
20-12-2023 17:39:08node: debug onhome/RF/cmnd/pir6 : msg.payload : string[2]
"on"
20-12-2023 17:39:08node: debug onhome/RF/cmnd/pir6 : msg.payload : string[2]
"on"
20-12-2023 17:39:08node: debug off thome/RF/cmnd/pir6 : msg.payload : string[3]
"off"
20-12-2023 17:39:10node: debug onhome/RF/cmnd/pir5 : msg.payload : string[2]
"on"
20-12-2023 17:39:11node: debug onhome/RF/cmnd/pir5 : msg.payload : string[2]
"on"
20-12-2023 17:39:11node: debug off thome/RF/cmnd/pir5 : msg.payload : string[3]
"off"
20-12-2023 17:39:13node: debug onhome/RF/cmnd/pir6 : msg.payload : string[2]
"on"
20-12-2023 17:39:13node: debug onhome/RF/cmnd/pir6 : msg.payload : string[2]
"on"
20-12-2023 17:39:14node: debug off thome/RF/cmnd/pir6 : msg.payload : string[3]
"off"
20-12-2023 17:39:24node: debug onhome/RF/cmnd/pir8 : msg.payload : string[2]
"on"
20-12-2023 17:39:24node: debug onhome/RF/cmnd/pir8 : msg.payload : string[2]
"on"
20-12-2023 17:39:25node: debug off t
home/RF/cmnd/pir8 : msg.payload : string[3]
"off"
Normally I would set timeout to about 10 seconds, to give some code and programs(HA-tuya/zigbee) time to execute and react to mqtt messages.. This means the call function should be able to handle multiple topics at the same time.
Node Red V 3.0.2 on Ubuntu 22.04.3 LTS
HA core also on Ubuntu, docker/portainer
mosquitto fails to run docked, moved to w11 machine.
I replaced/removed all delay and trigger nodes from my flows. (1.6MB json)