Activate the last_seen attribute via the Zigbee2MQTT interface. Go to Settings → Advanced → Last seen → Choose ISO_8601
Per default, the last seen sensor is disabled for all Home Assistant entities. To enable the last_seen attribute for all devices, add the following lines via VS Code in homeassistant → zigbee2mqtt → configuration.yaml
Now you must either restart Home Assistant or activate the entity manually: Go to Settings → Devices & services → Entities and adjust your Filter like this:
Integrations: Select “MQTT”
Status: Select “Disabled”
Then search for last seen, click on select all (right next to the filter button) and choose Enable selected in the context menu when clicking on the three dots in the top right corner.
Now the last_seen entity values should be visible, and you can use this new entity to detect an offline device. For example, by using this blueprint or by creating a template sensor like it is described here (related YT video). The template sensor can be put somewhere on your dashboard or used in an automation. Following the automation I’m using:
alias: Notify when zigbee device goes offline using last_seen
description: ""
trigger:
- platform: state
entity_id:
- sensor.z2m_offline_devices
from: null
to: null
for:
hours: 0
minutes: 10
seconds: 0
condition: []
action:
- service: notify.mobile_app_mi_8
metadata: {}
data:
title: |-
{% if not states('sensor.offline_zigbee_devices') %}
All Zigbee Devices Online!
{% else %}
The following Zigbee Devices are offline:
{% endif %}
message: "{{ states('sensor.offline_zigbee_devices') }}"
mode: single
I also recommend excluding the last_seen sensors from the Logbook, because else the Logbook is flooded with changes. To do this, simply add the following lines in your configuration.yaml file:
In an automation, you can retrieve the friendly_name of the triggering device using:
{{ trigger.to_state.attributes.friendly_name }}
Helpful if an automation can be triggered by different devices (e.g. garage door 1 or garage door 2) and you want to send a notification that explicitly names the triggering device:
- service: notify.ALL_DEVICES
data:
title: Garage open!
message: >-
{{ trigger.to_state.attributes.friendly_name }} is open
If you have a notification, which is only relevant for you when you are at home, it does not make sense to send it, if you are away. Instead, it would make sense to receive it the moment you get home.
To do this, simply add an Wait for a template action before sending the notification, with the following content. This can be done via YAML configuration
If you are currently at home, means the entity status is already in the state home, it will be resolved immediately, otherwise it will wait until your status changes to home.
I have some lights in my garden which are turned on in the night and are controlled by the Adaptive Lighting component, to automatically adjust brightness and color during the night. But if someone comes home late and this is detected by a motion sensor, I wanted to increase the brightness of all the lights in the garden for a short time.
Increasing the brightness was easy, as it can be done by using the light.turn_on service. However, it took me a few minutes to figure out how to reactivate adaptive lighting on these lights when motion is no longer detected. But it’s actually super simple (and it’s directly written on the GitHub start page here and here). You just have to deactivate the “manually controlled” flag that got activated by “manually” increasing the brightness. Following an example with a single motion sensor (binary_sensor.haustuer_motion), a lamp (light.haustur_light) and the adaptive lightning switch entity (switch.adaptive_lighting_haustuer).
alias: Motion sensor front door
description: "Increase brightness for three minutes when motion is detected"
trigger:
- platform: state
entity_id:
- binary_sensor.haustuer_motion
to: "on"
condition:
- condition: state
entity_id: sun.sun
state: below_horizon
action:
- service: light.turn_on
data:
transition: 3
brightness_pct: 70
target:
entity_id: light.haustur_light
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.haustuer_motion
to: "off"
for:
hours: 0
minutes: 3
seconds: 0
timeout:
hours: 0
minutes: 0
seconds: 0
milliseconds: 0
- service: adaptive_lighting.set_manual_control
data:
manual_control: false
entity_id: switch.adaptive_lighting_haustuer
lights:
- light.haustur_light
mode: single
Die Integration bietet eine custom component für die AWSH. Nach Angabe von Ort und Straße bekommt man hier für alle Abfallbehälterarten die entsprechenden Termine zurück. Man muss daher noch die relevanten für sich heraussuchen. Diese kann man unter customize dann angeben und zusätzlich mit einem alias und einem icon versehen.
Alternativ bekommt man hier den Link zu einer .ics Kalenderdatei. Man kann vorher die für sich relevanten Abfallbehälter auswählen. Die .ics kann ebenfalls direkt eingebunden werden (siehe hier)
Um immer die Anzahl der Tage bis zum nächsten Abholtermin zu kennen, am besten noch einen weiteren Sensor anlegen und diesem wieder alle Abfallarten zuordnen.
# Sensor for upcoming waste. Used in my reminder automation
- platform: waste_collection_schedule
name: upcomingWaste
value_template: "{{value.daysTo}}"
types:
- Restabfall
- Bioabfall
- Wertstoff
- Papier
Dieser kann dann in einer Erinnerungsautomatisierung verwendet werden, welche z.b. eine Notification am Vortag um 19Uhr verschickt.
Die Notification beinhaltet eine Bestätigungsmöglichkeit. Hat jemand die Tonne herausgestellt, kann dieser darüber dies einfach kurz bestätigen und mit einer zweiten Automatisierung kann man die Benachrichtigung dann bei anderen verschwinden lassen. Mehr dazu hier.