4 m
Ik heb thuis nog steeds een vaste telefoonlijn. Ik gebruik deze vaste lijn alleen voor mensen die mij moeten kunnen bereiken, ook als ik slaap, zoals naaste familie. Als ze me ’s nachts bellen, wat niet vaak gebeurt, wil ik weten wie er belt voordat ik de telefoon opneem. Dus, wat is er beter dan een Google Home-speaker die de identiteit van de beller aankondigt wanneer de telefoon overgaat? …;) Juist! Dus ik heb precies dat gemaakt.

Mijn automatisering doet twee dingen. Ten eerste controleert het of het nummer van de inkomende oproep in het adresboek van de Fritz!Box staat. Als dit het geval is, wordt de naam genoemd. Als dit niet het geval is, zegt de speaker ‘onbekend nummer’ en (indien beschikbaar) het daadwerkelijke nummer van de beller. De video bovenaan toont beide situaties.

Om dit te laten werken heb je de volgende dingen nodig:

  • Een telefoon op een vaste lijn die gebruikmaakt van SIP (dit kan een abonnement zijn van je lokale internetprovider of een SIP-account van een provider zoals VoipBuster)
  • Een AVM Fritz!Box waarop je vaste lijn is geconfigureerd
  • Een Google Cast-apparaat (bijvoorbeeld een Google Nest Mini)

* Merk op dat ik de AVM Fritz!Box gebruik. Ik heb niet gecontroleerd of er andere apparaten zijn. Je kan deze handleiding, het script en de automatisering nog steeds gebruiken als de apparaten die je gebruikt een integratie voor Home Assistant hebben met toegang tot het SIP-accunt van je router.

Verder gebruik ik de Cloud TTS-service van Nabu Casa voor meer natuurlijkere stemmen. Misschien geef jij de voorkeur aan een andere TTS-integratie, of gebruik je de standaard Google Translate TTS , die standaard is geactiveerd . Als dit het geval is, kan je de service en parameters in het onderstaande script wijzigen.

Als eerste moet de Fritz!Box worden geconfigureerd. Gebruik de AVM Fritz!Box Call Monitor -integratie om Home Assistant toegang te geven tot de oproep logboeken van je Fritz!Box-router. Zorg ervoor dat de toegang tot het telefoonboek aan staat; anders kan Home Assistant geen gegevens over de bijbehorende namen uit je adresboek halen. Na de installatie ziet de yaml-configuratie voor Home Assistant er als volgt uit:

# Voorbeeld van de Fritz!Box Call Monitor configuratie
sensor:
  - platform: fritzbox_callmonitor
    name: Telefoon
    username: !secret fb_gebruiker
    password: !secret fb_wachtwoord
    phonebook: 0

Nadat je Home Assistant opnieuw hebt opgestart, zou je een sensor moeten hebben met de naam ‘sensor.telefoon’. Als jouw sensor een andere naam heeft, moet je de naam wijzigen in de onderstaande voorbeeldconfiguratie.

Daarna is het tijd om een script te maken om de identiteit van de beller om te roepen op de Google Nest speaker. Het makkelijkst is om daar een script voor te maken, aangezien het tts-platform een data_template nodig heeft, die rechtstreeks in het configuratiebestand moet worden toegevoegd en het daarna niet langer mogelijk is om de automatisering of het script vanuit de gebruikersinterface te bewerken. Het volledige script staat hieronder. Nadat je de entity-ID’s van de sensor en Google Cast hebt gecontroleerd en gewijzigd hebt, kan je dit script rechtstreeks in je script.yaml-bestand kopiëren en plakken en de scripts opnieuw laden op de servicebeheerpagina in Home Assistant.

aankondiging_vaste_telefoon:
  alias: Aankondiging vaste telefoon
  sequence:
  - service: tts.cloud_say
    entity_id: media_player.JOUW_MEDIASPELER
    data_template:
      message: "{% if is_state_attr('sensor.telefoon', 'from_name', 'unknown') -%}Inkomend gesprek van een onbekende met het nummer {{ state_attr('sensor.telefoon', 'from',) }}. {%- else -%}Inkomend gesprek van {{ state_attr('sensor.telefoon', 'from_name',) }}.{%- endif %}"
      language: nl-NL
      options:
        gender: female
  mode: single

Nadat je de scripts opnieuw hebt geladen, kan je het script uitvoeren om te zien of het werkt. Je Google Cast-apparaat zou moeten zeggen: ‘Inkomend gesprek van none’.

Het enige dat overblijft is een automatisering die het script activeert zodra er een inkomend gesprek is. Dit kan eenvoudig worden gedaan door te zoeken naar een statuswijziging op de entity-ID ‘sensor.telefoon’. Persoonlijk wilde ik dat de naam van de beller herhaaldelijk werd aangekondigd, zolang de telefoon overgaat en alleen als ik thuis ben. Mijn automatisering ziet er als volgt uit:

# Roep naam van beller om automatisering
- alias: Vaste lijn - Roep naam van beller om
  description: ''
  trigger:
  - platform: state
    entity_id: sensor.telefoon
    to: ringing
  - platform: state
    entity_id: media_player.JOUW_MEDIASPELER
    from: playing
    to: idle
    for: 00:00:06
  condition:
  - condition: template
    value_template: '{{ not is_state("alarm_control_panel.blaffende_jane", "armed_away") }}'
  - condition: state
    entity_id: sensor.telefoon
    state: ringing
  action:
  - service: script.aankondiging_vaste_telefoon
    data: {}
  mode: single

En dat is alles! Nu kondigt je Google Cast-apparaat aan wie er belt, zodat je kunt beslissen of je wilt opnemen of niet. 😉 Je kunt meer leuke dingen doen met deze sensor, omdat die je ook vertelt wanneer iemand aan het bellen is of een gesprek voert. Je kunt een automatisering maken waardoor je Google Cast ook uitgaande oproepen aankondigt, zodat je kind niet kan bellen zonder dat je het merkt. 😉 (Ik zal een slechte ouder zijn .. Haha)

Wat ga jij maken met deze telefoonsensor? Laat het me weten! 🙂