UNPKG

@octopan/telegram-green-house

Version:

Monitor & control green-house with Telegram & Raspberry Pi

41 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.start = void 0; const moment = require('moment'); let start = (config, greenHouse) => { const timeRangeRegex = /^(\d{2}):(\d{2})-(\d{2}):(\d{2})$/; let match = config.bot.switchOnLightsTimeRange.match(timeRangeRegex); if (!match) { console.log('Light switcher > Could not parse time confifuration. Light switching is disabled'); return; } let startHour = parseInt(match[1]); let startMinute = parseInt(match[2]); let endHour = parseInt(match[3]); let endMinute = parseInt(match[4]); console.log(`Light switcher > Parsed config > ${startHour}:${startMinute}-${endHour}:${endMinute}`); const lightConfiguration = { startTicks: moment().startOf('day').set('hour', startHour).set('minute', startMinute) - moment().startOf('day'), endTicks: moment().startOf('day').set('hour', endHour).set('minute', endMinute) - moment().startOf('day') }; let isSwitchedOn = false; greenHouse.setLights(isSwitchedOn); function updateLightsState() { let todayStart = moment().startOf('day') + lightConfiguration.startTicks; let todayEnd = moment().startOf('day') + lightConfiguration.endTicks; let now = moment().valueOf(); let switchOn = false; if (now > todayStart && now < todayEnd) { // Turned on time switchOn = true; } if (isSwitchedOn != switchOn) { greenHouse.setLights(switchOn); console.log('Light switcher > Switched lights ' + (switchOn ? 'on' : 'off')); isSwitchedOn = switchOn; } } updateLightsState(); setInterval(updateLightsState, 1000 * 10); // Update state every 10 sec }; exports.start = start; //# sourceMappingURL=lightSwitcher.js.map