Sprachassistenten in Home Assistant gibt es viele – Alexa, Google Assistant, der hauseigene Assist. Aber was, wenn du dein Smart Home einfach anrufst? Kein spezielles Gerät, keine Mikrofon-Hardware, kein Wake-Word – sondern ganz klassisch über ein Telefongespräch via SIP?
Genau das ermöglicht das Add-on ha-sip von GitHub-User arnonym. Das App verbindet Home Assistant mit einem SIP-Konto, bei den meisten von uns läuft das direkt über die FritzBox, und macht daraus ein vollwertiges Sprachsteuerungs-System per Telefon. Eingehende und ausgehende Anrufe lassen sich als Auslöser für Automationen nutzen, Sprachnachrichten werden per TTS ausgegeben, und über DTMF-Töne (Tastendruck während des Gesprächs) kannst du durch Menüs navigieren und direkt Geräte schalten.
Die offizielle Anleitung auf GitHub deckt die Grundkonfiguration gut ab. Sie richtet sich aber an Nutzer, die bereits Erfahrung mit Home Assistant und YAML haben. Ich habe das Setup in meinem YouTube-Video Schritt für Schritt gezeigt und dabei festgestellt, dass vor allem die Automatisierung für ausgehende Anrufe Anpassungen braucht, damit alles zuverlässig funktioniert und meine Anforderungen abdeckt.
Den angepassten Code stelle ich Dir in diesem Beitrag zur Verfügung sodass du mit einer optimierten Basis starten kannst.
Eingehender Home Assistant Anruf über HA-SIP und AI Sprachassistent
alias: VoIP eingehender Home Assistant Anruf AI
description: ""
triggers:
- trigger: webhook
allowed_methods:
- POST
- PUT
local_only: false
webhook_id: sip_call_webhook_id
conditions:
- condition: template
value_template: |-
{{ trigger.json.event == 'incoming_call' and
trigger.json.parsed_caller in ['Dein-Interne-Rufnummer', 'Deine-Rufnummer'] }}
actions:
- action: hassio.app_stdin
data:
app: "{{ha_sip_slug}}"
input:
command: answer
number: "{{ trigger.json.internal_id }}"
webhook_to_call:
call_disconnected: hangup_voip_assistant
menu:
post_action: noop
- data:
app: "{{ha_sip_slug}}"
input:
command: dial
number: "{{ ha_assistant_sip_url }}"
ring_timeout: 30
webhook_to_call:
call_established: incoming_voip_call_established
action: hassio.app_stdin
- wait_for_trigger:
- trigger: webhook
allowed_methods:
- POST
- PUT
local_only: false
webhook_id: incoming_voip_call_established
timeout:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- data:
app: "{{ha_sip_slug}}"
input:
command: bridge_audio
number: "{{ trigger.json.internal_id }}"
bridge_to: "{{ ha_assistant_sip_url }}"
action: hassio.app_stdin
variables:
ha_sip_slug: c7744bff_ha-sip
ha_assistant_sip_url: sip:Dein-SIP-Benutzer@Dein-HA-IP:Deine-VoIP-Port
mode: single
Anrufe beenden
alias: VoIP Anruf beenden
description: ""
triggers:
- trigger: webhook
allowed_methods:
- POST
- PUT
local_only: false
webhook_id: hangup_voip_assistant
conditions: []
actions:
- action: hassio.app_stdin
data:
app: "{{ha_sip_slug}}"
input:
command: hangup
number: "{{ ha_assistant_sip_url }}"
variables:
ha_sip_slug: c7744bff_ha-sip
ha_assistant_sip_url: sip:Dein-SIP-Benutzer@Deine-HA-IP:Dein-SIP-Port
mode: single
Ausgehender Home Assistant Anruf mit HA-SIP und AI Sprachassistent
alias: VoIP Anruf Speicher SOC kritisch
description: HA ruft an wenn der Speicher unter 10% fällt
triggers:
- trigger: numeric_state
entity_id: sensor.dein-sensor
below: 10
enabled: true
conditions: []
actions:
- action: hassio.app_stdin
data:
app: c7744bff_ha-sip
input:
command: dial
number: sip:Deine-Rufnummer@Deine-FritzBox-IP
ring_timeout: 30
webhook_to_call:
call_established: phone_connected
call_disconnected: hangup_voip_assistant
menu:
message: >-
Achtung! Der Speicher hat nur noch {{
states('sensor.dein-sensor') | int }} Prozent
Ladestand. Du kannst jetzt mit dem Home Assistant sprechen um Geräte
zu steuern.
post_action: noop
- wait_for_trigger:
- trigger: webhook
webhook_id: phone_connected
allowed_methods:
- POST
- PUT
local_only: false
timeout: 30
continue_on_timeout: false
- action: hassio.app_stdin
data:
app: c7744bff_ha-sip
input:
command: dial
number: sip:Dein-SIP-Benutzer@Deine-HA-IP:Dein-SIP-Port
webhook_to_call:
call_established: ha_voip_connected
ring_timeout: 30
wait_for_audio_to_finish: true
menu:
message: Hallo
- action: hassio.app_stdin
data:
app: c7744bff_ha-sip
input:
command: bridge_audio
number: sip:Deine-Rufnummer@Dein-FritzBox-IP
bridge_to: sip:Dein-SIP-Benutzer@Deine-HA-IP:Dein-SIP-Port
mode: single
- Komfort-Schnurlostelefon mit...
- Übersichtliche Menüs auf hochwertigem...
- Nutzung von Internetdiensten: E-Mails, Webradio...
- Steuerung von FRITZ!Box-Funktionen, z. B...
- Regelmäßig, kostenfreie Updates per Tastendruck...
