const mqtt = require('mqtt'); const pir = require('./people/pir.js').pir; const zoneObj = require('./people/zone.js').zone; const lightObj = require('./mqtt/light.js').light const matchObj = require('./match.js').match; const interface = require('./people/interface.js').interface; const lightCtlObj = require('./lightCtl/core.js').core; const peo = require('./mqtt/peo.js').peo; const isolatObj = require('./lightCtl/isolat.js').isolat; process.setMaxListeners(0); var client = mqtt.connect('mqtt://127.0.0.1'); var light = { hall: lightObj(client, 'hall'), din: lightObj(client, 'din'), liv: lightObj(client, 'liv'), kit: lightObj(client, 'kit') }; var p = { hall: [ pir(client, 'hall', 0), pir(client, 'hall', 1), pir(client, 'hall', 2), pir(client, 'hall', 3), ], din: [ pir(client, 'din', 0), pir(client, 'din', 1), pir(client, 'din', 2), pir(client, 'din', 3) ], liv: [ pir(client, 'liv', 0), pir(client, 'liv', 1), pir(client, 'liv', 2), pir(client, 'liv', 3) ], livb: [ pir(client, 'livb', 0), pir(client, 'livb', 1), pir(client, 'livb', 2), pir(client, 'livb', 3) ], kit: [ pir(client, 'kit', 0), pir(client, 'kit', 1), pir(client, 'kit', 2), pir(client, 'kit', 3) ] } var zone = { hall: [ zoneObj('h0', [p.hall[0], p.hall[1]]), zoneObj('h1', [p.hall[2]]) ], din: [ zoneObj('d0', [p.hall[3], p.kit[0], p.kit[1], p.din[0], p.din[1], p.livb[0]]), zoneObj('d1', [p.din[2], p.din[3]]) ], kit: [ zoneObj('k0', [/*p.kit[2],*/ p.kit[3]]) ], liv: [ zoneObj('l0', [p.liv[0], p.livb[1]]), zoneObj('l1', [p.livb[2], p.livb[3], p.liv[2], p.liv[3]]) ] }; client.on('connect', ()=>{ client.subscribe('hass/snsr/#', (err)=>{ if(!err){ client.publish('autoLight/state', 'online'); console.log(new Date().toTimeString() + ' - MQTT Connected!!'); } }); }); //var match = matchObj(zone, light); var i = { h: interface(zone.hall[0], zone.hall[1]), hd: interface(zone.hall[1], zone.din[0]), d: interface(zone.din[0], zone.din[1]), dk: interface(zone.din[1], zone.kit[0]), dl: interface(zone.din[0], zone.liv[1]), l: interface(zone.liv[0], zone.liv[1]) } /* room reg */ var room = { hall: require('./room/hall.js').hall(zone, i), din: require('./room/din.js').din(zone, i, p), liv: require('./room/liv.js').liv(zone, i), kit: require('./room/kit.js').kit(zone, i), } /* lightCtl reg */ var lightCtl = { //hall: lightCtlObj(room.hall, light.hall), //din: lightCtlObj(room.din, light.din), //liv: lightCtlObj(room.liv, light.liv), //kit: lightCtlObj(room.kit, light.kit) } /* peo mqtt */ var peo_mqtt = { //hall: peo(client, room.hall), //din: peo(client, room.din), //liv: peo(client, room.liv), //kit: peo(client, room.kit) } /* 走廊入口 */ var isolat = { hall: isolatObj(room.hall, light.hall, [p.hall[0], p.hall[1]], lightCtl.hall) //door: isolatObj(room.din, light.din, [p.din[0], p.livb[0]], lightCtl.din), }