function loadConfig(url) { var req = new XMLHttpRequest(); req.open('GET', url + '?cache=' + Math.random(), false); req.onreadystatechange = function(){ if (req.readyState === 4) { var s = document.createElement('script'); s.appendChild(document.createTextNode(req.responseText)); document.head.appendChild(s); } }; req.send(null); } function createGauge(position, label, sensor, append) { if (!append) { append = '@attributes.unit_of_measurement' } return { position: position, type: TYPES.GAUGE, title: label, id: 'sensor.' + sensor, state: false, value: function(item, entity) { num = parseFloat(entity.state); return num && !isNaN(num) ? num.toFixed(1) : num; }, settings: { size: 120, type: 'arch', min: 0, max: 100, cap: 'round', thick: 10, append: append, duration: 500, thresholds: { 0: { color: '#16a085'}, 66: { color: '#f1c40f' }, 70: { color: '#e74c3c' } }, fractionSize: 1, } } } // Load secrets loadConfig("includes/config/secrets.js"); // Load pages loadConfig("includes/pages/overview.js"); loadConfig("includes/pages/humidity.js"); loadConfig("includes/pages/cctv.js"); loadConfig("includes/pages/misc.js"); // Global config var CONFIG = { customTheme: [CUSTOM_THEMES.TRANSPARENT], transition: TRANSITIONS.ANIMATED_GPU, entitySize: ENTITY_SIZES.SMALL, serverUrl: "http://" + CONFIG_SECRETS.homeAssistantHost, wsUrl: "ws://" + CONFIG_SECRETS.homeAssistantHost + "/api/websocket", authToken: null, // nope, don't use that... debug: false, pingConnection: true, tileSize: 150, tileMargin: 8, groupMarginCss: '20px 40px', events: [], timeFormat: 24, menuPosition: MENU_POSITIONS.BOTTOM, hideScrollbar: true, groupsAlign: GROUP_ALIGNS.HORIZONTALLY, // https://github.com/resoai/TileBoard/wiki/Header-configuration header: { styles: { padding: '10px 20px 0', fontSize: '22px' }, right: [ { type: HEADER_ITEMS.TIME, } ], }, // https://github.com/resoai/TileBoard/wiki/Screensaver-configuration /*screensaver: { timeout: 5, // after 5 mins of inactive slidesTimeout: 3, // 10s for one slide styles: { fontSize: '40px' }, leftBottom: [{ type: SCREENSAVER_ITEMS.DATETIME }], // put datetime to the left-bottom of screensaver slides: [ { bg: 'images/bg1.jpeg' }, { bg: 'images/bg2.png', rightTop: [ // put text to the 2nd slide { type: SCREENSAVER_ITEMS.CUSTOM_HTML, html: 'Welcome to the TileBoard', styles: { fontSize: '40px' } } ] }, { bg: 'https://images.unsplash.com/photo-1508138221679-760a23a2285b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1267&q=80' } ] },*/ pages: [ PAGE_OVERVIEW, PAGE_HUMIDITY, PAGE_CCTV, PAGE_MISC, ], }