67 lines
2.5 KiB
HTML
67 lines
2.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Kiosk Dashboard</title>
|
|
<style>
|
|
body, html {
|
|
margin: 0;
|
|
padding: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
iframe {
|
|
width: 100%;
|
|
height: 100%;
|
|
border: none;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<iframe id="dashboard" src="http://homeassistant.local:8123/dashboard-kiosk/0"></iframe>
|
|
|
|
<script>
|
|
// Wait for iframe to load, then inject scroll script
|
|
document.getElementById('dashboard').addEventListener('load', function() {
|
|
const iframe = this;
|
|
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
|
|
|
// Wait a bit for content to load
|
|
setTimeout(() => {
|
|
try {
|
|
const script = iframeDoc.createElement('script');
|
|
script.textContent = `
|
|
(function() {
|
|
const cards = Array.from(document.querySelectorAll('ha-card'));
|
|
|
|
// Make cards full height and larger
|
|
cards.forEach(card => {
|
|
card.style.minHeight = window.innerHeight + 'px';
|
|
card.style.fontSize = '2.5em';
|
|
const content = card.querySelector('.card-content');
|
|
if (content) content.style.fontSize = '2em';
|
|
});
|
|
|
|
// Auto-scroll
|
|
let i = 0;
|
|
setInterval(() => {
|
|
if (cards.length === 0) return;
|
|
i = (i + 1) % cards.length;
|
|
cards[i].scrollIntoView({ behavior: 'smooth', block: 'start' });
|
|
}, 5000);
|
|
|
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
console.log('Auto-scroll enabled: ' + cards.length + ' cards');
|
|
})();
|
|
`;
|
|
iframeDoc.head.appendChild(script);
|
|
} catch (e) {
|
|
console.error('Could not inject script (CORS):', e);
|
|
}
|
|
}, 3000);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|