Dimmy über TP1-TP6 steuern?

Also das Funktioniert top. habe es jetzt auch auf den MCP um gebaut. Das Dimmen funktioniert jetzt auch Mit Taster Druck.

[{"id":"48ac167d7d63684d","type":"trigger","z":"0e4ef1e0739bd351","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-250","extend":false,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":780,"y":400,"wires":[["481e8c0f05c3bbe1"]]},{"id":"481e8c0f05c3bbe1","type":"function","z":"0e4ef1e0739bd351","name":"long push","func":"if (flow.get(\"timer\") == \"stop\") {\n    return null\n}\n\n//if dimmer > 50 then dim down\nif (flow.get(\"dimmer0_state\") >= 50) {\n    if (global.get(\"dimmer0\") <= 0) {\n        global.set(\"dimmer0\", 0)\n    }\n    else { global.set(\"dimmer0\", global.get(\"dimmer0\")-7.5)}\n}\n//if dimmer < 50 then dim up\nelse if (flow.get(\"dimmer0_state\") < 50) {\n    if (global.get(\"dimmer0\") >= 100) {\n        global.set(\"dimmer0\", 100)\n    }\n    else { global.set(\"dimmer0\", global.get(\"dimmer0\")+7.5)}\n}\nmsg.payload = global.get(\"dimmer0\")\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":380,"wires":[["9c260c0c01dcecee"]]},{"id":"d0dd5900fa9af270","type":"function","z":"0e4ef1e0739bd351","name":"get true/false","func":"flow.set(\"dimmer0_state\", Number(global.get(\"dimmer0\")))\n\nif (msg.payload == true) {\n    msg.time = Date.now()\n    msg.topic = \"start\"\n    flow.set(\"timer\", \"start\")\n}\nif (msg.payload == false) {\n    msg.time = Date.now()\n    msg.topic = \"stop\"\n    flow.set(\"timer\", \"stop\")\n}\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":320,"wires":[["de4894f66561fbc5"]]},{"id":"de4894f66561fbc5","type":"join","z":"0e4ef1e0739bd351","name":"long/short push?","mode":"custom","build":"object","property":"time","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"1","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":500,"y":320,"wires":[["ba9b11e91ca85947"]]},{"id":"ba9b11e91ca85947","type":"function","z":"0e4ef1e0739bd351","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":540,"y":380,"wires":[["86814d1319edae5b"],["48ac167d7d63684d"]]},{"id":"86814d1319edae5b","type":"function","z":"0e4ef1e0739bd351","name":"short push","func":"msg.payload = (global.get(\"dimmer0\") > 0 ? 0 : 50)\nglobal.set(\"dimmer0\", msg.payload)\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":970,"y":340,"wires":[["9c260c0c01dcecee"]]},{"id":"e73a6c69d1030105","type":"mcp23017input","z":"0e4ef1e0739bd351","name":"","chip":"4e9949f3b6e19991","bitNum":"2","pullUp":true,"invert":true,"debounce":200,"onMsg":true,"offMsg":true,"x":120,"y":320,"wires":[["d0dd5900fa9af270"]]},{"id":"4e9949f3b6e19991","type":"mcp23017chip","addr":"0x20","interval":"100"}]

Das MCP element und den Get true/false habe ich aus dem Relay Control Node genommen.

Richtig Nice habe noch gar nicht mit Node gearbeitet aber das ist echt Easy.

2 Likes