myron b014fd96ab Fix HA toggle (Rocket Loader) and network map cleanup
HA toggle broken after modularization: separate <script src> files are
deferred by Cloudflare Rocket Loader, so inline onchange handlers fire
before toggleHA() is defined. Fix: add data-cfasync="false" to all
four JARVIS script tags to prevent Rocket Loader interference.

Network map cleanup:
- Deduplicate agent devices by hostname — two homeassistant agents
  (10.48.200.97 and 172.30.32.1) now show as one node; prefer online
  over offline, then most-recently-seen
- Offline agents excluded from inner rings — jellyfin (offline June 3)
  and mini_it12 (offline June 12) no longer appear on the map
- DB-pinned devices (Yealink phones) unaffected; still show in devices ring

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 03:20:37 +00:00

JARVIS

Iron Man-style AI assistant for home and network management.

Features

  • Home Assistant control (lights, climate, scenes, switches)
  • Proxmox VM management (start/stop/status)
  • 4-tier chat: KB intents > Groq cloud > Ollama local > Claude API
  • Real-time status bar (HA, Proxmox, DigitalOcean)
  • Iron Man HUD at jarvis.orbishosting.com

Stack

  • PHP 8.x / Apache / MySQL on Ubuntu 24.04
  • Ollama VM at 10.48.200.95 (llama3.2:1b)
  • Groq API (llama-3.3-70b / compound-mini with web search)
  • Claude API (Anthropic) final fallback

Setup

cp api/config.example.php api/config.php Fill in all credentials in config.php before running.

Key Files

  • public/index.html Iron Man HUD frontend
  • public/api.php API router
  • api/config.example.php Config template
  • api/endpoints/chat.php 4-tier chat handler
  • api/endpoints/facts_collector.php HA entity sync cron
  • api/lib/kb_engine.php KB intent engine
  • api/lib/db.php PDO database wrapper
S
Description
Mirror of github.com/myronblair/jarvis
Readme 856 KiB
Languages
PHP 43.3%
Python 29.9%
JavaScript 14.9%
CSS 6.2%
Shell 2.2%
Other 3.5%