FRITZ!Box-Anrufliste in Home Assistant nutzen

Originally published at: FRITZ!Box-Anrufliste in Home Assistant nutzen

Kennst du das Gefühl, wenn dein Telefon klingelt und du dich fragst, ob du rangehen solltest? Vielleicht ist es der Chef, der wieder spät am Abend was will, oder die Schwiegermutter, die nur mal hören will, ob alles in Ordnung ist. Oder es ist – mit hoher Wahrscheinlichkeit – ein Callcenter-Agent, der dir ein Gewinnspiel…

Hallo Olli,

ich nutze die Anrufliste auch in meinem Smarthome.

Ich lasse mir jeden Anruf in meinen Ulazi / Awtrix Uhren anzeigen.
Wenn ich mal Kopfhörer auf habe oder ich in meinem Hobbyraum bin, sehe ich wer gerade anruft. Das Fritz! Telefonbuch muss halt gepflegt sein.

Die letzen Anrufe lasse ich mir in einem Feed anzeigen:

type: custom:home-feed-card
card_id: main_feed2
show_empty: false
show_icons: false
id_filter: ^home_feed2_.*
state_color: true
history_days_back: 7
entities:
  - entity: input_text.telefon_feed
    name: Telefon-Feed
    include_history: true
    remove_repeats: false
    max_history: 6
    content_template: "{{state}}"

Viele Grüße
Gunter

Hi Gunter, mega gut - vielen Dank fürs Teilen! Das mit der Awtrix scheint auch andere zu interessieren. Magst du hierzu ggf. auch deinen Code teilen?

Viele Grüße und ein schönes Wochenende!

Olli

Hallo Olli,

gerne…

alias: Anrufliste - 5690Pro
description: 5690_pro
triggers:
  - entity_id:
      - sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch
    to: idle
    id: "3"
    alias: Frei
    trigger: state
  - entity_id:
      - sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch
    to: talking
    id: "1"
    alias: Gespräche
    trigger: state
  - entity_id:
      - sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch
    id: "2"
    alias: Anrufe in Abwesenheit
    to: ringing
    trigger: state
conditions: []
actions:
  - variables:
      fritz_status: >-
        {% if is_state("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
        "idle")

        %}
          Telefon ist frei
        {% elif is_state("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
        "dialing") %}
          Anruf zu {{ state_attr('sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch', 'to_name')|replace('unknown','') }} {{ state_attr('sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch', 'to') }}
        {% elif is_state("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
        "ringing") %}
          Anruf von {{ state_attr('sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch', 'from_name')|replace('unknown','') }} {{ state_attr('sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch', 'from') }}
        {% else %}
          Gespräch mit {{ state_attr('sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch', 'with_name')|replace('unknown','')}} {{ state_attr('sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch', 'with') }}
        {% endif %}
  - alias: Gespräche
    if:
      - condition: trigger
        id: "1"
    then:
      - data:
          value: >-
            <font color="#8BBF68"><ha-icon icon="mdi:phone-outgoing">
            </ha-icon></font> Gespräch mit
            {{state_attr("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch","with")}}
            {% if
            (state_attr("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
            "with_name") == "unknown") %}(Unbekannt{% else
            %}({{state_attr("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
            "with_name")}}{% endif %})
        target:
          entity_id: input_text.anrufliste1
        action: input_text.set_value
      - action: script.dismiss_uhr_kueche
        metadata: {}
        data: {}
      - action: script.dismiss_uhr_wohnzimmer
        metadata: {}
        data: {}
      - action: script.dismiss_uhr_schlafzimmer
        metadata: {}
        data: {}
      - action: script.dismiss_uhr_buero
        metadata: {}
        data: {}
      - data:
          entity_id: var.notification_uhr
          value: 0
        action: var.set
  - if:
      - condition: trigger
        id: "2"
    then:
      - data:
          value: >-
            <font color="#268DDA"><ha-icon icon="mdi:phone-incoming">
            </ha-icon></font> Anruf von
            {{state_attr("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch","with")}}
            {% if
            (state_attr("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
            "with_name") == "unknown") %}(Unbekannt{% else
            %}({{state_attr("sensor.fritz_box_5690_pro_anrufmonitor_telefonbuch",
            "with_name")}}{% endif %})
        target:
          entity_id: input_text.anrufliste1
        action: input_text.set_value
      - data:
          qos: "2"
          retain: false
          topic: awtrix_6d6634/notify
          payload: >-
            {"text": "{{ fritz_status }}", "color": "#f50b0b","scrollSpeed": 50,
            "textCase": 1, "hold": true, "icon": 43641}
        action: mqtt.publish
      - data:
          qos: "2"
          retain: false
          topic: awtrix_1e8f68/notify
          payload: >-
            {"text": "{{ fritz_status }}", "color": "#f50b0b","scrollSpeed": 50,
            "textCase": 1, "hold": true, "icon": 43641}
        action: mqtt.publish
      - data:
          qos: "2"
          retain: false
          topic: awtrix_47b838/notify
          payload: >-
            {"text": "{{ fritz_status }}", "color": "#f50b0b","scrollSpeed": 50,
            "textCase": 1, "hold": true, "icon": 43641}
        action: mqtt.publish
      - data:
          qos: "2"
          retain: false
          topic: awtrix_45f710/notify
          payload: >-
            {"text": "{{ fritz_status }}", "color": "#f50b0b","scrollSpeed": 50,
            "textCase": 1, "hold": true, "icon": 43641}
        action: mqtt.publish
      - data:
          entity_id: var.notification_uhr
          value: 1
        action: var.set
    alias: Verpasste Anrufe
  - if:
      - condition: trigger
        id: "3"
    then:
      - data:
          qos: "2"
          retain: false
          topic: awtrix_6d6634/notify/dismiss
        action: mqtt.publish
      - data:
          qos: "2"
          retain: false
          topic: awtrix_1e8f68/notify/dismiss
        action: mqtt.publish
      - data:
          qos: "2"
          retain: false
          topic: awtrix_47b838/notify/dismiss
        action: mqtt.publish
      - data:
          qos: "2"
          retain: false
          topic: awtrix_45f710/notify/dismiss
        action: mqtt.publish
      - data:
          entity_id: var.notification_uhr
          value: 0
        action: var.set
    alias: Frei
mode: single

Bei Fragen einfach melden :slight_smile:

Viele Grüße
Gunter

2 „Gefällt mir“

Hallo Olli,

kurze Frage noch zum Posten / Formatieren…

Wie kann ich, wenn ich YAML Code einfüge, diesen farbig Formatieren lassen?
Ich habe keine Möglichkeit gefunden?

Viele Grüße
Gunter

@gunni
Moin,

Ich möchte gerne Dein Angebot “bei Fragen einfach melden” annehmen..

ich bin nicht so tief in Yaml und Aktionen drin.

Darum kann ich Deinem Code nur in Teilen folgen. Mich würde interessieren, was awtrix_* ist?
Und wie hast Du dann MQTT verbunden?

@gunni kannst du mir bitte erklären, was der “id_filter” genau macht? Also filtern, klar aber nach was und warum? Der Rest ist klar.
Für´s Feedback vielen Dank im Voraus.

Hallo,

Mich würde interessieren, was awtrix_* ist?

Viele Grüße
Gunter

1 „Gefällt mir“

Hallo,

kannst du mir bitte erklären, was der “id_filter” genau macht? Also filtern, klar aber nach was und warum?

Ich habe den Code von:

Viele Grüße
Gunter

1 „Gefällt mir“

@gunni herlichen Dank dafür :hugs:

Hallo liebe Community. Gibt es eine Möglichkeit immer nur einen Eintrag anzeigen zu lassen? Bei mir werden nämlich, wenn das Telefon klingelt und ich dann dran gegangen bin, 2 Einträge generiert. Ein falscher und einer, der der Wahrheit entspricht.

Wie kann man den letzten Ausgewerteten Anruf sich per Telegram und Awtrix3 anzeigen lassen ?

Anruf von
„{{ states('input_text.anrufliste ') }}“

Da kriege ich immer nur

Entferne mal das Leerzeichen am Ende vor dem letzten Hochkomma. Vermutlich ist es das schon

VG Olli

Uff, das ist eine gute Frage und ad-hoc ist mir dazu noch keine einfache Lösung eingefallen, weil man letztlich bei einem Anruf warten muss, dass dieser nur als verpasst gespeichert werden darf, wenn es zu keinem Gespräch gekommen ist :thinking:

Ich denke mal ein wenig drüber nach. Ggf. mit einer Kombination aus warten-bis oder so.

VG Olli

Anruf von
„{{ states(‘input_text.anrufliste‘) }}”

So geht es nicht

Um die Anrufer-Info per Telegram zu verschicken hier ein simpler YAML-Code für eine Automation:

description: ""
mode: single
triggers: []
conditions: []
actions: 
  - data_template:
      title: Rollläden geöffnet
      message: >-
        Soeben {{ states('input_text.anrufliste') }}
    action: notify.telegram

Kannst du etwas mehr Infos liefern? Was geht konkret nicht? Was ist die Fehlermeldung, wenn es eine gibt? Welchen Wert hat der Zustand des Helfers?

VG Olli

Also es geht

Es muss woll bei Parse-Modus HTML aktiviert sein