Dateien nach "docs" hochladen

This commit is contained in:
Till-Immer committed 2026-09-22 13:53:39 +00:00
1 parent 73ea0441fb
commit 08ff519216
1 file changed
+78
+78
View File
@@ -0,0 +1,78 @@
# Setup – Simple Bridge
## 1. Raspberry Pi
```bash
cd ~
# Projekt kopieren (oder aus dem ZIP)
cp -r openhab-ai-bridge-simple ~/
cd ~/openhab-ai-bridge-simple
cp .env.example .env
openssl rand -hex 32
nano .env # API_TOKEN eintragen, MQTT_HOST prüfen
```
Audio-Gruppe:
```bash
getent group audio | cut -d: -f3
# Wert in AUDIO_GID in .env
```
Start:
```bash
docker compose build && docker compose up -d
docker compose logs -f
curl http://127.0.0.1:8090/health
```
TTS-Test:
```bash
curl -X POST http://127.0.0.1:8090/api/v1/audio/speak \
-H "Authorization: Bearer DEIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text":"Hallo, das ist ein Test vom Raspberry Pi."}'
```
## 2. openHAB
### Thing
Datei `openhab/ai_bridge.things` nach `$OPENHAB_CONF/things/` kopieren
oder im Main UI manuell anlegen (Broker-UID: `mqtt:broker:72a3b87ef9`).
### Items
Datei `openhab/ai_bridge.items` nach `$OPENHAB_CONF/items/` kopieren
oder Items über die API/MCP anlegen und manuell mit den Channels verlinken.
### JS-Regel (Dialog → Bridge)
- Add-on **JavaScript Scripting** installieren
- Inhalt von `openhab/ai_bridge.rules.js` als Script anlegen
- `BRIDGE_URL` und `BRIDGE_TOKEN` anpassen
### Push-Regel
Wenn Item `AI_Bridge_Notify` sich ändert → openHAB Cloud Notification
mit Text z. B. `KI_DIALOG <session_id>` an dein iPhone senden.
Die Notification muss die Automation auf dem iPhone auslösen.
## 3. iOS Shortcut
1. Automation: „Wenn Benachrichtigung von openHAB empfangen“ und Text enthält `KI_DIALOG`
2. HTTP GET `http://PI-IP:8090/api/v1/active`
Header: `Authorization: Bearer TOKEN`
3. Session-ID aus der Antwort nehmen
4. HTTP GET `.../api/v1/sessions/{id}/context`
5. Messages zu einem Prompt zusammensetzen
6. Aktion **Ask Claude**
7. HTTP POST `.../api/v1/sessions/{id}/answer`
Body: `{"content":"<Claude-Antwort>"}`
8. HTTP POST `.../api/v1/audio/speak`
Body: `{"text":"<Claude-Antwort>"}`
Optional: Button „Gespräch beenden“ → POST `.../sessions/{id}/end`