Amigo, você conseguiu uma solução paliativa, mas se ainda quiser remover as repetições eu fiz uma solução para um problema parecido.
Coloquei um switch para separar entre o ON/OFF
Desse switch, eu tenho um change que atribui o valor verdadeiro ou falso a uma varíavel, no meu caso “payload.ligado”
Na saída eu passo por um nó chamado RBE, esse nó so deixa passar se o valor mudar, eu fico monitorando o valor do ligado
Segue o código caso queira importar para testar. Só fazer os ajustes para seu caso.
`[
{
"id": "3ea93596.80193a",
"type": "rbe",
"z": "d08124c0.d80878",
"name": "",
"func": "rbe",
"gap": "",
"start": "",
"inout": "out",
"septopics": true,
"property": "payload.ligado",
"x": 2190,
"y": 160,
"wires": [
[]
]
},
{
"id": "d96b6f25.a104b",
"type": "switch",
"z": "d08124c0.d80878",
"name": "ON / OFF",
"property": "payload.valor",
"propertyType": "msg",
"rules": [
{
"t": "gt",
"v": "2",
"vt": "str"
},
{
"t": "else"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 1840,
"y": 160,
"wires": [
[
"c82f3bc9.7e6af8"
],
[
"7b70a7e7.e5fcf8"
]
]
},
{
"id": "c82f3bc9.7e6af8",
"type": "change",
"z": "d08124c0.d80878",
"name": "Ligado",
"rules": [
{
"t": "set",
"p": "payload.ligado",
"pt": "msg",
"to": "true",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2010,
"y": 140,
"wires": [
[
"3ea93596.80193a"
]
]
},
{
"id": "7b70a7e7.e5fcf8",
"type": "change",
"z": "d08124c0.d80878",
"name": "Desligado",
"rules": [
{
"t": "set",
"p": "payload.ligado",
"pt": "msg",
"to": "false",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2020,
"y": 180,
"wires": [
[
"3ea93596.80193a"
]
]
}
]`