/var/www/myprog.com.ua/server/node
NameSizeModeActions
.git/-0755rm
.vscode/-0755rm
api/-0755rm
db/-0755rm
helpers/-0755rm
logs/-0755rm
node_modules/-0755rm
objects/-0755rm
services/-0755rm
ws/-0755rm
www/-0755rm
.gitignore550644editdlrm
.htaccess1060644editdlrm
config-default.json2790644editdlrm
config.json3980644editdlrm
core.js139930644editdlrm
global.js28640644editdlrm
myprog.js42530644editdlrm
package-lock.json1500090644editdlrm
package.json2660644editdlrm
session_manager.js56880644editdlrm
test_db.js48380644editdlrm
Edit: /var/www/myprog.com.ua/server/node/core.js (13993B)
const log = require('./logs/log') var SunCalc = require('suncalc'); var scenario = []; var scenario_timers = []; var poliv_start = false; var poliv_started = false; var poliv_finish = false; var poliv_timer = 0; // get today's sunlight times for London var times = SunCalc.getTimes(new Date(), 38.09835, 23.97326); // NeaMakri, Greece // format sunrise time from the Date object var sunriseHours = times.sunrise.getHours(); var sunriseMinutes = times.sunrise.getMinutes(); var sunsetHours = times.sunset.getHours(); var sunsetMinutes = times.sunset.getMinutes(); class Core { constructor() { } async load() { let conf = await this.context.get_config() for (let c of conf) { config[c.key] = c.value } // await this.service_orders.load_orders() return true } run() { let _self = this; console.log("TODAY SUNRISE ON "+sunriseHours+":"+sunriseMinutes) console.log("TODAY SUNSET ON "+sunsetHours+":"+sunsetMinutes) setTimeout(async function upd() { const dateNow = new Date(); // get current day of week let day = dateNow.getDay(); // get current hours let hours = dateNow.getHours(); // get current minutes let minutes = dateNow.getMinutes(); // get current seconds let seconds = dateNow.getSeconds(); // Получаем время захода солнца каждый день if (hours == 0 && minutes == 0 && seconds == 0) { times = SunCalc.getTimes(new Date(), 38.09835, 23.97326); // NeaMakri, Greece sunriseHours = times.sunrise.getHours(); sunriseMinutes = times.sunrise.getMinutes(); sunsetHours = times.sunset.getHours(); sunsetMinutes = times.sunset.getMinutes(); } // let sunSatHour = // let sunSatMinute = // console.log('Date Now: ' + hours + ':' + minutes + ':' + seconds) // if (hours == 7 && minutes == 0 && seconds == 0) { // // START FIRST POLIV // if (day != 1) { // poliv_start = true; // } // } if (hours == 5 && minutes == 0 && seconds == 0) { // START SECOND POLIV // if (day != 2 && day != 4 && day != 6) { if (day != 2) { poliv_start = true; } } if (hours == sunsetHours && minutes == sunsetMinutes && seconds == 0) { // LIGHT ON console.log("POOL LIGHT ON") _self.sessions_manager.send_to_host(14, "relay_on", "1"); console.log("LIGHT ZABOR ON") _self.sessions_manager.send_to_host(15, "relay_on", "1"); _self.sessions_manager.send_to_host(15, "relay_off", "1"); console.log("LIGHT KOZIR ON") _self.sessions_manager.send_to_host(15, "relay_on", "2"); _self.sessions_manager.send_to_host(15, "relay_off", "2"); console.log("LIGHT HOUSE ON") _self.sessions_manager.send_to_host(15, "relay_on", "3"); _self.sessions_manager.send_to_host(15, "relay_off", "3"); console.log("LIGHT ON HOUSE ON") _self.sessions_manager.send_to_host(15, "relay_on", "4"); _self.sessions_manager.send_to_host(15, "relay_off", "4"); console.log("LIGHT ON GAZON") _self.sessions_manager.send_to_host(12, "relay_on", "1"); _self.sessions_manager.send_to_host(12, "relay_off", "1"); // let dev1 = await _self.service_devices.get_device(15, 'io', '1') // if (dev1.event_id == 44) { // console.log("LIGHT ZABOR ON") // _self.sessions_manager.send_to_host(15, "relay_on", "1"); // _self.sessions_manager.send_to_host(15, "relay_off", "1"); // } // let dev2 = await _self.service_devices.get_device(15, 'io', '2') // if (dev2.event_id == 38) { // console.log("LIGHT KOZIR ON") // _self.sessions_manager.send_to_host(15, "relay_on", "2"); // _self.sessions_manager.send_to_host(15, "relay_off", "2"); // } // let dev3 = await _self.service_devices.get_device(15, 'io', '3') // if (dev3.event_id == 36) { // console.log("LIGHT HOUSE ON") // _self.sessions_manager.send_to_host(15, "relay_on", "3"); // _self.sessions_manager.send_to_host(15, "relay_off", "3"); // } // let dev4 = await _self.service_devices.get_device(15, 'io', '4') // if (dev4.event_id == 46) { // console.log("LIGHT ON HOUSE ON") // _self.sessions_manager.send_to_host(15, "relay_on", "4"); // _self.sessions_manager.send_to_host(15, "relay_off", "4"); // } } if (hours == 1 && minutes == 0 && seconds == 0) { //_self.sessions_manager.send_to_host(15, "relay_on", "2"); //_self.sessions_manager.send_to_host(15, "relay_off", "2"); _self.sessions_manager.send_to_host(14, "relay_off", "1"); // let dev2 = await _self.service_devices.get_device(15, 'io', '2') // if (dev2.event_id == 37) { // console.log("LIGHT KOZIR OFF") // _self.sessions_manager.send_to_host(15, "relay_on", "2"); // _self.sessions_manager.send_to_host(15, "relay_off", "2"); // } } if (hours == 2 && minutes == 0 && seconds == 0) { // LIGHT OFF console.log("LIGHT ZABOR OFF") _self.sessions_manager.send_to_host(15, "relay_on", "1"); _self.sessions_manager.send_to_host(15, "relay_off", "1"); _self.sessions_manager.send_to_host(15, "relay_on", "3"); _self.sessions_manager.send_to_host(15, "relay_off", "3"); _self.sessions_manager.send_to_host(15, "relay_on", "4"); _self.sessions_manager.send_to_host(15, "relay_off", "4"); console.log("LIGHT OFF GAZON") _self.sessions_manager.send_to_host(12, "relay_on", "1"); _self.sessions_manager.send_to_host(12, "relay_off", "1"); // let dev1 = await _self.service_devices.get_device(15, 'io', '1') // if (dev1.event_id == 43) { // console.log("LIGHT ZABOR OFF") // _self.sessions_manager.send_to_host(15, "relay_on", "1"); // _self.sessions_manager.send_to_host(15, "relay_off", "1"); // } // let dev3 = await _self.service_devices.get_device(15, 'io', '3') // if (dev3.event_id == 35) { // console.log("LIGHT HOUSE OFF") // _self.sessions_manager.send_to_host(15, "relay_on", "3"); // _self.sessions_manager.send_to_host(15, "relay_off", "3"); // } // let dev4 = await _self.service_devices.get_device(15, 'io', '4') // if (dev4.event_id == 45) { // console.log("LIGHT ON HOUSE OFF") // _self.sessions_manager.send_to_host(15, "relay_on", "4"); // _self.sessions_manager.send_to_host(15, "relay_off", "4"); // } } if (hours == 10 && minutes == 0 && seconds == 0) { console.log("POOL PUMP ON") _self.sessions_manager.send_to_host(14, "relay_on", "2"); } if (hours == 13 && minutes == 0 && seconds == 0) { console.log("POOL PUMP OFF") _self.sessions_manager.send_to_host(14, "relay_off", "2"); } if (hours == 22 && minutes == 0 && seconds == 0) { console.log("POOL PUMP ON") _self.sessions_manager.send_to_host(14, "relay_on", "2"); } if (hours == 1 && minutes == 0 && seconds == 0) { console.log("POOL PUMP OFF") _self.sessions_manager.send_to_host(14, "relay_off", "2"); } // log.debug('core', 'cron 1 sec'); if (poliv_start) { poliv_timer = 0; poliv_start = false; poliv_started = true; console.log('------- START POLIV') } if (poliv_finish) { poliv_finish = false; // OFF WATER _self.sessions_manager.send_to_host(21, "relay_off", "5"); console.log('------- FINISH POLIV') } if (poliv_started) { if (poliv_timer == 0) { // START TREES _self.sessions_manager.send_to_host(21, "relay_on", "3"); // ON WATER _self.sessions_manager.send_to_host(21, "relay_on", "5"); } poliv_timer++; // ------------------------------------------------------------- // if (poliv_timer == 10 * 60) { // START PALM _self.sessions_manager.send_to_host(21, "relay_on", "4"); } if (poliv_timer == 10 * 60 + 3) { // STOP TREES _self.sessions_manager.send_to_host(21, "relay_off", "3"); } // ------------------------------------------------------------- // if (poliv_timer == 20 * 60) { // START GAZON _self.sessions_manager.send_to_host(21, "relay_on", "2"); } if (poliv_timer == 20 * 60 + 3) { // STOP PALM _self.sessions_manager.send_to_host(21, "relay_off", "4"); } // ------------------------------------------------------------- // if (poliv_timer == 35 * 60) { // STOP poliv_finish = true; _self.sessions_manager.send_to_host(17, "relay_off", "5"); } if (poliv_timer > 35 * 60 + 30) { // STOP ALL _self.sessions_manager.send_to_host(21, "relay_off", "2"); _self.sessions_manager.send_to_host(21, "relay_off", "3"); _self.sessions_manager.send_to_host(21, "relay_off", "4"); poliv_started = false; console.log('------- CLOSE ALL VALVES') } } setTimeout(upd, 1 * 1000); }); setTimeout(async function upd_sec() { // log.debug('core', 'cron 1 sec'); // log.debug(scenario_timers); if(scenario_timers) for (let s of scenario_timers) { if(s['timeout']){ s['timeout']--; }else{ s['timeout'] = s.data.timer; } // log.debug(s); } setTimeout(upd_sec, 1 * 1000); }); } start_poliv() { poliv_start = true; } stop_poliv() { poliv_finish = true; } load_scenario(){ this.service_scenario.get_scenario().then((j) => { if(j == null){ log.debug('load_scenario', "error"); }else{ scenario = j; for (let s of scenario) { try { s.data = JSON.parse(s.json); } catch (err) { log.debug('error', err); } if(s.type == 'timer'){ scenario_timers.push(s); } } } }); } async normalize_phone(phone) { try { if (phone) { phone = phone.trim() let mobile_operators = await this.context.get_mobile_operators() if (phone.substr(0, 1) == '+') { phone = phone.substr(config.prefix.length) } phone = phone.length > 10 ? phone.substr(-10) : phone if (10 == phone.length) { let operator = mobile_operators.find(p => p && p.code == phone.substr(0, p.code.length)) if (operator) { return config.prefix + phone } else { return false } } else { return false } } else { return false } } catch (e) { log.error('core.js', 'normalize_phone', e) } } make_random_string(length, only_digits) { var result = '' var characters = '' if (only_digits) { characters = '0123456789' } else { characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' } var charactersLength = characters.length for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)) } return result } log(msg){ this.sessions_manager.send_to_admins('log',msg); } /* static get_hosts(user_id) { return this.service_devices.get_hosts(user_id); } */ } module.exports = Core;