3 m
Soms kan ik mezelf helemaal verliezen in een bepaalde activiteit. Ik kan het druk hebben met het automatiseren van mijn huis en de dingen om me heen, inclusief tijd, helemaal uit het oog verliezen. Om die reden hou ik van het geluid van een klok die slaat, zodat ik de huidige tijd kan bijhouden zonder steeds maar weer op mijn horloge te hoeven kijken.

Mijn idee komt voort uit de Audible Clock skill voor Amazon Alexa. Met deze skill kun je een klok kiezen die elk uur, elk half uur of elk kwartier slaat. Sommigen van deze zijn gratis; voor anderen moet je een maandelijks bedrag betalen. Ik ben gestopt met het gebruik van deze skill, omdat deze niet kon worden gebruikt tijdens het afspelen van muziek op hetzelfde apparaat. Omdat ik twee Google Nest Mini’s gebruik voor TTS-aankondigingen en alleen opdrachten geef, heb ik besloten om een klok voor de Nest-speakers te bouwen met Home Assistant. Als jouw situatie andersom is, probeer dan de Alexa-skill Audible Clock te gebruiken.

Ik zal de volgende dingen behandelen:

  • De klok geluiden; waar en hoe ze te plaatsen
  • De tijd- en datumsensor
  • De automatisering die de klok laat luiden

Voor dit idee heb je het volgende nodig:

  • Een speaker met cast-functionaliteit
  • Een Home Assistant-installatie

Geluid

Voor de klok op Nest-luidsprekers moet je je eigen klokgeluiden vinden. Dit kan moeilijk zijn, dus heb ik besloten om mijn eigen klokken te componeren. Je kunt deze klokken voor een kleine prijs van me kopen, want het kostte me wat tijd om deze klokken te maken. Je helpt me ook om deze website financieel te onderhouden door deze klokken te kopen.

De onderstaande automatiseringen zijn gebaseerd op de Westminster-klokken, die elk kwartier luiden. Ik zal binnenkort meer klokken met andere melodieën toevoegen.


Wanneer je één van deze koopt, krijg je ook een Blauwdruk om snel van start te gaan.

Upload de geluiden

Als je je klokgeluiden hebt gevonden, moet je ze uploaden naar je Home Assistant. Je kan dit doen door Samba of FTP te gebruiken. De bestanden moeten in de map worden geplaatst waarin je configuration.yaml-bestand zich bevindt. Daar vindt je een map met de naam ‘www’. Als dit niet het geval is, maak je deze aan en start je je Home Assistant opnieuw voordat je verder gaat. Je kunt de klokgeluiden rechtstreeks in de ‘www’-map plaatsen. Om de zaken overzichtelijk te houden, raad ik echter aan om een speciale map ‘/sounds/clock/’ te maken.

Je hebt één bestand per uur nodig. Als je wilt dat je klok elk half uur of kwartier slaat, heb je ook de bestanden voor die momenten nodig. De namen van de bestanden zijn erg belangrijk, aangezien de automatisering de bestanden rechtstreeks aanroept vanuit de waarde van een tijdstempel.

  • Uren onder de 10 moeten de naam ’01.mp3′, ’02.mp3′ enz. hebben.
  • Uren 10, 11 en 12 kunnen gewoon ’10.mp3, ’11.mp3′ en ’12.mp3′ heten
  • De klokken tijdens het uur moeten worden genoemd naar de minuut waarop ze moeten spelen, zoals ’15.mp3′, ’30.mp3′ en ’45.mp3′

Voor een klok die elk kwartier luidt, heb je nu 15 bestanden; als je alles goed hebt gedaan.

Datum en tijd sensor in ISO-formaat

Om de automatisering correct te activeren, moet je de ISO-sensor voor tijd en datum configureren. Voor details over de configuratie kun je de tijd- en datumdocumentatie lezen. De voorbeeldconfiguratie staat hieronder:

sensor:
  - platform: time_date
    display_options:
      - 'date_time_iso'

Automatisering

De automatisering gebruikt een template als trigger. In deze template heb ik gedefinieerd dat de automatisering wordt geactiveerd wanneer de tijd 00, 15, 30 of 45 minuten na het uur is. Als je een klok bouwt die slechts één of twee keer per uur slaat, is dit het moment om de onnodige code uit deze template te verwijderen.

De automatisering ziet er als volgt uit:

- id: 'audible_clock'
  alias: Audible clock
  description: ''
  trigger:
  - platform: template
    value_template: '{{ now().minute == 00 or now().minute == 15 or now().minute ==
      30 or now().minute == 45 }}'
  condition: []
  action:
  - delay: 00:00:02
  - wait_template: '{{ not is_state(''JOUW_MEDIASPELER'', ''playing'') }}'
    timeout: 00:00:45
    continue_on_timeout: false
  - service: media_player.play_media
    entity_id: JOUW_MEDIASPELER
    data_template:
      media_content_id: /local/sounds/clock/{% if now().minute == 0
        %}{{ states('sensor.date_time_iso') | as_timestamp() | timestamp_custom('%I')
        }}{% else %}{{ now().minute }}{% endif %}.mp3
      media_content_type: audio/mp3
  mode: single

Vergeet niet om ‘JOUW_MEDIASPELER’ te vervangen voor je eigen mediaspeler.

En dat is dat. Zo heb ik mijn eigen audio klok gemaakt voor de Nest-speakers.