[
{
"id": "ca237f11c6490509",
"type": "api-current-state",
"z": "6033c466a6e49c53",
"name": "CHK: Ist Rollo AZ bereits geƶffnet",
"server": "ddbd0338d04ff2f9",
"version": 3,
"outputs": 1,
"halt_if": "",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "cover.arzi_shlsht_fenster",
"state_type": "str",
"blockInputOverrides": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
},
{
"property": "topic",
"propertyType": "msg",
"value": "arzi2",
"valueType": "str"
}
],
"for": 0,
"forType": "num",
"forUnits": "minutes",
"x": 1120,
"y": 1120,
"wires": [
[
"a189bda238d4ed71"
]
]
},
{
"id": "c591e66e75895653",
"type": "join",
"z": "6033c466a6e49c53",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": false,
"timeout": "",
"count": "2",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1590,
"y": 1000,
"wires": [
[
"6088e2386c5a3173"
]
]
},
{
"id": "b901675fdea50c48",
"type": "api-current-state",
"z": "6033c466a6e49c53",
"name": "CHK: Ist Rollo AZ aussetzen an?",
"server": "ddbd0338d04ff2f9",
"version": 3,
"outputs": 1,
"halt_if": "",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "input_boolean.arbeitszimmerrollo_aussetzen",
"state_type": "str",
"blockInputOverrides": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
},
{
"property": "topic",
"propertyType": "msg",
"value": "arzi1",
"valueType": "str"
}
],
"for": 0,
"forType": "num",
"forUnits": "minutes",
"x": 1120,
"y": 1040,
"wires": [
[
"c591e66e75895653"
]
]
},
{
"id": "a189bda238d4ed71",
"type": "change",
"z": "6033c466a6e49c53",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "data.attributes.current_position",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1390,
"y": 1100,
"wires": [
[
"c591e66e75895653"
]
]
},
{
"id": "1248ffa98b229580",
"type": "inject",
"z": "6033c466a6e49c53",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 800,
"y": 1100,
"wires": [
[
"b901675fdea50c48",
"ca237f11c6490509",
"3e0b240261377415",
"a692a371b4ced6de"
]
]
},
{
"id": "0dd0fc2185721fe0",
"type": "debug",
"z": "6033c466a6e49c53",
"name": "debug 1",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1920,
"y": 1080,
"wires": []
},
{
"id": "6088e2386c5a3173",
"type": "function",
"z": "6033c466a6e49c53",
"name": "Rollosteuerung",
"func": "\n//----------------------------\nif (msg.payload.arzi1 === \"off\" && msg.payload.arzi2 === 100)\n{\nmsg.payload =\n\n {\"service\": \"notify\", data:{\"message\":\"Arbeitszimmer Aussetzen off, status 100\"}}\n return [msg,null]\n}\n\nif (msg.payload.bazi1 === \"off\" && msg.payload.bazi2 === 100)\n{\nmsg.payload =\n\n {\"service\": \"notify\", data:{\"message\":\"Badezimmer Aussetzen off, status 100\"}}\n return [msg,null]\n}\n\n",
"outputs": 2,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1720,
"y": 1100,
"wires": [
[
"0dd0fc2185721fe0"
],
[]
],
"outputLabels": [
"Sonnenstand",
""
]
},
{
"id": "3e0b240261377415",
"type": "api-current-state",
"z": "6033c466a6e49c53",
"name": "CHK: Ist Rollo BZ aussetzen an?",
"server": "ddbd0338d04ff2f9",
"version": 3,
"outputs": 1,
"halt_if": "",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "input_boolean.badezimmerrollo_aussetzen",
"state_type": "str",
"blockInputOverrides": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
},
{
"property": "topic",
"propertyType": "msg",
"value": "bazi1",
"valueType": "str"
}
],
"for": 0,
"forType": "num",
"forUnits": "minutes",
"x": 1120,
"y": 1200,
"wires": [
[
"4e712983e2706850"
]
]
},
{
"id": "a692a371b4ced6de",
"type": "api-current-state",
"z": "6033c466a6e49c53",
"name": "CHK: Ist Rollo BZ bereits geƶffnet",
"server": "ddbd0338d04ff2f9",
"version": 3,
"outputs": 1,
"halt_if": "",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "cover.bazi_shlsht_fenster",
"state_type": "str",
"blockInputOverrides": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
},
{
"property": "topic",
"propertyType": "msg",
"value": "bazi2",
"valueType": "str"
}
],
"for": 0,
"forType": "num",
"forUnits": "minutes",
"x": 1120,
"y": 1260,
"wires": [
[
"d7b90bcdf50aa039"
]
]
},
{
"id": "d7b90bcdf50aa039",
"type": "change",
"z": "6033c466a6e49c53",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "data.attributes.current_position",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1390,
"y": 1300,
"wires": [
[
"4e712983e2706850"
]
]
},
{
"id": "4e712983e2706850",
"type": "join",
"z": "6033c466a6e49c53",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": false,
"timeout": "",
"count": "2",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1550,
"y": 1220,
"wires": [
[
"6088e2386c5a3173"
]
]
},
{
"id": "ddbd0338d04ff2f9",
"type": "server",
"name": "wlb-ha01.skynet.loc",
"version": 2,
"addon": false,
"rejectUnauthorizedCerts": false,
"ha_boolean": "y|yes|true|on|home|open",
"connectionDelay": true,
"cacheJson": true,
"heartbeat": false,
"heartbeatInterval": "30"
}
]
First I set topics in the current_state nodes because in manual mode the join node requires topics.
After that I changed my payload from "open" to the current percentage of my shutters (cover.arzi_shlsht_fenster and cover.bazi_shlsht_fenster). Then I sent the msgs from each room (Abeitszimmer and Badezimmer) to their own join node. The join node sends the combined messages to the function node and here I compare my values. Now the output is only one message per room.