Simplify home view and drop motion detection

- Top nav tabs (Home/Media/Cameras/Settings) replace the right-side button cluster
- Home view now shows calendar 90% / todo 10% vertically; lights, locks,
  alarm, thermostats removed from the dashboard since the photo frame now
  owns the idle space and the nav covers the remaining sections
- Motion detection deleted: the go2rtc-based Kitchen_Panel poll was only
  there to wake the screen before idle timeout, which photo-frame exit on
  touch replaces
This commit is contained in:
root
2026-04-14 13:27:20 -05:00
parent 5fe7bc71ef
commit 1dd32c6afe
6 changed files with 82 additions and 163 deletions

View File

@@ -4,14 +4,12 @@ import * as fs from 'fs';
import { ScreenManager } from './services/ScreenManager';
import { PresenceDetector } from './services/PresenceDetector';
import { FrigateStreamer } from './services/FrigateStreamer';
import { MotionDetector } from './services/MotionDetector';
import { PhotoManager } from './services/PhotoManager';
let mainWindow: BrowserWindow | null = null;
let screenManager: ScreenManager | null = null;
let presenceDetector: PresenceDetector | null = null;
let frigateStreamer: FrigateStreamer | null = null;
let motionDetector: MotionDetector | null = null;
let photoManager: PhotoManager | null = null;
let powerSaveBlockerId: number | null = null;
@@ -63,23 +61,6 @@ function createWindow(): void {
// Initialize services
screenManager = new ScreenManager(mainWindow);
// Initialize motion detector (runs in main process, not throttled by browser)
// Uses file size comparison which is more reliable for JPEG streams
motionDetector = new MotionDetector({
go2rtcUrl: 'http://192.168.1.241:1985',
cameraName: 'Kitchen_Panel',
sensitivityThreshold: 5, // % file size change to trigger (5% = significant motion)
checkIntervalMs: 2000, // Check every 2 seconds for responsiveness
});
motionDetector.on('motion', () => {
console.log('MotionDetector: Motion detected, waking screen');
screenManager?.wakeScreen();
mainWindow?.webContents.send('motion:detected');
});
motionDetector.start();
// Photo frame slideshow source
photoManager = new PhotoManager(resolvePhotosDir());
console.log(`PhotoManager: watching ${photoManager.getDir()}`);
@@ -243,7 +224,6 @@ app.on('window-all-closed', () => {
}
presenceDetector?.stop();
frigateStreamer?.stop();
motionDetector?.stop();
if (process.platform !== 'darwin') {
app.quit();