In diesem Video zeige ich dir, wie du Benachrichtigungen in Home Assistant deutlich einfacher verwalten kannst! 🚀 Normalerweise muss man in jeder Automatisierung festlegen, wer welche Nachricht bekommt – sei es die Frau, die Kids oder man selbst. Dazu kommen noch kritische Benachrichtigungen, die extra Aufmerksamkeit erfordern. Ich habe eine Lösung entwickelt, mit der du das Ganze zentral steuern kannst. Selbst wenn sich Geräte ändern, musst du nicht stundenlang deine Automatisierungen anpassen. 🔄
Um das Skript einzufügen, begib dich zu Home Assistant Skripte , lege eine neues Skript an und wähle über die drei Punkte in der rechten oberen Ecke die YAML Bearbeitung aus. Dort kannst du das unten aufgeführte Skript dann einfügen. Wichtig ! Die Dienstnamen für die Benachrichtigungen der Alexa-Media Player Devices oder auch Mobile Geräte müssen in der Variable „targets“ angepasst werden.
sequence:
- variables:
push_data: |-
{% if critical %} {
"push": {
"sound": {
"name": "default",
"critical": 1,
"volume": 1.0
}
}
} {% else %} {} {% endif %}
alias: push_data Variable, um den Channel "Critical" beim Iphone zu abonnieren
- variables:
targets: |-
{% set t = [] %}
{% if group_admins %}
{% set t = t + ["notify.mobile_app_iphone_tobias"] %}
{% endif %}
{% if group_family %}
{% set t = t + ["notify.mobile_app_iphone_tobias", "notify.mobile_app_slerch","notify.alexa_media_bad_oben"] %}
{% endif %}
{% if alexa %}
{% set t = t + ["notify.alexa_media_keller"] %}
{% endif %}
{{ t | unique | list }}
alias: targets für alle gewünschten "notify" Dienste
- variables:
alexa_devices: "{{ targets | select('search', 'notify.alexa_media') | list }}"
alias: "alexa_devices : Filter um nur die alexa Devices für den Dienst zu filtern"
- variables:
media_players: >
{% set media_players = alexa_devices | map('replace',
'notify.alexa_media_', 'media_player.') | list %} {{ media_players }}
alias: >-
media_players: Aus dem Dienst werden automatisch alle Media_Player
Entitätsnamen abgeleitet.
- variables:
volume_level: |
{% if critical %}
0.8
{% else %}
0.2
{% endif %}
alias: >-
volume_level: Wenn critical aktiviert ist, wir eine andere Lautstärke
gewählt , anonsten default für die Ausgabe
- repeat:
for_each: "{{ media_players }}"
sequence:
- action: media_player.volume_set
metadata: {}
data:
volume_level: "{{ volume_level }}"
target:
entity_id: "{{ repeat.item }}"
enabled: true
- repeat:
sequence:
- action: "{{ repeat.item }}"
data:
title: "{{ title }}"
message: "{{ message }}"
data: "{{ push_data }}"
for_each: "{{ targets }}"
enabled: true
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- repeat:
for_each: "{{ media_players }}"
sequence:
- action: media_player.volume_set
metadata: {}
data:
volume_level: 0.1
target:
entity_id: "{{ repeat.item }}"
enabled: true
- action: persistent_notification.create
metadata: {}
data:
message: "{{ targets }}"
alias: Notify All V2
description: ""
fields:
message:
selector:
text:
multiline: true
name: message
title:
selector:
text: null
name: title
group_admins:
selector:
boolean: {}
name: group_admins
required: true
group_family:
selector:
boolean: {}
name: group_family
required: true
critical:
selector:
boolean: {}
name: critical
required: true
alexa:
selector:
boolean: {}
name: alexa
required: true
Folgende Videos kann ich dir als Grundlagenvideos zum Thema Notifications noch empfehlen.
Diese Uhr ist nicht nur ein stilvolles Accessoire, sondern auch ein wahres Multitalent im Smart Home. Dank ihrer nahtlosen Integration in Home Assistant kannst du die Ulanzi TC001 ganz nach deinen Wünschen anpassen und automatisieren. Stell dir vor, wie sie dir nicht nur die Uhrzeit anzeigt, sondern auch aktuelle Wetterdaten in lebendigen Animationen präsentiert oder dich rechtzeitig an deine nächsten Termine erinnert. Lass deiner Kreativität freien Lauf und gestalte deine Uhr mit individuellen Designs, die deine Persönlichkeit widerspiegeln. Die Ulanzi TC001 Smart Pixel Uhr ist der Schlüssel, um dein Zuhause intelligenter und stilvoller zu machen. Entdecke die unendlichen Möglichkeiten der modernen Technologie und verwandle dein Zuhause in einen Ort, der sowohl funktional als auch ästhetisch ansprechend ist – mit der Ulanzi TC001 wird jeder Tag zu einem besonderen Erlebnis!
In meinem Video habe ich die Installation von awtrix 3 auf dem Pixel Display nicht vorgestellt. Bei mir geht es um die Kommunikation mit awtrix 3 und Home Assistant. Und zwar ohne dem teilweise bekannten Memory Leak.
Bis zur Nacht vor der Veröffentlichung lag mir auch noch kein Affiliate Link vor. Aber nach nun einigen Wochen Wartezeit habe auch ich tatsächlich einen Link erhalten, wo ihr das Produkt erwerben könnt. Lag wohl doch nicht an der Kanalgröße 🙂
Für die Kommunikation mit dem Pixeldisplay habe ich im Video mehrere Skripte vorgestellt.
Bei der Entwicklung, dem Code und auch beim Bugfixing habe ich mit @Herr Spiegelmann ( Moderator auf meinem Discord Server ) eng zusammengearbeitet. Auch an dieser Stelle meinen herzlichen Dank für die sehr angenehme und konstruktive Zusammenarbeit.
awtrix – new app
awtrix – delete app
awtrix – indicator
awtrix – power off
awtrix – power on
awtrix – reboot
Icons für das Display lassen sich auf der Seite LaMetric Icon Gallery herunterladen. Im Video wurden folgende Icon Numbers verwendet:
3813 – für Tibber
37323 – für PV Leistung
2422 – für Aussentemperatur
389 – für SOC des Hausspeichers
974 – für Youtube Views und Likes
56166 – für Gelbe Tonne
12155 – für Graue Tonne
56626 – für Grüne Tonne
!Hinweis vom 24.01.2025!
Ab der Version 0.97 funktionieren die LaMetrics Icon´s wieder.
Zur Müllanzeige gibt es im Video vom 24.01.2025 ( Veröffentlichungszeitpunkt 17:00 Uhr ) ein Update zum Thema. Ihr findet das Video unter: https://youtu.be/3jxeRZBt4u4
!Hinweis vom 16.12.2024!
Aktuell lässt sich in der awtrix Weboberfläche von LaMetrics kein Icon auf das Display laden. Aber es gibt eine alternative Lösung. Blueforcer , der Entwickler von awtrix 3 hat eine App für Android und IPhone entwickelt, wo ihr auch eine Icon Gallerie zur Verfügung gestellt bekommt und die Icons direkt auf das Display laden könnt. Die App kostet für iOs weniger als 4€ ( Stand: 16.12.2024), was ich für den Funktionsumfang für absolut gerechtfertigt halte. Es gilt zu beachten, wenn man die Icons von awtrix verwendet, dann müssen die Icon ID´s angepasst werden.
awtrix – new app
alias: awtrix - new app
sequence:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/custom/{{topicname}}
payload: |-
{
"text": "{{text}}",
"rainbow": {{rainbow|tojson}},
"duration": "{{duration}}",
"icon": "{{icon}}",
"scrollSpeed": 80,
"textCase": "{{textcase}}",
"lifetime": "{{lifetime}}"
}
- if:
- condition: template
value_template: "{{ showimmediately == true or showimmediately == True}}"
then:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/switch
payload: "{\"name\": \"{{topicname}}\"}"
description: ""
icon: mdi:led-strip
fields:
topicname:
selector:
text: null
name: topicname
required: true
description: Name of the topic - one topic per app
text:
selector:
text: null
name: text
required: true
description: Text to be displayed
icon:
selector:
number:
min: 0
max: 100000
name: icon
required: true
description: Icon ID, needs to be present on the awtrix filesystem - default no icon
default: 1
rainbow:
selector:
boolean: {}
name: rainbow
default: false
required: true
description: Rainbow text yes/no
lifetime:
selector:
number:
min: 0
max: 86400
step: 1
name: lifetime
default: 0
description: Discard app after X seconds - default 0 (never expire)
duration:
selector:
number:
min: 1
max: 180
step: 1
name: duration
default: 3
description: How many seconds should the message be displayed - default 3
textcase:
selector:
number:
min: 0
max: 2
step: 1
name: textCase
default: 0
description: >-
Changes the Uppercase setting. 0=global setting, 1=forces uppercase;
2=shows as it sent - default 0
showimmediately:
selector:
boolean: {}
name: showImmediately
required: false
description: Jumps the queue and displays the message immediately - default false
mode: parallel
max: 10
awtrix – delete app
alias: awtrix - delete app
sequence:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/custom/{{topicname}}
payload: "{}"
description: ""
icon: mdi:led-strip
fields:
topicname:
selector:
text: null
name: topicname
required: true
description: Name of the app to be deleted
mode: parallel
max: 10
awtrix – indicator
Hinweis zur Verwendung: Wenn man den Indikator wieder deaktivieren ( nicht anzeigen ) lassen will, so muss lediglich die Farbe „schwarz“ selektiert werden.
alias: awtrix - indicator
sequence:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/indicator{{indicator}}
payload: "{\"color\":{{colour}}, \"fade\":{{fade}}}"
description: ""
icon: mdi:led-strip
fields:
indicator:
selector:
number:
min: 1
max: 3
step: 1
name: indicator
required: true
description: Index of the indicator
default: 1
colour:
selector:
color_rgb: {}
default:
- 255
- 0
- 0
name: colour
description: Colour of the indicator
required: true
fade:
selector:
number:
min: 500
max: 3000
step: 100
name: fade
required: true
default: 0
description: >-
Fade the indicator on and off with a fade interval in milliseconds - 0 is
don't fade
mode: parallel
max: 10
awtrix – power off
alias: awtrix - power off
sequence:
- action: mqtt.publish
metadata: {}
data:
topic: awtrix/power
payload: "{\"power\" : false}"
evaluate_payload: false
qos: 0
retain: false
description: power off device
icon: mdi:led-strip
fields: {}
mode: parallel
max: 10
awtrix – power on
alias: awtrix - power on
sequence:
- action: mqtt.publish
metadata: {}
data:
topic: awtrix/power
payload: "{\"power\" : true}"
evaluate_payload: false
qos: 0
retain: false
description: power on device
icon: mdi:led-strip
fields: {}
mode: parallel
max: 10
Für die Müllanzeige werden ein Input Button Helfer und ein Template Helfer benötigt.
Der Input Button Helfer übernimmt bei Betätigung einen aktuellen Zeitstempel, welcher im Template „Müllinformation“ verwendet wird.
Das Template Müllinformation liest aus einem Kalender Zeitpunkte für die jeweiligen Müllabholungstermine aus und differenziert in diesem Beispiel nach
Gelber Sack
Grüne Tonne
Graue Tonne
Template Helfer Sensor „Müllinformation“
{% set last_pressed = as_datetime(states('input_button.mulltonne_rausgestellt')).date() %}
{% set start_time = state_attr('calendar.abfall', 'start_time') %}
{% if start_time %}
{% set event_datetime = as_datetime(start_time) %}
{% set event_date = event_datetime.date() %}
{# Wenn der Button innerhalb des gültigen Zeitraums (heute oder gestern) gedrückt wurde und das Ereignis noch nicht vorbei ist #}
{% if (last_pressed == event_date or last_pressed == event_date - timedelta(days=1)) %}
Tonne wurde rausgestellt.
{% else %}
{# Am Tag vor dem Ereignis #}
{% if (event_date - now().date()).days == 1 %}
{{ state_attr('calendar.abfall', 'message') }} rausstellen!
{# Am Tag des Ereignisses #}
{% elif event_date == now().date() %}
{{ state_attr('calendar.abfall', 'message') }} rausstellen!
{# Ansonsten kein Termin #}
{% else %}
Kein Müll
{% endif %}
{% endif %}
{% else %}
Kein Termin
{% endif %}
1 Tag vor dem Abholungstermin bis zum Tag der Abholung, wird der Termin mit der jeweiligen herauszustellenden Tonne über das Template angezeigt. Ich verwende dafür die HACS Mushroom Cards .
Wurde die Tonne herausgestellt, kann über den Input Button quittiert werden, dass die Mülltonne herausgestellt wurde.
Wird der Vorgang quittiert, wird die Anzeige aktualisiert und auch auf dem Display die Nachricht entfernt.
Müll quittieren (Mushroom Template-Badge)
type: custom:mushroom-template-badge
content: Müll quittieren
icon: mdi:trash-can
color: >-
{% set last_pressed =
as_datetime(states('input_button.mulltonne_rausgestellt')).date() %}
{% set start_time = state_attr('calendar.abfall', 'start_time') %}
{% if start_time %}
{% set event_datetime = as_datetime(start_time) %}
{% set event_date = event_datetime.date() %}
{# Wenn der Button innerhalb des gültigen Zeitraums (heute oder gestern) gedrückt wurde und das Ereignis noch nicht vorbei ist #}
{% if (last_pressed == event_date or last_pressed == event_date - timedelta(days=1)) %}
green
{% else %}
blue
{% endif %}
{% endif %}
label: |2-
entity: input_button.mulltonne_rausgestellt
tap_action:
action: toggle
visibility:
- condition: and
conditions:
- condition: state
entity: sensor.mullinformation
state_not: Kein Müll
- condition: state
entity: sensor.mullinformation
state_not: Tonne wurde rausgestellt.
- condition: and
conditions: []
Die Automatisierung sieht dann wie folgt aus. Hier bitte die eigenen Entitäten verwenden und nicht benötigte Anzeigen entfernen.
Für Müll quittieren, verwende ich ein Mushroom Template Badge.
Update vom 27.11.2024dynamische Wetter-Icons
Das Thema beschäftigt mich weiterhin, so dass ich euch noch weitere Ergänzungen und Updates zum awtrix 3 zur Verfügung stellen möchte.
Angeregt durch einige Kommentare bzgl. einer in Abhängigkeit vom aktuellen Wetter anzuzeigendes Icon , möchte ich euch eine Erweiterung der Automatisierung, bzw. des Skripts vorstellen, so dass ihr ohne eine zusätzliche Automatisierung oder Skript den Zustand des Wetters als Icon ( z.B. Sonnig, Regnerisch, Bewölkt etc.. ) nutzen könnt. Grundvoraussetzung dafür ist eine Wetterintegration wie z.B. der Deutsche Wetterdienst (GitHub – FL550/dwd_weather: Deutscher Wetterdienst integration for Home-Assistant)
Partly Cloudly
Rainy
Snowy
Bei dieser Lösung wird der aktuelle Zustand der Wetter Entität ausgelesen und in der Automatisierung verwendet.
Wir benötigen dazu ein Template, welches den aktuellen Zustand des Wetters ausgibt. Die Ausgaben des Wetter Templates sind in jeder Integration identisch und können auf der Home Assistant Dokumentationsseite nachgelesen werden.
In meinem Beispiel heißt die Entität “ weather.lahr „.
{{ states('weather.lahr') }}
Rückgabe ist in diesem Beispiel bewölkt, also cloudy.
Es gibt nach der Home Assistant Dokumentation 15 unterschiedliche Wetter Zustände. Für jeden der Zustände habe ich uns ein Icon von der Seite LaMetric Icon Gallery herausgesucht und auf der awtrix 3 Weboberfläche heruntergeladen.
ICON-ID
Wetter Zustand
2283
cloudy
13505
clear-night
8551
fog
52386
hail
21174
lighting (thunderstorm)
51457
lightning-rainy
2286
partlycloudy
56677
pouring
56548
rainy
58081
snowy
49301
snowy-rainy
11201
sunny
15618
windy
62874
windy-variant
56705
exceptional
Ladet diese Icons über die awtrix 3 Weboberfläche herunter und speichert die Einstellungen.
Nachdem die Icons alle heruntergeladen sind, geht zum Tab Files und lasst euch dort alle Dateien im Verzeichnis ICONS anzeigen.
Dort gebt ihr den Dateien mit der jeweiligen ID den Namen aus der obigen Tabelle.
Die Beispiel ID 2283.gif, wird somit aus der Datei cloudy.gif umbenannt. Dieser Vorgang wird für alle in der Tabelle enthaltenen IDs wiederholt.
Ist der Vorgang abgeschlossen, sollten folgende Bilddaten im Verzeichnis ICONS vorhanden sein.
Im Skript awtrix – new app muss eine Änderung vorgenommen werden.
Unter dem Feld icon, muss Zahl in Text geändert und gespeichert werden.
Ändern in Text:
Nach dem Speichern ist das Skript nun in der Lage ein Icon über einen Namen ( wie z.B. cloudy oder sunny ) zu laden.
Hier nochmal das vollständige Skript awtrix – new app
alias: awtrix - new app
sequence:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/custom/{{topicname}}
payload: |-
{
"text": "{{text}}",
"rainbow": {{rainbow|tojson}},
"duration": "{{duration}}",
"icon": "{{icon}}",
"scrollSpeed": 80,
"textCase": "{{textcase}}",
"lifetime": "{{lifetime}}"
}
- if:
- condition: template
value_template: "{{ showimmediately == true or showimmediately == True}}"
then:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/switch
payload: "{\"name\": \"{{topicname}}\"}"
description: ""
icon: mdi:led-strip
fields:
topicname:
selector:
text: null
name: topicname
required: true
description: Name of the topic - one topic per app
text:
selector:
text: null
name: text
required: true
description: Text to be displayed
icon:
selector:
text: {}
name: icon
required: true
description: Icon ID, needs to be present on the awtrix filesystem - default no icon
rainbow:
selector:
boolean: {}
name: rainbow
default: false
required: true
description: Rainbow text yes/no
lifetime:
selector:
number:
min: 0
max: 86400
step: 1
name: lifetime
default: 0
description: Discard app after X seconds - default 0 (never expire)
duration:
selector:
number:
min: 1
max: 180
step: 1
name: duration
default: 3
description: How many seconds should the message be displayed - default 3
textcase:
selector:
number:
min: 0
max: 2
step: 1
name: textCase
default: 0
description: >-
Changes the Uppercase setting. 0=global setting, 1=forces uppercase;
2=shows as it sent - default 0
showimmediately:
selector:
boolean: {}
name: showImmediately
required: false
description: Jumps the queue and displays the message immediately - default false
mode: parallel
max: 10
In der Automatisierung kann nun das Skript für die dynamischen Wettericons wie folgt aufgerufen werden, ich verwende es zusammen mit einem Außentemperatursensor und übergebe als Icon den aktuellen Zustand der Wetter Entität.
Ich habe das Script noch erweitert, so dass auch eine RGB Farbe übergeben werden kann. Defaultwert ist „weiß“ , es muss auch keine Farbe angegeben werden.
Der neue Parameter nennt sich textcolor. Im Beispiel ist die Schriftfarbe auf „rot“ gesetzt worden.
alias: awtrix - new app
sequence:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/custom/{{topicname}}
payload: |-
{
"text": "{{text}}",
"rainbow": {{rainbow|tojson}},
"duration": "{{duration}}",
"icon": "{{icon}}",
"scrollSpeed": 80,
"textCase": "{{textcase}}",
"lifetime": "{{lifetime}}",
"color": {{textcolor or [255, 255, 255] | tojson}}
}
- if:
- condition: template
value_template: "{{ showimmediately == true or showimmediately == TRUE }}"
then:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/switch
payload: "{\"name\": \"{{topicname}}\"}"
description: ""
icon: mdi:led-strip
fields:
topicname:
selector:
text: null
name: topicname
required: true
description: Name of the topic - one topic per app
text:
selector:
text: null
name: text
required: true
description: Text to be displayed
icon:
selector:
text: {}
name: icon
required: true
description: Icon ID, needs to be present on the awtrix filesystem - default no icon
rainbow:
selector:
boolean: {}
name: rainbow
default: false
required: true
description: Rainbow text yes/no
lifetime:
selector:
number:
min: 0
max: 86400
step: 1
name: lifetime
default: 0
description: Discard app after X seconds - default 0 (never expire)
duration:
selector:
number:
min: 1
max: 180
step: 1
name: duration
default: 3
description: How many seconds should the message be displayed - default 3
textcase:
selector:
number:
min: 0
max: 2
step: 1
name: textCase
default: 0
description: >-
Changes the Uppercase setting. 0=global setting, 1=forces uppercase;
2=shows as it sent - default 0
showimmediately:
selector:
boolean: {}
name: showImmediately
required: false
description: Jumps the queue and displays the message immediately - default false
textcolor:
selector:
color_rgb: {}
name: textcolor
default:
- 255
- 255
- 255
required: false
description: set text color
mode: parallel
max: 10
Update vom 05.12.2024 : Fortschrittsanzeige
Desto mehr man mit dem Display arbeitet, desto mehr Dinge fallen einem ein, was man damit alles realisieren kann. Ich habe das Script ergänzt um eine Fortschrittsanzeige, so dass ihr z.B. den Fortschritt eures Waschvorgangs oder eurer Geschirrspülmaschine anzeigen lassen könnt. Dann hat man im Blick, wann man die Wäsche aufhängen darf, oder das Geschirr ausräumen:-)
In diesem Beispiel habe ich einen Geschirrspüler dargestellt, der gerade ca. 80% seines Vorgangs beendet hat.
Ein neues Feld wurde dazu im Script ergänzt. Im Feld „progress“ übergebt ihr eure Entität , die einen Fortschritt in Prozent enthält ( 0-100% ).
Als Icon habe ich dafür die Nr. 55848 verwendet.
Das Feld muss nicht zwingend übergeben werden, so dass eure Automatisierungen davon nicht betroffen sind. Wird kein Wert übergeben, wird der Default Wert auf -1 gesetzt und kein Fortschritt wird angezeigt.
Das aktualisierte Script awtrix – new app
alias: awtrix - new app
sequence:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/custom/{{topicname}}
payload: |-
{
"text": "{{text}}",
"rainbow": {{rainbow|tojson}},
"duration": "{{duration}}",
"icon": "{{icon}}",
"scrollSpeed": 80,
"textCase": "{{textcase}}",
"lifetime": "{{lifetime}}",
"color": {{textcolor or [255, 255, 255] | tojson}},
"progress": {{ progress or -1 }}
}
- if:
- condition: template
value_template: "{{ showimmediately == true or showimmediately == True}}"
then:
- action: mqtt.publish
metadata: {}
data:
evaluate_payload: false
qos: 0
retain: false
topic: awtrix/switch
payload: "{\"name\": \"{{topicname}}\"}"
description: ""
icon: mdi:led-strip
fields:
topicname:
selector:
text: null
name: topicname
required: true
description: Name of the topic - one topic per app
text:
selector:
text: null
name: text
required: true
description: Text to be displayed
icon:
selector:
text: {}
name: icon
required: true
description: Icon ID, needs to be present on the awtrix filesystem - default no icon
rainbow:
selector:
boolean: {}
name: rainbow
default: false
required: true
description: Rainbow text yes/no
lifetime:
selector:
number:
min: 0
max: 86400
step: 1
name: lifetime
default: 0
description: Discard app after X seconds - default 0 (never expire)
duration:
selector:
number:
min: 1
max: 180
step: 1
name: duration
default: 3
description: How many seconds should the message be displayed - default 3
textcase:
selector:
number:
min: 0
max: 2
step: 1
name: textCase
default: 0
description: >-
Changes the Uppercase setting. 0=global setting, 1=forces uppercase;
2=shows as it sent - default 0
showimmediately:
selector:
boolean: {}
name: showImmediately
required: false
description: Jumps the queue and displays the message immediately - default false
textcolor:
selector:
color_rgb: {}
name: textcolor
default:
- 255
- 255
- 255
required: false
description: set text color
progress:
selector:
number:
min: 0
max: 99
step: 1
name: progress
description: "shows a progress bar (value range from 0-100) "
default: 0
mode: parallel
max: 10
Die Automatisierung dazu habe ich so gestaltet, dass mir die Meldung und der Fortschritt nur dann angezeigt werden, wenn der Fortschritt > 0 % ist. Ansonsten wird die Meldung wieder entfernt. Getriggert wird auf Änderung des Fortschritts.
Der Teilabschnitt für die Wenn/Dann Bedingung unter den Aktionen sieht wie folgt aus:
Tauche ein in die Welt der Sicherheit! Erfahre in diesem Video, wie du Frigate NVR problemlos unter Home Assistant einrichtest. Von der nahtlosen Integration bis zur stylischen Lovelace Card – alles, was du für ultimativen Schutz brauchst! 🛡️🏡
Spezifikationen: Arm 32-Bit Cortex-M0+ Mikroprozessor (MCU): bis zu 32 MHz max 16 KB Flash-Speicher mit ECC 2 KB RAM-Anschlüsse: USB 3.1 (Gen 1) Port und Kabel (SuperSpeed, 5 Gb/s Übertragungsgeschwindigkeit)
Bitte beachtet, dass man Frigate NVR nicht auf einem Raspberry Pi mit Micro SD Karte laufen lassen sollte. Durch die häufigen Schreib-/Lesezyklen kann es zu einem schnellen Defekt der Dateisystems kommen. Verwendet hier besser eine SSD !
Für die Verwendung des Coral AI Stick mit einem Raspberry PI, empfehle ich einen separat versorgten USB 3.0 HUB.
Netzwerkspeicher
Für das dauerhafte Recording empfehle ich die Verwendung eines Netzwerkspeichers. Die Einrichtung unter Home Assistant für die Verwendung eines Netzwerkspeichers ist hier beschrieben:
Wie sich grundsätzlich unter HA ein Netzwerkspeicher z.B. über eine Synology NAS Freigabe einrichten lässt, habe ich in dem Video Backup & Restore erklärt. Hier wäre lediglich als Medium -> Media zu wählen und nicht Backup. Die Media Freigabe muss unter Home Assistant „frigate“ genannt werden.
Konfigurationen:
Hier findest du die frigate.yml :
mqtt:
enabled: True
host: 172.16.0.14
user: smarthome
password: smarthome
topic_prefix: frigate
# Optional: client id (default: shown below)
# WARNING: must be unique if you are running multiple instances
client_id: frigate
# Optional: interval in seconds for publishing stats (default: shown below)
stats_interval: 1
# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
# Required: name of the detector
detector_name:
# Required: type of the detector
# Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
# Additional detector types can also be plugged in.
# Detectors may require additional configuration.
# Refer to the Detectors configuration page for more information.
type: cpu
birdseye:
enabled: True
restream: True
mode: objects
objects:
track:
- person
- car
filters:
person:
min_area: 5000
max_area: 100000
go2rtc:
streams:
Treppenhaus:
- rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main
- "ffmpeg:rtsp_cam#audio=opus"
Treppenhaus_sub:
- rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main
- "ffmpeg:rtsp_cam#audio=opus"
cameras:
Treppenhaus_CAM:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/Treppenhaus?video=copy&audio=aac
input_args: preset-rtsp-restream
roles:
- record
- path: rtsp://127.0.0.1:8554/Treppenhaus_sub?video=copy
input_args: preset-rtsp-restream
roles:
- detect
detect:
width: 1280
height: 720
fps: 5
snapshots:
enabled: True
record:
enabled: True
retain:
days: 7
events:
retain:
default: 14
Möchtest du weitere Kameras einbinden, habe ich dir das Beispiel frigate.yml um eine weitere Beispielkamera erweitert ( Beispiel für eine Reolink Kamera z.B. 410, 520, 520a, 511wa). Dieser Vorgang kann für die Anzahl eurer Kameras wiederholt werden. Achtet darauf, dass jede Kamera auch Kapazität von eurem Host-System in Anspruch nimmt.
Weitere Konfigurationsbeispiele für Kameras findest du an dieser Stelle auf der Frigate Dokumentation:
Nun kannst du in deiner VM den USB Edge TPU Adapter wie folgt durchreichen:
Achte dabei darauf ,dass du den Port wählst, wo der Coral AI Stick eingesteckt ist. Bei mir wurde „Ausgesteckt“ angezeigt. Lass dich davon nicht irritieren, wenn das bei dir ebenfalls so sein sollte.
Für die Verwendung der TPU musst du zwingend einen USB 3.x Port verwenden.
Zuletzt muss die Home Assistant VM neu gestartet werden und die Änderung in der friagte.yml durchgeführt werden ( siehe oben ).
In eigener Sache:
Frigate bietet noch viele weitere Möglichkeiten. Diese lassen sich nicht alle in nur einem Video darlegen. Falls dich Frigate mit Home Assistant interessiert, kannst du mir gerne in den Kommentaren des Videos auf Youtube eine Nachricht hinterlassen. Wenn genügend Interesse besteht, werde ich gerne noch weitere Features von Frigate vorstellen ( Masken, Zonen, Beispielautomatisierungen etc. ) .
In diesem Video erlebt ihr den einfachen Einstieg in die Nutzung von Home Assistant Templates. Wir gehen Schritt für Schritt durch die Grundlagen von Templates bis zu einer unkomplizierten Beispielautomatisierung. Dies schafft eine solide Basis für zahlreiche weitere Automatisierungen mit Templates. Entdeckt jetzt die Welt der Smart Home Automatisierung!
Entdecke die Magie der Lichtautomatisierung! In diesem Video zeige ich dir 3 faszinierende Wege, wie du das Dimmen von Lichtern mit nur einer Fernbedienung in deinem Smart Home automatisieren kannst. Tauche ein in die Welt der Beleuchtungshacks und erfahre, wie du mit Leichtigkeit die perfekte Atmosphäre in jedem Raum schaffst. Verpasse nicht die Gelegenheit, deinem Zuhause einen Hauch von Smartness zu verleihen – schau jetzt rein und erlebe, wie einfach es sein kann, Licht auf ein neues Level zu heben!
Smart ohne Stress: Deine individuelle Home Assistant Blaupause in 20 Minuten – Keine Programmierkenntnisse erforderlich! Bonus: Lade den Blueprint von meiner Blog-Seite herunter, wenn du dir die Arbeit sparen möchtest!
Dieses Video soll Einblicke im erweiterten Umgang mit Home Assistant , ApexChartCard, Templates und Abfragen und die Nutzung von Device Tracking Diensten geben. Wie automatisiere ich meine persönliche Dokumentation einer Arbeitszeiterfassung. Wie das mit Automatisierung funktionierten kann, erklärt dieses Video.
Code Beispiel configuration.yaml für history_stats
sensor:
- platform: history_stats
name: "Tobias ist auf der Arbeit (heute)"
entity_id: device_tracker.tobias # Eure Entitäts ID eines Device Trackers
state: 'Arbeit' # die Entität muss den Status Arbeit haben
type: time
start: '{{ now().replace(hour=0, minute=0, second=0) }}' # Startzeitpunkt der Aufnahme
end: '{{ now() }}' # geht immer so lange, wie der Status Arbeit ist
- platform: history_stats
name: "Tobias ist im Home Office"
entity_id: input_boolean.home_office # Entität Schalter - Home Office
state: 'on' # Der Schalter muss umgelegt sein
type: time
start: '{{ now().replace(hour=0, minute=0, second=0) }}' # ist der Schalter umgelegt, beginnt die Aufzeichnung der Zeit
end: '{{ now() }}' # sie endet, wenn der Schalter wieder umgelegt wird.
ApexCharts-Kartenkonfiguration:
type: custom:apexcharts-card
stacked: true
apex_config:
char:
height: 180px
header:
show: true
title: Arbeitzeiten (heute)
show_states: true
colorize_states: true
graph_span: 7d
span:
end: day
series:
- entity: sensor.tobias_ist_auf_der_arbeit_heute
type: column
color: green
opacity: 0.7
unit: h
group_by:
func: last
duration: 1d
fill: zero
- entity: sensor.tobias_ist_im_home_office
type: column
color: blue
opacity: 0.7
unit: h
group_by:
func: last
duration: 1d
fill: zero
Home Assistant Helfer Template ( Summe der Arbeitszeiten) :
{% set total = states('sensor.tobias_ist_auf_der_arbeit_heute')|float + states('sensor.tobias_ist_im_home_office')|float %}
{{ total }}
Automatisierung Arbeitzeit senden (hier ist die Message wichtig. Diese könnt ihr für WhatsApp, Email etc.. verwenden )
alias: Arbeitszeit senden
description: ""
trigger:
- platform: time
at: "00:00:00"
condition: []
action:
- service: notify.persistent_notification
data:
message: >-
{{ now().strftime('%d.%m.%Y') }} : Summe: {{
states('sensor.summe_der_arbeitzeiten') }}h Office: {{
states('sensor.tobias_ist_auf_der_arbeit_heute')}} h Home-Office: {{
states( 'sensor.tobias_ist_im_home_office') }}h
title: Arbeitzeit am Tag
mode: single
PV-Anlage, Wallbox, Speicher, Wechselrichter, E-Auto , alle diese Komponenten haben gemeinsam, dass in der Regel eine eigene Software/ App zur Visualisierung oder Steuerung verwendet wird. Mit Home Assistant in Kombination mit der OpenWB Software und entsprechender Integration lassen sich diese Prozesse übersichtlich darstellen und für weiterführende Automatisierungen verwenden.
Mit Home Assistant Fenster abzufragen ist grundsätzlich nicht schwierig. Aber vielleicht möchte ich mehr wissen als, „es ist noch ein Fenster geöffnet“ ? ! Manchmal möchte man wissen, welches Fenster im Haus noch geöffnet ist. Dieses Video erklärt die Schritte, die dazu nötig sind.
Hypervisor Monitoring ? Mit Home Assistant lässt sich komfortabel der Status von Proxmox Nodes , VMs und LXC Containern überwachen und sogar steuern. Eine VM fällt aus, kann mit der Hausautomatisierungslösung Home Assistant schnell eine Nachricht geschickt werden oder ein Prozess angestoßen werden um das betroffene System wieder automatisch zu starten. So lassen sich einfach die Zustände der angebundenen Speichergeräte, CPU und RAM Auslastung erfassen. Du fragst dich wie das funktioniert ? Dann schau dieses Video 🙂
Leistungsstarker & lüfterloser 4K Mini-PC auf Windows 11 Pro Basis inklusive 2.5″ Festplattenschacht – flexibel einsetzbar als stromsparender Büro-PC, Medienzentrale, Streaming-Client etc.
Vollwertiges Windows 11 Professional vorinstalliert / Auflösung bis zu 4K ULTRA HD (2160p@60Hz) möglich
Aktuelle Intel Chip-Generation „Jasper Lake“: Quad-Core CPU N5100 (Burst freq: 2.80 GHz) / 16GB DDR4-RAM / 256GB int. Speicher / Autostart-Funktion (direktes Hochfahren nach Stromzufuhr), WOL + PXE + RTC-Support
Dank HTML5 & Silverlight Support volle Kompatibilität zu allen IPTV Streaming Inhalte (Youtube, Netflix, Prime Video, Disney+, Skygo, Magenta TV & Co.) – Webrowsing wie an jedem Windows PC
【Leistungsstarker Prozessor】 AMD Ryzen 9 7940HS, 8 Kerne/16 Threads (16 MB Cache, bis zu 5,2 GHz Taktfrequenz), gefertigt im 4-Nanometer-Prozess von TSMC, AMD Radeon 780M (Grafikfrequenz 2,8 GHz), ausgestattet mit AMD Ryzen AI-Technologie, die eine effiziente und energieeffiziente Unterstützung für verschiedene KI-Anwendungen bietet, ohne die Leistung von CPU und GPU zu beeinträchtigen.