Home Assistant Grundlagen mit Kaffeemaschine und Alexa

Ich weiรŸ, ich wiederhole mich, aber eine Smarthome hat seinen Namen nur dann verdient, wenn es wirklich smart ist und Arbeit abnimmt. So habe ich meiner Lelit Siebtrรคgermaschine mit Home Assistant (HA) ein paar Upgrades verpasst. Mit diesem Beitrag versuche ich auch, grundlegende Konzepte von Home Assistant nรคherzubringen. Legen wir los!

Home Assistant Grundlagen mit Kaffeemaschine und Alexa

Wir haben keinen hochgezรผchteten Kaffeeroboter mit 4k-Display und 67 „Kaffeespezialitรคten“ auf Knopfdruck, sondern einen italienischen Chrom-Bomber der Marke Lelit – eine einfache Siebtrรคgermaschine. Sie liefert hervorragenden Kaffee und hat nur 3 Schalter. Da ich Corona-bedingt auch viel im Homeoffice bin, genieรŸe ich meinen Kaffee nun deutlich รถfter als sonst.

Unser Chrom-Bomber von Lelit

Dummerweise schalte ich die Maschine gerne mal an und vergesse sie, weil zwischenzeitlich ein Online-Meeting lรคuft oder ich in meine Tรคtigkeit vertieft bin. Die heizt dann stundenlang vor sich hin, ohne benutzt zu werden. Eine Siebtrรคgermaschine muss auch regelmรครŸig gereinigt (โ€œrรผckgespรผltโ€) werden, was bei hรคufiger Nutzung auch hรคufiger erfolgen muss.

Warum also nicht die Kaffeemaschine fernbedienbar machen und mit einer automatischen Abschaltung versehen? Und wenn wir schon dabei sind, bauen wir auch gleich noch einen Zรคhler fรผr Anzahl der Nutzungen ein, der mich per Alexa an die Reinigung erinnert?

Home Assistant und Alexa erinnern an die Reinigung der Kaffeemaschine
Home Assistant und Alexa erinnern an die Reinigung der Kaffeemaschine

Das ist in Home Assistant recht einfach und elegant umsetzbar, wenn man einmal die grundlegenden Konzepte von Home Assistant verstanden hat. Automation, Integration, Events, Entity-IDs, Scripts, Trigger, Actions, Notifier, Sequence, Service – all das verwirrt am Anfang sehr. Zum Glรผck kann man bei Home Assistant auch immer mehr รผber die Ui konfigurieren und muss nicht mehr alles komplett in YAML schreiben. Ganz ohne geht es aber noch immer nicht. Das ist aber auch gut so, denn mit YAML hat man unendliche Mรถglichkeiten und behรคlt trotzdem die รœbersicht. YAML ist auch nicht programmieren, sondern konfigurieren.

Projekt Teil 1: Steckdose ein- und automatisch ausschalten – Automation und Action

Die grundlegendste Funktion war, die Kaffeemaschine per HA einzuschalten und nach einer vorgegebenen Zeit automatisch abschalten zu kรถnnen. Dazu nutze ich eine TP-Link HS100 WLAN-Steckdose (Neukauf kann ich nicht empfehlen, da bei neuerer Firmware der externe Zugriff unterbunden wurde), die noch herumlag. HA bringt die passende Integration bereits fix und fertig mit. Das ginge aber natรผrlich auch mit einer Sonoff-, Osram Smart+ Plug oder einem Aktor der Gebรคudeautomation. Auch meine LCN-Module habe ich in HA eingebunden.

TP-Link Integration
TP-Link Kasa Integration

Nach der Installation steht die WLAN-Steckdose als neuer Switch und der Entity switch.kaffeemaschine zur Verwendung bereit. Entities kรถnnen Schalter, Werte von Sensoren, Zรคhler, Steuerelemente von Mediaplayern wie z. B. „Play“ oder Eigenschaften wie der Akkustand des Smartphones etc. sein. Sie liefern Informationen oder kรถnnen von HA aus angesprochen werden, um Aktionen auszufรผhren.

Gerรคte, in HA Devices genannt, kรถnnen mehrere Entities haben. Der Aqara Multisensor wรคre ein Device, das als Entities Temperature, Humidity, Pressure, Battery Level hat. Also 1 Device mit 4 Entities.

Mit den MDI-Icons kann man dem Schalter auch gleich noch das passende Icon verpassen, um ihn dann im Frontend z. B. mithilfe einer Entities-Card anzulegen.

Entity-Card im Lovelace-Frontend von Home Assistant
Entity-Card im Lovelace-Frontend von Home Assistant

Nun lรคsst sich die Maschine im Frontend und direkt mit der Taste an der Dose schalten. Das ist zwar schรถn, weil ich die Siebtrรคgermaschine so schon einmal vom Bรผro im Untergeschoss aus anschalten und vorheizen lassen kann, aber noch ist das nur ein verlรคngerter Netzschalter und nicht wirklich smart.

Dazu braucht man eine Automation, die nach einem einstellbaren Zeitraum die Steckdose wieder ausschaltet. Diese Automation lรคsst sich in der aktuellen HA-Version komplett รผber Configuration -> Automation per Menรผ anlegen.

home-assistant-automation1-nachbelichtet


Als Mode wird Single eingestellt, da es sich um ein einzelnes Ereignis handelt. Nun braucht es einen Auslรถser, einen Trigger, der der dann eine Action auslรถst. In diesem Fall mรผssen wir auf den Status der switch.kaffeemaschine Entity schauen, weil wir wissen wollen, ob sie gerade eingeschaltet wurde.

Dazu gibt es den Trigger-Type State mit den Status off und on. Was uns interessiert, ist der Wechsel von off to on als Trigger.

Eine Bedingung „Conditions“ brauchen wir diesem Fall nicht. Man kรถnnte hier aber z. B. festlegen, dass die Automation nur greifen soll, wenn es zwischen 8:00 und 16:00 ist oder wenn auรŸen die Sonne scheint. Ihr versteht was ich meine!

Zum Schluss folgt die Aktion, welche die Automation ausfรผhren soll, wenn der Status von off nach on wechselt. Weil wir mรถchten, dass die Steckdose nach z. B. 30 Minuten automatisch ausschaltet, brauchen wir erst den Action Type Delay und die zugehรถrige Verzรถgerungszeit.

home-assistant-automation2-nachbelichtet

Danach fรผgen wir noch eine Aktion ein, die nach den 30 Minuten ausgefรผhrt wird, nรคmlich das eigentliche Ausschalten der Steckdose.

Hier kommt eine weitere Home Assistant Technik zum Einsatz: Services. HA bringt jede Menge Services mit, die alle mรถglichen Standardaufgaben abdecken. Darunter eben auch, einen Schalter wieder auszuschalten. Man kann jedoch auch eigene Services erstellen, dazu spรคter mehr.

Eine Auswahl an Services in Home Assistant
Eine Auswahl an Services in Home Assistant

Der switch.turn_off Service braucht nur eine Entity, die er ansprechen soll. Im Beispiel ist das wieder unsere switch.kaffeemaschine Entity. Nun geben wir der Automation noch einen Namen, vielleicht auch eine Beschreibung und Schritt 1 ist erledigt.

Wenn man die Kaffeemaschine einschaltet, wird sie nach 30 Minuten automatisch wieder ausgeschaltet.

Projekt Teil 2: Nutzungen protokollieren – Counter

Damit man einen Anhaltspunkt hat, wie oft die Maschine im Einsatz war, soll ein Zรคhler bei jedem Einschalten um 1 erhรถht werden. Natรผrlich spiegelt das nicht wider, wie viele Tassen man tatsรคchlich herausgelassen hat. Die Kaffeeprofis sprechen da ja von „Bezรผgen“. Ich kรถnnte mich immer kaputt lachen, wenn aus jedem Furz eine Wissenschaft samt dazugehรถrigem Jargon gemacht wird. In Foren ist das ganz schlimm. Wie auch immer …

Wir sind zwei Personen im Haushalt. Beide derzeit viel im Homeoffice. Zwei Tassen am Morgen und zwei am Nachmittag. Wir schalten die Maschine zweimal pro Tag ein (plus Fehlalarme, wenn ich die Maschine vergesse). Eine Rรผckspรผlung mit Reinigungsmittel (ich kann Puly Caff empfehlen – ein hervorragender und ergiebiger Kaffeefett-Lรถser), mache ich meist so alle 14 Tage. Also lassen wir den Zรคhler bei 25 eine Benachrichtigung auslรถsen.

Zunรคchst braucht man einen Zรคhler. Diese legt man in der Configuration.yaml an:

counter:
    coffee_counter:
      initial: 0
      step: 1
      icon: mdi:coffeeCode-Sprache: YAML (yaml)

Die Platform ist counter. Der Name der Entitรคt ist coffee_counter. Der Zรคhler beginnt bei 0 und wird bei jedem Aufruf spรคter um 1 erhรถht. Mit icon kann man ihm z. B. eine Kaffeetasse als Symbol zuteilen. Nach einem Restart von Home Assistant steht der Counter als neue Entity counter.coffee_counter zur Verfรผgung. Der Restart ist nach ร„nderungen der configuration.yaml unbedingt erforderlich. Neue Automations, Scripts etc. kรถnnen seit einiger Zeit auch einzeln ohne Neustart des Gesamtsystems aktualisiert werden. Beides findet man unter Configuration -> Server Controls.

Das kรถnnen wir gleich in die vorherige Automation einbauen, in dem man eine weitere Action anlegt. Diesmal VOR dem Delay, denn der Zรคhler soll ja gleich beim Einschalten um eins erhรถht werden. Hier wird nun wieder ein Service aufgerufen, diesmal der counter.increment Service. Dem mรผssen wir nur noch mitteilen, welchen Counter er erhรถhen soll, nรคmlich den counter.coffee_counter. Mit den Pfeilen rechts kann man die Action nun nach oben vor unsere Delay Action schieben.

Im Frontend kรถnnen wir der Entity-Card noch den Counter hinzufรผgen, damit wird die Anzahl der Starts angezeigt bekommen.

Projekt Teil 3: Benachrichtigung auslรถsen – Scripts und Conditions

Da man natรผrlich nicht erst HA aufmachen oder die Home Assistant App รถffnen mรถchte um zu sehen, ob man die Kaffeemaschine reinigen sollte, brauchen wir eine Benachrichtigungsfunktion. Da in der Kรผche ohnehin ein Amazon Echo steht, lassen wir das von Alexa รผbernehmen.

Die Einrichtung von Alexa in Home Assistant werde ich hier nicht beschreiben, da das eine sehr umfangreiche Angelegenheit ist. Man kann aber auch die Home Assistant Cloud von Nabu Casa abonnieren. Damit bekommt man fรผr $5 die Alexa und Google Assistant Einbindung auf einfachste Weise, einen sicheren Fernzugang und unterstรผtzt auch noch die Entwicklung von Home Assistant.

Um die Sache etwas รผbersichtlicher zu machen, legen wir eine weitere Automation an „Kaffeemaschine Reinigen Alexa„. Auch hier wieder der Single-Modus. Als Trigger wieder State wenn die Entitรคt switch.kaffeemaschine von off auf on wechselt.

Nun kommt etwas Neues: eine Condition, also Bedingung. Unsere Bedingung ist, dass die Action nur ausfรผhrt wird, wenn die switch.kaffeemaschine auf on UND der Numeric state des counter.coffee_counter รผber 25 ist.

Home Assistant Conditions

Die Action ist wieder ein Service. Der Service muss nun ein Script aufrufen, das wir selbst erstellen: Alexa Sprachausgabe. Dazu geht es in Configuration->Scripts und hier wird ein neues Benutzer-Script angelegt. Einer der groรŸen Vorteile eines Scripts in Home Assistant ist, dass man beliebig viele Actions pro Script ausfรผhren (Sequence) und Scripte flexibel wiederverwenden kann, sofern man sie intelligent mit Variablen gestaltet.

Durch den Einsatz von Variablen in Scripts, kann man letztere universell einsetzen. In unserem Beispiel kann man Alexa damit beliebige Sรคtze in den Mund, Pardon, Lautsprecher legen, die von der Action an das Script รผbergeben werden.

Anstatt im Script eine fixe Nachricht in dieser Form zu integrieren:

message: 'Bitte die Kaffeemaschine reinigen'Code-Sprache: YAML (yaml)

Nehmen wir eine Variable:

message: '{{ message }}'Code-Sprache: YAML (yaml)

In der Automation kann nun das neue Script aufgerufen werden. Als Service Data wird nun der Name der Variable mit der gewรผnschten Sprachausgabe รผbergeben. Damit kann das Script immer wieder eingesetzt werden.

Damit ermahnt uns Alexa nun beim รœberschreiten von 25 Nutzungen der Kaffeemaschine, diese zu reinigen. Das macht sie nun bei jedem Einschalten bis …

Reinigungszรคhler zurรผcksetzen

… wir den Reinigungszรคhler zurรผcksetzen. Dazu nutzen wir eine Button-Card im Frontend.

Button-Card zum Rรผcksetzen des Counters

Mit einem Klick auf „Show Code Editor“ kรถnnen wir in Zeile 6 die Counter-Entity festlegen, nรคmlich counter.coffee_counter:

type: button
hold_action:
  action: call-service
  service: counter.reset
  service_data:
    entity_id: counter.coffee_counter
tap_action:
  action: more-info
show_icon: true
show_name: true
icon: 'mdi:spray-bottle'
name: Gereinigt
Code-Sprache: YAML (yaml)

Damit man den Zรคhler nicht versehentlich zurรผckstellen kann, habe ich die hold_action als Auslรถser genommen. Damit muss man das Icon lange drรผcken, damit die Aktion ausgefรผhrt wird. Mit einem langen Klick auf die Button-Card wird nun also wieder ein Service ausgefรผhrt, der die HA-Funktion counter.reset auslรถst.

Das Zurรผcksetzen kรถnnte man natรผrlich auch รผber einen physischen Taster machen, der in Home Assistant eingebunden ist. Hier bieten sich z. B. die gรผnstigen Aqara Taster an. Noch komfortabler wรคre es, wenn man Alexa sagen kรถnnte, dass sie den Zรคhler zurรผcksetzen soll. Das kommt in einem weiteren Beitrag.

In diesem Beitrag haben wir nun folgende Home Assistant Techniken verwendet:

  • Integrations
  • Automation
  • Events
  • Entity-IDs
  • Scripts
  • Trigger
  • Actions
  • Notifier
  • Service
  • Button-Cards im Frontend (Lovelace)
  • Variablen

Hat man den Zusammenhang zwischen den unterschiedlichen Funktionen erst einmal verstanden, kann man viele Automationen auf die gleiche Art und Weise selbst gestalten. Mรถgliche Erweiterungen zu meinem Beispiel wรคre etwa, 5 Minuten bevor die Maschine wieder ausgeschaltet wird per Alexa daran zu erinnern, noch einen Kaffee zu machen. Man kรถnnte den Zeitraum fรผr die automatische Abschaltung auch im Frontend einstellbar mache. Und und und …

7 Antworten zu „Home Assistant Grundlagen mit Kaffeemaschine und Alexa“

Schreibe einen Kommentar zu Stefan Antworten abbrechen

Deine E-Mail-Adresse wird nicht verรถffentlicht. Erforderliche Felder sind mit * markiert

  1. Timm

    Nachteil des Delay von 30 Minuten fรผr die Kaffeemaschine in der Automation ist, dass beispielsweise bei einem Neustart des Home Assistant der Timer nicht mehr lรคuft, weil da alle laufenden Automatisierungen gestoppt werden. Besser wรคre es, ein Event zu werfen, das einen Neustart des Home Assistant รผberlebt. Eine Automation sollte nach Mรถglichkeit nicht lรคnger als wenige Sekunden laufen.

    Bei der Kaffeemaschine ist das nicht so kritisch, aber bei anderen Aktionen kรถnnte es mehr Nachteile haben, wenn etwas nach der vorgegebenen Zeit nicht passiert.

  2. BR

    Hi, danke fรผr den Artikel. Eine Idee fรผr den counter: Nimm eine KP115 statt der HS. รœber das Zรคhlen der Stromspitzen kรถnnte man ggf herausfinden, wie viele Tassen wirklich gezogen wurden. Weiterhin alles Gute

    1. Ist mir klar, ich habe auch diverse Sonoff Pow etc. Das ist aber an dieser Stelle wirklich nicht kritisch. Zudem ist es beim Siebtrรคger nicht ganz so einfach, echte „Bezรผge“ zu ermitteln, da ja der Boiler stรคndig beheizt wird und das die markanten Spitzen wรคren. Die Pumpe beim Extrahieren fรคllt da nicht ins Gewicht.

  3. Stefan

    Hi,

    welches sind die Voraussetzungen fรผr den Dienst „notify.alexa_media_wohnen“ ?

    Muss das HACS Addon Alexa Media Player installiert werden ?

    Danke und GrรผรŸe

  4. Matthias

    Hallo,

    ich bin gerade dabei auch Home Assistant einzurichten.

    Ich wรผrde das ganze gerne auf einem Raspberry Pi4 und Docker aufsetzten.

    Leider schaffe ich keine Installation welche den Supervisor beinhaltet.

    Lรคuft das System bei dir auch in einem Docker Container?

    GrรผรŸe
    Matthias

    1. Auf dem Raspi solltest du unbedingt Hassio nehmen. Das ist ein komplettes Image fรผr den Raspi mit angepasstem Betriebssystem speziell fรผr Home Assistant, das auch regelmรครŸig upgedatet wird. PiOS und Docker ist da einfach nicht sinnvoll.

      Bei mir lรคuft es auf einem HP Microserver Gen8 unter Unraid als eigene VM.

      https://www.home-assistant.io/hassio/installation/