daddelgreis74/smart-home-dashboard

By daddelgreis74

โ€ขUpdated about 23 hours ago

โ€žModern, highly customizable smart home wall panel optimized for tablets

Image
Networking
Internet of things
Monitoring & observability
0

5.0K

daddelgreis74/smart-home-dashboard repository overview

๐ŸŒ Language / Sprache: ย  ๐Ÿ‡ฌ๐Ÿ‡ง Englishโ  ย |ย  ๐Ÿ‡ฉ๐Ÿ‡ช Deutschโ 

โ Smart Home Dashboard v3 ยท Neo Deck ๐Ÿ ๐Ÿ‘ป

A modern, highly customizable smart home wall panel for tablets (optimized for a Lenovo Tab M10 FHD Plus (10.3", 1920ร—1200, 16:10) in landscape mode). Designed for 24/7 continuous operation inside the Fully Kiosk Browser.


โ โšก Quick Start (One-Liner Installation)

The fastest method to set up the dashboard. The installer automatically checks all dependencies (Node.js, Git, npm) on your system and installs any missing components.

โ ๐Ÿ’ป Windows (PowerShell)

Open PowerShell and run the following command:

irm https://raw.githubusercontent.com/Daddelgreis74/smart-home-dashboard/main/install.ps1 | iex

Missing dependencies (like Git or Node.js) are automatically installed using the Windows Package Manager (winget). A desktop shortcut can optionally be created.

โ ๐Ÿง Linux / Raspberry Pi (Bash)

Open your terminal and run the following command:

bash <(curl -fsSL https://raw.githubusercontent.com/Daddelgreis74/smart-home-dashboard/main/install.sh)

Performs a local host installation including automatic systemd service configuration for launching on boot.


โ โœจ Highlights & Features

  • Multi-Theme System: 6 elegant, switchable premium designs (Neo-Aurora Glassmorphism, Cyberpunk Tactical HUD, Cozy Nordic Dark, Retrowave Laser Synth, Terminal Classic, and OLED Stealth) with persistent storage.
  • Adaptive Widgets: Layout adapts dynamically to aspect ratio and Fully Kiosk viewport to prevent cut-off content.
  • Weather Pro: Open-Meteo integration containing temperature, feels-like temperature, min/max, humidity, rain probability, wind speed, air pressure, cloud cover, and UV index (no API key required).
  • Smart Home / Tasmota: Local device management, private subnet scan, toggle buttons with status indicators, and offline dimming.
  • AM2301 Climate Sensor: Custom Tasmota sensor widget with temperature/humidity gauges and dew point.
  • Waste Calendar: .ics upload, upcoming pick-ups, colored trash bin icons, and calendar-day precise Today/Tomorrow display.
  • Interactive Calendar: Manual appointment entries via in-app modal form, live WebSocket sync across dashboards, automated client-side reminders (visual alerts, sound beeps, speech synthesis), and full J.A.R.V.I.S. integration (voice commands to add/query combined waste + personal events).
  • J.A.R.V.I.S. AI Assistant: Integrated voice and text input widget featuring an animated Arc Reactor / Orbital visualizer (audio visualizer for TTS/Listening states), persistent chat history, configurable LLM providers (Gemini, OpenRouter, custom API), and custom system prompts.
  • Live Radio: Preset buttons, integrated station management in preferences, and HLS/MP3/AAC support with autostart protection on tablet wakeup.
  • System Status: Live CPU, RAM, temperature, and network stats via Socket.IO.
  • Fritz!Box Monitor: Live latency and connection status (LEDs) and a real-time call monitor (port 1012) with full-screen live caller popup overlay and call history list.
  • Multi-Language Support (i18n): Complete client-side UI translations for ๐Ÿ‡ฉ๐Ÿ‡ช German, ๐Ÿ‡ฌ๐Ÿ‡ง English, ๐Ÿ‡ซ๐Ÿ‡ท French, ๐Ÿ‡ช๐Ÿ‡ธ Spanish, ๐Ÿ‡ฎ๐Ÿ‡น Italian, ๐Ÿ‡ณ๐Ÿ‡ฑ Dutch, and ๐Ÿ‡ต๐Ÿ‡ฑ Polish.

โ ๐ŸŽจ Dashboard Themes

You can switch the dashboard theme directly inside the settings gear menu (top right):

ThemePreview
Neo-Aurora
Transparent frosted-glass cards with soft ambient auras and glowing widgets.
Neo-Aurora
Cyberpunk HUD
Tactical high-tech look in orange/amber with sharp corners and grid background.
Cyberpunk HUD
Cozy Nordic Dark
Calming, organic aesthetic with sage green accents and soft shadows.
Cozy Nordic Dark
Retrowave Laser Synth
Nostalgic 80s retro look in pink/cyan with a perspective laser floor grid.
Retrowave Laser Synth

โ ๐Ÿ› ๏ธ Manual Installation

If you prefer not to use the automated One-Liner scripts, you can set up the application manually:

โ Windows
  1. Download this repository as a ZIP file (or clone it) and extract it.
  2. Double-click the file in the project root:
    start-dashboard.bat
    
    This batch file checks your paths, installs dependencies if missing (npm install), opens the browser, and starts the server.
โ Linux & macOS
  1. Clone the repository and navigate to the directory:
    git clone https://github.com/Daddelgreis74/smart-home-dashboard.git
    cd smart-home-dashboard
    
  2. Install dependencies and start the app:
    npm install
    npm start
    
    By default, the manual server runs on http://localhost:8443 (or https://localhost:8443 with SSL).

โ โš™๏ธ Advanced Configuration

โ ๐ŸŒ Environment Variables

The application can be configured using the following environment variables:

VariableDefault ValueDescription
PORT8443The primary port of the dashboard web server (HTTPS if SSL certificates exist, otherwise HTTP).
HOST0.0.0.0The IP address interface the server binds to.
DATA_DIR(App directory)Path to the directory where configs (tasmota.json, etc.) are saved.
UPLOAD_DIRDATA_DIR/uploadsPath to the directory where uploaded .ics files are saved.
SSL_DIRDATA_DIR/sslPath to the directory containing SSL/TLS certificates (key.pem and cert.pem).
AUTO_SSLfalseSet to true to automatically generate a self-signed SSL/TLS certificate if missing in SSL_DIR.
โ ๐Ÿ“ž Fritz!Box Monitor & Call Monitor Setup
  • Connection: Your Fritz!Box credentials and call logs are stored locally on your host inside fritzbox.json and fritzbox_calls.json. These files are ignored by Git and never uploaded.
  • Enabling the Call Monitor: To allow the live call monitor on port 1012, you must enable it on your Fritz!Box by dialing the following code on a connected phone:
    • Enable: #96*5* (and dial/call)
    • Disable (optional): #96*6*
โ ๐ŸŒก๏ธ AM2301/Tasmota Climate Sensor

The sensor widget queries a local Tasmota endpoint: GET /api/tasmota/sensor?ip=192.168.178.40 The IP can be configured in the Preferences menu (top right). The backend only accepts private IPv4 addresses.

โ ๐Ÿ—“๏ธ Waste Calendar Date Logic

All-day .ics events are compared using local calendar days. This ensures that tomorrow's pick-up is not incorrectly displayed as "Today" just because the current time is past 00:00.


โ ๐Ÿ” Security & Local Files

The following files contain private configurations and are never uploaded to GitHub (protected via .gitignore):

  • appointments.json, data/, www/, radio.json, tasmota.json, fritzbox.json, fritzbox_calls.json, presence.json, uploads/, node_modules/, ssl/

โ ๐Ÿงช Verification & Checks

You can manually check the files for syntax errors using the following commands:

node --check server.js
node --check public/app.js
npm audit --omit=dev

Developed with ๐Ÿ‘ป by Neo, the digital house ghost.

Tag summary

Content type

Image

Digest

sha256:c8be49064โ€ฆ

Size

65.2 MB

Last updated

about 23 hours ago

docker pull daddelgreis74/smart-home-dashboard