Files

70 lines
4.0 KiB
Markdown

# Home Assistant Alexa Skill
Ein privater, selbst gehosteter Alexa Custom Skill, mit dem du Home Assistant per Sprache abfragen kannst — Stromverbrauch, Stromkosten, sowie Waschmaschine und Trockner. Läuft als **Alexa-hosted Skill** (Node.js), keine eigene AWS-Infrastruktur nötig.
**Hinweis:** Raumtemperaturen laufen mittlerweile **nicht mehr** über diesen Custom Skill, sondern über die native Nabu-Casa-Smart-Home-Integration (Entitäten in der Alexa-App den Räumen zugewiesen). Details dazu in [SETUP.md](SETUP.md).
**Beispiele:**
> "Alexa, frag Home Assistant was ist die aktuelle Leistung"
> → "Der aktuelle Stromverbrauch beträgt 645 Watt."
> "Alexa, frag Home Assistant wie hoch sind die Stromkosten diesen Monat"
> → "Die Stromkosten für diesen Monat betragen 45,23 Euro."
> "Alexa, frag Home Assistant wie lange läuft die Waschmaschine noch"
> → "Die Waschmaschine ist 96 Prozent fertig und endet um 21:30 Uhr."
> "Alexa, frag Home Assistant wie lange läuft der Trockner noch"
> → "Der Trockner ist 40 Prozent fertig und endet um 22:15 Uhr."
---
## Inhalt dieses Repos
```
home-assistant-skill/
├── index.js # Config: ruft die Factories mit den echten Entity-IDs auf,
│ # registriert die Handler
├── factories.js # makeApplianceIntent, makeSimpleSensorIntent,
│ # makeSlotSensorIntent, PERIOD_PHRASES
├── ha-client.js # getHaState() - HA REST API Client
├── static-handlers.js # Launch/Help/Cancel/Fallback/Error (Pflicht-Handler)
├── package.json # Node-Abhängigkeiten (ask-sdk-core, dotenv, ...)
├── .env.example # Vorlage für HA_URL / HA_TOKEN
├── ARCHITECTURE.md # Details zur Factory-Struktur, Beispiele für neue Sensoren
├── SETUP.md # Vollständige Schritt-für-Schritt-Anleitung
└── README.md # diese Übersicht
```
---
## Warum ein Custom Skill (statt nur die native Nabu-Casa-Integration)?
Home Assistant über Nabu Casa bietet bereits einen offiziellen **Smart Home Skill**, der native Sprachbefehle wie "Alexa, wie warm ist es im Wohnzimmer" *ohne* Skill-Namen unterstützt — das funktioniert zuverlässig, sobald die Entität freigegeben und einem Raum in der Alexa-App zugeordnet ist. Für **Temperatur** ist das die einfachste Lösung, und genau darüber laufen Temperaturabfragen bei uns inzwischen — nicht mehr über diesen Custom Skill.
Für alles darüber hinaus (Stromverbrauch, Stromkosten, Gerätestatus wie Waschmaschine/Trockner) hat Alexa aber **keine eingebaute Sprachgrammatik** — die native Integration unterstützt praktisch nur Temperatursensoren. Dafür ist dieser Custom Skill gedacht. Nachteil: Du musst immer den Invocation Name sagen (z.B. "frag Home Assistant ..."), das ist eine feste Grammatikregel von Alexa für alle Custom Skills und lässt sich nicht umgehen.
---
## Voraussetzungen
- Amazon Developer Account (Identitätsverifizierung ggf. erforderlich)
- Home Assistant Instanz, die per HTTPS von außen erreichbar ist (Nabu Casa Cloud, eigener Reverse Proxy oder Tunnel)
- Long-Lived Access Token aus Home Assistant
Die vollständige Schritt-für-Schritt-Anleitung (Skill anlegen, Intents, Slots, Code einrichten, Testen) steht in **[SETUP.md](SETUP.md)**.
Details zur Code-Architektur (Factory-Funktionen, wie man neue Sensoren/Geräte ergänzt) stehen in **[ARCHITECTURE.md](ARCHITECTURE.md)**.
---
## Status
`GetPowerUsageIntent` — aktueller Stromverbrauch (Netzbezug + Keller)
`GetPowerKammerUsageIntent` — aktueller Stromverbrauch Kammer-Serverschrank
`GetEnergyCostIntent` — Stromkosten nach Tag/Woche/Monat
`GetEnergyCostKammerIntent` — Stromkosten Kammer-Serverschrank nach Tag/Woche/Monat
`GetWashingMachineIntent` — Waschmaschinen-Fortschritt und Endzeit
`GetDryerIntent` — Trockner-Fortschritt und Endzeit
✅ Temperatur — läuft über native Nabu-Casa-Smart-Home-Integration, nicht mehr über diesen Skill