Zum Inhalt springen
Alles Automatisch

Home Assistant Notifications mit ChatGPT: Smarte & Individuelle KI-Benachrichtigungen

Erfahre, wie du mit ChatGPT und Home Assistant intelligente, kontextbezogene Benachrichtigungen erstellst. Inklusive Code-Snippets für flexible Push-Nachrichten, Sprachausgabe & mehr – powered...

Home Assistant Notifications mit ChatGPT: Smarte & Individuelle KI-Benachrichtigungen

ChatGPT Benachrichtigungen & Nachrichten in Home Assistant

Mit diesen Code-Snippets kannst du Home Assistant so erweitern, dass Benachrichtigungen und Nachrichten von ChatGPT (OpenAI) generiert werden. Das ermöglicht dir, deutlich individuellere und kontextbezogene Texte zu verschicken – zum Beispiel als Push-Benachrichtigung, Sprachausgabe oder als Nachricht im Dashboard. Der Vorteil: Die Nachrichten sind nicht mehr statisch, sondern können flexibel und sogar humorvoll auf Situationen reagieren.

Im ersten Schritt wird ein rest_command definiert, der die ChatGPT-API anspricht. Damit kann Home Assistant beliebige Prompts an ChatGPT senden und die Antwort weiterverarbeiten. Das ist besonders nützlich, wenn du Benachrichtigungen persönlicher oder abwechslungsreicher gestalten möchtest, etwa für Begrüßungen, Erinnerungen oder Statusmeldungen.

yaml
1rest_command:
2  send_to_gpt:
3    url: "https://api.openai.com/v1/chat/completions"
4    method: POST
5    headers:
6      Authorization: "Bearer YOUR_API_KEY"
7      Content-Type: "application/json"
8    payload: >
9      {
10        "model": "gpt-3.5-turbo",
11        "messages": [{"role": "user", "content": "{{ prompt }}"}],
12        "max_tokens": 100
13      }

Das obige Snippet richtet den REST-Befehl ein. Er nimmt einen prompt als Variable entgegen und schickt ihn an die ChatGPT-API. Die Antwort kann dann in Automatisierungen weiterverwendet werden. Die Konfiguration ist flexibel: Du kannst den System-Text und die Prompts nach deinen Vorstellungen anpassen.

Ein weiteres Snippet zeigt, wie du deinem System Kontext geben kannst. Hier wird eine Übersicht aller Bereiche und Geräte im Smart Home generiert. Diese Informationen können als Teil des System-Prompts an ChatGPT übergeben werden, damit die KI besser auf Fragen reagieren kann.

text
1This smart home is controlled by Home Assistant.
2
3An overview of the areas and the devices in this smart home:
4{%- for area in areas() %}
5  {%- set area_info = namespace(printed=false) %}
6  {%- for device in area_devices(area) -%}
7    {%- if not device_attr(device, "disabled_by") and not device_attr(device, "entry_type") and device_attr(device, "name") %}
8      {%- if not area_info.printed %}
9
10{{ area_name(area) }}:
11        {%- set area_info.printed = true %}
12      {%- endif %}
13- {{ device_attr(device, "name") }}{% if device_attr(device, "model") and (device_attr(device, "model") | string) not in (device_attr(device, "name") | string) %} ({{ device_attr(device, "model") }}){% endif %}
14    {%- endif %}
15  {%- endfor %}
16{%- endfor %}
17
18Answer the user's questions about the world truthfully.
19
20If the user wants to control a device, reject the request and suggest using the Home Assistant app.

Dieses Template kann als Teil des System-Kontexts an ChatGPT übergeben werden. So weiß die KI, welche Geräte und Bereiche vorhanden sind und kann auf Rückfragen entsprechend reagieren. Das erhöht die Qualität der Antworten, gerade wenn du ChatGPT als interaktiven Assistenten im Smart Home nutzen möchtest.

Beispiel: Automatisierte, KI-generierte Begrüßung

Das folgende Beispiel zeigt eine praktische Automatisierung: Sobald ein bestimmtes iOS-Event ausgelöst wird (z. B. durch CarPlay), wird ChatGPT gebeten, eine witzige Begrüßung zu generieren. Die Antwort wird dann per Text-to-Speech im Haus ausgegeben.

yaml
1alias: "CarPlay: Papa ist zuhause"
2description: ""
3triggers:
4  - trigger: event
5    event_type: ios.action_fired
6    event_data:
7      actionName: Papa
8conditions: []
9actions:
10  - action: rest_command.send_to_gpt
11    response_variable: gpt_response
12    data:
13      prompt: >-
14        Gib einen witzigen Satz, der im Kern sagt, dass Papa wieder zuhause ist.
15  - wait_template: "{{ gpt_response != 'unknown' and gpt_response != '' }}"
16  - action: tts.speak
17    metadata: {}
18    data:
19      cache: true
20      media_player_entity_id: media_player.esszimmer
21      message: |
22        {{ gpt_response.content.choices[0].message.content }}
23    target:
24      entity_id: tts.google_de_de
25mode: single

Hier wird der REST-Befehl genutzt, um einen individuellen Text zu erzeugen. Die Antwort von ChatGPT landet in der Variable gpt_response und wird anschließend als Sprachausgabe über Google TTS wiedergegeben. So kannst du Begrüßungen, Hinweise oder Statusmeldungen kreativ und variabel gestalten.

Weitere Ideen für KI-basierte Benachrichtigungen

Mit ChatGPT kannst du viele Arten von Benachrichtigungen automatisieren und personalisieren. Die folgenden Beispiele zeigen, wie du tägliche Motivationsbotschaften, Gesundheitswarnungen oder Erinnerungen an Termine mit Hilfe von KI generieren lassen kannst.

yaml
1automation:
2  - alias: 'Daily Motivation'
3    triggers:
4      - trigger: time
5        at: '08:00:00'
6    actions:
7      - action: rest_command.send_to_gpt
8        response_variable: gpt_response
9        data:
10          prompt: "Bitte generiere eine tägliche Motivationsbotschaft, um den Tag positiv zu beginnen."
11      - wait_template: "{{ gpt_response != 'unknown' and gpt_response != '' }}"
12      - action: notify.your_notification_service
13        data:
14          message: "{{ gpt_response.content.choices[0].message.content }}"

Die Automatisierung oben verschickt jeden Morgen um 8 Uhr eine motivierende Nachricht, die von ChatGPT generiert wird. Die Benachrichtigung wird über deinen bevorzugten Notification-Service versendet.

yaml
1automation:
2  - alias: 'Health Alert'
3    triggers:
4      - trigger: state
5        entity_id: sensor.your_fitness_tracker
6        to: 'low_activity'
7    actions:
8      - action: rest_command.send_to_gpt
9        response_variable: gpt_response
10        data:
11          prompt: "Die Aktivität war heute niedrig. Bitte generiere eine Gesundheitswarnung mit Empfehlungen zur Verbesserung."
12      - wait_template: "{{ gpt_response != 'unknown' and gpt_response != '' }}"
13      - action: notify.your_notification_service
14        data:
15          message: "{{ gpt_response.content.choices[0].message.content }}"

Dieses Beispiel sendet eine Gesundheitswarnung, wenn der Aktivitätssensor einen niedrigen Wert meldet. ChatGPT erstellt einen passenden Text mit Empfehlungen, wie du deine Aktivität steigern kannst.

yaml
1automation:
2  - alias: 'Event Reminder'
3    triggers:
4      - trigger: state
5        entity_id: calendar.your_event_calendar
6        to: 'on'
7    actions:
8      - action: rest_command.send_to_gpt
9        response_variable: gpt_response
10        data:
11          prompt: "Es gibt heute ein wichtiges Ereignis: {{ states('calendar.your_event_calendar') }}. Bitte generiere eine freundliche Erinnerung."
12      - wait_template: "{{ gpt_response != 'unknown' and gpt_response != '' }}"
13      - action: notify.your_notification_service
14        data:
15          message: "{{ gpt_response.content.choices[0].message.content }}"

Auch Erinnerungen an Termine lassen sich so persönlicher gestalten. Die KI formuliert eine freundliche Erinnerung, sobald im Kalender ein Ereignis ansteht.

Mit diesen Beispielen kannst du die Möglichkeiten von Home Assistant und ChatGPT kombinieren, um dein Smart Home noch individueller und interaktiver zu gestalten. Die Snippets lassen sich flexibel anpassen und bieten einen guten Einstieg, um eigene Ideen umzusetzen.

Hier wird im Video erklärt, wie „Bessere Home Assistant Notifications durch ChatGPT | AI Notifications | KI Benachrichtigungen“ korrekt umgesetzt wird.

Snippet teilen