Alexa liest vor wer gerade anruft

Hallo zusammen,

in diesem Beitrag schreibt jemand, dass er Alexa sprechen lässt, das wer gerade anruft.

Wer ruft an

Dann realisierte ich meine erste Automatisierung über yaml das bei einem Telefonanruf (Fritzbox 6690) meine Alexa sagt das jemand anruft, und wer anruft! Juhu das läuft alles wunderbar…

Frage
Wie macht man das?

Kann man das auch erweitern, dass Alexa die Nummer vorliest, wenn angerufen wird oder gar aus dem
Adressbuch den Namen nennt

Fand aber hier keine Anleitung wie das geht?.

Wie kann man das umsetzen?

Vielen Dank

Am besten mit der Integration Call Monitor:

Dann eine Automation bei einem Anruf starten, die Alexa den Sensor {{ state_attr(‘sensor.phone’, ‘from_name’) }} vorliest

1 „Gefällt mir“

Vielen Dank @metallmanu für den Link.
Wäre ne tolle Sache gewesen, gerade da ich sehr kurzsichtig bin und die Nummer im Display des C6 oder C5 eh nicht lesen kann. Da bin ich aber leider überfordert. Es fängt schon damit an, dass ich nicht mehr weiß, wie man ein Plugin installiert.

Vielen Danke
Frank

Eigentlich sind aber alle Schritte auf der HA Webseite zu dem AVM Fritz!Box Call Monitor beschrieben und das m.M.n. auch sehr verständlich. Falls Du ein Problem mit Englisch haben solltest einfach den Übersetzer vom Browser nutzen.

VG Jim

Vielen Dank an @metallmanu und @Jim_OS fürs Mut machen. Ich bin es jetzt angegangen.

Bei der Portfreigabe habe ich ein kleines Problem, bei
Anrufenmonitor 2


Statt TCP. 80 steht bei mir ein. gelbes Ausrufezeichen und der Port
57011.
Diese Endung hat die Fritzbox selbstständig gemacht.

Frage 1
kann ich das so stehen lassen, da unten die 80 eingetragen wurde.

Wenn Home Assistant Nummern anhand des FRITZ!Box-Telefonbuchs in Namen umwandeln soll, müssen Sie die richtigen Vorwahlen konfigurieren. Normalerweise benötigen Sie nur eine einzige Vorwahl, die Ihrer Landesvorwahl entspricht, z. B. +49 für Deutschland

Frage 2
Wo trage ich die +49 ein?
Hier siehe folgendes Bild oder vor jedem Namen, den ich immer das Buch gespeichert habe?

Frage 3
Wo genau trage ich den Yamel Code in der configuration.yamel ein?
Da kann man ja viel falsch machen.

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

homeassistant:
  packages: !include_dir_named packages/

# Text-to-speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

alexa:
intent_script:
  script.offene_fenster_und_turen_abfragen:
            name: "fenster_offen"
            display_categories: SCRIPT

# Wake on Lan
wake_on_lan:

# ---------- Stromzaehler ----------
rest:
  - authentication: basic
    username: !secret username
    password: !secret password
    scan_interval: 30
    resource: https://backend.powerfox.energy/api/2.0/my/main/current?unit=kwh
    sensor:
      - name: "poweropti"
        unique_id: "poweropti"
        json_attributes:
          - "Watt"
          - "Timestamp"
          - "A_Plus"
          - "A_Minus"
          - "Outdated"

template:
  - sensor:
      - name: "Strom-EG-aktuell"
        unit_of_measurement: "W"
        device_class: "power"
        state_class: "measurement"
        state: >
            {{ state_attr('sensor.poweropti', 'Watt') }}
      - name: "Strom-EG-Bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
            {% set bezug = state_attr('sensor.poweropti', 'A_Plus') | float %}
            {% if bezug > 0 %}
            {{ bezug }}
            {% endif %}

    # Berechnet anhand des Stromzählers die Rückgabe ins Netz, wenn negative Werte ausgegben werden
      - name: Zurück zum Netz (Watt) v2
        unique_id: "BalkonsolarBackToGridSensorWatts"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: W
        device_class: power
        state: >
            {% if is_number(states('sensor.strom_eg_aktuell')) and states('sensor.strom_eg_aktuell') | float(0) < 0 %}
                {{(states('sensor.strom_eg_aktuell') | float(0))*-1 | round (3) }}
            {% else %}
                {{(states ('0.0') | float(0)) |round(3) }}
            {% endif %}

    # Berechnet anhand des Stromzählers und der Solarerzeugung in Watt den Eigenverbrauch
      - name: Solar Eigenverbrauch (Watt) v2
        unique_id: "BalkonsolarEigenverbrauchWatts"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: W
        device_class: power
        state: >
            {% if is_number(states('sensor.strom_eg_aktuell')) and states('sensor.strom_eg_aktuell') | float(0) < 0 %}
                {{ ( (states('sensor.strom_eg_aktuell') | float(0) ) + (states('sensor.wechselrichter_ac_leistung') | float(0) ) ) | round (3) }}
            {% else %}
                {{ states('sensor.wechselrichter_ac_leistung') | round (3) }}
            {% endif %}
    # Zweiter Sensor für Ersparnis in Euro pro Stunde, basiert auf dem obigen Sensor (Solar Eigenverbrauch (Watt) v2) und dem aktuellen Strompreis in EUR/kWh
      - name: Balkonsolar Vorteil
        unique_id: "BalkonsolarVorteil"
        unit_of_measurement: EUR/h
        state: >
         {{ states('sensor.solar_eigenverbrauch_watt_v2')|float(0) * states('input_number.aktueller_strompreis')|float(0)/1000 }}

# ---------- Sensoren ---------- Sommer-Schalter
      - name: "winterzeit"
        unique_id: "winterzeit"
        state: "{% if now().month | string in ('1,2,3,4,5,6,10,11,12') | string %}on{% else %}off{% endif %}"
switch:
    - platform: template
      switches:
        summertime:
          value_template: "{{ is_state('sensor.winterzeit', 'on') }}"
          turn_on:
            service: switch.turn_on
            target:
              entity_id: switch.summertime_open
          turn_off:
            service: switch.turn_off
            target:
              entity_id: switch.summertime_close
    - platform: wake_on_lan
      mac: 54:04:A6:6F:C8:45
      name: "Win10-PC-Keller"
      turn_off:
          service: hassio.addon_stdin
          data:
            addon: core_rpc_shutdown
            input: Win10-PC-Keller


light:
  - platform: template
    lights:
      kontrollleuchte:
        friendly_name: "Kontrollleuchte"
        unique_id: "Kontrollleuchte"
        turn_on:
          service: light.turn_on
          target:
            entity_id: light.kontrollleuchte
        turn_off:
          service: light.turn_off
          target:
            entity_id: light.kontrollleuchte
        value_template: >-
          {% set current_time = now().strftime('%H:%M') %}
          {% if current_time >= '08:00' and current_time <= '23:59' %}
            {% if is_state('alarm_control_panel.intrusion_detection_system', 'disarmed') and is_state('input_boolean.haustueren', 'on') %}
              on
            {% else %}
              off
            {% endif %}
          {% else %}
            off
          {% endif %}            

Frage 4
Welches Symbol hat der Anrufmonitor unter den Integrationen?
Ich finde da nichts neues?

Frage 5 Automation:

Wie erstelle ich jetzt noch die Automation, dass die vorhandenen Alexas mir sagen wer anruft?
Meine Alexas

  • media_player.alexa_wohnzimmer
    - media_player.echo_plus_kuche
    - media_player.echo_dot_schlafzimmer
    - media_player.franks_echo_pop
    - media_player.alexa_tim
    - media_player.echo_dot_vanessa

Vielen lieben Dank

zu Frage 1: die Portfreigaben kannst du weglassen, die brauchst du nicht. Die sind für die Fritzbox IP und nicht für deine externe IP im Internet.
zu Frage 2: die +49 gehört in die Konfiguration der Integration, nicht in die Fritzbox
zu Frage 3: der Beispiel yaml auf der Seite kommt in eine Automation, wenn man da oben auf die drei Punkte klickt, kann man die im yaml bearbeiten
zu Frage 4: du musst erst unten rechts auf Integration hinzufügen und dort da den Call Monitor installieren
zu Frage 5: siehe Beispiel aus Frage 3

@metallmanu Vielen Dank für deine Hilfe

zu Frage 2: die +49 gehört in die Konfiguration der Integration, nicht in die Fritzbox

Frage 1
Wo trage ich hier die +49 ein?

Frage 2
Welchen Port wähle ich? der 1012 Port hat es automatisch eingetragen. Ist das so richtig?

Call-Monitor-2

Wenn ich die Yamle-Befehlszeilen in eine leere Automation hineinkopiere bekomme ich diese Fehlermeldung:

Message malformed: extra keys not allowed @ data[‘automation’]

# Example configuration.yaml entry.
automation:
  - alias: "Notify about phone state"
    triggers:
      - trigger: state
        entity_id: sensor.phone
    actions:
      - action: notify.notify
        data:
          title: "Phone"
          message: >-
            {% if is_state("sensor.phone", "idle") %}
              Phone is idle
            {% elif is_state("sensor.phone", "dialing") %}
              Calling {{ state_attr('sensor.phone', 'to_name') }} ({{ state_attr('sensor.phone', 'to') }})
            {% elif is_state("sensor.phone", "ringing") %}
              Incoming call from {{ state_attr('sensor.phone', 'from_name') }} ({{ state_attr('sensor.phone', 'from') }})
            {% else %}
              Talking to {{ state_attr('sensor.phone', 'with_name') }} ({{ state_attr('sensor.phone', 'with') }})
            {% endif %}

Wie oder wo muss ich die Automation ändern?

Vielen Dank
Frank

Passt schon alles. In der Automation mal nur das eingeben:

# Example configuration.yaml entry.

  alias: "Notify about phone state"
  triggers:
    - trigger: state
      entity_id: sensor.phone
  actions:
    - action: notify.notify
      data:
        title: "Phone"
        message: >-
            {% if is_state("sensor.phone", "idle") %}
              Phone is idle
            {% elif is_state("sensor.phone", "dialing") %}
              Calling {{ state_attr('sensor.phone', 'to_name') }} ({{ state_attr('sensor.phone', 'to') }})
            {% elif is_state("sensor.phone", "ringing") %}
              Incoming call from {{ state_attr('sensor.phone', 'from_name') }} ({{ state_attr('sensor.phone', 'from') }})
            {% else %}
              Talking to {{ state_attr('sensor.phone', 'with_name') }} ({{ state_attr('sensor.phone', 'with') }})
            {% endif %}

Vielen Dank. Die Fehlermeldung ist weg.
Wenn ich jetzt mit dem Handy bei mir anrufen gibt weder irgend eine Alexa, noch die Home Assistent App auf dem Handy eine Benachrichtigung.

Eigentlich passiert nach bzw während dem Anruf nichts.

Muss ich noch eine Einstellung vornehmen?

Gehe mal in der Integration auf das 1 Gerät und zeige mal welche Entitäten es anzeigt und rufe dich auch mal an, ob sie sich dann dabei ändern

Vielen Dank für deine Geduld. Ich habe mal Screenshots gemacht.





Da ist doch nur ein Gerät enthalten,
Mit dieser Entitäten
sensor.fritz_box_7590_ax_call_monitor_telefonbuch

Perfekt, den musst du dann in deiner Automation nutzen.

# Example configuration.yaml entry.

  alias: "Notify about phone state"
  triggers:
    - trigger: state
      entity_id: sensor.fritz_box_7590_ax_call_monitor_telefonbuch
  actions:
    - action: notify.notify
      data:
        title: "Phone"
        message: >-
            {% if is_state("sensor.fritz_box_7590_ax_call_monitor_telefonbuch", "idle") %}
              Phone is idle
            {% elif is_state("sensor.fritz_box_7590_ax_call_monitor_telefonbuch", "dialing") %}
              Calling {{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'to_name') }} ({{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'to') }})
            {% elif is_state("sensor.fritz_box_7590_ax_call_monitor_telefonbuch", "ringing") %}
              Incoming call from {{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'from_name') }} ({{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'from') }})
            {% else %}
              Talking to {{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'with_name') }} ({{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'with') }})
            {% endif %}

Danke für deine Arbeit.

Wie binde ich jetzt die verschiedenen Alexas da ein?

media_player.alexa_wohnzimmer
media_player.echo_plus_kuche
media_player.echo_dot_schlafzimmer
media_player.franks_echo_pop
media_player.alexa_tim
media_player.echo_dot_vanessa

In der Fritzbox habe ich dem Benutzer auch alles freigegeben.

kommen die Benachrichtigungen bisher richtig auf dem Handy an? Hast du Alexa Media Player installiert? Willst du die Ansage auf allen Alexas?

Hallo @metallmanu

vielen Dank für die Nachfrage.
Auf dem Handy kommt die Nachricht über my Fritzbox an.
Den Alexa Media Player habe ich installiert. Damit kann ich sogar mit dem Befehl Alexa, Status mir alle offenen Fenster und Türen ansagen lassen.

Willst du die Ansage auf allen Alexas?

Ja, das wäre super, da ich sehr kurzsichtig bin und die Ziffern am Telefon fast nicht lesen kann. Deswegen wäre das mit dem Namensabgleich auch super, so dass Alexa den Namen sagt. Ich habe aber immer noch nicht gefunden, wo ich die +49 eintragen soll.

Vielen Dank
Frank

ok, dann probiere mal folgende Automatisierung:

# Example configuration.yaml entry.

  alias: "Notify about phone state"
  triggers:
    - trigger: state
      entity_id: sensor.fritz_box_7590_ax_call_monitor_telefonbuch
  conditions:
    - condition: template
      value_template: >-
        {{is_state("sensor.fritz_box_7590_ax_call_monitor_telefonbuch", "ringing")}}
  actions:
    - action: notify.alexa_media
      data:
        message: 'Anruf von {{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'from_name') }} ({{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'from') }})'
        target:
          entity_id:
            - media_player.alexa_wohnzimmer
            - media_player.echo_plus_kuche
            - media_player.echo_dot_schlafzimmer
            - media_player.franks_echo_pop
            - media_player.alexa_tim
            - media_player.echo_dot_vanessa
        data:
          type: announce

Vielen lieben Dank.
Wäre schön, wenn du das hinbekommen könntest

Leider ist da jetzt noch ein Fehler, den ich nicht finde.

Fehlermeldung!

Message malformed: required key not provided @ data[‘actions’]

okay, versuchen wir es erstmal mit einem Player. Ich kann das selbst leider nicht testen, da ich weder den Call Monitor, noch eine Alexa im Hause habe.

# Example configuration.yaml entry.

  alias: "Notify about phone state"
  triggers:
    - trigger: state
      entity_id: sensor.fritz_box_7590_ax_call_monitor_telefonbuch
  conditions:
    - condition: template
      value_template: >-
        {{is_state("sensor.fritz_box_7590_ax_call_monitor_telefonbuch", "ringing")}}
  actions:
    - action: notify.alexa_media
      data:
        message: 'Anruf von {{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'from_name') }} ({{ state_attr('sensor.fritz_box_7590_ax_call_monitor_telefonbuch', 'from') }})'
        target: media_player.alexa_wohnzimmer
        data:
          type: tts

Leider das gleiche Problem

Kannst du mal umschalten auf die UI statt Yaml und da schauen welches Feld ihm fehlt?