[{"id":"ccd6b2fc502beabd","type":"tab","label":"ZigbeeSchalter userflow","disabled":false,"info":"# "},{"id":"e20576408a8082d3","type":"group","z":"ccd6b2fc502beabd","name":"Digital Inputs","style":{"fill":"#bfdbef","label":true},"nodes":["4fdd54a5fe354c2e","22c319bf39d4468b","ca9378d902421cec","fe3f8e0ca36be6f6","ef2afaa758a93417","637e33ddf96bb060","bad910ee38ce2784","1c1ca57add1105fb","d106009b18b5ee37","38b81c326dbee92a","4181d98e1cb911c4","bdf4642b78359e55","6cd54fb3bfe2fddd","e54fb3e2c69b3b7c","258ae8167af4f939","e46f8da196cda38c","b5c6d8f6f8134369","e73397665e4639da","a0604145107704e4","977763af777519c1","888365a74aec91da","1f7163d883402589","64c6d028a086f335","398ee85b310ff5dc","146b3335e0673abb","3bcc7f6db9bd645b","4ad68301a2208a76","b70d23e9bf91ce34","8b803baf4c15cfef","823d1251db71683d","abdffc4a20c19777","dc7be6664338bca3","022f3a5c944c312d","be68304ebbc30fb1","06bdb98c4beb3e56","0c3332ba2a670566","e3ef57138bb4e470","b61f19af19976880","e937c91119120ff2","55ee1c2d44fe081b","0ae3136f07888ba7","0519fc7f31fc48b4","6f4b98eb6ff4e810","30e5c1537cebb52e","f8f7eb230457e26a","7700ca8ade586d9b","2fa78a1b16d20834","f3b8f9d00b4376bf","33d87875821a7911","5ec0c550cd48f2fb","5f7d7acf92da2ae4","206b361aab6d9e5c","cf73d41036f0107a","3a963e68e806cbec","81dbcf370d2b5270","4874ccf301797b18","0d65fca65659a10b","c686f76d9eeb43a0","95f434146e8708fc","89df7f58c15febee","f280ddf7902458a2","665e19452f44efc6","741302e0ad3fd414","9623e0c661a9740e","5ba5267fea9f231e","d9f8d84a65b4ef78","45a1ac420cc8991a","ad921c7a670690fc","e262ae9e21ca3dbf","99d9e03e327d7bb1","b3b954216d1ddccd","cb4151de80570327","876684b9243246c1","9bd8ee103cb178c4","1ec4366413422cd3","12bff5adc5786187","4764c6c87f909315","f9443eabb2d92446","b82b28d9774a174e","2e606e55f2216b26","b8b7ae21e8737c60","3ba250f78995d766","22d6f5b8e45e4239","d27ac715260ab159","637612ba65a65fcd","916bf24d3a67718b","8509f76069f21702","41eb1660687d4160","73e6b305ed11f16b","7abe6f1ac173d220","4e3c62c973b0f55c","cfb80a6cd6479d83","5b73c732484f8faf","09cee59d997565fe","cf9c5dd21b85a2ee","3d8dcf02fd4f346e","25e2df124caa9b87","55a001a95dfda680","23592f2bbb3a4f9b","75aea0b301b0c7c6","d3bfe5ade951de27","236a02eddee56e2a","8236938f77a93350","981ad24dc46daa7e","0428eeef121f8c3c","57547ddf944cd70d","a4ae7e7d72a7e407","aa9b58b354fa09d0","509ddec4ad2fcbbd","e6c9ee92fb9092a8","08b44261a36400b6","455aca8596072673","57353a13f213b2a1","4399d20dc9f98046","d46af9f296082d76","9962c40a2b892b37","d13d6865103d10ac","2d2487f9fdfb37c1","92042ece22d193df","bac105535e202d51","fe2fad14428467c1","aa7bb578a0c62443","2e7640b64bdc358f","f03f2848b9d1166e","b28f162a9dd3a77c","162d5ce464d9c002","b83d07a0ba800510","4c74b107f00108da","f86419447dfcfaf6","905e81c81101663b","3227e75db0deb40d","a2f0b6b29d097323","6aee619eaa1484a8","c6b40c323f8f5145","11065b2020506db0","7abc736a7c9559ee","7508c885f0e1f17d","b29014c3a9b81c96","683a827ba4973d4f","aa1494b1e11f5c13","5e5db93138cc41fa","4b6623ed3d2bcb77","cbb42fa833748bfb","088dcac68df7b174","adf99e4fb7b16ff3","100b5d60715e3c71","bbcd7bcc393b1fac","7e0c06b3bbf2fe72","2e5ba22cd5fbb0f1","d45349901dbb2456","6c23d7ae9c4fe8a3","6abd0cfdb9106a99","0ab0a26fa44432a1","df3e5c5169f9d864","0f67c19c96616626","6c22b3ffdf5ded53","878dcb555f97c085","35ddb4c452331966","2af1843422683345","22f973d5ca65df6c","eb221b2113320f21","4ebbc4a221c63130","375e48270547068f","60bac348671b16e0","91fcbba9215f2cd3","d40e360f081c0efa","d921b0c3e21d455b","0d49ac4d5af3c2b7","aaed0f4cc22e05b4","51b0671ac6d031ec","d8f09644b8d1eb14","57d67cb89a0e54f3","6ae96035db606fcd","7d61e378b6976096","d7f713309c59f943","502b5c59b4f201e2","90a9c98b08cff0af","a09ed646dc130183","06b4d3e8705fe016","b8bab055db7cb923","498f5781ddb46c88","3027348f27d0d051","01eb974a9bc1cb0a","452f54e3fb69d7ad","5e4c4541e861c04c","77ce7471c26a4709","9c27e1c4151b6266","ebf2a61e0a827c48","d3d65b66b04167c0","4083fc71ac78a335","e19ca17f5ccab5a1","3aca4d9248dbeea1","e7df6fefc9abac0d","fe93542d68efa83f","cdd5a47238ff2a63","e50b990e9eb7aa31","68b72d5a1ae789e1","a957f545c4625144"],"x":-6,"y":41,"w":2452,"h":1880},{"id":"e262ae9e21ca3dbf","type":"group","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"VAN PI CORE","style":{"label":true},"nodes":["993b83f534e66406","e93b979434a35138","1423c73fca993a61"],"x":325,"y":281,"w":232,"h":162},{"id":"4fdd54a5fe354c2e","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 1","mode":"link","links":["e9ffa3ef.cde5d"],"x":1325,"y":140,"wires":[]},{"id":"22c319bf39d4468b","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 2","mode":"link","links":["7255f9f4.6304d8"],"x":1326,"y":162,"wires":[]},{"id":"ca9378d902421cec","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 3","mode":"link","links":["c698c6e8.416b58"],"x":1326,"y":182,"wires":[]},{"id":"fe3f8e0ca36be6f6","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 4","mode":"link","links":["f14867fc.930ab8"],"x":1326,"y":202,"wires":[]},{"id":"ef2afaa758a93417","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 5","mode":"link","links":["1d05179e.1f1a78"],"x":1326,"y":222,"wires":[]},{"id":"637e33ddf96bb060","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 6","mode":"link","links":["c9adec52.63ae6"],"x":1326,"y":242,"wires":[]},{"id":"bad910ee38ce2784","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 7","mode":"link","links":["0db21f3392bc27a4"],"x":1326,"y":262,"wires":[]},{"id":"1c1ca57add1105fb","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"PCB pins out 8","mode":"link","links":["2840c10.f61294"],"x":1326,"y":282,"wires":[]},{"id":"d106009b18b5ee37","type":"file in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","filename":"filename","filenameType":"msg","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":671,"y":282,"wires":[["38b81c326dbee92a"]]},{"id":"38b81c326dbee92a","type":"json","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","property":"payload","action":"","pretty":false,"x":681,"y":322,"wires":[["5ba5267fea9f231e"]]},{"id":"4181d98e1cb911c4","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"check relays to set","func":"// Relay key names\nconst relayKeys = [\n    \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n    \"nine\", \"ten\", \"eleven\", \"twelve\", \"thirteen\", \"fourteen\", \"fifteen\", \"sixteen\"\n];\n\nconst type =\n    msg.inputType ??\n    msg.keypad?.mode ??\n    global.get(\"zigbeeinput\" + msg.zigbeeinput + \"_type\") ??\n    \"switch\";\nconst outputCount = global.get(\"i2c_io-x\") === true ? 16 : 8;\nconst relays = msg.payload?.relays || {};\nconst relayStates = [];\n\n// Build output array: relay[i] = msg if true, else null\nfor (let i = 0; i < 16; i++) {\n    const key = relayKeys[i];\n    relayStates.push(relays?.[key] === true ? msg : null);\n}\n\n// Handle SWITCH mode\nif (type === \"switch\") {\n    msg.payload = msg.zigbeeinput_status;\n    return relayStates.slice(0, outputCount);  // Return only used outputs\n}\n\n// Handle BUTTON mode\nif (type === \"button\") {\n    if (msg.zigbeeinput_status === false) {\n        return null; // Do nothing on button release\n    }\n\n    for (let i = 0; i < outputCount; i++) {\n        if (relayStates[i]) {\n            const cloned = RED.util.cloneMessage(msg);\n            cloned.payload = !global.get(relayKeys[i]); // Toggle logic\n            const singleOutput = new Array(outputCount).fill(null);\n            singleOutput[i] = cloned;\n            node.send(singleOutput);\n        }\n    }\n    return null;\n}\n","outputs":8,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1101,"y":222,"wires":[["4fdd54a5fe354c2e"],["22c319bf39d4468b"],["ca9378d902421cec"],["fe3f8e0ca36be6f6"],["ef2afaa758a93417"],["637e33ddf96bb060"],["bad910ee38ce2784"],["1c1ca57add1105fb"]]},{"id":"bdf4642b78359e55","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"set status true/false","func":"msg.zigbeeinput = 1\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":122,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"6cd54fb3bfe2fddd","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"set status true/false","func":"msg.zigbeeinput = 2\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":162,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"e54fb3e2c69b3b7c","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"set status true/false","func":"msg.zigbeeinput = 3\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":202,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"258ae8167af4f939","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"set status true/false","func":"msg.zigbeeinput = 4\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":242,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"e46f8da196cda38c","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"set status true/false","func":"msg.zigbeeinput = 5\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":282,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"1423c73fca993a61","type":"function","z":"ccd6b2fc502beabd","g":"e262ae9e21ca3dbf","name":"set status true/false","func":"msg.zigbeeinput = 6\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":322,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"b5c6d8f6f8134369","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"zigbee inputs","info":"","x":681,"y":242,"wires":[]},{"id":"e73397665e4639da","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"check dimmers to set","func":"const outputs = [];\n\nfor (let i = 1; i <= 15; i++) {\n    const key = \"d\" + i;\n    const isOn = msg.payload?.dimmers?.[key] === true;\n    outputs.push(isOn ? msg : null);\n}\n\nconst type =\n    msg.inputType ??\n    msg.keypad?.mode ??\n    global.get(\"zigbeeinput\" + msg.zigbeeinput + \"_type\") ??\n    \"switch\";\n\nif (type === \"switch\" || type === \"button\") {\n    msg.payload = msg.zigbeeinput_status;\n    msg.type = type;\n    return outputs;\n}\n","outputs":7,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1120,"y":700,"wires":[["888365a74aec91da"],["b70d23e9bf91ce34"],["06bdb98c4beb3e56"],["0519fc7f31fc48b4"],["33d87875821a7911"],["4874ccf301797b18"],["f280ddf7902458a2"]]},{"id":"a0604145107704e4","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2088,"y":456,"wires":[["977763af777519c1"]]},{"id":"977763af777519c1","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer0\")\nif (flow.get(\"timer0\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection0\") == \"down\" && flow.get(\"dimmer0_state\") > 5) {\n    global.set(\"dimmer0\", global.get(\"dimmer0\") -1 <= 5 ? 5 : global.get(\"dimmer0\") -1)\n    msg.payload = global.get(\"dimmer0\")\n    return msg\n}\n\nif (flow.get(\"dimDirection0\") == \"up\" && flow.get(\"dimmer0_state\") < 100) {\n    global.set(\"dimmer0\", global.get(\"dimmer0\") +1 >= 100 ? 100 : global.get(\"dimmer0\") +1)\n    msg.payload = global.get(\"dimmer0\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer0_state\") >= 100) {\n    if (global.get(\"dimmer0\") <= 0) {\n        //global.set(\"dimmer0\", 0)\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else { \n        //global.set(\"dimmer0\", global.get(\"dimmer0\") -1) \n        msg.payload = global.get(\"dimmer0\") -1\n    }\n    flow.set(\"dimDirection0\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer0_state\") <= 5 || flow.get(\"dimDirection0\" == undefined)) {\n    if (global.get(\"dimmer0\") >= 100) {\n        //global.set(\"dimmer0\", 100)\n        msg.payload = 100\n    }\n    else {\n        //global.set(\"dimmer0\", global.get(\"dimmer0\") +1) \n        msg.payload = global.get(\"dimmer0\") +1\n    }\n    flow.set(\"dimDirection0\", \"up\")\n}\nmsg.payload = global.get(\"dimmer0\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2288,"y":456,"wires":[["146b3335e0673abb","d8f09644b8d1eb14"]]},{"id":"888365a74aec91da","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer0_state\", Number(global.get(\"dimmer0\")) || 0)\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer0_state\", Number(global.get(\"dimmer0\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer0\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer0\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1489,"y":438,"wires":[["398ee85b310ff5dc","57d67cb89a0e54f3"],["1f7163d883402589","6ae96035db606fcd"]]},{"id":"1f7163d883402589","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","useparts":true,"accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1678,"y":456,"wires":[["64c6d028a086f335","7d61e378b6976096"]]},{"id":"64c6d028a086f335","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1868,"y":456,"wires":[["398ee85b310ff5dc","d7f713309c59f943"],["a0604145107704e4","502b5c59b4f201e2"]]},{"id":"398ee85b310ff5dc","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer0\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer0before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer0before\", Number(flow.get(\"dimmer0_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer0_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer0_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection0\", \"down\")\n    flow.set(\"dimmer0before\", Number(flow.get(\"dimmer0_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection0\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2049,"y":418,"wires":[["146b3335e0673abb","90a9c98b08cff0af"]]},{"id":"146b3335e0673abb","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee0","mode":"link","links":["a4c0fd66546e7864"],"x":2404,"y":418,"wires":[]},{"id":"3bcc7f6db9bd645b","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2088,"y":536,"wires":[["4ad68301a2208a76"]]},{"id":"4ad68301a2208a76","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer1\")\nif (flow.get(\"timer1\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection1\") == \"down\" && flow.get(\"dimmer1_state\") > 5) {\n    global.set(\"dimmer1\", global.get(\"dimmer1\") - 1 <= 5 ? 5 : global.get(\"dimmer1\") - 1)\n    msg.payload = global.get(\"dimmer1\")\n    return msg\n}\n\nif (flow.get(\"dimDirection1\") == \"up\" && flow.get(\"dimmer1_state\") < 100) {\n    global.set(\"dimmer1\", global.get(\"dimmer1\") + 1 >= 100 ? 100 : global.get(\"dimmer1\") + 1)\n    msg.payload = global.get(\"dimmer1\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer1_state\") >= 100) {\n    if (global.get(\"dimmer1\") <= 0) {\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else {\n        msg.payload = global.get(\"dimmer1\") - 1\n    }\n    flow.set(\"dimDirection1\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer1_state\") <= 5 || flow.get(\"dimDirection1\" == undefined)) {\n    if (global.get(\"dimmer1\") >= 100) {\n        msg.payload = 100\n    }\n    else {\n        msg.payload = global.get(\"dimmer1\") + 1\n    }\n    flow.set(\"dimDirection1\", \"up\")\n}\nmsg.payload = global.get(\"dimmer1\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2288,"y":536,"wires":[["dc7be6664338bca3"]]},{"id":"b70d23e9bf91ce34","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer1_state\", Number(global.get(\"dimmer1\")) || 0)\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer1_state\", Number(global.get(\"dimmer1\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer1\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer1\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1489,"y":518,"wires":[["abdffc4a20c19777"],["8b803baf4c15cfef"]]},{"id":"8b803baf4c15cfef","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1678,"y":536,"wires":[["823d1251db71683d"]]},{"id":"823d1251db71683d","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1868,"y":536,"wires":[["abdffc4a20c19777"],["3bcc7f6db9bd645b"]]},{"id":"abdffc4a20c19777","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer1\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer1before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer1before\", Number(flow.get(\"dimmer1_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer1_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer1_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection1\", \"down\")\n    flow.set(\"dimmer1before\", Number(flow.get(\"dimmer1_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection1\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2038,"y":496,"wires":[["dc7be6664338bca3"]]},{"id":"dc7be6664338bca3","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee1","mode":"link","links":["1db51e9f7fe5ebea"],"x":2404,"y":498,"wires":[]},{"id":"022f3a5c944c312d","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2088,"y":616,"wires":[["be68304ebbc30fb1"]]},{"id":"be68304ebbc30fb1","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer2\")\nif (flow.get(\"timer2\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection2\") == \"down\" && flow.get(\"dimmer2_state\") > 5) {\n    global.set(\"dimmer2\", global.get(\"dimmer2\") - 1 <= 5 ? 5 : global.get(\"dimmer2\") - 1)\n    msg.payload = global.get(\"dimmer2\")\n    return msg\n}\n\nif (flow.get(\"dimDirection2\") == \"up\" && flow.get(\"dimmer2_state\") < 100) {\n    global.set(\"dimmer2\", global.get(\"dimmer2\") + 1 >= 100 ? 100 : global.get(\"dimmer2\") + 1)\n    msg.payload = global.get(\"dimmer2\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer2_state\") >= 100) {\n    if (global.get(\"dimmer2\") <= 0) {\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else {\n        msg.payload = global.get(\"dimmer2\") - 1\n    }\n    flow.set(\"dimDirection2\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer2_state\") <= 5 || flow.get(\"dimDirection2\" == undefined)) {\n    if (global.get(\"dimmer2\") >= 100) {\n        msg.payload = 100\n    }\n    else {\n        msg.payload = global.get(\"dimmer2\") + 1\n    }\n    flow.set(\"dimDirection2\", \"up\")\n}\nmsg.payload = global.get(\"dimmer2\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2288,"y":616,"wires":[["e937c91119120ff2"]]},{"id":"06bdb98c4beb3e56","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer2_state\", Number(global.get(\"dimmer2\")))\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer2_state\", Number(global.get(\"dimmer2\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer2\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer2\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1489,"y":598,"wires":[["b61f19af19976880"],["0c3332ba2a670566"]]},{"id":"0c3332ba2a670566","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1678,"y":616,"wires":[["e3ef57138bb4e470"]]},{"id":"e3ef57138bb4e470","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1868,"y":616,"wires":[["b61f19af19976880"],["022f3a5c944c312d"]]},{"id":"b61f19af19976880","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer2\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer2before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer2before\", Number(flow.get(\"dimmer2_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer2_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer2_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection2\", \"down\")\n    flow.set(\"dimmer2before\", Number(flow.get(\"dimmer2_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection2\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2038,"y":576,"wires":[["e937c91119120ff2"]]},{"id":"e937c91119120ff2","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee2","mode":"link","links":["09bf8b5862924eed"],"x":2404,"y":578,"wires":[]},{"id":"55ee1c2d44fe081b","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2088,"y":696,"wires":[["0ae3136f07888ba7"]]},{"id":"0ae3136f07888ba7","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer3\")\nif (flow.get(\"timer3\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection3\") == \"down\" && flow.get(\"dimmer3_state\") > 5) {\n    global.set(\"dimmer3\", global.get(\"dimmer3\") - 1 <= 5 ? 5 : global.get(\"dimmer3\") - 1)\n    msg.payload = global.get(\"dimmer3\")\n    return msg\n}\n\nif (flow.get(\"dimDirection3\") == \"up\" && flow.get(\"dimmer3_state\") < 100) {\n    global.set(\"dimmer3\", global.get(\"dimmer3\") + 1 >= 100 ? 100 : global.get(\"dimmer3\") + 1)\n    msg.payload = global.get(\"dimmer3\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer3_state\") >= 100) {\n    if (global.get(\"dimmer3\") <= 0) {\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else {\n        msg.payload = global.get(\"dimmer3\") - 1\n    }\n    flow.set(\"dimDirection3\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer3_state\") <= 5 || flow.get(\"dimDirection3\" == undefined)) {\n    if (global.get(\"dimmer3\") >= 100) {\n        msg.payload = 100\n    }\n    else {\n        msg.payload = global.get(\"dimmer3\") + 1\n    }\n    flow.set(\"dimDirection3\", \"up\")\n}\nmsg.payload = global.get(\"dimmer3\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2288,"y":696,"wires":[["7700ca8ade586d9b"]]},{"id":"0519fc7f31fc48b4","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer3_state\", Number(global.get(\"dimmer3\")) || 0)\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer3_state\", Number(global.get(\"dimmer3\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer3\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer3\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1489,"y":678,"wires":[["f8f7eb230457e26a"],["6f4b98eb6ff4e810"]]},{"id":"6f4b98eb6ff4e810","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1678,"y":696,"wires":[["30e5c1537cebb52e"]]},{"id":"30e5c1537cebb52e","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1868,"y":696,"wires":[["f8f7eb230457e26a"],["55ee1c2d44fe081b"]]},{"id":"f8f7eb230457e26a","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer3\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer3before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer3before\", Number(flow.get(\"dimmer3_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer3_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer3_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection3\", \"down\")\n    flow.set(\"dimmer3before\", Number(flow.get(\"dimmer3_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection3\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2038,"y":656,"wires":[["7700ca8ade586d9b"]]},{"id":"7700ca8ade586d9b","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee3","mode":"link","links":["4896e98db77c2f91"],"x":2404,"y":658,"wires":[]},{"id":"2fa78a1b16d20834","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2088,"y":776,"wires":[["f3b8f9d00b4376bf"]]},{"id":"f3b8f9d00b4376bf","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer4\")\nif (flow.get(\"timer4\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection4\") == \"down\" && flow.get(\"dimmer4_state\") > 5) {\n    global.set(\"dimmer4\", global.get(\"dimmer4\") - 1 <= 5 ? 5 : global.get(\"dimmer4\") - 1)\n    msg.payload = global.get(\"dimmer4\")\n    return msg\n}\n\nif (flow.get(\"dimDirection4\") == \"up\" && flow.get(\"dimmer4_state\") < 100) {\n    global.set(\"dimmer4\", global.get(\"dimmer4\") + 1 >= 100 ? 100 : global.get(\"dimmer4\") + 1)\n    msg.payload = global.get(\"dimmer4\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer4_state\") >= 100) {\n    if (global.get(\"dimmer4\") <= 0) {\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else {\n        msg.payload = global.get(\"dimmer4\") - 1\n    }\n    flow.set(\"dimDirection4\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer4_state\") <= 5 || flow.get(\"dimDirection4\" == undefined)) {\n    if (global.get(\"dimmer4\") >= 100) {\n        msg.payload = 100\n    }\n    else {\n        msg.payload = global.get(\"dimmer4\") + 1\n    }\n    flow.set(\"dimDirection4\", \"up\")\n}\nmsg.payload = global.get(\"dimmer4\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2288,"y":776,"wires":[["cf73d41036f0107a"]]},{"id":"33d87875821a7911","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer4_state\", Number(global.get(\"dimmer4\")) || 0)\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer4_state\", Number(global.get(\"dimmer4\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer4\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer4\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1489,"y":758,"wires":[["206b361aab6d9e5c"],["5ec0c550cd48f2fb"]]},{"id":"5ec0c550cd48f2fb","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1678,"y":776,"wires":[["5f7d7acf92da2ae4"]]},{"id":"5f7d7acf92da2ae4","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1868,"y":776,"wires":[["206b361aab6d9e5c"],["2fa78a1b16d20834"]]},{"id":"206b361aab6d9e5c","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer4\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer4before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer4before\", Number(flow.get(\"dimmer4_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer4_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer4_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection4\", \"down\")\n    flow.set(\"dimmer4before\", Number(flow.get(\"dimmer4_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection4\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2038,"y":736,"wires":[["cf73d41036f0107a"]]},{"id":"cf73d41036f0107a","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee4","mode":"link","links":["77683cc8a2a2dd71"],"x":2404,"y":738,"wires":[]},{"id":"3a963e68e806cbec","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2088,"y":856,"wires":[["81dbcf370d2b5270"]]},{"id":"81dbcf370d2b5270","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer5\")\nif (flow.get(\"timer5\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection5\") == \"down\" && flow.get(\"dimmer5_state\") > 5) {\n    global.set(\"dimmer5\", global.get(\"dimmer5\") - 1 <= 5 ? 5 : global.get(\"dimmer5\") - 1)\n    msg.payload = global.get(\"dimmer5\")\n    return msg\n}\n\nif (flow.get(\"dimDirection5\") == \"up\" && flow.get(\"dimmer5_state\") < 100) {\n    global.set(\"dimmer5\", global.get(\"dimmer5\") + 1 >= 100 ? 100 : global.get(\"dimmer5\") + 1)\n    msg.payload = global.get(\"dimmer5\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer5_state\") >= 100) {\n    if (global.get(\"dimmer5\") <= 0) {\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else {\n        msg.payload = global.get(\"dimmer5\") - 1\n    }\n    flow.set(\"dimDirection5\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer5_state\") <= 5 || flow.get(\"dimDirection5\" == undefined)) {\n    if (global.get(\"dimmer5\") >= 100) {\n        msg.payload = 100\n    }\n    else {\n        msg.payload = global.get(\"dimmer5\") + 1\n    }\n    flow.set(\"dimDirection5\", \"up\")\n}\nmsg.payload = global.get(\"dimmer5\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2288,"y":856,"wires":[["89df7f58c15febee"]]},{"id":"4874ccf301797b18","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer5_state\", Number(global.get(\"dimmer5\")) || 0)\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer5_state\", Number(global.get(\"dimmer5\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer5\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer5\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1489,"y":838,"wires":[["95f434146e8708fc"],["0d65fca65659a10b"]]},{"id":"0d65fca65659a10b","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1678,"y":856,"wires":[["c686f76d9eeb43a0"]]},{"id":"c686f76d9eeb43a0","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1868,"y":856,"wires":[["95f434146e8708fc"],["3a963e68e806cbec"]]},{"id":"95f434146e8708fc","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer5\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer5before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer5before\", Number(flow.get(\"dimmer5_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer5_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer5_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection5\", \"down\")\n    flow.set(\"dimmer5before\", Number(flow.get(\"dimmer5_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection5\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2049,"y":818,"wires":[["89df7f58c15febee"]]},{"id":"89df7f58c15febee","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee5","mode":"link","links":["2530d817d07d6ef2"],"x":2404,"y":818,"wires":[]},{"id":"f280ddf7902458a2","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"get true/false","func":"if (msg.type == \"switch\") {\n    flow.set(\"dimmer6_state\", Number(global.get(\"dimmer6\")) || 0)\n    return [msg, null]\n}\nelse if (msg.type == \"button\") {\n\n    if (msg.payload == true) {\n        flow.set(\"dimmer6_state\", Number(global.get(\"dimmer6\")) || 0)\n        msg.time = Date.now()\n        msg.topic = \"start\"\n        flow.set(\"timer6\", \"start\")\n    }\n    if (msg.payload == false) {\n        msg.time = Date.now()\n        msg.topic = \"stop\"\n        flow.set(\"timer6\", \"stop\")\n    }\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1490,"y":920,"wires":[["665e19452f44efc6"],["d40e360f081c0efa"]]},{"id":"665e19452f44efc6","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short push","func":"msg.label = global.get(\"Ndimmer6\")\nlet target\nlet dimmerbefore = flow.get(\"dimmer6before\");\n\nif (msg.type == \"switch\") {\n    if (msg.zigbeeinput_status == true) {\n        target = (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore < 1) ? 50 : dimmerbefore;\n    }\n    else if (msg.zigbeeinput_status == false) {\n        flow.set(\"dimmer6before\", Number(flow.get(\"dimmer6_state\")))\n        target = 0\n    }\n}\nelse if (msg.type == \"button\") {\n    target = (Number(flow.get(\"dimmer6_state\")) > 0 ? 0 : (dimmerbefore === null || dimmerbefore === undefined || dimmerbefore === 0) ? 50 : dimmerbefore)\n}\nmsg.payload = Number(flow.get(\"dimmer6_state\"))\n\nif (target == 0) {\n    flow.set(\"dimDirection6\", \"down\")\n    flow.set(\"dimmer6before\", Number(flow.get(\"dimmer6_state\")))\n    while (msg.payload > 0) {\n        node.send(msg)\n        msg.payload = msg.payload - 2.5\n        msg.payload = msg.payload < 0 ? 0 : msg.payload\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n    msg.payload = 0\n    return msg\n}\nelse {\n    flow.set(\"dimDirection6\", \"up\")\n    target = target <= 10 ? 20 : target\n    while (msg.payload < target) {\n        msg.payload = msg.payload + 2.5\n        msg.payload = msg.payload > target ? target : msg.payload\n        node.send(msg)\n        await new Promise(resolve => setTimeout(resolve, 25));\n    }\n}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2038,"y":896,"wires":[["741302e0ad3fd414"]]},{"id":"741302e0ad3fd414","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"dimmer test zigbee6","mode":"link","links":["d4e73c36b453526a"],"x":2404,"y":898,"wires":[]},{"id":"9623e0c661a9740e","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Relays","info":"","x":1061,"y":82,"wires":[]},{"id":"993b83f534e66406","type":"function","z":"ccd6b2fc502beabd","g":"e262ae9e21ca3dbf","name":"set status true/false","func":"msg.zigbeeinput = 7\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":362,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"e93b979434a35138","type":"function","z":"ccd6b2fc502beabd","g":"e262ae9e21ca3dbf","name":"set status true/false","func":"msg.zigbeeinput = 8\nmsg.filename = \"pekaway/zigbeeinput\"+msg.zigbeeinput\nmsg.zigbeeinput_status = msg.payload\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":441,"y":402,"wires":[["d106009b18b5ee37","cb4151de80570327"]]},{"id":"5ba5267fea9f231e","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"save current values","func":"const baseURL = \"http://127.0.0.1:1880\";\nconst inputCommand = msg.inputCommand || msg.keypad?.command || null;\nconst active = msg.zigbeeinput_status === true;\n\nif (\n    msg.inputType === \"switch\" ||\n    msg.keypad?.mode === \"switch\"\n) {\n    const totalTargets = countTargets(msg);\n    const activeTargets = countActiveTargets(msg);\n\n    if (totalTargets > 0) {\n        msg.zigbeeinput_status = activeTargets === 0;\n    }\n}\n\nfunction selectedVariablesFromPayload(msg) {\n    const vars = [];\n\n    const relayMap = {\n        one: \"one\", two: \"two\", three: \"three\", four: \"four\",\n        five: \"five\", six: \"six\", seven: \"seven\", eight: \"eight\",\n        nine: \"nine\", ten: \"ten\", eleven: \"eleven\", twelve: \"twelve\",\n        thirteen: \"thirteen\", fourteen: \"fourteen\", fifteen: \"fifteen\", sixteen: \"sixteen\"\n    };\n\n    for (const [key, selected] of Object.entries(msg.payload?.relays || {})) {\n        if (selected === true && relayMap[key]) vars.push(relayMap[key]);\n    }\n\n    for (const [key, selected] of Object.entries(msg.payload?.dimmers || {})) {\n        if (selected === true) {\n            const n = Number(String(key).replace(\"d\", \"\"));\n            if (Number.isInteger(n) && n >= 1 && n <= 15) {\n                vars.push(\"dimmer\" + (n - 1));\n            }\n        }\n    }\n\n    return vars;\n}\n\nfunction hasPayloadTargets(msg) {\n    return (\n        Object.values(msg.payload?.relays || {}).some(v => v === true) ||\n        Object.values(msg.payload?.dimmers || {}).some(v => v === true)\n    );\n}\n\nfunction relayIsOn(key) {\n    return global.get(key) === true;\n}\n\nfunction dimmerIsOn(key) {\n    const n = Number(String(key).replace(\"d\", \"\"));\n    if (!Number.isInteger(n)) return false;\n\n    return Number(global.get(\"dimmer\" + (n - 1))) > 0;\n}\n\nfunction selectedRelays(target = {}) {\n    return Object.entries(target.relays || {})\n        .filter(([_, selected]) => selected === true)\n        .map(([key]) => key);\n}\n\nfunction selectedDimmers(target = {}) {\n    return Object.entries(target.dimmers || {})\n        .filter(([_, selected]) => selected === true)\n        .map(([key]) => key);\n}\n\nfunction countActiveTargets(msg) {\n    let active = 0;\n\n    for (const key of selectedRelays(msg.payload || {})) {\n        if (relayIsOn(key)) active++;\n    }\n\n    for (const key of selectedDimmers(msg.payload || {})) {\n        if (dimmerIsOn(key)) active++;\n    }\n\n    return active;\n}\n\nfunction countTargets(msg) {\n    return (\n        selectedRelays(msg.payload || {}).length +\n        selectedDimmers(msg.payload || {}).length\n    );\n}\n\n// selectedOnlyOff\nif (\n    active &&\n    (\n        inputCommand === \"selectedOnlyOff\" ||\n        global.get(\"zigbeeinput_selectedOnlyOff\") === msg.zigbeeinput\n    )\n) {\n    const delayBetweenRequests = 100;\n\n    let requests = [];\n    let counter = 0;\n\n    for (let [key, value] of Object.entries(msg.payload?.relays || {})) {\n        if (value === true) {\n            let relayNumber = Object.keys(msg.payload.relays).indexOf(key) + 1;\n            requests.push({\n                url: `${baseURL}/relay/${relayNumber}/false`,\n                type: \"relay\"\n            });\n        }\n    }\n\n    for (let [key, value] of Object.entries(msg.payload?.dimmers || {})) {\n        if (value === true) {\n            let dimmerNumber = Object.keys(msg.payload.dimmers).indexOf(key) + 1;\n            requests.push({\n                url: `${baseURL}/dimmer/${dimmerNumber}/0`,\n                type: \"dimmer\"\n            });\n        }\n    }\n\n    function sendRequest() {\n        if (counter < requests.length) {\n            let req = requests[counter];\n\n            let requestMsg = {\n                payload: { state: false },\n                headers: { \"Content-Type\": \"application/json\" },\n                url: req.url\n            };\n\n            node.send([null, null, requestMsg]);\n\n            counter++;\n            setTimeout(sendRequest, delayBetweenRequests);\n        } else {\n            node.done();\n        }\n    }\n\n    sendRequest();\n    return [null, null, null];\n}\n\n// alloff\nelse if (\n    active &&\n    (\n        inputCommand === \"alloff\" ||\n        global.get(\"zigbeeinput_alloff\") === msg.zigbeeinput\n    )\n) {\n    let variables = [\n        \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n        \"Wone\", \"Wtwo\", \"Wthree\", \"Wfour\", \"Wfive\", \"Wsix\", \"Wseven\", \"Weight\",\n        \"dimmer0\", \"dimmer1\", \"dimmer2\", \"dimmer3\", \"dimmer4\", \"dimmer5\", \"dimmer6\", \"dimmer7\"\n    ];\n\n    if (global.get(\"i2c_io-x\") === true) {\n        variables = variables.concat([\n            \"nine\", \"ten\", \"eleven\", \"twelve\",\n            \"thirteen\", \"fourteen\", \"fifteen\", \"sixteen\"\n        ]);\n    }\n\n    if (global.get(\"i2c_dimmyPro\") === true) {\n        for (let i = 8; i <= 15; i++) {\n            variables.push(`dimmer${i}`);\n        }\n    }\n\n    let anyNotFalseOrZero = false;\n\n    for (let i = 0; i < variables.length; i++) {\n        let value = global.get(variables[i]);\n\n        if (typeof value === \"boolean\" && value === true) {\n            anyNotFalseOrZero = true;\n            break;\n        }\n\n        if (typeof value === \"number\" && value !== 0) {\n            anyNotFalseOrZero = true;\n            break;\n        }\n    }\n\n    if (\n        global.get(\"alloff\") === false ||\n        global.get(\"alloff\") === undefined ||\n        anyNotFalseOrZero === true\n    ) {\n        msg.url = `${baseURL}/switchall/false`;\n    } else {\n        msg.url = `${baseURL}/switchall/true`;\n    }\n\n    return [null, msg, null];\n}\n\n// selectedOff\nelse if (\n    active &&\n    (\n        inputCommand === \"selectedOff\" ||\n        global.get(\"zigbeeinput_selectedOff\") === msg.zigbeeinput\n    )\n) {\n    let variablesSelected;\n\n    if (hasPayloadTargets(msg)) {\n        variablesSelected = selectedVariablesFromPayload(msg);\n    } else {\n        const switchallSelected = global.get(\"switchallSelected\");\n\n        if (\n            typeof switchallSelected === \"object\" &&\n            switchallSelected !== null &&\n            !Array.isArray(switchallSelected)\n        ) {\n            variablesSelected = Object.keys(switchallSelected).map(key => String(key));\n        }\n    }\n\n    let anyNotFalseOrZeroSelected = false;\n\n    if (variablesSelected !== undefined) {\n        for (let i = 0; i < variablesSelected.length; i++) {\n            let value = global.get(variablesSelected[i]);\n\n            if (typeof value === \"boolean\" && value === true) {\n                anyNotFalseOrZeroSelected = true;\n                break;\n            }\n\n            if (!isNaN(Number(value)) && Number(value) !== 0) {\n                anyNotFalseOrZeroSelected = true;\n                break;\n            }\n        }\n    }\n\n    if (\n        global.get(\"alloffSelected\") === false ||\n        global.get(\"alloffSelected\") === undefined ||\n        anyNotFalseOrZeroSelected === true ||\n        (!hasPayloadTargets(msg) && global.get(\"switchallSelected\") === undefined)\n    ) {\n        msg.url = `${baseURL}/switchallSelected/false`;\n    } else {\n        msg.url = `${baseURL}/switchallSelected/true`;\n    }\n\n    return [null, msg, null];\n}\n\nelse {\n    return [msg, null, null];\n}","outputs":3,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":861,"y":322,"wires":[["4181d98e1cb911c4","e73397665e4639da"],["ad921c7a670690fc"],["99d9e03e327d7bb1"]]},{"id":"d9f8d84a65b4ef78","type":"http request","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"switch all","method":"PUT","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":1240,"y":440,"wires":[[]]},{"id":"45a1ac420cc8991a","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"all off/on","info":"","x":1100,"y":400,"wires":[]},{"id":"ad921c7a670690fc","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"1msg/s","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1100,"y":440,"wires":[["d9f8d84a65b4ef78"]]},{"id":"99d9e03e327d7bb1","type":"http request","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"only off","method":"PUT","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":1100,"y":480,"wires":[[]]},{"id":"b3b954216d1ddccd","type":"mqtt out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","topic":"pkw/tele/input","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":851,"y":202,"wires":[]},{"id":"cb4151de80570327","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"push mqtt","func":"msg.payload = {\n    \"input\": msg.zigbeeinput,\n    \"status\": msg.zigbeeinput_status\n}\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":671,"y":202,"wires":[["b3b954216d1ddccd"]]},{"id":"876684b9243246c1","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"keypad in","links":[],"x":717,"y":362,"wires":[["5ba5267fea9f231e"]]},{"id":"637612ba65a65fcd","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"1","info":"","x":90,"y":1160,"wires":[]},{"id":"981ad24dc46daa7e","type":"zigbee2mqtt-in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"4-Schalter","server":"bc3ee5806b72499f","friendly_name":"Eingang (TS0044)","device_id":"0xb43522fffef7b813","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":100,"y":1200,"wires":[["12bff5adc5786187","23592f2bbb3a4f9b","75aea0b301b0c7c6","d3bfe5ade951de27","22d6f5b8e45e4239","916bf24d3a67718b","509ddec4ad2fcbbd","455aca8596072673","0428eeef121f8c3c","bac105535e202d51","2e7640b64bdc358f","9962c40a2b892b37","3227e75db0deb40d","c6b40c323f8f5145","b83d07a0ba800510"]]},{"id":"12bff5adc5786187","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 1 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"1_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer1\")\nif (dimm ===1){\n   global.set (\"zigbeeinput1_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput2_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart1\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":760,"wires":[["f9443eabb2d92446","1ec4366413422cd3"]]},{"id":"23592f2bbb3a4f9b","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"battery","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":1800,"wires":[["55a001a95dfda680","b29014c3a9b81c96"]]},{"id":"75aea0b301b0c7c6","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"linkquality","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.linkquality","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":1840,"wires":[["236a02eddee56e2a"]]},{"id":"d3bfe5ade951de27","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"voltage","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":1880,"wires":[["8236938f77a93350"]]},{"id":"f9443eabb2d92446","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 1.1","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":640,"wires":[["4764c6c87f909315"]]},{"id":"1ec4366413422cd3","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 1.2","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":720,"wires":[["7abe6f1ac173d220"]]},{"id":"55a001a95dfda680","type":"ui_gauge","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","group":"4d367177f7c28630","order":1,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Eingang battery","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":500,"y":1800,"wires":[]},{"id":"236a02eddee56e2a","type":"ui_gauge","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","group":"4d367177f7c28630","order":3,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Eingang signal","label":"%","format":"{{value}}","min":0,"max":"300","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":500,"y":1840,"wires":[]},{"id":"8236938f77a93350","type":"ui_gauge","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","group":"4d367177f7c28630","order":2,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Eingang voltage","label":"V","format":"{{value}}","min":0,"max":"3000","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":510,"y":1880,"wires":[]},{"id":"4764c6c87f909315","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee1 ON (out)","mode":"link","links":["3ba250f78995d766"],"x":805,"y":640,"wires":[]},{"id":"d27ac715260ab159","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Eingang","info":"","x":100,"y":1120,"wires":[]},{"id":"9bd8ee103cb178c4","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"1_single","props":[{"p":"payload.action","v":"1_single","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":180,"y":620,"wires":[["22d6f5b8e45e4239"]]},{"id":"22d6f5b8e45e4239","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeeone","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeone\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeone\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":600,"wires":[["b8b7ae21e8737c60","4764c6c87f909315"],["41eb1660687d4160","7abe6f1ac173d220"],["4764c6c87f909315","bbcd7bcc393b1fac"]]},{"id":"b82b28d9774a174e","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"1_Hold","props":[{"p":"payload.action","v":"1_hold","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":170,"y":760,"wires":[["12bff5adc5786187"]]},{"id":"2e606e55f2216b26","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 1 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput1_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":399,"y":518,"wires":[[]]},{"id":"b8b7ae21e8737c60","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":389,"y":558,"wires":[["2e606e55f2216b26"]]},{"id":"3ba250f78995d766","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee1 ON (in)","links":["4764c6c87f909315","e481c6b139917fbc","598f66c2cd2088ed","da74d54fc56e7703","90d4eb56522c0b97"],"x":306,"y":122,"wires":[["bdf4642b78359e55"]]},{"id":"916bf24d3a67718b","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeetwo","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeetwo\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeetwo\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":720,"wires":[["41eb1660687d4160","7abe6f1ac173d220"],["7abe6f1ac173d220","7e0c06b3bbf2fe72"]]},{"id":"8509f76069f21702","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"1_double","props":[{"p":"payload.action","v":"1_double","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":180,"y":720,"wires":[["916bf24d3a67718b"]]},{"id":"41eb1660687d4160","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":380,"y":680,"wires":[["73e6b305ed11f16b"]]},{"id":"73e6b305ed11f16b","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 2 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput2_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":640,"wires":[[]]},{"id":"7abe6f1ac173d220","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee2 ON (out)","mode":"link","links":["4e3c62c973b0f55c"],"x":805,"y":720,"wires":[]},{"id":"4e3c62c973b0f55c","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee2 ON (in)","links":["7abe6f1ac173d220","bf141e0907cdc550","d7b9a85919458e1d","be0fdf67b4d319d8","f7b3cd177c22dba0"],"x":306,"y":162,"wires":[["6cd54fb3bfe2fddd"]]},{"id":"cfb80a6cd6479d83","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee3 ON (in)","links":["aa9b58b354fa09d0","fca882d152aab39c","84bb74378b5823fa","55258ddf0c572fe5","4a6b6afc5752efb5"],"x":306,"y":202,"wires":[["e54fb3e2c69b3b7c"]]},{"id":"5b73c732484f8faf","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee4 ON (in)","links":["d46af9f296082d76","bde0b4e2e1e223dc","aa8dc90c394d36d9","9a0b084614fda264","c249bc8ff6ece423"],"x":306,"y":242,"wires":[["258ae8167af4f939"]]},{"id":"09cee59d997565fe","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee5 ON (in)","links":["92042ece22d193df","40059c0f54bf059a","eab32cfc3d39a9cf","d6becdb71028df0a","ea116abdadc9abdf"],"x":266,"y":282,"wires":[["e46f8da196cda38c"]]},{"id":"cf9c5dd21b85a2ee","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee6 ON (in)","links":["162d5ce464d9c002","f3082ebae516308f","81dd4758cbd58756","bb9a51e3681510cf","8db846891a8018ab"],"x":266,"y":322,"wires":[["1423c73fca993a61"]]},{"id":"3d8dcf02fd4f346e","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee7 ON (in)","links":["905e81c81101663b","8cf5bf9d28c7615a","90350b7d735d2b87","b4b81dc19891a6fb","577327f7725119df"],"x":266,"y":362,"wires":[["993b83f534e66406"]]},{"id":"25e2df124caa9b87","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee8 ON (in)","links":["7508c885f0e1f17d","eed1b5bce3297dbb","6ec629a34bf9eb75","33445483e99e8a1e","8f2018c6ebfa9c90"],"x":266,"y":402,"wires":[["e93b979434a35138"]]},{"id":"0428eeef121f8c3c","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 2 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"2_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer2\")\nif (dimm ===1){\n   global.set (\"zigbeeinput3_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput4_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart2\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":1080,"wires":[["57547ddf944cd70d","a4ae7e7d72a7e407"]]},{"id":"57547ddf944cd70d","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 2.1","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":960,"wires":[["aa9b58b354fa09d0"]]},{"id":"a4ae7e7d72a7e407","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 2.2","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":1040,"wires":[["d46af9f296082d76"]]},{"id":"aa9b58b354fa09d0","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee3 ON (out)","mode":"link","links":["cfb80a6cd6479d83"],"x":775,"y":960,"wires":[]},{"id":"509ddec4ad2fcbbd","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeethree","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeethree\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeethree\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":920,"wires":[["08b44261a36400b6","aa9b58b354fa09d0"],["d46af9f296082d76","57353a13f213b2a1"],["aa9b58b354fa09d0","100b5d60715e3c71"]]},{"id":"e6c9ee92fb9092a8","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 3 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput3_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":840,"wires":[[]]},{"id":"08b44261a36400b6","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":360,"y":880,"wires":[["e6c9ee92fb9092a8"]]},{"id":"455aca8596072673","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeefour","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeefour\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefour\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":1040,"wires":[["57353a13f213b2a1","d46af9f296082d76"],["d46af9f296082d76","2e5ba22cd5fbb0f1"]]},{"id":"57353a13f213b2a1","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":360,"y":1000,"wires":[["4399d20dc9f98046"]]},{"id":"4399d20dc9f98046","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 4 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput4_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":960,"wires":[[]]},{"id":"d46af9f296082d76","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee4 ON (out)","mode":"link","links":["5b73c732484f8faf"],"x":775,"y":1040,"wires":[]},{"id":"9962c40a2b892b37","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 3 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"3_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer3\")\nif (dimm ===1){\n   global.set (\"zigbeeinput5_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput6_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart3\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":1400,"wires":[["d13d6865103d10ac","2d2487f9fdfb37c1"]]},{"id":"d13d6865103d10ac","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 3.1","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":1280,"wires":[["92042ece22d193df"]]},{"id":"2d2487f9fdfb37c1","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 3.2","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":1360,"wires":[["162d5ce464d9c002"]]},{"id":"92042ece22d193df","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee5 ON (out)","mode":"link","links":["09cee59d997565fe"],"x":775,"y":1280,"wires":[]},{"id":"bac105535e202d51","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeefive","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeefive\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefive\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer3\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":1240,"wires":[["aa7bb578a0c62443","92042ece22d193df"],["162d5ce464d9c002","f03f2848b9d1166e"],["92042ece22d193df","d45349901dbb2456"]]},{"id":"fe2fad14428467c1","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 5 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput5_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":1160,"wires":[[]]},{"id":"aa7bb578a0c62443","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":360,"y":1200,"wires":[["fe2fad14428467c1"]]},{"id":"2e7640b64bdc358f","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeesix","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeesix\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeesix\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer3\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":1360,"wires":[["f03f2848b9d1166e","162d5ce464d9c002"],["162d5ce464d9c002","6c23d7ae9c4fe8a3"]]},{"id":"f03f2848b9d1166e","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":360,"y":1320,"wires":[["b28f162a9dd3a77c"]]},{"id":"b28f162a9dd3a77c","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 6 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput6_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":1280,"wires":[[]]},{"id":"162d5ce464d9c002","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee6 ON (out)","mode":"link","links":["cf9c5dd21b85a2ee"],"x":775,"y":1360,"wires":[]},{"id":"b83d07a0ba800510","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 4 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"4_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer4\")\nif (dimm ===1){\n   global.set (\"zigbeeinput7_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput8_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart4\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":1720,"wires":[["4c74b107f00108da","f86419447dfcfaf6"]]},{"id":"4c74b107f00108da","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 4.1","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":1600,"wires":[["905e81c81101663b"]]},{"id":"f86419447dfcfaf6","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Dimmer Start 4.2","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":1680,"wires":[["7508c885f0e1f17d"]]},{"id":"905e81c81101663b","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee7 ON (out)","mode":"link","links":["3d8dcf02fd4f346e"],"x":775,"y":1600,"wires":[]},{"id":"3227e75db0deb40d","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeeseven","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeseven\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeseven\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer4\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":1560,"wires":[["6aee619eaa1484a8","905e81c81101663b"],["7508c885f0e1f17d","11065b2020506db0"],["905e81c81101663b","6abd0cfdb9106a99"]]},{"id":"a2f0b6b29d097323","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 7 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput7_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":1480,"wires":[[]]},{"id":"6aee619eaa1484a8","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":360,"y":1520,"wires":[["a2f0b6b29d097323"]]},{"id":"c6b40c323f8f5145","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"globalVariable get zigbeeeight","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeeeight\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeeight\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer4\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":1680,"wires":[["11065b2020506db0","7508c885f0e1f17d"],["7508c885f0e1f17d","0ab0a26fa44432a1"]]},{"id":"11065b2020506db0","type":"delay","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","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":360,"y":1640,"wires":[["7abc736a7c9559ee"]]},{"id":"7abc736a7c9559ee","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Schalter 8 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput8_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":1600,"wires":[[]]},{"id":"7508c885f0e1f17d","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee8 ON (out)","mode":"link","links":["25e2df124caa9b87"],"x":775,"y":1680,"wires":[]},{"id":"b29014c3a9b81c96","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Baterie <30%","func":"if (msg.payload.battery <=30)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":1800,"wires":[["aa1494b1e11f5c13"]]},{"id":"683a827ba4973d4f","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Baterie <50%","func":"if (msg.payload.battery <=50)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":1840,"wires":[[]]},{"id":"aa1494b1e11f5c13","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"Batterie ZigbeeSchalter Eingang <30%","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"Batterie ZigbeeSchalter Eingang OK","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1800,"wires":[["5e5db93138cc41fa"]]},{"id":"5e5db93138cc41fa","type":"rbe","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":900,"y":1840,"wires":[["4b6623ed3d2bcb77"]]},{"id":"4b6623ed3d2bcb77","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"link out zu Telegram","mode":"link","links":["cbb42fa833748bfb"],"x":985,"y":1840,"wires":[]},{"id":"cbb42fa833748bfb","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"link in zu Telegram","links":["4b6623ed3d2bcb77","425d25759531ab97","51129984a6b96b60","aa75280d4c153806","b43588b5cdfc66fb"],"x":1175,"y":1840,"wires":[["088dcac68df7b174"]]},{"id":"088dcac68df7b174","type":"link out","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Telegram","mode":"link","links":[],"x":1235,"y":1840,"wires":[]},{"id":"adf99e4fb7b16ff3","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"nur zum Testen","info":"","x":160,"y":680,"wires":[]},{"id":"a2563368f254a1ed","type":"status","z":"ccd6b2fc502beabd","name":"zigbeeinputs","scope":["100b5d60715e3c71","bbcd7bcc393b1fac","7e0c06b3bbf2fe72","2e5ba22cd5fbb0f1","d45349901dbb2456","6c23d7ae9c4fe8a3","6abd0cfdb9106a99","0ab0a26fa44432a1"],"x":570,"y":20,"wires":[["647cac8dcb97fc6d"]]},{"id":"647cac8dcb97fc6d","type":"link out","z":"ccd6b2fc502beabd","name":"status zigbeeinputs out","mode":"link","links":["a0fbc0689244c7b2"],"x":745,"y":20,"wires":[]},{"id":"755aeb3b24eefc4f","type":"comment","z":"ccd6b2fc502beabd","name":"↓ show input signal as notification while in inputs config menu","info":"","x":1000,"y":20,"wires":[]},{"id":"100b5d60715e3c71","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 3","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":680,"y":900,"wires":[]},{"id":"bbcd7bcc393b1fac","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 1","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":680,"y":580,"wires":[]},{"id":"7e0c06b3bbf2fe72","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 2","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":680,"y":780,"wires":[]},{"id":"2e5ba22cd5fbb0f1","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 4","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":680,"y":1100,"wires":[]},{"id":"d45349901dbb2456","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 5","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":700,"y":1220,"wires":[]},{"id":"6c23d7ae9c4fe8a3","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 6","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":700,"y":1420,"wires":[]},{"id":"6abd0cfdb9106a99","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 7","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":720,"y":1540,"wires":[]},{"id":"0ab0a26fa44432a1","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"Zigbee 8","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":720,"y":1740,"wires":[]},{"id":"df3e5c5169f9d864","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"2_single","props":[{"p":"payload.action","v":"2_single","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":120,"y":940,"wires":[["509ddec4ad2fcbbd"]]},{"id":"0f67c19c96616626","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"2_double","props":[{"p":"payload.action","v":"2_double","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":100,"y":1040,"wires":[["455aca8596072673"]]},{"id":"6c22b3ffdf5ded53","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"2_Hold","props":[{"p":"payload.action","v":"2_hold","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":90,"y":1080,"wires":[["0428eeef121f8c3c"]]},{"id":"878dcb555f97c085","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"nur zum Testen","info":"","x":100,"y":1000,"wires":[]},{"id":"91fcbba9215f2cd3","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"4_double","props":[{"p":"payload.action","v":"4_double","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":100,"y":1680,"wires":[["c6b40c323f8f5145"]]},{"id":"2af1843422683345","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"3_single","props":[{"p":"payload.action","v":"3_single","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":100,"y":1260,"wires":[["bac105535e202d51"]]},{"id":"22f973d5ca65df6c","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"nur zum Testen","info":"","x":100,"y":1320,"wires":[]},{"id":"eb221b2113320f21","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"3_double","props":[{"p":"payload.action","v":"3_double","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":100,"y":1360,"wires":[["2e7640b64bdc358f"]]},{"id":"35ddb4c452331966","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"3_Hold","props":[{"p":"payload.action","v":"3_hold","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":90,"y":1400,"wires":[["9962c40a2b892b37"]]},{"id":"375e48270547068f","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"4_single","props":[{"p":"payload.action","v":"4_single","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":100,"y":1580,"wires":[["3227e75db0deb40d"]]},{"id":"60bac348671b16e0","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"nur zum Testen","info":"","x":100,"y":1640,"wires":[]},{"id":"4ebbc4a221c63130","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"4_Hold","props":[{"p":"payload.action","v":"4_hold","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":90,"y":1720,"wires":[["b83d07a0ba800510"]]},{"id":"d40e360f081c0efa","type":"join","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","useparts":true,"accumulate":false,"timeout":"0.7","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1680,"y":940,"wires":[["d921b0c3e21d455b"]]},{"id":"d921b0c3e21d455b","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"short/long push","func":"if (msg.time.hasOwnProperty(\"start\") && msg.time.hasOwnProperty(\"stop\") && msg.topic == \"stop\") {\n    return [msg, null]\n}\nelse if (msg.topic == \"start\") { \n    return [null, msg]\n}\nelse if (msg.topic == \"stop\") { \n    msg.payload = false\n    return [null, msg]\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1879,"y":938,"wires":[["665e19452f44efc6"],["0d49ac4d5af3c2b7"]]},{"id":"0d49ac4d5af3c2b7","type":"trigger","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-50","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":2099,"y":938,"wires":[["aaed0f4cc22e05b4"]]},{"id":"aaed0f4cc22e05b4","type":"function","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"long push","func":"msg.label = global.get(\"Ndimmer6\")\nif (flow.get(\"timer6\") == \"stop\") {\n    return null\n}\n\nif (flow.get(\"dimDirection6\") == \"down\" && flow.get(\"dimmer6_state\") > 5) {\n    global.set(\"dimmer6\", global.get(\"dimmer6\") - 1 <= 5 ? 5 : global.get(\"dimmer6\") - 1)\n    msg.payload = global.get(\"dimmer6\")\n    return msg\n}\n\nif (flow.get(\"dimDirection6\") == \"up\" && flow.get(\"dimmer6_state\") < 100) {\n    global.set(\"dimmer6\", global.get(\"dimmer6\") + 1 >= 100 ? 100 : global.get(\"dimmer6\") + 1)\n    msg.payload = global.get(\"dimmer6\")\n    return msg\n}\n\n\n//if dimmer = 100 then dim down\nif (flow.get(\"dimmer6_state\") >= 100) {\n    if (global.get(\"dimmer6\") <= 0) {\n        msg.payload = 5 // do not dim to under 5%\n    }\n    else {\n        msg.payload = global.get(\"dimmer6\") - 1\n    }\n    flow.set(\"dimDirection6\", \"down\")\n}\n//if dimmer = 0 then dim up\nelse if (flow.get(\"dimmer6_state\") <= 5 || flow.get(\"dimDirection6\" == undefined)) {\n    if (global.get(\"dimmer6\") >= 100) {\n        msg.payload = 100\n    }\n    else {\n        msg.payload = global.get(\"dimmer6\") + 1\n    }\n    flow.set(\"dimDirection6\", \"up\")\n}\nmsg.payload = global.get(\"dimmer6\")\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":2299,"y":938,"wires":[["741302e0ad3fd414"]]},{"id":"5e38d74ed88baca6","type":"comment","z":"ccd6b2fc502beabd","name":"5","info":"","x":1210,"y":3980,"wires":[]},{"id":"eb83b7570b4b49b3","type":"comment","z":"ccd6b2fc502beabd","name":"Dinette","info":"","x":110,"y":4000,"wires":[]},{"id":"8d7b05297cbad3cc","type":"comment","z":"ccd6b2fc502beabd","name":"Bett hinten","info":"","x":1289,"y":2498,"wires":[]},{"id":"1d4c4e24155e185c","type":"comment","z":"ccd6b2fc502beabd","name":"3","info":"","x":1279,"y":2538,"wires":[]},{"id":"0561b771eca31625","type":"zigbee2mqtt-in","z":"ccd6b2fc502beabd","name":"4-Schalter","server":"b0fe6252f651e243","friendly_name":"0x94b216fffeb326b2 (TS0044)","device_id":"0x94b216fffeb326b2","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":1289,"y":2578,"wires":[["834a76026d3a52a5","7d271a019a3fc6d6","4304baa8395c36a4","8db0175f9f34d258","29a7d0fe3f9f6334","b9b482ebd7b62ac4","ff2ca07b1027d400","15d89b51bdd8f8ce","e533c1683034db83","12949ec17b6a3f39","e67f3d5caa5dc790","bf87c42a54d333a5","6a2f7a74adf7ddaf","51b33983c74e2ef5","5c3f407301d6ac69"]]},{"id":"9ca50cb94edcfb4d","type":"comment","z":"ccd6b2fc502beabd","name":"4","info":"","x":110,"y":4040,"wires":[]},{"id":"f9de7e63b1ab4d34","type":"zigbee2mqtt-in","z":"ccd6b2fc502beabd","name":"4-Schalter","server":"b0fe6252f651e243","friendly_name":"0x94b216fffe504fae (TS0044)","device_id":"0x94b216fffe504fae","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":120,"y":4080,"wires":[["2b1797af1180dbcb","3bdc90bf3678bb97","1c36a6b51835f276","5002c8b9d0e33ef2","c98d56ce5ab4c09d","1dd452b85440d560","841729ba52036e40","8af3e88060765258","1ba5b2ee462e2bd4","f7c97257de55c79c","63194e336142beee","61fd2ee362c6bd5c","49457733f778cc5f","ca84bdfb9a03fbf5","61c8c16f90085ca4"]]},{"id":"356962728f1de5b6","type":"comment","z":"ccd6b2fc502beabd","name":"Portabel","info":"","x":1220,"y":3940,"wires":[]},{"id":"79bca98907c04b0c","type":"zigbee2mqtt-in","z":"ccd6b2fc502beabd","name":"4-Schalter","server":"b0fe6252f651e243","friendly_name":"0x94b216fffeb2e8ba (TS0044)","device_id":"0x94b216fffeb2e8ba","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":1220,"y":4020,"wires":[["34bf2384ee228649","b76b3ba547109657","89e8a6f7df3b8fdd","0fdca49592ef4beb","bf698a577fad9d96","ebb4a58f99de966f","852ad5a35f5a0ecf","2815126fed5669cd","837d2ae4d6979973","20dbe7191d64b94f","94a8ccf6ecb11090","4c4b976b5aab7861","eea68ce53730f9cc","3dfd1a12b391c6e7","d3dfb78579565228"]]},{"id":"fe211d5b84a48e08","type":"zigbee2mqtt-in","z":"ccd6b2fc502beabd","name":"4-Schalter","server":"b0fe6252f651e243","friendly_name":"0x94b216fffe1d17b6 (TS0044)","device_id":"0x94b216fffe1d17b6","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":160,"y":2600,"wires":[["2860551af8690950","57c5ece331ea660c","737b99a4aa3f1b4b","6817bde8cf25d0dd","f491d91a3a1a51d9","159627093e309751","31cd087afe539044","70ae7c0b5bed9037","66bcfcb8bd431042","b70470e3e250b808","19905fd0eb27e8a4","c637eec27f329fe6","2fd378bdefbc0ed1","ee3c61bd673d2612","cd8a1670a72dcf76"]]},{"id":"4e3f782442069d05","type":"comment","z":"ccd6b2fc502beabd","name":"Bett vorne","info":"","x":160,"y":2520,"wires":[]},{"id":"9a5515af11ec2dad","type":"comment","z":"ccd6b2fc502beabd","name":"2","info":"","x":150,"y":2560,"wires":[]},{"id":"737b99a4aa3f1b4b","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"1_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer1\")\nif (dimm ===1){\n   global.set (\"zigbeeinput1_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput2_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart1\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":371,"y":2222,"wires":[["0da3871ff41cf3b7","8856d89228b52084"]]},{"id":"2fd378bdefbc0ed1","type":"change","z":"ccd6b2fc502beabd","name":"battery","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":3260,"wires":[["93320f1bfb68fdd0","da02a11a7c523f56"]]},{"id":"ee3c61bd673d2612","type":"change","z":"ccd6b2fc502beabd","name":"linkquality","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.linkquality","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":3300,"wires":[["8c35e31021ef002c"]]},{"id":"cd8a1670a72dcf76","type":"change","z":"ccd6b2fc502beabd","name":"voltage","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":3340,"wires":[["1a1012b0b726c2e6"]]},{"id":"0da3871ff41cf3b7","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.1","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":661,"y":2102,"wires":[["e481c6b139917fbc"]]},{"id":"8856d89228b52084","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.2","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":661,"y":2182,"wires":[["bf141e0907cdc550"]]},{"id":"93320f1bfb68fdd0","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":4,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Bett vorne battery","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":560,"y":3260,"wires":[]},{"id":"8c35e31021ef002c","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":6,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Bett vorne signal","label":"%","format":"{{value}}","min":0,"max":"300","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":570,"y":3300,"wires":[]},{"id":"1a1012b0b726c2e6","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":5,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Bett vorne voltage","label":"V","format":"{{value}}","min":0,"max":"3000","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":580,"y":3340,"wires":[]},{"id":"e481c6b139917fbc","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee1 ON (out)","mode":"link","links":["3ba250f78995d766"],"x":796,"y":2102,"wires":[]},{"id":"2860551af8690950","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeone","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeone\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeone\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":411,"y":2062,"wires":[["90af3b63f17514f4","e481c6b139917fbc"],["488b091ded15d0c6","bf141e0907cdc550"],["e481c6b139917fbc","361b5d247c236ca6"]]},{"id":"441ca0b31ccf4ef9","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput1_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":1980,"wires":[[]]},{"id":"90af3b63f17514f4","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":2020,"wires":[["441ca0b31ccf4ef9"]]},{"id":"57c5ece331ea660c","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeetwo","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeetwo\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeetwo\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":411,"y":2182,"wires":[["488b091ded15d0c6","bf141e0907cdc550"],["bf141e0907cdc550","3ec3d235a8e6ccc4"]]},{"id":"488b091ded15d0c6","type":"delay","z":"ccd6b2fc502beabd","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":371,"y":2142,"wires":[["ae10e12d9bee3188"]]},{"id":"ae10e12d9bee3188","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput2_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":381,"y":2102,"wires":[[]]},{"id":"bf141e0907cdc550","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee2 ON (out)","mode":"link","links":["4e3c62c973b0f55c"],"x":796,"y":2182,"wires":[]},{"id":"159627093e309751","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"2_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer2\")\nif (dimm ===1){\n   global.set (\"zigbeeinput3_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput4_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart2\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":2540,"wires":[["2e1fbc7c68fde9ae","3fbeea704bb74c4e"]]},{"id":"2e1fbc7c68fde9ae","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.1","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":2420,"wires":[["fca882d152aab39c"]]},{"id":"3fbeea704bb74c4e","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.2","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":2500,"wires":[["bde0b4e2e1e223dc"]]},{"id":"fca882d152aab39c","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee3 ON (out)","mode":"link","links":["cfb80a6cd6479d83"],"x":795,"y":2420,"wires":[]},{"id":"6817bde8cf25d0dd","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeethree","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeethree\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeethree\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":2380,"wires":[["480214f1bda139be","fca882d152aab39c"],["bde0b4e2e1e223dc","5c646c964c330de3"],["fca882d152aab39c","c6dac9853a5f57d9"]]},{"id":"7ae370aece09b92e","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput3_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":2300,"wires":[[]]},{"id":"480214f1bda139be","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":2340,"wires":[["7ae370aece09b92e"]]},{"id":"f491d91a3a1a51d9","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefour","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeefour\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefour\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":2500,"wires":[["5c646c964c330de3","bde0b4e2e1e223dc"],["bde0b4e2e1e223dc","e78594d2f853c29f"]]},{"id":"5c646c964c330de3","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":2460,"wires":[["e3d9d108bed49f49"]]},{"id":"e3d9d108bed49f49","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput4_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":2420,"wires":[[]]},{"id":"bde0b4e2e1e223dc","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee4 ON (out)","mode":"link","links":["5b73c732484f8faf"],"x":795,"y":2500,"wires":[]},{"id":"66bcfcb8bd431042","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"3_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer3\")\nif (dimm ===1){\n   global.set (\"zigbeeinput5_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput6_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart3\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":2860,"wires":[["370c89eeff9c58aa","378e6662b95d60e5"]]},{"id":"370c89eeff9c58aa","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.1","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":2740,"wires":[["40059c0f54bf059a"]]},{"id":"378e6662b95d60e5","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.2","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":2820,"wires":[["f3082ebae516308f"]]},{"id":"40059c0f54bf059a","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee5 ON (out)","mode":"link","links":["09cee59d997565fe"],"x":795,"y":2740,"wires":[]},{"id":"31cd087afe539044","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefive","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeefive\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefive\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer3\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":2700,"wires":[["a6c043608c1025d0","40059c0f54bf059a"],["f3082ebae516308f","c1267dfbd88a3a29"],["40059c0f54bf059a","082b7d9eaee52a67"]]},{"id":"6001e1029d3f2580","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 5 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput5_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":2620,"wires":[[]]},{"id":"a6c043608c1025d0","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":2660,"wires":[["6001e1029d3f2580"]]},{"id":"70ae7c0b5bed9037","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeesix","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeesix\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeesix\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer3\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":2820,"wires":[["c1267dfbd88a3a29","f3082ebae516308f"],["f3082ebae516308f","4d8786c6b2f2af1b"]]},{"id":"c1267dfbd88a3a29","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":2780,"wires":[["b35039db053b76ad"]]},{"id":"b35039db053b76ad","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 6 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput6_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":2740,"wires":[[]]},{"id":"f3082ebae516308f","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee6 ON (out)","mode":"link","links":["cf9c5dd21b85a2ee"],"x":795,"y":2820,"wires":[]},{"id":"c637eec27f329fe6","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"4_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer4\")\nif (dimm ===1){\n   global.set (\"zigbeeinput7_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput8_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart4\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":3180,"wires":[["3f410090b9e71f35","c88f22e2a42ff5e5","e0451a9e22598f89"]]},{"id":"3f410090b9e71f35","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.1","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":3060,"wires":[["8cf5bf9d28c7615a","6696f6b4e6bd6ac5"]]},{"id":"c88f22e2a42ff5e5","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.2","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":3140,"wires":[["eed1b5bce3297dbb"]]},{"id":"8cf5bf9d28c7615a","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee7 ON (out)","mode":"link","links":["3d8dcf02fd4f346e"],"x":795,"y":3060,"wires":[]},{"id":"b70470e3e250b808","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeseven","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeseven\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeseven\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer4\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":3020,"wires":[["9d5258e0847bb9cc","8cf5bf9d28c7615a"],["eed1b5bce3297dbb","bda0e1e354b15036"],["8cf5bf9d28c7615a","c4a18555377cc5ac"]]},{"id":"88d872db5c5e478f","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 7 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput7_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":2940,"wires":[[]]},{"id":"9d5258e0847bb9cc","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":2980,"wires":[["88d872db5c5e478f"]]},{"id":"19905fd0eb27e8a4","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeeight","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeeeight\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeeight\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer4\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":3140,"wires":[["bda0e1e354b15036","eed1b5bce3297dbb"],["eed1b5bce3297dbb","c80e12b95f5310c2"]]},{"id":"bda0e1e354b15036","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":3100,"wires":[["c6d25b607bfb8f97"]]},{"id":"c6d25b607bfb8f97","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 8 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput8_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":3060,"wires":[[]]},{"id":"eed1b5bce3297dbb","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee8 ON (out)","mode":"link","links":["25e2df124caa9b87"],"x":795,"y":3140,"wires":[]},{"id":"da02a11a7c523f56","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <30%","func":"if (msg.payload.battery <=30)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":3260,"wires":[["7afca08d2266d5cc"]]},{"id":"ad84a4f1b92bd387","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <50%","func":"if (msg.payload.battery <=50)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":3300,"wires":[[]]},{"id":"7afca08d2266d5cc","type":"change","z":"ccd6b2fc502beabd","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"Batterie ZigbeeSchalter Bett vorne <30%","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"Batterie ZigbeeSchalter Bett vorne OK","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1000,"y":3260,"wires":[["cb753dccffc06bc1"]]},{"id":"cb753dccffc06bc1","type":"rbe","z":"ccd6b2fc502beabd","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":960,"y":3300,"wires":[["425d25759531ab97"]]},{"id":"425d25759531ab97","type":"link out","z":"ccd6b2fc502beabd","name":"link out zu Telegram","mode":"link","links":["cbb42fa833748bfb"],"x":1045,"y":3300,"wires":[]},{"id":"c6dac9853a5f57d9","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 3","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":700,"y":2360,"wires":[]},{"id":"361b5d247c236ca6","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 1","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":671,"y":2042,"wires":[]},{"id":"3ec3d235a8e6ccc4","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 2","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":671,"y":2242,"wires":[]},{"id":"e78594d2f853c29f","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 4","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":700,"y":2540,"wires":[]},{"id":"082b7d9eaee52a67","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 5","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":720,"y":2680,"wires":[]},{"id":"4d8786c6b2f2af1b","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 6","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":720,"y":2880,"wires":[]},{"id":"c4a18555377cc5ac","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 7","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":740,"y":3000,"wires":[]},{"id":"c80e12b95f5310c2","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 8","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":740,"y":3180,"wires":[]},{"id":"e0451a9e22598f89","type":"debug","z":"ccd6b2fc502beabd","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":940,"y":3220,"wires":[]},{"id":"6696f6b4e6bd6ac5","type":"debug","z":"ccd6b2fc502beabd","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":980,"y":3060,"wires":[]},{"id":"4304baa8395c36a4","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"1_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer1\")\nif (dimm ===1){\n   global.set (\"zigbeeinput1_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput2_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart1\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1509,"y":2198,"wires":[["7b115706c0fb28d5","33f7917d15a9e653"]]},{"id":"6a2f7a74adf7ddaf","type":"change","z":"ccd6b2fc502beabd","name":"battery","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1439,"y":3238,"wires":[["95ccece6510753a6","19b1a3226b1897db"]]},{"id":"51b33983c74e2ef5","type":"change","z":"ccd6b2fc502beabd","name":"linkquality","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.linkquality","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1449,"y":3278,"wires":[["ebb70ede2632ba0e"]]},{"id":"5c3f407301d6ac69","type":"change","z":"ccd6b2fc502beabd","name":"voltage","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1449,"y":3318,"wires":[["864738bdc4614a95"]]},{"id":"7b115706c0fb28d5","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.1","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":2078,"wires":[["598f66c2cd2088ed"]]},{"id":"33f7917d15a9e653","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.2","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":2158,"wires":[["d7b9a85919458e1d"]]},{"id":"95ccece6510753a6","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":7,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Bett hinten battery","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":1679,"y":3238,"wires":[]},{"id":"ebb70ede2632ba0e","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":9,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Bett hinten signal","label":"%","format":"{{value}}","min":0,"max":"300","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":1679,"y":3278,"wires":[]},{"id":"864738bdc4614a95","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":8,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Bett hinten voltage","label":"V","format":"{{value}}","min":0,"max":"3000","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":1689,"y":3318,"wires":[]},{"id":"598f66c2cd2088ed","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee1 ON (out)","mode":"link","links":["3ba250f78995d766"],"x":1934,"y":2078,"wires":[]},{"id":"834a76026d3a52a5","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeone","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeone\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeone\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1549,"y":2038,"wires":[["a9e314fc0cb70848","598f66c2cd2088ed"],["821d8b66bc916d16","d7b9a85919458e1d"],["598f66c2cd2088ed","97472ef3bfd563e6"]]},{"id":"35a98c21a285c282","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput1_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1528,"y":1956,"wires":[[]]},{"id":"a9e314fc0cb70848","type":"delay","z":"ccd6b2fc502beabd","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":1518,"y":1996,"wires":[["35a98c21a285c282"]]},{"id":"7d271a019a3fc6d6","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeetwo","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeetwo\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeetwo\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1549,"y":2158,"wires":[["821d8b66bc916d16","d7b9a85919458e1d"],["d7b9a85919458e1d","50f99bb8a0ccc642"]]},{"id":"821d8b66bc916d16","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":2118,"wires":[["977686cb7e088bda"]]},{"id":"977686cb7e088bda","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput2_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":2078,"wires":[[]]},{"id":"d7b9a85919458e1d","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee2 ON (out)","mode":"link","links":["4e3c62c973b0f55c"],"x":1934,"y":2158,"wires":[]},{"id":"ff2ca07b1027d400","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"2_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer2\")\nif (dimm ===1){\n   global.set (\"zigbeeinput3_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput4_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart2\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1509,"y":2518,"wires":[["2256c37b3b788f5b","8a35a33bdbfa873d"]]},{"id":"2256c37b3b788f5b","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.1","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":2398,"wires":[["84bb74378b5823fa"]]},{"id":"8a35a33bdbfa873d","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.2","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":2478,"wires":[["aa8dc90c394d36d9"]]},{"id":"84bb74378b5823fa","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee3 ON (out)","mode":"link","links":["cfb80a6cd6479d83"],"x":1924,"y":2398,"wires":[]},{"id":"29a7d0fe3f9f6334","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeethree","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeethree\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeethree\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1559,"y":2358,"wires":[["5564af5f6f49aece","84bb74378b5823fa"],["aa8dc90c394d36d9","b5917babc6ffe297"],["84bb74378b5823fa","cf7607f1d686bb0b"]]},{"id":"33112bb70b0d04ac","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput3_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":2278,"wires":[[]]},{"id":"5564af5f6f49aece","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":2318,"wires":[["33112bb70b0d04ac"]]},{"id":"b9b482ebd7b62ac4","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefour","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeefour\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefour\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1549,"y":2478,"wires":[["b5917babc6ffe297","aa8dc90c394d36d9"],["aa8dc90c394d36d9","b1338a9101c05a4a"]]},{"id":"b5917babc6ffe297","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":2438,"wires":[["f1f776df27357807"]]},{"id":"f1f776df27357807","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput4_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":2398,"wires":[[]]},{"id":"aa8dc90c394d36d9","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee4 ON (out)","mode":"link","links":["5b73c732484f8faf"],"x":1924,"y":2478,"wires":[]},{"id":"e533c1683034db83","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"3_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer3\")\nif (dimm ===1){\n   global.set (\"zigbeeinput5_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput6_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart3\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1509,"y":2838,"wires":[["8b50de845dc8c43b","6a5a959e58c88182"]]},{"id":"8b50de845dc8c43b","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.1","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":2718,"wires":[["eab32cfc3d39a9cf"]]},{"id":"6a5a959e58c88182","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.2","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":2798,"wires":[["81dd4758cbd58756"]]},{"id":"eab32cfc3d39a9cf","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee5 ON (out)","mode":"link","links":["09cee59d997565fe"],"x":1924,"y":2718,"wires":[]},{"id":"8db0175f9f34d258","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefive","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeefive\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefive\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer3\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1549,"y":2678,"wires":[["1da1bb90145e9d1b","eab32cfc3d39a9cf"],["81dd4758cbd58756","c96632983fe78032"],["eab32cfc3d39a9cf","f4ef410bfc65e5fd"]]},{"id":"d5506c486d19dd2b","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 5 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput5_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":2598,"wires":[[]]},{"id":"1da1bb90145e9d1b","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":2638,"wires":[["d5506c486d19dd2b"]]},{"id":"15d89b51bdd8f8ce","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeesix","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeesix\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeesix\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer3\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1549,"y":2798,"wires":[["c96632983fe78032","81dd4758cbd58756"],["81dd4758cbd58756","8dc5fc190a9b05d3"]]},{"id":"c96632983fe78032","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":2758,"wires":[["d8c78e106e38ce11"]]},{"id":"d8c78e106e38ce11","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 6 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput6_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":2718,"wires":[[]]},{"id":"81dd4758cbd58756","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee6 ON (out)","mode":"link","links":["cf9c5dd21b85a2ee"],"x":1924,"y":2798,"wires":[]},{"id":"bf87c42a54d333a5","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"4_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer4\")\nif (dimm ===1){\n   global.set (\"zigbeeinput7_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput8_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart4\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1509,"y":3158,"wires":[["ad8b05dd28176549","ef60caefb6fdbb4f"]]},{"id":"ad8b05dd28176549","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.1","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":3038,"wires":[["90350b7d735d2b87"]]},{"id":"ef60caefb6fdbb4f","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.2","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1799,"y":3118,"wires":[["6ec629a34bf9eb75"]]},{"id":"90350b7d735d2b87","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee7 ON (out)","mode":"link","links":["3d8dcf02fd4f346e"],"x":1924,"y":3038,"wires":[]},{"id":"12949ec17b6a3f39","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeseven","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeseven\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeseven\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer4\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1559,"y":2998,"wires":[["33d95fbcd25a404a","90350b7d735d2b87"],["6ec629a34bf9eb75","7ee7886ab82694c3"],["90350b7d735d2b87","0c41f55e32d90bcc"]]},{"id":"0d25c8584f67d4df","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 7 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput7_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":2918,"wires":[[]]},{"id":"33d95fbcd25a404a","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":2958,"wires":[["0d25c8584f67d4df"]]},{"id":"e67f3d5caa5dc790","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeeight","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeeeight\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeeight\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer4\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1559,"y":3118,"wires":[["7ee7886ab82694c3","6ec629a34bf9eb75"],["6ec629a34bf9eb75","99f4dc57a58e89ba"]]},{"id":"7ee7886ab82694c3","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":3078,"wires":[["1924a53e9f3452d4"]]},{"id":"1924a53e9f3452d4","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 8 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput8_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":3038,"wires":[[]]},{"id":"6ec629a34bf9eb75","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee8 ON (out)","mode":"link","links":["25e2df124caa9b87"],"x":1924,"y":3118,"wires":[]},{"id":"19b1a3226b1897db","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <30%","func":"if (msg.payload.battery <=30)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1889,"y":3238,"wires":[["5c8fa854d6309139"]]},{"id":"826bbdc02f7050c0","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <50%","func":"if (msg.payload.battery <=50)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1889,"y":3278,"wires":[[]]},{"id":"5c8fa854d6309139","type":"change","z":"ccd6b2fc502beabd","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"Batterie ZigbeeSchalter Bett hinten <30%","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"Batterie ZigbeeSchalter Bett hinten OK","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":2109,"y":3238,"wires":[["e5c3d598d6e9251e"]]},{"id":"e5c3d598d6e9251e","type":"rbe","z":"ccd6b2fc502beabd","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":2069,"y":3278,"wires":[["51129984a6b96b60"]]},{"id":"51129984a6b96b60","type":"link out","z":"ccd6b2fc502beabd","name":"link out zu Telegram","mode":"link","links":["cbb42fa833748bfb"],"x":2154,"y":3278,"wires":[]},{"id":"cf7607f1d686bb0b","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 3","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1829,"y":2338,"wires":[]},{"id":"97472ef3bfd563e6","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 1","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1809,"y":2018,"wires":[]},{"id":"50f99bb8a0ccc642","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 2","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1809,"y":2218,"wires":[]},{"id":"b1338a9101c05a4a","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 4","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1829,"y":2518,"wires":[]},{"id":"f4ef410bfc65e5fd","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 5","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1849,"y":2658,"wires":[]},{"id":"8dc5fc190a9b05d3","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 6","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1849,"y":2858,"wires":[]},{"id":"0c41f55e32d90bcc","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 7","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1869,"y":2978,"wires":[]},{"id":"99f4dc57a58e89ba","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 8","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1869,"y":3158,"wires":[]},{"id":"1c36a6b51835f276","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"1_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer1\")\nif (dimm ===1){\n   global.set (\"zigbeeinput1_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput2_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart1\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":3680,"wires":[["3aa59340d93a8dce","c955f68f638f7157"]]},{"id":"49457733f778cc5f","type":"change","z":"ccd6b2fc502beabd","name":"battery","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":4740,"wires":[["55762b6d90780f5c","307bbb8985f09cb7"]]},{"id":"ca84bdfb9a03fbf5","type":"change","z":"ccd6b2fc502beabd","name":"linkquality","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.linkquality","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":4780,"wires":[["7ce9a3b1e03e6259"]]},{"id":"61c8c16f90085ca4","type":"change","z":"ccd6b2fc502beabd","name":"voltage","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":4820,"wires":[["340265ce9feb0bd2"]]},{"id":"3aa59340d93a8dce","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.1","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":3560,"wires":[["da74d54fc56e7703"]]},{"id":"c955f68f638f7157","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.2","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":3640,"wires":[["be0fdf67b4d319d8"]]},{"id":"55762b6d90780f5c","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":10,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Dinette battery","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":550,"y":4740,"wires":[]},{"id":"7ce9a3b1e03e6259","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":12,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Dinette signal","label":"%","format":"{{value}}","min":0,"max":"300","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":560,"y":4780,"wires":[]},{"id":"340265ce9feb0bd2","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":11,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Dinette voltage","label":"V","format":"{{value}}","min":0,"max":"3000","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":570,"y":4820,"wires":[]},{"id":"da74d54fc56e7703","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee1 ON (out)","mode":"link","links":["3ba250f78995d766"],"x":805,"y":3560,"wires":[]},{"id":"2b1797af1180dbcb","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeone","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeone\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeone\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":3520,"wires":[["4239c7b592a4e833","da74d54fc56e7703"],["9f3e635a8fba00ca","be0fdf67b4d319d8"],["da74d54fc56e7703","7fcc62561c473f08"]]},{"id":"0f1923d8e2655a0a","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput1_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":399,"y":3438,"wires":[[]]},{"id":"4239c7b592a4e833","type":"delay","z":"ccd6b2fc502beabd","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":389,"y":3478,"wires":[["0f1923d8e2655a0a"]]},{"id":"3bdc90bf3678bb97","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeetwo","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeetwo\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeetwo\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":3640,"wires":[["9f3e635a8fba00ca","be0fdf67b4d319d8"],["be0fdf67b4d319d8","8f222217e1aaf13c"]]},{"id":"9f3e635a8fba00ca","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":3600,"wires":[["58de42660abdc275"]]},{"id":"58de42660abdc275","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput2_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":3560,"wires":[[]]},{"id":"be0fdf67b4d319d8","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee2 ON (out)","mode":"link","links":["4e3c62c973b0f55c"],"x":805,"y":3640,"wires":[]},{"id":"1dd452b85440d560","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"2_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer2\")\nif (dimm ===1){\n   global.set (\"zigbeeinput3_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput4_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart2\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":4020,"wires":[["8f56c2a270025155","6eb57729c194fa87"]]},{"id":"8f56c2a270025155","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.1","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":3900,"wires":[["55258ddf0c572fe5"]]},{"id":"6eb57729c194fa87","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.2","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":3980,"wires":[["9a0b084614fda264"]]},{"id":"55258ddf0c572fe5","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee3 ON (out)","mode":"link","links":["cfb80a6cd6479d83"],"x":795,"y":3900,"wires":[]},{"id":"5002c8b9d0e33ef2","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeethree","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeethree\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeethree\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":3860,"wires":[["7503f086fc22b968","55258ddf0c572fe5"],["9a0b084614fda264","a93486df27a12600"],["55258ddf0c572fe5","19c13af3a466b57a"]]},{"id":"99ef078a526c546c","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput3_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":3780,"wires":[[]]},{"id":"7503f086fc22b968","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":3820,"wires":[["99ef078a526c546c"]]},{"id":"c98d56ce5ab4c09d","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefour","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeefour\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefour\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":3980,"wires":[["a93486df27a12600","9a0b084614fda264"],["9a0b084614fda264","654752e7a8bcf913"]]},{"id":"a93486df27a12600","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":3940,"wires":[["a9db16336a8077db"]]},{"id":"a9db16336a8077db","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput4_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":3900,"wires":[[]]},{"id":"9a0b084614fda264","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee4 ON (out)","mode":"link","links":["5b73c732484f8faf"],"x":795,"y":3980,"wires":[]},{"id":"1ba5b2ee462e2bd4","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"3_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer3\")\nif (dimm ===1){\n   global.set (\"zigbeeinput5_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput6_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart3\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":4340,"wires":[["9535d9d60d54aa52","1a8927f26a944376"]]},{"id":"9535d9d60d54aa52","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.1","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":4220,"wires":[["d6becdb71028df0a"]]},{"id":"1a8927f26a944376","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.2","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":4300,"wires":[["bb9a51e3681510cf"]]},{"id":"d6becdb71028df0a","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee5 ON (out)","mode":"link","links":["09cee59d997565fe"],"x":795,"y":4220,"wires":[]},{"id":"841729ba52036e40","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefive","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeefive\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefive\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer3\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":4180,"wires":[["d3556adf8f89ea9c","d6becdb71028df0a"],["bb9a51e3681510cf","a242adac8e16428b"],["d6becdb71028df0a","836b2f3b4694aab4"]]},{"id":"cbd6440d0ca69475","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 5 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput5_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":4100,"wires":[[]]},{"id":"d3556adf8f89ea9c","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":4140,"wires":[["cbd6440d0ca69475"]]},{"id":"8af3e88060765258","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeesix","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeesix\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeesix\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer3\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":4300,"wires":[["a242adac8e16428b","bb9a51e3681510cf"],["bb9a51e3681510cf","000732fa62ec503c"]]},{"id":"a242adac8e16428b","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":4260,"wires":[["8b0c2c14355f4c34"]]},{"id":"8b0c2c14355f4c34","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 6 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput6_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":4220,"wires":[[]]},{"id":"bb9a51e3681510cf","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee6 ON (out)","mode":"link","links":["cf9c5dd21b85a2ee"],"x":795,"y":4300,"wires":[]},{"id":"61fd2ee362c6bd5c","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"4_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer4\")\nif (dimm ===1){\n   global.set (\"zigbeeinput7_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput8_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart4\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":4660,"wires":[["fe2c74d2051556c6","7bee905badb96c99"]]},{"id":"fe2c74d2051556c6","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.1","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":4540,"wires":[["b4b81dc19891a6fb"]]},{"id":"7bee905badb96c99","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.2","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":4620,"wires":[["33445483e99e8a1e"]]},{"id":"b4b81dc19891a6fb","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee7 ON (out)","mode":"link","links":["3d8dcf02fd4f346e"],"x":795,"y":4540,"wires":[]},{"id":"f7c97257de55c79c","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeseven","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeseven\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeseven\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer4\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":4500,"wires":[["da3a79be0f858b33","b4b81dc19891a6fb"],["33445483e99e8a1e","7f40b403ae3751c6"],["b4b81dc19891a6fb","63685662dd2b8ec9"]]},{"id":"c5a527f07476f9e5","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 7 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput7_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":4420,"wires":[[]]},{"id":"da3a79be0f858b33","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":4460,"wires":[["c5a527f07476f9e5"]]},{"id":"63194e336142beee","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeeight","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeeeight\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeeight\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer4\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":4620,"wires":[["7f40b403ae3751c6","33445483e99e8a1e"],["33445483e99e8a1e","698710c9be065f73"]]},{"id":"7f40b403ae3751c6","type":"delay","z":"ccd6b2fc502beabd","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":380,"y":4580,"wires":[["515e850411a884f6"]]},{"id":"515e850411a884f6","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 8 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput8_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":390,"y":4540,"wires":[[]]},{"id":"33445483e99e8a1e","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee8 ON (out)","mode":"link","links":["25e2df124caa9b87"],"x":795,"y":4620,"wires":[]},{"id":"307bbb8985f09cb7","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <30%","func":"if (msg.payload.battery <=30)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":4740,"wires":[["6c209148e5fcf4d8"]]},{"id":"cd747cb41e0cafbf","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <50%","func":"if (msg.payload.battery <=50)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":4780,"wires":[[]]},{"id":"6c209148e5fcf4d8","type":"change","z":"ccd6b2fc502beabd","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"Batterie ZigbeeSchalter Dinette <30%","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"Batterie ZigbeeSchalter Dinette OK","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1000,"y":4740,"wires":[["cf61563741c3affe"]]},{"id":"cf61563741c3affe","type":"rbe","z":"ccd6b2fc502beabd","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":960,"y":4780,"wires":[["aa75280d4c153806"]]},{"id":"aa75280d4c153806","type":"link out","z":"ccd6b2fc502beabd","name":"link out zu Telegram","mode":"link","links":["cbb42fa833748bfb"],"x":1045,"y":4780,"wires":[]},{"id":"19c13af3a466b57a","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 3","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":700,"y":3840,"wires":[]},{"id":"7fcc62561c473f08","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 1","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":680,"y":3500,"wires":[]},{"id":"8f222217e1aaf13c","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 2","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":680,"y":3700,"wires":[]},{"id":"654752e7a8bcf913","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 4","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":700,"y":4020,"wires":[]},{"id":"836b2f3b4694aab4","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 5","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":720,"y":4160,"wires":[]},{"id":"000732fa62ec503c","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 6","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":720,"y":4360,"wires":[]},{"id":"63685662dd2b8ec9","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 7","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":740,"y":4480,"wires":[]},{"id":"698710c9be065f73","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 8","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":740,"y":4660,"wires":[]},{"id":"89e8a6f7df3b8fdd","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"1_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer1\")\nif (dimm ===1){\n   global.set (\"zigbeeinput1_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput2_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart1\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1500,"y":3660,"wires":[["c7f933bc37d0e401","bf1a656665beade8"]]},{"id":"eea68ce53730f9cc","type":"change","z":"ccd6b2fc502beabd","name":"battery","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1410,"y":4700,"wires":[["b4363417f29d3fcd","4ea9fd72db2e41e3"]]},{"id":"3dfd1a12b391c6e7","type":"change","z":"ccd6b2fc502beabd","name":"linkquality","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.linkquality","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1420,"y":4740,"wires":[["04540af3babb2d9c"]]},{"id":"d3dfb78579565228","type":"change","z":"ccd6b2fc502beabd","name":"voltage","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1420,"y":4780,"wires":[["bc1b04110254b2ab"]]},{"id":"c7f933bc37d0e401","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.1","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":3540,"wires":[["90d4eb56522c0b97"]]},{"id":"bf1a656665beade8","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 1.2","func":"var dimm = flow.get (\"ZigbeeDimmer1\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":3620,"wires":[["f7b3cd177c22dba0"]]},{"id":"b4363417f29d3fcd","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":13,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Portabel battery","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":1640,"y":4700,"wires":[]},{"id":"04540af3babb2d9c","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":15,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Portabel signal","label":"%","format":"{{value}}","min":0,"max":"300","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":1650,"y":4740,"wires":[]},{"id":"bc1b04110254b2ab","type":"ui_gauge","z":"ccd6b2fc502beabd","name":"","group":"4d367177f7c28630","order":14,"width":0,"height":0,"gtype":"gage","title":"TuYa Schalter Portabel voltage","label":"V","format":"{{value}}","min":0,"max":"3000","colors":["#ff0000","#e6e600","#80ff00"],"seg1":"","seg2":"","diff":false,"className":"","x":1650,"y":4780,"wires":[]},{"id":"90d4eb56522c0b97","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee1 ON (out)","mode":"link","links":["3ba250f78995d766"],"x":1925,"y":3540,"wires":[]},{"id":"34bf2384ee228649","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeone","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart1\") === true && (flow.get(\"ZigbeeDimmer1\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeone\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeone\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1540,"y":3500,"wires":[["81f347920a0d7298","90d4eb56522c0b97"],["8e453942b327841a","f7b3cd177c22dba0"],["90d4eb56522c0b97","80e4c3702117725d"]]},{"id":"7347441de9233391","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 1 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput1_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1519,"y":3418,"wires":[[]]},{"id":"81f347920a0d7298","type":"delay","z":"ccd6b2fc502beabd","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":1509,"y":3458,"wires":[["7347441de9233391"]]},{"id":"b76b3ba547109657","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeetwo","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"1_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart1\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeetwo\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeetwo\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer1\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1540,"y":3620,"wires":[["8e453942b327841a","f7b3cd177c22dba0"],["f7b3cd177c22dba0","2219427c4754f71c"]]},{"id":"8e453942b327841a","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":3580,"wires":[["d2a1c7da529c0372"]]},{"id":"d2a1c7da529c0372","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart1\")\nif (dimm ==true){\n global.set (\"zigbeeinput2_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart1\",false)\n flow.set (\"ZigbeeDimmer1\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":3540,"wires":[[]]},{"id":"f7b3cd177c22dba0","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee2 ON (out)","mode":"link","links":["4e3c62c973b0f55c"],"x":1925,"y":3620,"wires":[]},{"id":"ebb4a58f99de966f","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 2 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"2_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer2\")\nif (dimm ===1){\n   global.set (\"zigbeeinput3_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput4_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart2\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1500,"y":3980,"wires":[["422e3944de66f40d","77e2822c01ea7f10"]]},{"id":"422e3944de66f40d","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.1","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":3860,"wires":[["4a6b6afc5752efb5"]]},{"id":"77e2822c01ea7f10","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 2.2","func":"var dimm = flow.get (\"ZigbeeDimmer2\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":3940,"wires":[["c249bc8ff6ece423"]]},{"id":"4a6b6afc5752efb5","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee3 ON (out)","mode":"link","links":["cfb80a6cd6479d83"],"x":1915,"y":3860,"wires":[]},{"id":"0fdca49592ef4beb","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeethree","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 1))  {\n\n        msg.payload = false;\n        return [msg, null,null];\n        \n    } \n    if (flow.get(\"ZigbeeDimmerstart2\") === true && (flow.get(\"ZigbeeDimmer2\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeethree\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeethree\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",1)\n        }\n\n        return [null,null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1550,"y":3820,"wires":[["623767ade43fe1c2","4a6b6afc5752efb5"],["c249bc8ff6ece423","779c0c532a4a464d"],["4a6b6afc5752efb5","2e3cae3be5458cc7"]]},{"id":"93e66bcbd11d3469","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput3_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":3740,"wires":[[]]},{"id":"623767ade43fe1c2","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":3780,"wires":[["93e66bcbd11d3469"]]},{"id":"bf698a577fad9d96","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefour","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"2_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart2\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeefour\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefour\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer2\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1540,"y":3940,"wires":[["779c0c532a4a464d","c249bc8ff6ece423"],["c249bc8ff6ece423","0e58dd54dbd90191"]]},{"id":"779c0c532a4a464d","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":3900,"wires":[["6c627be051fa1d55"]]},{"id":"6c627be051fa1d55","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart2\")\nif (dimm ==true){\n global.set (\"zigbeeinput4_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart2\",false)\n flow.set (\"ZigbeeDimmer2\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":3860,"wires":[[]]},{"id":"c249bc8ff6ece423","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee4 ON (out)","mode":"link","links":["5b73c732484f8faf"],"x":1915,"y":3940,"wires":[]},{"id":"837d2ae4d6979973","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 3 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"3_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer3\")\nif (dimm ===1){\n   global.set (\"zigbeeinput5_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput6_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart3\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1500,"y":4300,"wires":[["decb5521e4e00940","62891227cea12244"]]},{"id":"decb5521e4e00940","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.1","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":4180,"wires":[["ea116abdadc9abdf"]]},{"id":"62891227cea12244","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 3.2","func":"var dimm = flow.get (\"ZigbeeDimmer3\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":4260,"wires":[["8db846891a8018ab"]]},{"id":"ea116abdadc9abdf","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee5 ON (out)","mode":"link","links":["09cee59d997565fe"],"x":1915,"y":4180,"wires":[]},{"id":"852ad5a35f5a0ecf","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeefive","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart3\") === true && (flow.get(\"ZigbeeDimmer3\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeefive\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeefive\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer3\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1540,"y":4140,"wires":[["0f84eee2f57405f3","ea116abdadc9abdf"],["8db846891a8018ab","acdf520ef4376fca"],["ea116abdadc9abdf","8e46e56bb82bee03"]]},{"id":"4bd692ec5d10a7c5","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 5 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput5_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":4060,"wires":[[]]},{"id":"0f84eee2f57405f3","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":4100,"wires":[["4bd692ec5d10a7c5"]]},{"id":"2815126fed5669cd","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeesix","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"3_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart3\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeesix\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeesix\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer3\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1540,"y":4260,"wires":[["acdf520ef4376fca","8db846891a8018ab"],["8db846891a8018ab","2849c385fc487cae"]]},{"id":"acdf520ef4376fca","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":4220,"wires":[["ed518c49ceb6089f"]]},{"id":"ed518c49ceb6089f","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 6 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart3\")\nif (dimm ==true){\n global.set (\"zigbeeinput6_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart3\",false)\n flow.set (\"ZigbeeDimmer3\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":4180,"wires":[[]]},{"id":"8db846891a8018ab","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee6 ON (out)","mode":"link","links":["cf9c5dd21b85a2ee"],"x":1915,"y":4260,"wires":[]},{"id":"4c4b976b5aab7861","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 4 lang","func":"// schaltet um auf Typ Button Startet Dimmen für Taster 1 oder 2\nif (msg.payload.action ==\"4_hold\"){\nlet dimm = flow.get(\"ZigbeeDimmer4\")\nif (dimm ===1){\n   global.set (\"zigbeeinput7_type\",\"button\") \n}\nif(dimm===2){\n global.set (\"zigbeeinput8_type\",\"button\")   \n}\nflow.set(\"ZigbeeDimmerstart4\", true)\n    msg.payload =true\n}\nelse { return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1500,"y":4620,"wires":[["d3d630dae7810e06","19dac3d4337b2886"]]},{"id":"d3d630dae7810e06","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.1","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 1){\nmsg.payload =true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":4500,"wires":[["577327f7725119df"]]},{"id":"19dac3d4337b2886","type":"function","z":"ccd6b2fc502beabd","name":"Dimmer Start 4.2","func":"var dimm = flow.get (\"ZigbeeDimmer4\")\nif (dimm == 2){\nmsg.payload = true\n}\nelse\n{ return null }\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":4580,"wires":[["8f2018c6ebfa9c90"]]},{"id":"577327f7725119df","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee7 ON (out)","mode":"link","links":["3d8dcf02fd4f346e"],"x":1915,"y":4500,"wires":[]},{"id":"20dbe7191d64b94f","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeseven","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_single\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 1)) {\n\n        msg.payload = false;\n        return [msg, null, null];\n\n    }\n    if (flow.get(\"ZigbeeDimmerstart4\") === true && (flow.get(\"ZigbeeDimmer4\") == 2)) {\n\n        msg.payload = false;\n        return [null, msg, null];\n    }\n    //Schaltet ein und aus mit Typ Switch\n    else {\n\n        var check = flow.get(\"zigbeeseven\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeseven\", check);\n        msg.payload = check;\n        if (check == true) {\n            flow.set(\"ZigbeeDimmer4\", 1)\n        }\n\n        return [null, null, msg];\n    }\n}\n\n\n","outputs":3,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1550,"y":4460,"wires":[["40fefae2d847757a","577327f7725119df"],["8f2018c6ebfa9c90","2672fdc4848f0227"],["577327f7725119df","8e3ff2b975d7d9a2"]]},{"id":"41bad5e106581481","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 7 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput7_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",0)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":4380,"wires":[[]]},{"id":"40fefae2d847757a","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":4420,"wires":[["41bad5e106581481"]]},{"id":"94a8ccf6ecb11090","type":"function","z":"ccd6b2fc502beabd","name":"globalVariable get zigbeeeight","func":"//stopt Dimmen mit Typ Button\nif (msg.payload.action == \"4_double\") {\n\n    if (flow.get(\"ZigbeeDimmerstart4\") === true) {\n\n        msg.payload = false;\n        return [msg, null];\n//Schaltet ein und aus mit Typ Switch\n    } else {\n\n        var check = flow.get(\"zigbeeeight\") || false;\n\n        check = !check;\n\n        flow.set(\"zigbeeeight\", check);\n        msg.payload = check;\n        if (check == true){\n            flow.set (\"ZigbeeDimmer4\",2)\n        }\n\n        return [null, msg];\n    }\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1550,"y":4580,"wires":[["2672fdc4848f0227","8f2018c6ebfa9c90"],["8f2018c6ebfa9c90","3cd708a2bdc3ef46"]]},{"id":"2672fdc4848f0227","type":"delay","z":"ccd6b2fc502beabd","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":1500,"y":4540,"wires":[["6c2b1163261e3b0f"]]},{"id":"6c2b1163261e3b0f","type":"function","z":"ccd6b2fc502beabd","name":"Schalter 8 SW/BU","func":"// schaltet um auf Typ Switch beendet dimmen\nvar check = msg.payload\nvar dimm = flow.get(\"ZigbeeDimmerstart4\")\nif (dimm ==true){\n global.set (\"zigbeeinput8_type\",\"switch\") \n flow.set(\"ZigbeeDimmerstart4\",false)\n flow.set (\"ZigbeeDimmer4\",2)\n\n    { return null }\n}\n\nelse\nmsg.payload = null\n\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1510,"y":4500,"wires":[[]]},{"id":"8f2018c6ebfa9c90","type":"link out","z":"ccd6b2fc502beabd","name":"Zigbee8 ON (out)","mode":"link","links":["25e2df124caa9b87"],"x":1915,"y":4580,"wires":[]},{"id":"4ea9fd72db2e41e3","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <30%","func":"if (msg.payload.battery <=30)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1860,"y":4700,"wires":[["12e581d951f422bd"]]},{"id":"3aec0b3aef10a0ea","type":"function","z":"ccd6b2fc502beabd","name":"Baterie <50%","func":"if (msg.payload.battery <=50)\nmsg.payload = true\nelse \nmsg.payload= false\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1949,"y":4758,"wires":[[]]},{"id":"12e581d951f422bd","type":"change","z":"ccd6b2fc502beabd","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"Batterie ZigbeeSchalter Portabel <30%","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"Batterie ZigbeeSchalter Portabel OK","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":2080,"y":4700,"wires":[["4b283d8e1d91406a"]]},{"id":"4b283d8e1d91406a","type":"rbe","z":"ccd6b2fc502beabd","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":2040,"y":4740,"wires":[["b43588b5cdfc66fb"]]},{"id":"b43588b5cdfc66fb","type":"link out","z":"ccd6b2fc502beabd","name":"link out zu Telegram","mode":"link","links":["cbb42fa833748bfb"],"x":2125,"y":4740,"wires":[]},{"id":"2e3cae3be5458cc7","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 3","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1820,"y":3800,"wires":[]},{"id":"80e4c3702117725d","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 1","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1800,"y":3480,"wires":[]},{"id":"2219427c4754f71c","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 2","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1800,"y":3680,"wires":[]},{"id":"0e58dd54dbd90191","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 4","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1820,"y":3980,"wires":[]},{"id":"8e46e56bb82bee03","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 5","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1840,"y":4120,"wires":[]},{"id":"2849c385fc487cae","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 6","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1840,"y":4320,"wires":[]},{"id":"8e3ff2b975d7d9a2","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 7","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1860,"y":4440,"wires":[]},{"id":"3cd708a2bdc3ef46","type":"debug","z":"ccd6b2fc502beabd","name":"Zigbee 8","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1860,"y":4620,"wires":[]},{"id":"21f25600d56d32be","type":"debug","z":"ccd6b2fc502beabd","name":"Sensor","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":360,"y":20,"wires":[]},{"id":"0851e8f34601d982","type":"zigbee2mqtt-bridge","z":"ccd6b2fc502beabd","name":"","server":"6d1e81c5e5072551","topic":null,"x":150,"y":20,"wires":[["21f25600d56d32be"]]},{"id":"51b0671ac6d031ec","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"1.1=Dinette=1 1.2=Wled=Wled","info":"1.1=Dinette=1\n1.2=Wled=Wled\n\n2.1=Bett=3\n2.2=??=4\n\n3.1=Aussen=5\n3.2=??=6\n\n4.1=Küche=7\n4.2=unter Bett=Relay5\n","x":170,"y":500,"wires":[]},{"id":"d8f09644b8d1eb14","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 201","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2330,"y":360,"wires":[]},{"id":"57d67cb89a0e54f3","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 202","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1690,"y":300,"wires":[]},{"id":"6ae96035db606fcd","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 203","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1690,"y":360,"wires":[]},{"id":"7d61e378b6976096","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 204","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1890,"y":360,"wires":[]},{"id":"d7f713309c59f943","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 205","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2090,"y":300,"wires":[]},{"id":"502b5c59b4f201e2","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 206","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2090,"y":360,"wires":[]},{"id":"90a9c98b08cff0af","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 207","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2310,"y":300,"wires":[]},{"id":"a09ed646dc130183","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":710,"y":440,"wires":[["4764c6c87f909315"]]},{"id":"06b4d3e8705fe016","type":"inject","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":710,"y":500,"wires":[["4764c6c87f909315"]]},{"id":"b8bab055db7cb923","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 1 true/false","links":["2eea2f9dddb5cbb5"],"x":525,"y":500,"wires":[["e19ca17f5ccab5a1"]]},{"id":"498f5781ddb46c88","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 2 true/false","links":[],"x":495,"y":800,"wires":[["3aca4d9248dbeea1"]]},{"id":"3027348f27d0d051","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 4 true/false","links":[],"x":495,"y":1120,"wires":[["fe93542d68efa83f"]]},{"id":"01eb974a9bc1cb0a","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 3 true/false","links":["3d2db7116fbe1fda"],"x":505,"y":820,"wires":[["e7df6fefc9abac0d"]]},{"id":"452f54e3fb69d7ad","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 5 true/false","links":["f759bc090308e382"],"x":525,"y":1140,"wires":[["cdd5a47238ff2a63"]]},{"id":"5e4c4541e861c04c","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 6 true/false","links":[],"x":485,"y":1420,"wires":[["e50b990e9eb7aa31"]]},{"id":"77ce7471c26a4709","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 7 true/false","links":["6e9135e358c550a6"],"x":505,"y":1460,"wires":[["68b72d5a1ae789e1"]]},{"id":"9c27e1c4151b6266","type":"link in","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"virtuell Dimmer 8 true/false","links":[],"x":475,"y":1740,"wires":[["a957f545c4625144"]]},{"id":"ebf2a61e0a827c48","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"z.B. für schalter nur zum ein und aus schalten ","info":"","x":710,"y":820,"wires":[]},{"id":"d3d65b66b04167c0","type":"comment","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"bei mir aus der APP","info":"","x":870,"y":860,"wires":[]},{"id":"4083fc71ac78a335","type":"debug","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"debug 208","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":870,"y":680,"wires":[]},{"id":"e19ca17f5ccab5a1","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":540,"wires":[["4764c6c87f909315"]]},{"id":"3aca4d9248dbeea1","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":760,"wires":[["7abe6f1ac173d220"]]},{"id":"e7df6fefc9abac0d","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":860,"wires":[["aa9b58b354fa09d0"]]},{"id":"fe93542d68efa83f","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":1080,"wires":[["d46af9f296082d76"]]},{"id":"cdd5a47238ff2a63","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":1180,"wires":[["92042ece22d193df"]]},{"id":"e50b990e9eb7aa31","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":1400,"wires":[["162d5ce464d9c002"]]},{"id":"68b72d5a1ae789e1","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":610,"y":1500,"wires":[["905e81c81101663b"]]},{"id":"a957f545c4625144","type":"change","z":"ccd6b2fc502beabd","g":"e20576408a8082d3","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":610,"y":1720,"wires":[["7508c885f0e1f17d"]]},{"id":"0ddb07c65cbb68bc","type":"mqtt-broker","name":"","broker":"http://localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"bc3ee5806b72499f","type":"zigbee2mqtt-server","name":"","host":"pekaway.local","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","mqtt_qos":"0","tls":"4230868a2749a2ba","usetls":false,"base_topic":"zigbee2mqtt"},{"id":"4d367177f7c28630","type":"ui_group","name":"Status","tab":"61bf0b35342080cc","order":1,"disp":true,"width":6,"collapse":false,"className":""},{"id":"b0fe6252f651e243","type":"zigbee2mqtt-server","name":"","host":"pekaway.local","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","mqtt_qos":"0","tls":"4230868a2749a2ba","usetls":false,"base_topic":"zigbee2mqtt"},{"id":"6d1e81c5e5072551","type":"zigbee2mqtt-server","name":"","host":"pekaway.local","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","mqtt_qos":"0","tls":"4230868a2749a2ba","usetls":false,"base_topic":"zigbee2mqtt"},{"id":"4230868a2749a2ba","type":"tls-config","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"","verifyservercert":false,"alpnprotocol":""},{"id":"61bf0b35342080cc","type":"ui_tab","name":"Zigbee","icon":"dashboard","order":31,"disabled":false,"hidden":false}]