Victron SmartShunt installieren – meine Anleitung für Camper, Auto und Smart‑Home

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Als Technikliebhaber und Camper habe ich mich schon oft gefragt, wie viel Strom eigentlich noch in meiner Batterie steckt. Die Spannung ist ein guter Anhaltspunkt, aber sie verrät nicht immer, wie viel Kapazität wirklich übrig ist. Deshalb habe ich mich entschieden, den Victron SmartShunt zu installieren. Dieser kleine Helfer ersetzt klassische Batteriemonitore, misst Strom und Spannung und berechnet daraus den Ladezustand. In diesem Blogbeitrag nehme ich dich mit auf meine Reise und erkläre dir Schritt für Schritt, wie auch du den Victron SmartShunt installieren kannst, um deine Batterie in Camper, Auto oder Haus zuverlässig zu überwachen.

Ich arbeite mich dabei vom grundsätzlichen Verständnis bis zur vollständigen Integration in Home Assistant vor. Du erhältst Tipps zu verschiedenen Ausführungen des Shunts, zur Verkabelung, zur Einrichtung der Victron‑App und zur Nutzung eines Bluetooth‑Proxys. Außerdem zeige ich dir, wie ich den Victron SmartShunt installieren und anschließend in Home Assistant visualisieren konnte, inklusive einer hübschen Batterieanzeige und nützlichen Automatisierungen.

Warum den Victron SmartShunt installieren?

Als Erstes stellt sich die Frage: Warum sollte ich überhaupt einen Victron SmartShunt installieren? Die Antwort liegt in der präzisen Messung und Visualisierung. Anders als simple Spannungsmesser misst der SmartShunt nicht nur die Spannung, sondern auch den Stromfluss und berechnet daraus den Ladezustand der Batterie. In meinem Camper ermöglicht mir das eine verlässliche Autarkieplanung. Im Auto sehe ich, ob die Starterbatterie bei langen Standzeiten schwächelt, und im Haus kann ich Speicherbatterien von Solaranlagen überwachen. Ein weiterer Vorteil: Durch Bluetooth‑Funktionalität kann ich die Werte drahtlos auslesen und in mein Smart‑Home integrieren.

Wenn du regelmäßig campst oder ein autarkes Setup betreibst, wirst du es zu schätzen wissen, jederzeit zu wissen, wie viel Restkapazität zur Verfügung steht. Auch beim Überwintern des Autos kann es sinnvoll sein, den Victron SmartShunt zu installieren, damit die Batterie nicht unbemerkt tiefentladen wird. In Kombination mit Home Assistant ermöglicht der Shunt außerdem schicke Dashboards und Automationen – etwa eine Benachrichtigung, wenn der Ladezustand kritisch wird.

Funktionsweise des Victron SmartShunt

Bevor ich den Victron SmartShunt installieren konnte, habe ich mich mit seiner Funktionsweise beschäftigt. Der SmartShunt wird in die Masseleitung der Batterie eingebaut und misst den Strom, der hinein- und herausfließt. Zusammen mit der Batteriespannung kann er so die entnommene und zugeführte Energie berechnen und daraus den State of Charge (SoC) ermitteln. Der Vorteil: Du brauchst kein zusätzliches Display, denn die Daten lassen sich per Bluetooth oder über den integrierten VE.Direct‑Port auslesen. Ich habe mich für die Bluetooth Variante entschieden, da sie mir eine nahtlose und einfache Installation in Home Assistant ermöglicht.

Es gibt unterschiedliche Varianten: 300 A, 500 A und 1000 A. Für einen Camper reicht die 300‑A‑Variante zumeist völlig aus. In Hausinstallationen oder bei großen Off‑Grid‑Systemen können auch die größere Varianten sinnvoll sein. Bevor du den Victron SmartShunt* installieren willst, solltest du dir also überlegen, welche Ströme in deinem Setup fließen. Achte darauf, dass die maximale Stromstärke der Verbraucher und der Ladevorgänge im Rahmen des Shunts liegt.

Victron Energy SmartShunt Batteriewächter (Bluetooth) – Victron Shunt – Batteriemonitor – 6.5V-70V – 500 Amp
  • VICTRON ENERGY BATTERIEWÄCHTER: Victron Energy SmartShunt zeigt den Ladezustand der Batterie in % an und fungiert als Ladezustandsanzeige für Ihre Batterien
  • ALL-IN-ONE-BATTERIEMONITOR: Victron Energy Smartshunt ist ein hervorragender, einfach einzurichtender All-in-One-Batteriewächter. Es zeichnet Spannung, Strom, Energie und verbleibende Zeit und vieles mehr auf.
  • BLUETOOTH: Verbinden Sie Victron Energy Shunt über Bluetooth mit Ihrem Telefon oder Tablet und ändern Sie einfach die Einstellungen oder überwachen Sie Ihre Batterien – sparen Sie Platz, indem Sie kein eigenes Display verwenden
  • VERBINDEN SIE VICTRON ENERGY GX: Victron Energy GX-Gerät mit einem VE.Direct-Kabel an, um eine zweite Batterie, den Mittelpunkt der Bank oder die Temperatur zu überwachen (möglicherweise sind zusätzliche Teile erforderlich)
  • INSTALLATION: Eine unsachgemäße Installation kann gefährlich sein. Wenden Sie sich an einen Fachmann und befolgen Sie bei der Installation die elektrischen Vorschriften.

Vorbereitung für die Installation des Victron SmartShunt

Auswahl des richtigen Modells und Zubehörs

Bevor ich den Victron SmartShunt installieren konnte, musste ich das richtige Modell auswählen. Für mich war die 500‑A‑Variante passend ( nicht wegen der Leistung, sondern eher, da sie schneller lieferbar war 🙂 ) . Als Zubehör brauchst du außerdem passende Ringkabelschuhe mit einem auf die benötigte Leistung ausgelegten Kabelquerschnitt für die „Minus“ Seite (müssen dazugekauft werden), um die Kabel sicher anzuschließen, sowie eine geeignete Sicherung für den Pluspol ( wird mitgeliefert). Der SmartShunt wird zwar auf der Minus-Seite verbaut, aber der Pluspol des Geräts muss zur Stromversorgung angeschlossen werden.

Für die spätere Integration in Home Assistant habe ich mir außerdem einen ESP32* besorgt. Dieses kleine Modul dient als Bluetooth‑Proxy und leitet BLE‑Daten ins WLAN weiter. Dazu komme ich später noch.

M5Stack Atom Lite ESP32 IoT Entwicklungsboards und Kits | Development Kit C008
  • M5Stack SKU: C008
  • ESP32-basiert, RGB-LED (SK6812)
  • Eingebaute Infrarot
  • Erweiterbare Pins & Löcher
  • Programmierplattform: Arduino, UIFlow

Sicherheitshinweise

Bevor du mit der Verkabelung beginnst und den Victron SmartShunt installieren möchtest, solltest du sicherstellen, dass deine Batterie spannungsfrei ist. Entferne gegebenenfalls die Sicherungen oder trenne das System vom Netz. Arbeite mit isoliertem Werkzeug und vermeide Kurzschlüsse. Eine saubere Installation erhöht nicht nur die Sicherheit, sondern sorgt auch für präzise Messwerte.

Verkabelung und Einbau des SmartShunt

Die Verkabelung war einfacher als gedacht, aber dennoch sind ein paar Dinge zu beachten. Um den Victron SmartShunt installieren zu können, wird der Shunt in die Minusleitung der Batterie eingebaut. Alle Verbraucher müssen hinter dem Shunt angeschlossen werden, damit der Stromfluss korrekt gemessen wird.

  1. Minuspol trennen: Ich habe zunächst den Minuspol der Batterie abgeklemmt.
  2. Shunt anschrauben: Der SmartShunt besitzt zwei große Schraubanschlüsse. Eine Seite (Batterieseite) wird direkt mit dem Minuspol der Batterie verbunden, die andere (Lastseite) führt zu den Verbrauchern.
  3. Pluspol des Shunts: Am Gehäuse befindet sich eine kleine Schraubklemme für den Pluspol. Hier habe ich eine Leitung von der Batterie über eine Sicherung angeschlossen. Das versorgt die Elektronik des Shunts.

Hinweis: Achte unbedingt darauf, die Ein- und Ausgangsseite nicht zu vertauschen. Wenn du den Victron SmartShunt installieren möchtest und die Anschlüsse vertauschst, wird der Stromfluss invertiert – die Messwerte sind dann negativ. Du kannst es zwar softwareseitig korrigieren, aber besser ist eine korrekte Installation.

Victron SmartShunt installieren in der Victron‑App

Nachdem der Shunt angeschlossen war, habe ich die Victron‑App aus dem App Store heruntergeladen. Mit ihr lässt sich der SmartShunt via Bluetooth konfigurieren. Der Pairing‑Code lautet standardmäßig 000000, falls du das Gerät noch nicht geändert hast.

Pairing und erste Schritte

Nach dem Öffnen der App hat die App den SmartShunt automatisch gefunden. Ich habe das Gerät ausgewählt und die Verbindung hergestellt. Um den Victron SmartShunt zu installieren, musste ich einige grundlegende Einstellungen vornehmen:

  • Batterie‑Kapazität: Hier habe ich den Wert meiner LiFePo4‑Batterie (200 Ah) eingetragen.
  • Ladeschluss‑Spannung: In meinem Fall 14,1 V.
  • Entladeschwelle: Ich habe 10 % gewählt, um die Batterie zu schützen.
  • Schweifstrom: 0,5 %, damit der Shunt erkennt, wann die Batterie voll ist.
  • Ladewirkungsgrad: 95 %.
  • SOC‑Reset: Es gibt die Möglichkeit, den SoC manuell zurückzusetzen. Das ist nützlich nach einem vollständigen Ladezyklus.
Victron SmartShunt installieren - Batterieeinstellungen

Hinweis: Verwende die zu deiner Batterie passenden Einstellungen. Die hier gezeigten Settings dienen nur als Beispiel!

Die App zeigt auch die MAC‑Adresse und den Verschlüsselungkey an. Letzteren habe ich mir abgeschrieben, denn für die Integration in Home Assistant benötige ich die sogenannte Advertisement‑Key, um die verschlüsselten Daten zu entschlüsseln. Beim Victron SmartShunt installieren solltest du dir diesen Schlüssel unbedingt notieren.

Victron SmartShunt installieren - Key und Mac

Victron SmartShunt installieren und Bluetooth‑Proxy nutzen

Um die Daten des SmartShunts im ganzen Haus verfügbar zu machen, reicht die Bluetooth‑Verbindung allein oft nicht aus, insbesondere wenn der Camper oder die Garage etwas weiter entfernt ist. Deshalb habe ich einen ESP32 als Bluetooth‑Proxy eingerichtet. Damit lassen sich BLE‑Geräte wie der SmartShunt über das WLAN ins Smart‑Home integrieren.

ESP32 als Bluetooth‑Proxy einrichten

Zuerst habe ich den ESP32 per USB an meinen Computer angeschlossen und die ESP‑Home‑Bluetooth Proxy- Installer ‑Seite geöffnet. Über den Wizard lässt sich mit wenigen Klicks ein generisches Bluetooth‑Proxy‑Image flashen. Nachdem der Flash‑Vorgang abgeschlossen war, habe ich den ESP32 mit meinem WLAN verbunden.

Anschließend habe ich den ESP32 direkt mit meinem Home Assistant verbunden. Im Lovelace‑Dashboard erschien ein neues Gerät, das ich „Bluetooth Proxy Video WW“ genannt habe. Nun ist der Victron SmartShunt im wahrsten Sinne des Wortes bereit für die nächste Stufe.

Tipp: Du kannst mehrere Bluetooth‑Proxies im Haus verteilen, wenn du noch andere BLE‑Sensoren hast. Sie erweitern die Reichweite und bringen die Daten zuverlässig ins Netzwerk.

Victron SmartShunt installieren - Bluetooth Proxy

Victron SmartShunt installieren in Home Assistant

Der spannendste Teil für mich war die Integration in Home Assistant. Um die verschlüsselten Daten des SmartShunts auswerten zu können, braucht man eine passende Integration.

HACS installieren und Victron BLE Integration hinzufügen

Zunächst habe ich den Home Assistant Community Store (HACS) eingerichtet. Das ist ein Zusatzmodul, das viele Community‑Integrationen bereitstellt. Über die GitHub‑Seite von Victron BLE habe ich die Integration in HACS hinzugefügt und installiert.

Danach musste Home Assistant neu gestartet werden. Unter „Einstellungen → Geräte und Dienste“ konnte ich „Victron BLE“ als neue Integration auswählen. Es wurde der SmartShunt automatisch gefunden, und ich musste nur noch den vorher notierten Advertisement‑Key eingeben. Hier ist eine typische YAML‑Struktur, mit der der Schlüssel hinterlegt wird:

Nach dem Speichern erschienen neue Sensoren in meinem Home Assistant: Batteriespannung, Ladestrom, Ladezustand und vieles mehr. Damit war der Schritt erledigt und der Victron SmartShunt erfolgreich in Home Assistant integriert.

Dashboard mit Batterieanzeige erstellen

Jetzt wollte ich die Daten nicht nur sehen, sondern auch ansprechend präsentieren. Dafür eignet sich die Button‑Card aus HACS. Mit ihr lässt sich eine Batterieanzeige gestalten, die ihre Farbe abhängig vom Ladezustand ändert.

Button‑Card konfigurieren

Ich habe eine neue Button‑Card im Dashboard erstellt und folgende Konfiguration verwendet:

type: custom:button-card
entity: sensor.shunt_battery
icon: mdi:battery
name: Batterie
show_state: true
show_label: true
label: |
  [[[
    return `${states['sensor.shunt_voltage'].state} V | ${states['sensor.shunt_current'].state} A`
  ]]]
state:
  - operator: <=
    value: 20
    color: red
  - operator: <=
    value: 50
    color: orange
  - operator: ">"
    value: 50
    color: green

Diese Card zeigt mir den aktuellen Ladezustand, die Spannung und den Strom an. Die Farbe des Symbols wechselt bei 20 % auf Rot und bei 50 % auf Orange. Für mich war es wichtig, beim Victron SmartShunt installieren auch eine optische Rückmeldung zu haben, wann die Batterie sich dem Entladungsbereich nähert.

Automatisierungen und Benachrichtigungen

Ein weiterer großer Vorteil beim Victron SmartShunt installieren ist die Möglichkeit, Automatisierungen in Home Assistant zu nutzen. Ich wollte eine Benachrichtigung bekommen, sobald der Ladezustand unter 20 % fällt. Dafür habe ich eine einfache Automation erstellt:

alias: Batteriewarnung
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.shunt_battery
    for:
      hours: 0
      minutes: 1
      seconds: 0
    below: 20
conditions: []
actions:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      message: Batterie ist unter 20 % Achtung !
      title: Batteriewarnung
mode: single

Mit dieser Automation bekomme ich nach einer Minute unterhalb des Schwellenwerts eine Push‑Nachricht. Dadurch kann ich reagieren, bevor die Batterie zu tief entladen wird. Beim Victron SmartShunt installieren gehört für mich eine solche Benachrichtigung unbedingt dazu.

Verlaufdiagramme und Datenanalyse

Neben der aktuellen Anzeige möchte ich auch wissen, wie sich der Ladezustand über längere Zeit verändert. Home Assistant bietet eine Verlaufdiagramm‑Karte. Ich habe für meine Batterie ein Diagramm angelegt, das die letzten 168 Stunden (sieben Tage) darstellt. So kann ich sehen, wann ich besonders viel Strom verbraucht habe und wie sich das Laden und Entladen verhält.

Es wäre auch möglich, die Daten in Grafana auszuwerten oder in ein anderes Dashboard zu exportieren. Das bietet sich an, wenn du den Victron SmartShunt und die Daten langfristig beobachten möchtest.

Alternativ lassen sich Daten auch über Grafana und Influxdb in Home Assistant visualisieren. Darauf bin ich in einem anderen Blog Beitrag genauer eingegangen.

Victron SmartShunt installieren - Verlaufsdiagramm

Weitere Anwendungsmöglichkeiten des Victron SmartShunt

Der Einsatz beschränkt sich nicht nur auf Camper. Auch im Auto kann man den Victron SmartShunt installieren, um die Starterbatterie zu überwachen. So weißt du immer, ob sie nach längerer Standzeit noch genügend Kapazität hat. Im Haus lässt sich der Shunt an Solarspeicher anschließen, um die Effizienz der Anlage zu überwachen.

Ein weiterer Vorteil: Über den VE.Direct‑Port kannst du den SmartShunt auch mit dem Cerbo GX oder anderen Victron‑Systemen verbinden. Das habe ich bisher nicht ausprobiert, es steht aber auf meiner To‑Do‑Liste. Wenn du dazu einen Erfahrungsbericht wünschst, lass es mich in den Kommentaren wissen.

Fazit: Lohnt es sich, den Victron SmartShunt zu installieren?

Für mich war es eine der lohnendsten Erweiterungen meines Campers. Seitdem ich den Victron SmartShunt installieren und in Home Assistant integrieren konnte, habe ich jederzeit einen Überblick über den Ladezustand meiner Batterie. Die Kombination aus präzisen Messwerten, ansprechender Visualisierung und praktischen Benachrichtigungen gibt mir die Sicherheit, länger autark zu bleiben und die Batterie vor Tiefentladung zu schützen.

Weitere Blogbeiträge zum Thema „smarter Camper“

Smarter Camper

Ich hoffe, diese ausführliche Anleitung hilft dir weiter. Falls du Fragen hast oder Anmerkungen, hinterlasse gerne einen Kommentar bei Youtube. Viel Spaß beim Basteln!

Ulanzi✨ Home Assistant – Awtrix 3/Ulanzi TC001 ❤️ – So funktioniert die perfekte Interaktion 🎛️🚀Ulanzi

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Beschreibung

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.

Matthias vom Kanal haus:automation hat den Installationsvorgang und das Produkt sehr gut erklärt, so dass ich gerne darauf verweise:
https://youtu.be/hsc_yUWwcVY?si=EMikkCt64jbqckt7

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 🙂

Bezugsquelle*

Ulanzi TC001 smarte Pixel Uhr

Einleitung

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

Wichtige Hinweise:

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

16.02.2025

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

Skripte

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

awtrix – reboot

alias: awtrix - reboot
sequence:
  - action: mqtt.publish
    metadata: {}
    data:
      topic: awtrix/reboot
      payload: "{}"
      evaluate_payload: false
      qos: 0
      retain: false
description: reboot device
icon: mdi:led-strip
fields: {}
mode: parallel
max: 10

Müllanzeige

Einleitung

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 .

Tonne rausstellen (Mushroom Template-Badge)

Yaml Code:

type: custom:mushroom-template-badge
content: "{{ states('sensor.mullinformation') }}"
icon: mdi:trash-can
color: |-
  {% if states('sensor.mullinformation') == 'Gelber Sack rausstellen!' %}
  yellow
  {% elif states('sensor.mullinformation') == 'Grüne Tonne rausstellen!' %}
  green
  {% elif states('sensor.mullinformation') == 'Graue Tonne rausstellen!' %}
  grey
  {% else %}
  white
  {% endif %}

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.

alias: awtrix Zustandstrigger
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.evcc_tariff_grid
      - sensor.evcc_pv_power
      - sensor.aussentemperatur_ds18b20_temperature
      - sensor.evcc_battery_soc
      - sensor.smart_home_more_views
      - sensor.mullinformation
    for:
      hours: 0
      minutes: 0
      seconds: 10
  - trigger: state
    entity_id:
      - sensor.smart_home_more
    attribute: stars
    for:
      hours: 0
      minutes: 0
      seconds: 10
conditions: []
actions:
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 3813
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: Tibber
      text: "{{ states('sensor.evcc_tariff_grid') | round(3) }}"
    alias: "Skript new App : Tibber"
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 37323
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: PV
      text: "{{ states('sensor.evcc_pv_power') }}"
    alias: "Skript new App : Solar Power"
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 2422
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: Temperatur
      text: "{{ states('sensor.aussentemperatur_ds18b20_temperature') }} °"
    alias: "Skript new App : Aussentemperatur"
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 389
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: SOC
      text: "{{ states('sensor.evcc_battery_soc') }} %"
    alias: "Skript new App : SOC Hausspeicher"
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 974
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 2
      topicname: Youtube
      text: >-
        {{ states('sensor.smart_home_more_views') }} -
        {{state_attr('sensor.smart_home_more', 'stars')}}
    alias: "Skript new App : YT Views und Likes"
  - alias: Indikator für genügend PV oder günstiger Preis
    if:
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.evcc_pv_power
            above: 1500
          - condition: numeric_state
            entity_id: sensor.evcc_tariff_grid
            below: 0.28
    then:
      - action: script.awtrix_indicator
        metadata: {}
        data:
          indicator: 1
          colour:
            - 30
            - 255
            - 0
          fade: 0
    else:
      - action: script.awtrix_indicator
        metadata: {}
        data:
          indicator: 1
          colour:
            - 255
            - 0
            - 0
          fade: 0
  - alias: Abfall Anzeige
    choose:
      - conditions:
          - condition: state
            entity_id: sensor.mullinformation
            state: Gelber Sack rausstellen!
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 56166
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
      - conditions:
          - condition: state
            entity_id: sensor.mullinformation
            state: Graue Tonne rausstellen!
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 12155
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
      - conditions:
          - condition: state
            entity_id: sensor.mullinformation
            state: Grüne Tonne rausstellen!
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 56625
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
    default:
      - action: script.awtrix_delete_app
        metadata: {}
        data:
          topicname: Abfall
  - alias: Abfall Anzeige
    choose:
      - conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: sensor.mullinformation
                state: Gelber Sack rausstellen!
              - condition: state
                entity_id: sensor.mullinformation
                state: Graue Tonne rausstellen!
              - condition: state
                entity_id: sensor.mullinformation
                state: Grüne Tonne rausstellen!
            alias: Wenn eine der Tonnen rausgestellt werden muss
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 56166
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
    default:
      - action: script.awtrix_delete_app
        metadata: {}
        data:
          topicname: Abfall
    enabled: false
  - alias: Reboot, wenn RAM knapp wird
    if:
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.awtrix_b3dc90_free_ram
            below: 50000
          - condition: numeric_state
            entity_id: sensor.awtrix_bebc10_free_ram
            below: 50000
    then:
      - action: script.awtrix_reboot
        metadata: {}
        data: {}
mode: single

Für Müll quittieren, verwende ich ein Mushroom Template Badge.

Updates

27.11.2024 – dynamische 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.

überarbeitetes vollständiges Skript awtrix – new app mit dynamischen Wettericons

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.

action: script.awtrix_new_app
metadata: {}
data:
  icon: "{{ states('weather.lahr') }}"
  rainbow: false
  lifetime: 0
  duration: 5
  textcase: 0
  topicname: Temperatur
  text: "{{ states('sensor.aussentemperatur_ds18b20_temperature') }} °"
alias: "Skript new App : Aussentemperatur"

vollständige Automatisierung mit Wettericons

alias: awtrix Zustandstrigger
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.evcc_tariff_grid
      - sensor.evcc_pv_power
      - sensor.aussentemperatur_ds18b20_temperature
      - sensor.evcc_battery_soc
      - sensor.smart_home_more_views
      - sensor.mullinformation
      - weather.lahr
    for:
      hours: 0
      minutes: 0
      seconds: 10
  - trigger: state
    entity_id:
      - sensor.smart_home_more
    attribute: stars
    for:
      hours: 0
      minutes: 0
      seconds: 10
conditions: []
actions:
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 3813
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: Tibber
      text: "{{ states('sensor.evcc_tariff_grid') | round(3) }}"
    alias: "Skript new App : Tibber"
  - if:
      - condition: numeric_state
        entity_id: sensor.evcc_pv_power
        above: 0
    then:
      - action: script.awtrix_new_app
        metadata: {}
        data:
          icon: 37323
          rainbow: false
          lifetime: 0
          duration: 5
          textcase: 0
          topicname: PV
          text: "{{ states('sensor.evcc_pv_power') }}"
        alias: "Skript new App : Solar Power"
    else:
      - action: script.awtrix_delete_app
        metadata: {}
        data:
          topicname: PV
    alias: "PV Ertrag vorhanden "
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: "{{ states('weather.lahr') }}"
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: Temperatur
      text: "{{ states('sensor.aussentemperatur_ds18b20_temperature') }} °"
    alias: "Skript new App : Aussentemperatur"
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 389
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: SOC
      text: "{{ states('sensor.evcc_battery_soc') }} %"
    alias: "Skript new App : SOC Hausspeicher"
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 974
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 2
      topicname: Youtube
      text: >-
        {{ states('sensor.smart_home_more_views') }} -
        {{state_attr('sensor.smart_home_more', 'stars')}}
    alias: "Skript new App : YT Views und Likes"
  - alias: Indikator für genügend PV oder günstiger Preis
    if:
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.evcc_pv_power
            above: 1500
          - condition: numeric_state
            entity_id: sensor.evcc_tariff_grid
            below: 0.28
    then:
      - action: script.awtrix_indicator
        metadata: {}
        data:
          indicator: 1
          colour:
            - 30
            - 255
            - 0
          fade: 0
    else:
      - action: script.awtrix_indicator
        metadata: {}
        data:
          indicator: 1
          colour:
            - 255
            - 0
            - 0
          fade: 0
  - alias: Abfall Anzeige
    choose:
      - conditions:
          - condition: state
            entity_id: sensor.mullinformation
            state: Gelber Sack rausstellen!
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 56166
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
      - conditions:
          - condition: state
            entity_id: sensor.mullinformation
            state: Graue Tonne rausstellen!
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 12155
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
      - conditions:
          - condition: state
            entity_id: sensor.mullinformation
            state: Grüne Tonne rausstellen!
        sequence:
          - action: script.awtrix_new_app
            metadata: {}
            data:
              icon: 56625
              rainbow: false
              lifetime: 0
              duration: 10
              textcase: 2
              topicname: Abfall
              text: "{{ states('sensor.mullinformation')}}"
    default:
      - action: script.awtrix_delete_app
        metadata: {}
        data:
          topicname: Abfall
  - alias: Reboot, wenn RAM knapp wird
    if:
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.awtrix_b3dc90_free_ram
            below: 50000
          - condition: numeric_state
            entity_id: sensor.awtrix_bebc10_free_ram
            below: 50000
    then:
      - action: script.awtrix_reboot
        metadata: {}
        data: {}
mode: single

03.12.2024 Änderbare Textfarbe

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

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:

alias: Geschirrspüler läuft
if:
  - condition: numeric_state
    entity_id: sensor.geschirrspuler_program_progress
    above: 0
then:
  - action: script.awtrix_new_app
    metadata: {}
    data:
      icon: 55848
      rainbow: false
      lifetime: 0
      duration: 5
      textcase: 0
      topicname: Dishwasher
      text: Geschirrspüler läuft!
      progress: "{{ states('sensor.geschirrspuler_program_progress') | int }}"
    alias: "Skript new App : Fortschritt Geschirrspüler"
    enabled: true
else:
  - action: script.awtrix_delete_app
    metadata: {}
    data:
      topicname: Dishwasher

Smarte Weihnachtsbaumbeleuchtung mit Home Assistant steuern

Home Assistant & Beleuchtung Weihnachtsbaum Twinkly

YouTube player

Im vorherigen Teil der Weihnachtsserie habe ich euch vorgestellt, wie man mit Home Assistant eine intelligente Steckdose verwendet um nahezu jede Beleuchtung smart zu machen. Heute möchte ich euch die Lichterkette von Twinkly vorstellen. Diese kommt mit einer App, aber ich bin kein Freund von vielen verschiedenen Apps zur Steuerung von Beleuchtungen. Wie man die Twinkly Lichterkette mit Home Assistant automatisiert und auch die Effekte verändern kann, wird in diesem Video gezeigt. Dazu verwenden wir Automatisierungen und ein spezielles Blueprint, welches auch für andere Anwendungsfälle sehr gut verwendet werden kann.

Die Twinkly Lichterkette bekommt ihr hier *:

Das Blueprint zum Video ( Blueprint Simple Scene Toggle V3) findet ihr hier:

Links: Blueprint Simple Scene Toggle V3:

https://community.home-assistant.io/t/simple-scene-toggle/389779

Info: Im Video habe ich gesagt, dass der Automatismus alle 30 Sekunden getriggert wird. Das ist falsch. Die 30. Sekunde jeder Minute wird getriggert. D.h. jede Minute wird ein Trigger ausgelöst. Sorry, für den Fehler . Möchtet ihr z.B. jede 30 Sekunden triggern, so müsst ihr bei der Automatisierung “ /30 “ bei Sekunden eintragen.

Hier die Automatisierung Toggle Weihnachtsbaum:

alias: Toggle Weihnachtsbaum
description: ""
trigger:
  - platform: time_pattern
    seconds: /30
  - platform: time
    at: "22:00:00"
    id: Baum aus
condition: []
action:
  - if:
      - condition: time
        after: "06:00:00"
        before: "22:00:00"
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
          - sat
          - sun
    then:
      - service: script.toggle_weihnachtsbaumeffekte
        data: {}
  - if:
      - condition: trigger
        id:
          - Baum aus
    then:
      - service: light.turn_off
        target:
          entity_id: light.baum
        data: {}
mode: single

Blueprint Toggle_Weihnachtsbaumeffekte:

alias: Toggle_Weihnachtsbaumeffekte
use_blueprint:
  path: panhans/scene_toggle.yaml
  input:
    included_scenes:
      - scene.weihnachtsbaum_szene1
      - scene.weihnachtsbaum_szene2
      - scene.weihnachtsbaum_szene3

Smarte Alarmanlage mit Home Assistant selber bauen und was das mit einem Rauchmelder zu tun hat

Was ein Zigbee Rauchmelder mit einer Alarmanlage gemeinsam hat ? Dieser Frage wird im Video nachgegangen. Mit Home Assistant lassen sich Zigbee Rauchmelder einbinden und ein Automatismus erstellen, welcher bei Rauch eine Benachrichtung schickt. Dieses Video führt euch die alle nötigen Schritte von den Parametern in der configuartion.yaml bis hin zur Anwendung der Integration auf eurem Dashboard.

Diese ZigBee Produkte verwende ich:*

Den Rauchmelder könnt ihr hier bekommen *: https://s.click.aliexpress.com/e/_DBME4tB

Home Assistant Integration Alarm Control Panel: https://www.home-assistant.io/integrations/alarm_control_panel/

Beispielkonfiguration Configuartion.Yaml:

alarm_control_panel:

  - platform: manual
    name: smarthome Alarmanlage
    code: 0815  # Hier könnt ihr euren individuellen Code einstellen                 
    code_arm_required: false  # Wenn false, dann braucht man für die Aktivierung keinen Pin Code, nur für die Deaktivierung
    delay_time: 60 # Zeitspanne bei Erkennung, bis ausgelöst wird.
    arming_time: 60 # Zeitspanne, bis die Alarmanlage scharf geschaltet wird. 
    trigger_time: 60 # Zeitpsanne des gesamten Alarms
    disarm_after_trigger: false 
    disarmed:
     trigger_time: 0 # Zeitspanne, bis die Alarmanlage wieder deaktiviert wird
    armed_home:   # Hier kann man Zeiten einstellen für Alarm, während der Anwesenheit, z.B. Nachts etc..
       arming_time: 0
       delay_time: 60

Beispielautomatisierung ( Nutzung Rauchmelder als Sirene ) .

alias: Rauchmelder Alarmanlage
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.gruppe_bewegunsmelder_alarmanlage
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
  - platform: state
    entity_id:
      - input_boolean.trigger_alarm_test
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: alarm_control_panel.smarthome_alarmanlage
    state: armed_away
action:
  - service: select.select_option
    data:
      option: alarm
    target:
      entity_id:
        - select.rauchmelder_flur_eg_buzzer
        - select.rauchmelder_flur_og_buzzer
        - select.rauchmelder_studio_buzzer
        - select.rauchmelder_wohnzimmer_eg_buzzer
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - service: select.select_option
    data:
      option: mute
    target:
      entity_id:
        - select.rauchmelder_flur_eg_buzzer
        - select.rauchmelder_flur_og_buzzer
        - select.rauchmelder_studio_buzzer
        - select.rauchmelder_wohnzimmer_eg_buzzer
mode: single

Mit Home Assistant eine automatische Arbeitszeiterfassung umsetzen

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.

Beschreibung Home Assistant History Stats: History Stats – Home Assistant (home-assistant.io)

Wie du HACS installierst wird dir hier erklärt:

HACS Integration Apex Charts-Card: GitHub – RomRider/apexcharts-card: 📈 A Lovelace card to display advanced graphs and charts based on ApexChartsJS for Home Assistant

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