Telefonanrufe in Home Assistent erfassen und verarbeiten

12 Nov 2023 - 19:23 | Version 4 |

Worum geht es?

Die Telefonanrufe auf das Festnetz sollen erfasst und in Home Assistant verarbeitet werden können:
  • Rückwärtssuche nach dem Namen, wenn nicht im lokalen Telefonbuch
  • Anzeige auf Matrixdisplay
  • Logfile aller Anrufe
  • Spezielle Anrufbehandlung von besonderen Nummern in der Nacht (Notruferkennung)

AVM Fritz!Box Call Monitor

Die Anrufe auf das Festnetz werden von einer Fritzbox entgegengenommen. Deshalb ist die AVM FRITZ!Box Call Monitor - Integration notwendig.

Diese Integration stellt einen Sensor bereit, der bei mir sensor.fritz_box_5590_fiber_call_monitor_telefonbuch heisst und einerseits die vier Zustände
  • ringing
  • dialing
  • talking
  • idle
kennt und andererseits als Attribute
  • to
  • to_name
  • from
  • from_name
zur Verfügung stellt, abhängig davon, ob ein Anruf getätigt oder empfangen wird.

Name der Gegenstelle rausfinden

Letztendlich hätte ich gerne einen Namen der Gegenstelle. Entweder die Fritzbox liefert bereits einen Namen, dann ist alles gut. Wenn aber die Fritzbox nur eine Nummer liefert, dann soll Home Assistent bei tel.search.ch eine Rückwärtssuche durchführen und den Namen im Telefonbuch suchen.

Aktuelles Skript ohne tel.search.ch - Abfrage (13.11.23)

alias: anrufMonitor_setzeLetztenAnruf
description: Schreibt Anrufstring in eine Variable, wenn Telefon klingelt
trigger:
  - platform: state
    entity_id: sensor.fritz_box_5590_fiber_call_monitor_telefonbuch
    to: ringing
condition: []
action:
  - service: input_text.set_value
    target:
      entity_id: input_text.lastcall
    data:
      value: >-
        {% if
        state_attr("sensor.fritz_box_5590_fiber_call_monitor_telefonbuch","from_name")
        != 'unknown' %}
           {{ state_attr("sensor.fritz_box_5590_fiber_call_monitor_telefonbuch","from_name") }}
        {% else %}
           {{ state_attr("sensor.fritz_box_5590_fiber_call_monitor_telefonbuch", "from") }}
        {% endif %}
  - service: input_boolean.turn_on
    target:
      entity_id: input_boolean.ulanzi_anrufanzeige
  - wait_for_trigger:
      - platform: state
        entity_id:
          - sensor.fritz_box_5590_fiber_call_monitor_telefonbuch
        to: idle
  - service: input_boolean.turn_off
    target:
      entity_id: input_boolean.ulanzi_anrufanzeige
mode: single

Auf dem Weg zur automatischen Abfrage von tel.search.ch bei unbekannten Nummern

  • RestCommand in Home Assistant ignoriert die Antwort des Servers, ist also nicht brauchbar
  • Stattdessen RESTful Sensor verwenden und das =scan_interval_ absurd hoch stellen
  • Dokumentation des API von tel.search.ch (neu kein API-Key mehr notwendig)
  • Unter https://xmltodict-debugger.glitch.me/ kann man sich XML in JSON umwandeln lassen, so wie das bei einem RESTful-Sensor geschieht, wenn XML geliefert wird.

RESTful-Sensor der tel.search.ch API befragt und Namen zurückgibt

sensor
  - platform: rest
    method: GET
    resource_template: https://search.ch/tel/api/?was={{states('input_text.lastcall') }}
    name: auskunft
    scan_interval: 864000
    value_template: "{{ value_json['feed']['entry']['title']['#text'] }}"
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Seite genereriert um 22 Dec 2024 - 10:18
Ideas, requests, problems regarding wiki.doebe.li? Send feedback