5 m

Niet storen icoonSoms wil ik wat tijd voor mezelf hebben. Dan wil ik een film of serie kijken zonder onderbrekingen van mijn telefoon. Dus heb ik twee automatiseringen gemaakt in Home Assistant die in specifieke situaties niet storen in- en uitschakelen op mijn telefoon. Het werkte prima, met één grote uitzondering; Home Assistant kon me niet vertellen of mijn telefoon in de modus Niet storen stond. Totdat ik een sensor vond die precies dat doet. Dus, tijd om om er een speciale schakelaar voor te maken in Home Assistant.

Opmerking: op 16-02-2021 heb ik dit artikel bijgewerkt zodat het overeenkomt met de huidige mogelijkheden binnen de Home Assistant Companion-app. Zie voor meer details de Notification Commands documentatie.

Het voordeel van een speciale schakelaar voor niet storen in Home Assistant is dat het mogelijk is om automatiseringen te bouwen die niet storen op je telefoon in- en uitschakelen. Het is ook mogelijk om meer dan één telefoon of andere apparaten aan deze schakelaar te koppelen, zoals slimme luidsprekers, slimme deurbellen, intercoms, bijv. Je kunt een device tracker als vooraarde toevoegen, zodat niet storen alleen ingeschakeld wordt als de telefoon in kwestie thuis is. Dat heb ik niet gedaan, want ik ben de enige die in mijn appartement woont.

Stel je voor: je komt laat thuis en je partner ligt al te slapen. Doordat jouw telefoon niet thuis was, is niet storen niet geactiveerd omdat deze als vooraarde was ingesteld bij de automatisering die niet storen aan had moeten zetten. Hierdoor blijf jij gewoon bereikbaar, totdat je thuis komt. Je kunt de automatisering zo bouwen dat niet storen pas ingeschakeld wordt zodra je thuis komt. Dan hoef je je nooit meer zorgen te maken om je slapende partner en een eventuele luide ringtoon.

Het is mogelijk om DND in te schakelen met de Home Assistant-app voor Android. Met behulp van meldingscommando’s is het mogelijk om DND in meerdere variaties te activeren. Je kunt met deze opdrachten ook het beltoon, meldingsgeluid en mediavolume instellen. Je moet de Home Assistant-app wel toestemming geven om de DND-instellingen aan te passen. De eerste keer dat je een meldingsopdracht verzendt, zal de app om deze machtigingen vragen.

Eerst heb ik twee scripts gemaakt om DND op mijn telefoon in te schakelen. Ik zou de service rechtstreeks in de template schakelaars kunnen invoeren, wat ik zo dadelijk zal uitleggen, maar mijn ervaring met deze functie is dat het niet elke keer werkt. Met behulp van scripts kan ik makkelijker opdrachten herhalen. Wees echter voorzichtig met het aantal meldingen dat je verzendt. Het aantal is momenteel beperkt tot 300 meldingen per dag per apparaat. Ik heb dit op de harde manier geleerd. ​

De scripts zijn eenvoudig en ik zal ze voor het gemak hieronder laten zien. In het script dat DND uitschakelt, heb ik een extra servicege toegevoegd om het belvolume in te stellen. Houd er rekening mee dat het volumeniveau niet overeenkomt met het percentage dat op je telefoon weergeeft. Ik moest verschillende keren proberen om het juiste niveau te vinden. Op mijn telefoon is het volumeniveau ongeveer 70%. Vergeet niet om de ID van de notify service te wijzigen in het ID van je telefoon voordat je deze in je script.yaml-bestand plakt.

# Script om niet storen uit te zetten
dnd_off:
  alias: Niet storen uit
  sequence:
  - service: notify.mobile_app_JOUW_TELEFOON
    data:
      message: command_dnd
      title: 'off'
  - service: notify.mobile_app_JOUW_TELEFOON
    data:
      message: command_volume_level
      title: 5
      data:
        channel: ring_stream
  mode: single
  icon: mdi:do-not-disturb
# Script om niet storen in te schakelen
dnd_on:
  alias: Niet storen aan
  sequence:
  - service: notify.mobile_app_JOUW_TELEFOON
    data:
      message: command_dnd
      title: priority_only
  mode: single
  icon: mdi:do-not-disturb

Ik heb een template schakelaar gemaakt voor niet storen in Home Assistant. De schakelwaarde is de niet storen sensor, die ik vond in Home Assistant. Als DND is ingeschakeld, is de sensorstatus ‘priority_only’. Op deze manier weet de schakelaar of deze in de aan of uit positie moet staan. Deze schakelaar ziet er als volgt uit in mijn configuratiebestand.

# Schaeklaar voorbeeld
switch:
  - platform: template
    switches:
      do_not_disturb:
        friendly_name: "Niet storen"
        value_template: "{{ is_state('sensor.pixel_2_xl_do_not_disturb_sensor', 'priority_only') }}"
        turn_on:
          service: script.dnd_on
        turn_off:
          service: script.dnd_off

Om niet storen op mijn Amazon Echo’s in te schakelen, heb ik ook een template bewegingssensor gemaakt om routines te activeren.

# Binaire sensoren
  - platform: template
    sensors:
      do_not_disturb:
        friendly_name: "Niet storen sensor"
        device_class: motion
        value_template: "{{ is_state('switch.do_not_disturb', 'on') }}"

Ik had al twee automatiseringen die niet storen aan en uit schakelden. Dus ik hoefde deze alleen te upgraden met de nieuwe schakelaar die ik gemaakt heb. Ik maak van deze gelegenheid gebruik om deze automatiseringen met je te delen.

Er zijn verschillende momenten waarop ik wil dat niet storen wordt ingeschakeld. Wanneer ik slaap, wanneer ik tv kijk (zie Bioscoop ervaring), wanneer ik een douche neem of wanneer ik voice-overs aan het opnemen ben. Voor het inschakelen van niet storen, ziet de automatisering er als volgt uit:

  alias: Zet niet storen aan
  description: ''
  trigger:
  - entity_id: input_boolean.nachtmodus
    from: 'off'
    platform: state
    to: 'on'
  - entity_id: input_boolean.douchemodus
    from: 'off'
    platform: state
    to: 'on'
  - entity_id: input_boolean.thuis_bioscoop
    from: 'off'
    platform: state
    to: 'on'
  - entity_id: binary_sensor.slaapkamer_tv
    from: 'off'
    platform: state
    to: 'on'
  - entity_id: input_boolean.opnamemodus
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data: {}
    entity_id: switch.do_not_disturb
    service: switch.turn_on
  mode: single

Niet storen uitschakelen is iets lastiger. Ik wilde dat DND alleen werd uitgeschakeld als alle bovenstaande situaties niet actueel zijn. Wat ik bijvoorbeeld niet wil, is dat DND wordt uitgeschakeld nadat ik mijn tv heb uitgeschakeld en de nachtmodus al is ingeschakeld. Dat zou een echte bug zijn. Daarom heb ik in de onderstaande automatisering zoveel voorwaarden toegevoegd.

  alias: Zet niet storen uit
  description: ''
  trigger:
  - entity_id: input_boolean.nachtmodus
    from: 'on'
    platform: state
    to: 'off'
  - entity_id: input_boolean.douchemodus
    from: 'on'
    platform: state
    to: 'off'
  - entity_id: input_boolean.thuis_bioscoop
    from: 'on'
    platform: state
    to: 'off'
  - entity_id: binary_sensor.slaapkamer_tv
    from: 'on'
    platform: state
    to: 'off'
  - entity_id: input_boolean.opnamemodus
    from: 'on'
    platform: state
    to: 'off'
  condition:
  - condition: state
    entity_id: input_boolean.nachtmodus
    state: 'off'
  - condition: state
    entity_id: input_boolean.douchemodus
    state: 'off'
  - condition: state
    entity_id: input_boolean.thuis_bioscoop
    state: 'off'
  - condition: state
    entity_id: binary_sensor.slaapkamer_tv
    state: 'off'
  - condition: state
    entity_id: input_boolean.opnamemodus
    state: 'off'
  action:
  - data: {}
    entity_id: switch.do_not_disturb
    service: switch.turn_off
  mode: single

Ik heb ook twee Alexa-routines gemaakt om niet storen aan en uit te zetten op mijn slimme luidsprekers.

Dat is hoe mijn verbeterde DND-schakelaar is gebouwd in Home Assistant. Vragen en/of aanbevelingen? Laat het me weten alsjeblieft! Ik ben ook maar een mens en mensen maken van tijd tot tijd fouten.