Init Commit

This commit is contained in:
matt committed 2026-03-04 22:25:13 -08:00
commit 60188b0574
850 files changed
+570948

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

+72
View File
@@ -0,0 +1,72 @@
* **Frontend Framework:** Vue 3 (Composition API) is lightweight, highly reactive, and very popular in the Home Assistant community.
* **Build Tool:** Vite provides an incredibly fast development environment.
* **Home Assistant Integration:** The official `home-assistant-js-websocket` library. This allows real-time state updates and entity control without needing to constantly poll the REST API.
* **Configuration:** A static `config.json` or `config.yaml` file hosted in the public directory. This allows you to edit the rooms and rotation speed without rebuilding the entire application.
* **Hosting:** Since it's a frontend-only SPA, it can be hosted on any lightweight web server (NGINX, Apache, or even directly as a Home Assistant Add-on).
Here is the initial draft of the PRD based on your requirements.
---
# Product Requirements Document (PRD): Dynamic Home Assistant Room Dashboard
## 1. Project Overview
A web-based, dynamic dashboard interfacing with the Home Assistant API. The application provides room-by-room view and control of smart home entities. It features a tabbed navigation system with an automated "Rotate Rooms" mode, allowing the display to cycle through configured rooms at a defined interval.
## 2. Core Features
### 2.1 Configuration-Driven Architecture
* **External Config File:** The application will load a `config.json` (or YAML) file at runtime.
* **Room Management:** Users can create, edit, or remove rooms entirely via the config file without altering the codebase.
* **Entity Mapping:** Each room in the config will specify which Home Assistant entity IDs to display and what type of control they require (e.g., light toggle, climate control, sensor readout).
* **Rotation Interval:** The duration (in seconds) that each room is displayed during the rotation cycle will be defined in the config.
### 2.2 Navigation and UI
* **Room Tabs:** A persistent navigation bar displaying tabs for each configured room, plus a dedicated "Rotate Rooms" tab.
* **Manual Selection:** Clicking a specific room tab immediately stops any active rotation and displays that room's entities.
* **Dynamic Rotation Mode:** * Clicking the "Rotate Rooms" tab initiates the automatic cycle.
* **Visual Indicators:** When active, the "Rotate Rooms" tab will have a distinct active state (e.g., bold border, primary color). Simultaneously, the tab of the *currently displayed room* will be highlighted in a lighter, secondary tone to provide clear context on what is being viewed.
### 2.3 Home Assistant Integration
* **Real-Time State:** The dashboard will connect to Home Assistant via WebSockets to listen for state changes and update the UI instantly.
* **Entity Control:** Users can interact with the UI elements (buttons, sliders) to send service calls back to Home Assistant (e.g., `light.turn_on`, `climate.set_temperature`).
## 3. Initial Scope (Version 1.0)
* **Default Rooms:** The initial configuration will ship with three predefined rooms (e.g., Living Room, Kitchen, Bedroom).
* **Supported Entity Types:** Basic UI components for Lights (toggle/brightness), Switches (toggle), and Sensors (read-only values).
## 4. Proposed Configuration Structure (Example)
```json
{
"settings": {
"rotationIntervalSeconds": 15
},
"rooms": [
{
"id": "living_room",
"name": "Living Room",
"entities": [
{ "entity_id": "light.living_room_main", "type": "light" },
{ "entity_id": "sensor.living_room_temperature", "type": "sensor" }
]
},
{
"id": "kitchen",
"name": "Kitchen",
"entities": [
{ "entity_id": "switch.kitchen_coffee_maker", "type": "switch" }
]
}
]
}
```