admins: - username: admin password_hash: "$2b$10$ZW4Jy7ctIt7k9V1AogFky.v4wedLF92t4/ZlT9kWPlIiCmdQNzJ.C" # password: adminpass discord_id: "1234567890" lockdown: false - username: lockdown password_hash: "$2b$10$n0L0oe1ZQy7IgM.FvVAzb.aXz43uaZWFiT0wr.05uNoVIDLawmrCG" # password: lockdownpass discord_id: "0987654321" lockdown: true timezone: "America/New_York" llmCommentary: enabled: false model: "qwen2.5:7b-instruct" ollamaServer: "http://127.0.0.1:11434" frequency: 120000 media: # Base address for mediaMTX (scheme + host + optional port/path). The UI will always request # http:////whep # Example: http://192.168.0.86:8889/video whepBaseUrl: "http://192.168.0.86:8889/video" audioForward: enabled: true ffmpegBin: "ffmpeg" streamSuffix: "-fwd" maxUploadBytes: 8388608 audioLevels: # Gains are multipliers (0.0 - 4.0) applied globally to all rovers. hornGain: 1.0 ttsGain: 1.0 forwardGain: 1.0 homeAssistant: url: "http://homeassistant.local:8123" token: "REPLACE_WITH_LONG_LIVED_TOKEN" entities: - id: "light.lab_main" name: "Lab Lights" - id: "switch.dock_power" name: "Dock Power" # type is optional; if omitted it is inferred from the entity id (light/switch) roomCameras: - id: "lobby" name: "Lobby Camera" description: "Wide shot of the staging area." url: "http://192.168.0.50/snapshot.jpg" streamUrl: "http://192.168.0.50/stream.mjpg" - id: "workshop" name: "Workshop Bench" description: "Shows the workbench and charging docks." url: "http://192.168.0.51/snapshot.jpg" streamUrl: "http://192.168.0.51/stream.mjpg" vision: humanDetection: enabled: false confidenceThreshold: 0.55 # Continuous presence windows: # - 30s => rover TTS warning # - 60s => Discord human alert ttsDelayMs: 30000 discordDelayMs: 60000 # Tolerates brief detector misses before declaring "cleared". clearWindowMs: 3000 # After a Discord alert, require clear + cooldown before next alert. cooldownMs: 900000 maxInferenceFpsPerCamera: 3 discord: token: "DISCORD_BOT_TOKEN" guildId: "123456789012345678" # optional; bot works in any guild it's invited to siteUrl: "https://rover.example.com" channels: announcements: "123456789012345678" adminAlerts: "123456789012345678" # chat bridge is configured per guild via `rs bridge` commands replay: "123456789012345678" humanAlerts: "123456789012345678" roles: announcementPing: "123456789012345678" adminPing: "123456789012345678" humanAlertPing: "123456789012345678" socials: - id: "discord" label: "Discord" url: "https://discord.gg/your-invite" - id: "kofi" label: "Ko-fi" url: "https://ko-fi.com/your-handle" - id: "wiki" label: "Wiki" url: "https://wiki.example.com" - id: "throne" label: "Throne" url: "https://throne.me/yourname"