# 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