Files
Amazon-Alexa-Skills/home-assistant-skill/README.md

4.0 KiB

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.

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.

Details zur Code-Architektur (Factory-Funktionen, wie man neue Sensoren/Geräte ergänzt) stehen in 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