It was nice of you too integrate dashbord to RPIEasy and I tried to build my simple dashboard but had difficulties and it required lot of web coding which is not my expertise. So I started working on node-red dashboard and within few hours I was able to do simple web interface to use rpieasy effectively. Node-red is very easy and sufficient for my simple control interface. I have also rearranged rpieasy UI on nodered dashboard so when I am testing some new device I do not have to shift through all useful tab which is frequently used for testing.Following is dashboard image and flow files I used for it.
![nodered](https://user-images.githubusercontent.com/36576353/52041145-89e51000-2507-11e9-907d-240b111fdff7.jpeg)
Flows I used:
SubFlow Template for whole house automation:
(12 rooms or devices & it is scalable to more with simple editing of flow)
[{"id":"26e9f43b.6e33ec","type":"subflow","name":"Events","info":"motion\nhome\naway\nalarm\nintrusion\noled\nirtx\nirrx\noutdoor temperature\noutdoor humidity\noutdoor pressure\noutdoor lux","category":"","in":[{"x":53,"y":107,"wires":[{"id":"a4c3a63b.58ed58"}]}],"out":[{"x":280,"y":40,"wires":[{"id":"a4c3a63b.58ed58","port":0}]},{"x":340,"y":40,"wires":[{"id":"a4c3a63b.58ed58","port":1}]},{"x":400,"y":40,"wires":[{"id":"a4c3a63b.58ed58","port":2}]},{"x":460,"y":40,"wires":[{"id":"a4c3a63b.58ed58","port":3}]},{"x":280,"y":100,"wires":[{"id":"a4c3a63b.58ed58","port":4}]},{"x":340,"y":100,"wires":[{"id":"a4c3a63b.58ed58","port":5}]},{"x":400,"y":100,"wires":[{"id":"a4c3a63b.58ed58","port":6}]},{"x":460,"y":100,"wires":[{"id":"a4c3a63b.58ed58","port":7}]},{"x":280,"y":160,"wires":[{"id":"a4c3a63b.58ed58","port":8}]},{"x":340,"y":160,"wires":[{"id":"a4c3a63b.58ed58","port":9}]},{"x":400,"y":160,"wires":[{"id":"a4c3a63b.58ed58","port":10}]},{"x":460,"y":160,"wires":[]}]},{"id":"a4c3a63b.58ed58","type":"switch","z":"26e9f43b.6e33ec","name":"Events","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"motion","vt":"str"},{"t":"cont","v":"home","vt":"str"},{"t":"cont","v":"away","vt":"str"},{"t":"cont","v":"alarm","vt":"str"},{"t":"cont","v":"intrusion","vt":"str"},{"t":"cont","v":"oled","vt":"str"},{"t":"cont","v":"irtx","vt":"str"},{"t":"cont","v":"irrx","vt":"str"},{"t":"cont","v":"outside/temperature","vt":"str"},{"t":"cont","v":"outside/humidity","vt":"str"},{"t":"cont","v":"outside/pressure","vt":"str"}],"checkall":"true","repair":false,"outputs":11,"x":186,"y":109,"wires":[[],[],[],[],[],[],[],[],[],[],[]]},{"id":"c65a83c.940c28","type":"subflow:26e9f43b.6e33ec","z":"c0844d0e.ea02c","name":"","x":110,"y":480,"wires":[[],[],[],[],[],[],[],[],[],[],[],[]]}]
Subflows used in above flow :
Home:
[{"id":"522523f1.490e4c","type":"switch","z":"2d280cdf.dc1c04","name":"Home","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"Livingroom","vt":"str"},{"t":"cont","v":"Kitchen","vt":"str"},{"t":"cont","v":"Bedroom1","vt":"str"},{"t":"cont","v":"Bedroom2","vt":"str"},{"t":"cont","v":"Bedroom3","vt":"str"},{"t":"cont","v":"Office","vt":"str"},{"t":"cont","v":"Laundry","vt":"str"},{"t":"cont","v":"Boilerroom","vt":"str"},{"t":"cont","v":"Bathroom1","vt":"str"},{"t":"cont","v":"Bathroom2","vt":"str"},{"t":"cont","v":"Bathroom3","vt":"str"},{"t":"cont","v":"Outside","vt":"str"}],"checkall":"true","repair":false,"outputs":12,"x":201,"y":97,"wires":[[],[],[],[],[],[],[],[],[],[],[],[]]},{"id":"949d80e0.18e27","type":"mqtt in","z":"2d280cdf.dc1c04","name":"","topic":"#","qos":"2","broker":"cd227dd8.85423","x":63,"y":80,"wires":[["522523f1.490e4c"]]},{"id":"cd227dd8.85423","type":"mqtt-broker","z":"2d280cdf.dc1c04","name":"Local","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
Livingroom (this sublow is a template for each device or room):
[{"id":"64db0c61.1360e4","type":"switch","z":"98c1390a.706f18","name":"Livingroom","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"uptime","vt":"str"},{"t":"cont","v":"rssi","vt":"str"},{"t":"cont","v":"ram","vt":"str"},{"t":"cont","v":"load","vt":"str"},{"t":"cont","v":"temprature","vt":"str"},{"t":"cont","v":"humidity","vt":"str"},{"t":"cont","v":"pressure","vt":"str"},{"t":"cont","v":"lux","vt":"str"},{"t":"cont","v":"breach","vt":"str"},{"t":"cont","v":"oled","vt":"str"},{"t":"cont","v":"pin","vt":"str"},{"t":"cont","v":"dimvalue","vt":"str"}],"checkall":"true","repair":false,"outputs":12,"x":170,"y":120,"wires":[["d0a2ade6.ada41"],["5bc6f195.e235c"],["d68fae84.1eb28"],["47d7e9d2.b3d908"],["9ae91fc9.4bdaa"],["518f796b.e7faf8"],["fae4e6fd.bbfd78"],["9863844b.a6ad38"],["3b17aa35.3b33b6"],["34a2d0cb.e6446"],["a70013ed.e4d35"],["f2406736.ccda68","38f9a7dd.6340c8"]]},{"id":"d0a2ade6.ada41","type":"ui_text","z":"98c1390a.706f18","group":"11655475.b9d69c","order":4,"width":"1","height":"1","name":"","label":"Uptime","format":"{{msg.payload}}","layout":"col-center","x":360,"y":20,"wires":[]},{"id":"47d7e9d2.b3d908","type":"ui_text","z":"98c1390a.706f18","group":"11655475.b9d69c","order":6,"width":"1","height":"1","name":"","label":"Load","format":"{{msg.payload}} %","layout":"col-center","x":356,"y":137,"wires":[]},{"id":"d68fae84.1eb28","type":"ui_text","z":"98c1390a.706f18","group":"11655475.b9d69c","order":5,"width":"1","height":"1","name":"","label":"RAM","format":"{{msg.payload}}","layout":"col-center","x":355,"y":97,"wires":[]},{"id":"5bc6f195.e235c","type":"ui_text","z":"98c1390a.706f18","group":"11655475.b9d69c","order":7,"width":"1","height":"1","name":"","label":"RSSI","format":"{{msg.payload}}","layout":"col-center","x":351,"y":57,"wires":[]},{"id":"f2406736.ccda68","type":"ui_switch","z":"98c1390a.706f18","name":"","label":"On/Off","tooltip":"Turn Fan On/Off","group":"11655475.b9d69c","order":2,"width":"2","height":"1","passthru":false,"decouple":"false","topic":"Livingroom/dimmer/dimvalue/set","style":"","onvalue":"128","onvalueType":"num","onicon":"","oncolor":"","offvalue":"0","offvalueType":"num","officon":"","offcolor":"","x":350,"y":220,"wires":[["10c43b2c.29e575","dd26b765.23d588"]]},{"id":"38f9a7dd.6340c8","type":"ui_slider","z":"98c1390a.706f18","name":"","label":"Fan Speed","tooltip":"Adjust Fan Speed","group":"11655475.b9d69c","order":3,"width":"4","height":"1","passthru":false,"outs":"end","topic":"Livingroom/dimmer/dimvalue/set","min":0,"max":"128","step":1,"x":330,"y":260,"wires":[["10c43b2c.29e575","dd26b765.23d588"]]},{"id":"a70013ed.e4d35","type":"ui_numeric","z":"98c1390a.706f18","name":"","label":"Fan","tooltip":"Select Fan","group":"11655475.b9d69c","order":1,"width":"2","height":"1","passthru":false,"topic":"Livingroom/dimmer/pin/set","format":"{{value}}","min":"6","max":"9","step":1,"x":350,"y":180,"wires":[["10c43b2c.29e575","dd26b765.23d588"]]},{"id":"518f796b.e7faf8","type":"ui_gauge","z":"98c1390a.706f18","name":"Humidity","group":"11655475.b9d69c","order":9,"width":"1","height":"1","gtype":"gage","title":"Humidity","label":"","format":"{{value}} %","min":"40","max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":520,"y":60,"wires":[]},{"id":"9ae91fc9.4bdaa","type":"ui_gauge","z":"98c1390a.706f18","name":"Temperature","group":"11655475.b9d69c","order":8,"width":"1","height":"1","gtype":"gage","title":"Temperature","label":"","format":"{{value}} F","min":"45","max":"90","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":530,"y":20,"wires":[]},{"id":"9863844b.a6ad38","type":"ui_gauge","z":"98c1390a.706f18","name":"Luminocity","group":"11655475.b9d69c","order":11,"width":"1","height":"1","gtype":"gage","title":"Luminocity","label":"","format":"{{value}} Lux","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":530,"y":140,"wires":[]},{"id":"fae4e6fd.bbfd78","type":"ui_gauge","z":"98c1390a.706f18","name":"Pressure","group":"11655475.b9d69c","order":10,"width":"1","height":"1","gtype":"gage","title":"Pressure","label":"","format":"{{value}} Kpa","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":520,"y":100,"wires":[]},{"id":"62429c9e.e15b24","type":"ui_switch","z":"98c1390a.706f18","name":"Alarm","label":"On/Off","tooltip":"Turn Alarm On/Off","group":"11655475.b9d69c","order":13,"width":"2","height":"1","passthru":true,"decouple":"false","topic":"Livingroom/alarm/set","style":"","onvalue":"On","onvalueType":"str","onicon":"","oncolor":"","offvalue":"Off","offvalueType":"str","officon":"","offcolor":"","x":330,"y":340,"wires":[["1a12314b.2a0a4f","d23663bf.d68cd"]]},{"id":"3b17aa35.3b33b6","type":"ui_text_input","z":"98c1390a.706f18","name":"Security","label":"Security","tooltip":"Watch for Security breach","group":"11655475.b9d69c","order":12,"width":"2","height":"1","passthru":true,"mode":"text","delay":300,"topic":"Livingroom/breach/set","x":320,"y":300,"wires":[["10c43b2c.29e575"]]},{"id":"10c43b2c.29e575","type":"join","z":"98c1390a.706f18","name":"Announce","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\n","joinerType":"str","accumulate":false,"timeout":"5","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":540,"y":240,"wires":[[]]},{"id":"1a12314b.2a0a4f","type":"mqtt out","z":"98c1390a.706f18","name":"","topic":"","qos":"","retain":"","broker":"640a3afa.1e8d84","x":550,"y":280,"wires":[]},{"id":"dd26b765.23d588","type":"batch","z":"98c1390a.706f18","name":"2 Together","mode":"count","count":"2","overlap":0,"interval":10,"allowEmptySequence":false,"topics":[],"x":540,"y":200,"wires":[["1a12314b.2a0a4f"]]},{"id":"c83afd9d.d76fc","type":"ping","z":"98c1390a.706f18","name":"Ken","host":"10.1.10.27","timer":"20","x":50,"y":240,"wires":[["3668d21f.32913e"]]},{"id":"3668d21f.32913e","type":"switch","z":"98c1390a.706f18","name":"","property":"payload","propertyType":"msg","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":170,"y":240,"wires":[["fedda170.a6d4b"]]},{"id":"cec78721.5e9228","type":"rbe","z":"98c1390a.706f18","name":"Block ","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":670,"y":340,"wires":[["10c43b2c.29e575"]]},{"id":"d23663bf.d68cd","type":"change","z":"98c1390a.706f18","name":"Alarm Status","rules":[{"t":"change","p":"payload","pt":"msg","from":"On","fromt":"str","to":"Alarm is set to On","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"Off","fromt":"str","to":"Alarm is set to Off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":340,"wires":[["cec78721.5e9228"]]},{"id":"fedda170.a6d4b","type":"change","z":"98c1390a.706f18","name":"Alarm On","rules":[{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"On","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":140,"y":340,"wires":[["62429c9e.e15b24"]]},{"id":"11655475.b9d69c","type":"ui_group","z":"","name":"Livingroom","tab":"47f3aa96.cda2b4","order":5,"disp":true,"width":"4","collapse":true},{"id":"640a3afa.1e8d84","type":"mqtt-broker","z":"","name":"Eclipse","broker":"iot.eclipse.org","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"47f3aa96.cda2b4","type":"ui_tab","z":"","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]
Events :
[{"id":"a4c3a63b.58ed58","type":"switch","z":"26e9f43b.6e33ec","name":"Events","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"motion","vt":"str"},{"t":"cont","v":"home","vt":"str"},{"t":"cont","v":"away","vt":"str"},{"t":"cont","v":"alarm","vt":"str"},{"t":"cont","v":"intrusion","vt":"str"},{"t":"cont","v":"oled","vt":"str"},{"t":"cont","v":"irtx","vt":"str"},{"t":"cont","v":"irrx","vt":"str"},{"t":"cont","v":"outside/temperature","vt":"str"},{"t":"cont","v":"outside/humidity","vt":"str"},{"t":"cont","v":"outside/pressure","vt":"str"}],"checkall":"true","repair":false,"outputs":11,"x":186,"y":109,"wires":[[],[],[],[],[],[],[],[],[],[],[]]}]