HA-SIP um Home Assistant per Telefon und Sprachassistent zu steuern

  • Beitrags-Kommentare:0 Kommentare

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

Angebot
Grandstream HT802 v2 2xFXS Gateway
  • Adaptador ATA Grandstream 2 Portas Preto...

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

FRITZ!Fon X6 Black DECT-Komforttelefon (hochwertiges Farbdisplay, HD-Telefonie...
  • 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...

https://youtu.be/dlxRzX6ZW8c

Schreibe einen Kommentar