Fritz Box Call Monitor

Nachdem ich durch einen Blitzeinschlag meine Fibaro gegen die Homey Pro ersetzt habe, bin ich froh, diesen Schritt gemacht zu haben, meine Geräte ließen sich alle sehr einfach und schnell in das neue System einbinden, die Flow-Erstellung geht auch gut voran. Leider geht die Call Monitor App nicht auf meinem Homey. Nun meine Frage, ist es möglich dies über Home Assistent zu erreichen? Ich stelle mir vor, dass bei einem Anruf oder bei Auslösen der Dect-Tür-Klingel am Dect-Telefon der Anruf über eine Hue-Leuchte signalisiert wird oder die Telefonnummer am LG Fernseher angezeigt wird, vielleicht auch eine Sprachnachricht über Sonos. Homey bietet da ja viele Möglichkeiten. Hat da jemand schon Erfahrung und kann mir bitte helfen.

Herzlich willkommen, Udo!

Aus welchen Gründen auch immer, wurde die FritzBox Call Monitor App nicht für den Homey Pro (early 2023) aktualisiert, deshalb ist die App nur noch auf den älteren Modellen lauffähig.

Jetzt aber zu Deiner Frage, wenn es für Home Assistant eine entsprechende Integration gibt, was ic nicht weiß, dann kannst Du die Daten über die Homey Home Assistant Community App importieren.
Inwieweit Deine Ideen dann umsetzbar sind, hängt u.A. von der HA Integration ab. Aber eine Lampe blinken oder eine Info über Sonos Lautsprecher ausgeben zu lassen sollte schon möglich sein. Die Anzeige auf dem TV vermutlich nicht, eventuell direkt über HA.

Solltest Du Fragen zu der Homey Home Assistant Community App haben, solltest Du diese am besten in einem der zwei zugehörigen App Topics stellen:

[APP][Pro] Home Assistant - Community App
[APP][PRO] Home Assistant - Community App (deutsch)

Wie schon von Dirk erwähnt, lassen sich die Entientäten über die Home Assistant Community App in Homey importieren. Ich benutze zwar keine Fritzbox, aber ich glaube nicht, dass sich deine Wünsche über HA realisieren lassen.

bei HA gibt es die Integration Call Monitor.
Die Entientäten lassen sich dann in Homey importieren und dann auch als Durchsage verwenden.
Schade mit der Homey App.Die hatte beim HP19 sehr gut funktioniert inkl. Telefonbuch.

Vielen Dank für Eure Antwoten, ich werde mich dann mal mit HA beschäftigen müssen, hab noch keinen Plan was die Entientäten sind und wie ich die einbinden kann, aber ich werde es auf jeden Fall probieren. Schade das die Call Monitor App nicht geht, aber vielleicht wird sie noch entwickelt, ich würde mich sehr freuen.

Ich verwende zwar die Fritz Box über HA nicht, aber dafür viele andere HA Integrationen, die ich an Homey übertrage. Wenn du beim Einrichten Hilfe brauchst, kannst du mich gerne ansprechen.

Danke, die Hilfe werde ich sicher brauchen.
Ich werde HA erst mal auf meiner Synology einrichten und dann Schritt für Schritt testen.

Mal schon vorab eine Info für dich. Ich hab mir die Entientäten des Call Monitors unter HA mal angeschaut.
Er erfasst folgende Entientäten:

  • idle = untätig
  • ringing = es klingelt
  • dialing = es wird gewählt
  • talking = es wird gesprochen

Die Entientäten werden auch zu Homey gesendet und können als Trigger verwendet werden.
Dazu wird unter Homey ein neuer HA Sensor mit der HA Community App eingerichtet.
Screenshot_20240919-103915_Homey

Angeblich überträgt der Call Monitor auch die Telefonnummer bzw. den Namen des Anrufers aus deinem Telefonbuch. Aufgrund der nicht vorhandenen Hardware konnte ich das nicht testen und weiß auch nicht, ob Nummer oder Name bei Homey ankommen.

Ein Homey Flow würde dann so aussehen:

Ob die DECT Türklingel auch funktioniert, kann nur ein Test zeigen. Das ist wohl abhängig davon, ob ihre Kennung bei Homey an kommt. Vielleicht kann da jemand helfen, der die Fritzbox und den Call Monitor im Einsatz hat.

Hier noch ergänzend die Attribute während eines Anrufs (beim Klingeln):

Somit sollte man auch den Namen des Anrufers, oder, falls dieser im FRITZ!Box Telefonbuch nicht vorhanden ist, die Telefonnummer ansagen lassen können.


EDIT

Ok, die Attribute stehen allerdings nicht alle in Homey, bzw. der HA Community App zur Verfügung, sondern nur die folgenden:

options:
  - ringing
  - dialing
  - talking
  - idle
duration: "0"
closed: "2024-09-19T13:10:29"
prefixes:
  - "+49"
device_class: enum
friendly_name: FRITZ!Fon

Folgende fehlen wichtigen Attribute fehlen also:

type:
from:
to:
device:
from_name:

Wie bekommt man diese nach Homey übermittelt? @Undertaker, @Joe75, @RonnyW?

Wenn ich mir das hier so anschaue, gibt es schon genügend Probleme, die Nummern oder Namen in HA anzeigen zu lassen:

Ich persönlich würde mir das nicht antun, diese Vorschläge nachzubauen. Letztlich nützt es auch nichts, weil die Telefonnummern/Namen, dann noch nicht in Homey sind.
Vielleicht hat Ronny eine praktikable Lösung :man_shrugging: ? Ansonsten bleiben nur die schon oben beschrieben Entientäten übrig, oder man kauft sich einen gebrauchten early 2019.

überhaupt nicht Stand jetzt.Ich mach es über HA und Sonos die Ausgabe wer Anruft.
Funktioniert auch soweit.
2. Möglichkeit wäre es über die Fritte selber den Anruf als Klingelton auszugeben.
Geht mit der neuen Firmware ja auch.
Echt Schade, dass es keinen gibt der die App nach Homey 2023 portiert.Für mich nämlich ne sehr Sinnvolle App.

2 Likes

Na ja, das eigentliche Problem ist HA ja selber, zumindest für mich. Aber der Topic Ersteller in dem verlinkten Beitrag scheint nicht mal die offizielle HA Seite für den Call Monitor gelesen zu haben.
Wie auch immer, dank folgender Anleitungen habe ich es jetzt zumindest schon mal in HA hinbekommen, was auch gar nicht so schwer war:
AVM FRITZ!Box Call Monitor - Home Assistant
GitHub - der8en/Fritz-Call-Monitor-Feed: Home Assistant Automatisierung um die Anrufliste der Fritz!Box im Dashboard als Karte anzuzeigen

Jetzt kommt es noch darauf an die Infos im Homey darstellen und nutzen zu können. Sollte ich es hinbekommen :joy:, werde ich Euch natürlich informieren.

Übrigens, die in dem Topic Funktioniert der FRITZ!Box Call Monitor (Forum simon42) verlinkte Anleitung Fritz!Box Anrufliste kann man ehrlich gesagt getrost vergessen. Ganz nach dem Motto “Er hat sich stets bemüht” werden einfach einige essentielle Punkte nicht genannt, die zumindest für Anfänger absolut notwendig wären. Diese Infos sind aber in der oben verlinkten Beschreibung enthalten.


EDIT

Ein paar Infos werden schon mal übertragen:

Gesprächsdauer und Gespräch beendet werden bereits von der AVM FRITZ!Box Call Monitor Integration übertragen. Die Dauer wird allerdings auch erst dann angezeigt, wenn das Gespräch beendet wurde, ist aber eigentlich auch logisch.
Die Info zum Anrufer, also Telefonnummer und Name (falls im FRITZ!Box Telefonbuch enthalten), werden von den Helfern übertragen, die für die GitHub Automatisation und Darstellung im Dashboard benötigt werden.
Die Info zum Telefon Feed, dass müsste die Info in der Anrufliste sein (vermutlich inkl. Icon), z.B. “Nicht angenommenes Telefonat”, “Verpasster Anruf” etc., wird (noch) nicht, bzw. kurzzeitig falsch angezeigt.

2 Likes

Wie schon angemerkt, werden die Attribute wohl nur kurzzeitig angelegt und dann wieder entfernt, so dass sie in der Auswahlliste nicht angezeigt werden.
Es sollte aber funktionieren, wenn man die Attribute über den Repair-Dialog einem Honey-Gerät hinzufügt und dann den Attributname eintippt.

Verstehe ich nicht ganz, sorry. Könntest Du mal ein Beispiel posten?

Während es z.B. klingelt werden in HA die folgenden Attribute (rotes Kästchen) dauerhaft eingeblendet, also nicht nur kurzzeitig:

image

Wird das Gespräch angenommen, werden folgende Attribute dauerhaft eingeblendet:

image

Wird das Gespräch beendet, dann diese hier:

image

Klar, bei jeder “Statusänderung” ändern sich die Attribute bzw. werden aktualisiert. Ändert sich der “Status” aber nicht, bleiben die Attribute aber eingeblendet.

Hier eine weitere Info zum Feld Telefon Feed. Diese Infos während während eines Gesprächs angezeigt:

image

Also hat das “nur” was mit der Automatisation in HA zu tun, damit in HA die Icon-Farbe und das entsprechende Icon im Dashboard dargestellt wird, und zwar dieses hier:

image

Und hier ein Teil des entsprechenden YAML-Codes:

  - alias: "V1: Ankommend (ohne Geschäftszeiten)"
    if:
      - condition: trigger
        id:
          - "3"
    then:
      - data:
          value: >-
            <font color="#268DDA"><ha-icon icon="mdi:phone-incoming">
            </ha-icon></font> Anruf von
            {{state_attr("sensor.fritz_box_7590_anrufmonitor_telefonbuch","with")}}
            {% if (state_attr("sensor.fritz_box_7590_anrufmonitor_telefonbuch",
            "with_name") != "unknown")
            %}({{state_attr("sensor.fritz_box_7590_anrufmonitor_telefonbuch",
            "with_name")}}){% endif %}
        target:
          entity_id: input_text.telefon_feed
        action: input_text.set_value
      - metadata: {}
        data: {}
        target:
          entity_id: input_boolean.telefon_klingelt
        action: input_boolean.turn_off
    enabled: true

Und dieser YAML Schnipsel triggert vermutlich den oberen Code:

  - platform: state
    entity_id:
      - sensor.fritz_box_7590_anrufmonitor_telefonbuch
    id: "3"
    from: ringing
    to: talking
    alias: ankommend

Wenn ich Zeit und Lust habe, werde ich mal ein bisschen rumprobieren, ob man die Automatisation nicht so ändern kann, dass in dem Feld Telefon Feed bei einem eingehenden Anruf z.B. nur “Anruf von XYZ” steht, oder eventuell nur der Name bzw. die Telefonnummer. Dann sollte man diese Info auch über Lautsprecher ausgeben können.

Eine weiter Info dazu. Das Feld Telefon Feed wird tatsächlich absichtlich per YAML-Code bereinigt:

  - alias: Feed bereinigen
    platform: state
    entity_id:
      - sensor.fritz_box_7590_anrufmonitor_telefonbuch
    for:
      hours: 0
      minutes: 0
      seconds: 2
    to: idle
    id: "6"
    enabled: true
...
...
...
  - alias: Feed bereinigen
    if:
      - condition: trigger
        id:
          - "6"
    then:
      - data:
          value: unknown
        target:
          entity_id:
            - input_text.telefon_feed
        action: input_text.set_value

Wenn man diesen Teil des Codes entfernt, dann sollte eigentlich die letzte Info stehen bleiben, oder? Ich werde es mal testen…

Ich denke, man kann das Attribut manuell eingeben. Das Attributfeld ist nur ein Eingabefeld mit Werteliste. Da kann man auch Werte eintragen, die nicht in der Entity vorhanden sind.

Ich bin nur nicjt sicher, welcher Wert in der Capability steht, wenn das Attribut entfernt wird. Evtl. ein leerer String.
D.h. man kann einen “geändert” Trigger verwenden und dann den Inhaltit Logikkarten prüfen.

Ich hab nach Ronnys Tipp das hier fabriziert:


Ich hab aber keinen Plan, wie die Attribute richtig heißen. Ich teste mal, ob sich jetzt was bei mir tut.

Die Attribute hat Dirk bereits genannt. Die ersten 3 Screenshots, jeweils die rot markierten Einträge.

Wenn das Attribut nicht vorhanden ist, wird die App “null” (also “leer”) als Wert nehmen. Ich bin aber nicht sicher, wie man in Logikkarten prüfen kann. Aber für einen Trigger sollte es genügen. Dann muss man bisschen experimentieren, ob Tag<>“” (leeres Textfeld) genügt.

Ich möchte meine Lösung zur Diskussion stellen. Ich habe einige Iterationen gebraucht, um eine Lösung zu finden, die in Richtung geht, wie sie bereits beschrieben wurde. Ausgangspunkt war die bereits vorgeschlagene Lösung von Forum simon42, der die CallMomitor-App in HomeAssistant nutzt. Diese habe ich erweitert um weitere Werte, die tatsächlich nur sehr kurzzeitig angezeigt werden, abzufragen. Man kann sie im Source-Code zur CallMonitor App nachlesen. Ich übergebe die Werte dann in HomeAssistant durch die Automation (siehe yaml-Code) an Helfer (siehe Bild). Diese kann ich in Homey einfach abrufen und habe sie dann in einer Sensor-App eingebunden. Das geht aber sicher auch eleganter.

Der yaml-Code für die Automation

alias: Telefonbuch
description: ""
trigger:
  - alias: Gespräch
    platform: state
    entity_id:
      - sensor.fritz_box_7590_call_monitor_g
    to: talking
    id: "1"
  - alias: Anruf
    platform: state
    entity_id:
      - sensor.fritz_box_7590_call_monitor_g
    id: "2"
    to: ringing
  - alias: Anrufen
    platform: state
    entity_id:
      - sensor.fritz_box_7590_call_monitor_g
    id: "3"
    to: dialing
condition: []
action:
  - alias: Gespräch
    if:
      - condition: trigger
        id: "1"
    then:
      - data:
          value: >-
            Gespräch mit {{
            state_attr("sensor.fritz_box_7590_call_monitor_g","with")}}
            ({{ state_attr("sensor.fritz_box_7590_call_monitor_g",    
            "with_name")}})
        target:
          entity_id: input_text.telefonbuch
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "with")}}
        target:
          entity_id: input_text.telefonnummer
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "with_name")}}
        target:
          entity_id: input_text.telefonname
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "device")}}
        target:
          entity_id: input_text.telefondevice
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "accepted")}}
        target:
          entity_id: input_text.telefonzeit
        action: input_text.set_value
  - alias: Anruf
    if:
      - condition: trigger
        id: "2"
    then:
      - data:
          value: >-
            Anruf von {{
            state_attr("sensor.fritz_box_7590_call_monitor_goeritz","from")}}
            ({{ state_attr("sensor.fritz_box_7590_call_monitor_g",    
            "from_name")}})
        target:
          entity_id: input_text.telefonbuch
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "from")}}
        target:
          entity_id: input_text.telefonnummer
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "from_name")}}
        target:
          entity_id: input_text.telefonname
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "type")}}
        target:
          entity_id: input_text.telefonruf
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "device")}}
        target:
          entity_id: input_text.telefondevice
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "initiated")}}
        target:
          entity_id: input_text.telefonzeit
        action: input_text.set_value
  - alias: Anrufen
    if:
      - condition: trigger
        id: "3"
    then:
      - data:
          value: >-
            Anrufen nach {{
            state_attr("sensor.fritz_box_7590_call_monitor_g","to")}} ({{
            state_attr("sensor.fritz_box_7590_call_monitor_g",    
            "to_name")}})
        target:
          entity_id: input_text.telefonbuch
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "to")}}
        target:
          entity_id: input_text.telefonnummer
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "to_name")}}
        target:
          entity_id: input_text.telefonname
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "type")}}
        target:
          entity_id: input_text.telefonruf
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "device")}}
        target:
          entity_id: input_text.telefondevice
        action: input_text.set_value
      - data:
          value: >-
            {{state_attr("sensor.fritz_box_7590_call_monitor_g",   
            "initiated")}}
        target:
          entity_id: input_text.telefonzeit
        action: input_text.set_value
mode: single

Benötigt werden folgende Helfer

Ich habe in Homey einen Sensor eingerichtet und die zusätzlichen Werte eingefügt

Jetzt bin ich in der Lage z.B. bei Anrufen den Fernseher leise zu stellen, damit das Klingeln gehört werden kann.

Ein bekanntes Problem ist, dass der CallMonitor in HomeAssistant nur einen Anruf erfasst, ein zweiter zur gleichen Zeit wird nicht korrekt verarbeitet. Ein ähnliches Problem ist, wenn man mehrere Telefonbücher hat, die man unterschiedlichen Telefonen zugeordnet hat. Dafür gibt es keine Lösung.

Die Anrufzeit lasse ich aussen vor. Die kann man auch abfragen, die berechne ich dann in homey, das war für mich einfacher.

Ich hoffe, das war verständlich.

1 Like

Das hat tatsächlich funktioniert. Habe das Attribut from_name händisch eingetragen, und dann wird auch nur der Name ohne Telefonnummer angezeigt. Damit sollte man eine Ansage hinbekommen. :+1:t2:

Edit
Vielen Dank @rosei, werde ich definitiv mal testen.

1 Like