Verbinde GonoPBX mit Home Assistant – Anrufstatus als Sensor, Echtzeit-Events per MQTT und Anrufe direkt aus deinem HA-Dashboard starten.
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.
Alle 30 Sekunden werden Nebenstellen-Status, aktive Anrufe, Anrufstatistiken und Voicemail abgefragt.
Echtzeit-Events bei Anruf-Start, -Annahme und -Ende. Sofortige Status-Updates per MQTT.
Binary Sensors für Nebenstellen & Trunks, plus Sensoren für Anrufe und Voicemail.
Anrufe aus HA starten und Rufumleitungen per Automation oder Dashboard schalten.
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 openssl rand -hex 32 Anschließend GonoPBX neu starten:
cd /root/gonopbx
docker compose up -d --build backend https://github.com/ankaios76/gonopbx-homeassistant als Integrationgit clone https://github.com/ankaios76/gonopbx-homeassistant.git custom_components/gonopbx/ nach/config/custom_components/gonopbx/ in deiner HA-Installation
HA_API_KEY aus deiner .envbinary_sensor.gonopbx_system – Gesamtstatus der Telefonanlagebinary_sensor.gonopbx_ext_1001 – Status je Nebenstellebinary_sensor.gonopbx_trunk_plusnet – Status je SIP-Trunksensor.gonopbx_active_calls – Anzahl aktive Anrufesensor.gonopbx_calls_today – Anrufe heutesensor.gonopbx_calls_missed – Verpasste Anrufesensor.gonopbx_voicemail_unread – Ungelesene Voicemailsgonopbx.make_call – Anruf von einer Nebenstelle startengonopbx.toggle_forwarding – Rufumleitung ein-/ausschaltenWenn 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 angenommengonopbx_call_ended – Ein Anruf wurde beendet (enthält Duration, Disposition)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 }} 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 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" 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 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 |
Bei Fragen oder Problemen erstelle ein Issue auf GitHub: