Files
home-bro-brain/README.md
T

98 lines
2.6 KiB
Markdown

# Home-Bro Brain (The Brain) 🧠
Das Gehirn des Home-Bro Projekts. Diese zentrale API ist für die Bildanalyse mittels YOLOv11 und die Generierung sarkastischer Kommentare zuständig.
## 🚀 Übersicht
Home-Bro Brain empfängt Bilder von Satelliten (Raspberry Pi, Tapo-Kameras, ESP32), analysiert diese auf Unordnung (Tassen, Flaschen, etc.) und gibt daraufhin einen passiv-aggressiven Kommentar zurück.
## 🛠 Tech-Stack
- **FastAPI**: Für die Bereitstellung der API.
- **YOLOv11 (Ultralytics)**: Für die Objekterkennung.
- **OpenCV**: Zur Verarbeitung von Kamera-Streams.
- **Docker**: Optional für das Deployment in einem Container.
---
## 💻 Lokale Installation (Mac/PC)
Folge diesen Schritten, um das Brain lokal auf deinem Rechner zu testen:
### 1. Repository klonen
```bash
git clone git@git.hnrx.net:homelab/home-bro-brain.git
cd home-bro-brain
```
### 2. Virtuelle Umgebung erstellen & aktivieren
```bash
python3 -m venv venv
source venv/bin/activate
```
### 3. Abhängigkeiten installieren
```bash
pip install -r requirements.txt
```
### 4. Konfiguration
Erstelle eine `.env` Datei (nutze `.env.example` als Vorlage):
```bash
cp .env.example .env
```
Füge deine Zugangsdaten für ggf. vorhandene Tapo-Kameras hinzu:
- `TAPO_USER`: Dein Kamera-Benutzername
- `TAPO_PASSWORD`: Dein Kamera-Passwort
### 5. Modell herunterladen
Das YOLO-Modell (`yolo11n.pt`) wird beim ersten Start automatisch heruntergeladen und im Ordner `models/` abgelegt.
---
## 🏃‍♂️ Ausführung
Starte den Server lokal:
```bash
uvicorn app.main:app --host 0.0.0.0 --reload --reload-dir app
```
Das Brain ist nun unter `http://localhost:8000` erreichbar.
### Lokaler Test via Swagger UI
Du kannst die API direkt im Browser testen. Öffne dazu:
`http://localhost:8000/docs`
Dort kannst du den Endpunkt `/analyze/pi` nutzen, um manuell ein Foto hochzuladen und die Reaktion des Home-Bro zu sehen.
---
## 🐳 Docker Deployment (Optional)
Wenn du das Brain dauerhaft (z.B. auf einem Server) betreiben willst:
```bash
docker-compose up -d --build
```
---
## 📡 API Endpunkte
| Methode | Endpunkt | Beschreibung |
| :------ | :--------------------- | :--------------------------------------------- |
| `GET` | `/` | Zeigt das Web-Dashboard an. |
| `GET` | `/api/latest` | Gibt den letzten Analysestatus zurück. |
| `POST` | `/analyze/pi` | Empfängt ein Bild von einem Pi-Satelliten. |
| `GET` | `/analyze/tapo/{room}` | Triggert eine Analyse eines Tapo RTSP-Streams. |