GonoPBX
+
Home Assistant
Works with Home Assistant

Telefonanlage trifft Smart Home

Verbinde GonoPBX mit Home Assistant – Anrufstatus als Sensor, Echtzeit-Events per MQTT und Anrufe direkt aus deinem HA-Dashboard starten.

Sensoren & Binary Sensors MQTT Echtzeit-Events Anrufe & Rufumleitungen steuern

Übersicht

Die GonoPBX Home Assistant Integration verbindet deine Asterisk-Telefonanlage mit deinem Smart Home. Du erhältst Echtzeit-Status aller Nebenstellen und Trunks, Anruf-Statistiken als Sensoren und kannst Automationen auf Basis von Anruf-Events auslösen.

REST API (Polling)

Alle 30 Sekunden werden Nebenstellen-Status, aktive Anrufe, Anrufstatistiken und Voicemail abgefragt.

MQTT (Push)

Echtzeit-Events bei Anruf-Start, -Annahme und -Ende. Sofortige Status-Updates per MQTT.

Sensoren

Binary Sensors für Nebenstellen & Trunks, plus Sensoren für Anrufe und Voicemail.

Services

Anrufe aus HA starten und Rufumleitungen per Automation oder Dashboard schalten.

Schritt 1: GonoPBX vorbereiten

Zuerst musst du in deiner GonoPBX-Installation einen API-Key und optional MQTT konfigurieren. Bearbeite die .env-Datei im GonoPBX-Verzeichnis:

# API-Key für Home Assistant generieren
HA_API_KEY=dein-sicherer-api-key-hier

# Optional: MQTT für Echtzeit-Events
MQTT_BROKER=192.168.1.100    # IP deines Mosquitto-Brokers
MQTT_PORT=1883
MQTT_USER=ha_user
MQTT_PASSWORD=ha_password
Tipp: Einen sicheren API-Key kannst du so generieren: openssl rand -hex 32

Anschließend GonoPBX neu starten:

cd /root/gonopbx
docker compose up -d --build backend

Schritt 2: HACS Integration installieren

Option A: Über HACS (empfohlen)

  1. Öffne HACS in Home Assistant
  2. Klicke auf das Drei-Punkte-Menü → Benutzerdefinierte Repositories
  3. Trage ein: https://github.com/ankaios76/gonopbx-homeassistant als Integration
  4. Suche nach "GonoPBX" und klicke Installieren
  5. Starte Home Assistant neu

Option B: Manuell

  1. Lade das Repository herunter:
    git clone https://github.com/ankaios76/gonopbx-homeassistant.git
  2. Kopiere den Ordner custom_components/gonopbx/ nach
    /config/custom_components/gonopbx/ in deiner HA-Installation
  3. Starte Home Assistant neu

Schritt 3: Integration einrichten

  1. Gehe zu Einstellungen → Geräte & Dienste → Integration hinzufügen
  2. Suche nach GonoPBX
  3. Gib die Verbindungsdaten ein:
    • Host: IP-Adresse deines GonoPBX-Servers
    • Port: 8000 (Standard)
    • API Key: Der HA_API_KEY aus deiner .env
    • MQTT aktivieren: Anhaken, wenn MQTT in GonoPBX konfiguriert ist
Die Integration prüft automatisch die Verbindung zu GonoPBX. Wenn alles funktioniert, werden sofort alle Entities angelegt.

Verfügbare Entities

Binary Sensors (Online/Offline)

  • binary_sensor.gonopbx_system – Gesamtstatus der Telefonanlage
  • binary_sensor.gonopbx_ext_1001 – Status je Nebenstelle
  • binary_sensor.gonopbx_trunk_plusnet – Status je SIP-Trunk

Sensoren

  • sensor.gonopbx_active_calls – Anzahl aktive Anrufe
  • sensor.gonopbx_calls_today – Anrufe heute
  • sensor.gonopbx_calls_missed – Verpasste Anrufe
  • sensor.gonopbx_voicemail_unread – Ungelesene Voicemails

Services

  • gonopbx.make_call – Anruf von einer Nebenstelle starten
  • gonopbx.toggle_forwarding – Rufumleitung ein-/ausschalten

MQTT Events

Wenn MQTT aktiviert ist, empfängt Home Assistant Echtzeit-Events bei jedem Anruf. Diese Events kannst du direkt als Automation-Trigger verwenden:

  • gonopbx_call_started – Ein Anruf wurde gestartet (enthält Caller, Destination)
  • gonopbx_call_answered – Ein Anruf wurde angenommen
  • gonopbx_call_ended – Ein Anruf wurde beendet (enthält Duration, Disposition)

Automationen – Beispiele

Benachrichtigung bei verpasstem Anruf

Sendet eine Push-Nachricht auf dein Handy, wenn ein Anruf nicht angenommen wurde.

# automations.yaml
automation:
  - alias: "Verpasster Anruf - Benachrichtigung"
    trigger:
      - platform: event
        event_type: gonopbx_call_ended
    condition:
      - condition: template
        value_template: >
          {{ trigger.event.data.disposition == 'NO ANSWER' }}
    action:
      - service: notify.mobile_app
        data:
          title: "Verpasster Anruf"
          message: >
            Anruf von {{ trigger.event.data.caller }}

TV stumm schalten bei eingehendem Anruf

Schaltet automatisch den Fernseher stumm, sobald ein Anruf eingeht.

automation:
  - alias: "TV stumm bei Anruf"
    trigger:
      - platform: event
        event_type: gonopbx_call_started
    action:
      - service: media_player.volume_mute
        target:
          entity_id: media_player.wohnzimmer_tv
        data:
          is_volume_muted: true

Anruf per Dashboard-Button starten

Füge einen Button ins HA-Dashboard ein, der einen Anruf auslöst.

# In Automationen oder Developer Tools → Services:
service: gonopbx.make_call
data:
  extension: "1001"
  number: "004930123456"

Rufumleitung automatisch aktivieren

Aktiviere die Rufumleitung, wenn du das Haus verlässt (z.B. per Presence Detection).

automation:
  - alias: "Rufumleitung bei Abwesenheit"
    trigger:
      - platform: state
        entity_id: person.ich
        to: "not_home"
    action:
      - service: gonopbx.toggle_forwarding
        data:
          forward_id: 1
          enabled: true

MQTT Topics (Referenz)

GonoPBX veröffentlicht folgende MQTT-Topics:

Topic Payload Retained
gonopbx/status online / offline Ja
gonopbx/call/started {caller, destination, direction, timestamp} Nein
gonopbx/call/answered {caller, destination, timestamp} Nein
gonopbx/call/ended {caller, destination, duration, disposition} Nein
gonopbx/extension/{ext}/status online / offline Ja
gonopbx/trunk/{name}/status registered / unregistered Ja

Hilfe & Support

Bei Fragen oder Problemen erstelle ein Issue auf GitHub: