Beiträge von Namor Noditz

    Noch ein kurzer Anhang zum YAML-Editor in Dashboard-Designer


    Dieser Editor hat doch einige recht praktisch Funktionen.
    Zu Beginn habe ich externe DEV-Editoren genutzt und den YAML-Code hin und her kopiert. Das mache ich jetzt nur mehr selten.


    1) Suchen und Ersetzen

    <Strg+F> öffnet die Felder für Suchen und Ersetzen



    2) Rückgängig (Undo/Redo)

    <Strg+z> macht die letzten Änderungen rückgängig

    <Strg+y> macht das letzte Undo rückgängig


    3) IntelliSense Funktion

    für HA-Entities



    4) YAML Syntaxhervorhebung

    auch teilweise innerhalb von Templates. Hierzu darf man aber auf das MINUS nicht vergessen.


    Nur: |


    Und mit: |-


    5) Live Übersetzung

    Änderungen im YAML-Code werden sofort rechts in der Vorschau-Ansicht dargestellt.

    Das gilt auch für Änderungen im Template-Code.

    Custom: Button-Card


    Sehen wir uns jetzt die „Custom: Button-Card“ genauer an:

    (Alle Optionen und Funktionen der „Custom: Button-Card“ sind hier sehr gut beschrieben https://github.com/custom-cards/button-card)


    Ich beschränke mich hier wieder nur auf die Optionen und Funktionen die wir hier in den folgenden Kaptieln noch für das HKS-Projekt benötigen!


    In unserem Beispiel von zuvor habe ich jetzt die Darstellung (styles:) des "A1"-Buttons angepasst und eine zweite Textzeile mit „label: HKV“ hinzugefügt.
    Dies sieht im YAML-Code und im Layout dann so aus:



    Jetzt benötigen wir noch drei weitere Dinge:

    1. Die als <Name> und <Label> angezeigten Texte sollen dynamisch und aktuell aus Entity-Attributen erstellt werden.
    2. Die Farbe der Buttons soll dynamisch auf Basis von Bedingungen eingefärbt werden
      zB. „wenn AVR.STATE=ON dann GRÜN sonst GRAU“
    3. Beim Klicken auf einen Button soll eine Aktion ausgelöst werden.

    Beginnen wir beim Punkt 3 - Aktionen bei Klicken


    Der Button bietet Trigger-Tags, um auf Klicken (tap) zu reagieren

    • <tap_action> und
    • <hold_action>

    Die Aktion hinter <tap_action> wird sofort ausgelöst, jene hinter <hold_action> nach ca. 1 Sekunde halten des Buttons.


    Diese Aktionen können ihrerseits Parameter enthalten.


    Wenn wir mit einem Klick auf den "A1"-Button einen Eintrag zu unser „Shopping List“ hinzufügen wollen, erweitern wir unseren "A1"-Button um den Parameter <tap_action> und den erforderlichen Service-Parameter. Den getesteten Service-Aufruf können wir per Copy-Paste (wie zuvor unter Services beschrieben ) als YAML-Code hier hinein kopieren.


    Das sieht dann so aus:



    Wir können den "A1"-Button auch gleich hier in dieser Entwurfsansicht betätigen und testen.
    Mit jedem Klick auf den"A1"-Button sollte sich der Status der Entity „Shopping List“ um Eins erhöhen.


    Punkt 1 - Dynamische Texte


    Wenn wir jetzt noch direkt im Dashboard auf einer Karte die aktuelle Anzahl der "Shopping List"-Items anzeigen wollen, machen wir das so:



    Der Text des Labels des "A2"-Buttons wird hiermit zu Laufzeit vom hinterlegten Template berechnet (Items: 10).

    • Die Templates der Button-Card sind ähnlich wie jene der HA-Templates aber nicht 1:1 übertragbar.
    • Die Templates der Button-Card müssen zwischen „[[[„ xxx „]]]“ stehen
    • Die Sprache der Templates der Button-Card ist JavaScript (jene der HA-Templates ist Jinja2!)
    • Templates können praktisch für alle Parameter der Button-Card genutzt werden - Von der Schriftgröße bis zu den Parametern der aufgerufenen Services.

    Um den JavaScript-Code für die Templates zu entwickeln und zu testen, nutze ich einen Online-Compiler (zB. https://www.programiz.com/javascript/online-compiler/)


    Um das Attribut <friendly_name> der Entity <shopping_list> abzufragen lauted der JavaScrip-Syntax wie folgt:

    Code
    var fn = states['sensor.shopping_list'].attributes.friendly_name



    Punkt 2 - Dynamischer Style


    Wenn wir jetzt noch möchten, dass der Button ab einem Wert von 10 seine Farbe auf Grün ändert, machen wir das in gleicher Weise mit einem JavaScript-Template wie folgt:

    Zurück zur Startseite und zum Inhaltsverzeichnis

    Voriges Kapitel: #02.04 Grundkonfiguration von HA

    Nächstes Kapitel: #02.06 Installation am Bediengerät

    Version: 2024-03-12


    Gut, wir sind jetzt schon sehr weit gekommen. Zeit für erste Erfolgserlebnisse!


    Ich hoffe ich kann mit dem folgenden Kapitel eure Kreativität anregen. Mir taugt das Dashboard-Designing jedenfalls.


    Hinweis für Quereinsteiger: Wir benötigen hier jetzt <custom:button_card>. Die installation ist im vorherigen Kapitel beschrieben.




    Beginnen wir mit einem neuen und leeren Dashboard:

    => Dashboards => ADD DASHBOARD => New dashboard from scratch =>

    • Title: HKV-Demo
    • Show in sidebar: aktivieren

    => CREATE


    Es erscheint danach in der Sidebar ein neuer Eintrag „HKV-Demo“

    Klicken wir darauf sehen wir gähnende Leere.

    Nur rechts-oben wird uns neben der Lupe ein Stift angezeigt, darauf klicken wir.


    Es wird der Dashboard-Editor-Modus gestartet.
    Jetzt gibt es schon etwas mehr zu sehen.

    • Wir können den Namen dieses Dashboards ändern (dieser ist nicht zwangsläufig der gleich wie jener in der Sidebar) und
    • es wurde eine leere View namens „HOME“ erstellt.
    • In dieser View können wir nun Karten (CARDs) hinzufügen.


    Zusammengefasst:

    Wir können in HA "beliebig viele" Dashboards erstellen, die ihrerseits "beliebig viele" Views enthalten können und View enthalten Cards.
    In den Cards können wir dann noch weitere Cards, Stacks und Controls verschachteln.

    Am Endgerät kommt dann immer genau eine VIEW zur Ansicht. Zwischen den View kann man dann mit Links navigieren.



    EIne Karte aufbauen

    Zu den Einstellungen der View (Stift nehmen dem Namen der View) kommen wir später.
    Wir fügen zunächst eine neue Karte zur View "Home" hinzu.

    => ADD CARD


    Uns wird eine lange Liste an verfügbaren Kartentypen angezeigt.
    Für dieses HKS-Projekt benötigen wir nur drei Typen von Karten

    • Horizontal stack
    • Vertical stack
    • Custom: Button-Card

    Die „Horizontal stack“-Karte stapelt darin enthaltene Elememte horiziontal.

    Die „Vertical stack“-Karte stapelt darin enthaltene Elememte vertical.

    "Horizontal" und "Vertical stacks"-Karten lassen sich beliebig ineinander verschachteln.


    Zur Veranschaulichung hier eine einfache Karte mit 3 Zeilen und 4 Spalten,

    aufgebaut aus einem "Vertical stack" welcher mit 3 "Horiziontal stacks" enthält und jeder "Horiziontal stack" enthält 4 minialistische "custom:button-cards".



    Mit dem Visual-Editor kann man gut in diesen Ebenen navigieren und die einzelnen Elemente bearbeiten.

    Klickt man unten auf „SHOW CODE EDITOR“ wird er entsprechende YAML-Code der gesamten Karte angezeigt.



    Kurzer Abstecher zum YAML-Syntax für mutige



    Zurück zum YAML-Editor


    Der YAML-Editor im Dashboard zeigt uns an, ob wir den YAML-Syntax richtig geschrieben haben.


    Ist die vertikale Linie, rechts neben den Zeilennummern, blau, ist der Syntax durchgängig korrekt, ist sie rot gibt es einen Syntax-Fehler und der Fehlercode steht unterhalb.



    Was ist hier der Fehler?

    Hier fehlt in Zeile 7 das Minus-Zeichen vor dem Listen-Item.

    Daher würden die Zeilen 5 bis 8 zu einem Dictionary gehören, was aber nicht korrekt sein kann, da in einem Dictionary jeder Key nur einmal vorkommen darf und hier wären dann die Keys <type> und <name> jeweils doppelt vorhanden. Dies sagt uns auch die rote Fehlermeldung "duplicated mapping key (7:9)"


    Auch wenn im YAML-Code Einrückungen nicht korrekt sind, wird ein roter Fehlercode unterhalb angezeigt und zeigt meist den richtigen Ort an wo man den Fehler suchen muss.


    Aber warum interessiert uns das?
    Wie gesagt, bauen wir unsere Dashboards mit der „Custom: Button-Card“ auf. Dafür gibt es keinen GUI-Assistenten.
    Wir müssen die Button-Cards also mit YAML konfigurieren!
    Das ist aber am Ende kein Nachteil!



    Da passiert vieles dann automatisch und zusätzlich ....

    Bin kein Freund von automagisch.

    Mit dieser Anleitung möchte ich versuchen auch nicht IT-Freeks abzuholen, das geht imho nicht wenn man gleich von Beginn an von zig exteren Quellen abhängig ist die sich laufend ändern oder nur zu 50% funktionieren.

    Aber natürlich spricht nichts dagegen auch andere als die von mir vorgestellten Integrationen zu nutzen.

    Da wir jetzt schon im <File editor> sind und uns in der Dateistruktur auskennen, machen wir gleich folgende Anpassungen in HA:

    • In der Datei configuration.yaml deaktiveren wir die Zeile "default_config: " indem wir ein Hash "#" an den Beginn dieser Zeile schreiben.
      Zum Speichern der Änderung rechts-oben auf die rote Diskette klicken!
    • Wir erstellen einen neuen Ordner names "custom_components"
      Darin werden wir später die selbst erstellen Integrationen ablegen.
    • Wir erstellen einen neuen Ordner names "www"
      Das ist Root-Ordner der HA-WebServers.
      Wir werden darin zB. die Bilder unserer Geräte ablegen, damit diese in den Dashboards angezeigt werden.
      Inhalte dieses Orders können wir auch über den Web-Broswer unter folgender Adresse abrufen
      http://myha-server:8123/local/....
      Unter dem Ordner "www" erstellen wir noch die Unterordner "community" und "images"
    • Wir speichern jetzt noch die custom_button_card im www-Ordner ab:
      Dazu: Download der java-script Datei mit deinem Browser von
      http://www.github.com/custom-c…t/download/button-card.js
      Mit dem HA-<File editor> den Ordner "www/community" öffnen,
      auf den <Upload Button> klicken und
      die Datei "button-card.js" hochladen.


    Unsere HA Datenstrukur sollte nun so aussehen:

    (Die für uns nicht relevanten Dateine und Ordner lasse ich hier aus)


    • /homeassistant
      • /custom_components
      • /www
        • /community
          • button-card.js
        • /images
      • configuration.yaml
      • secrets.yaml
      • home-assistant.log


    Zeit für einen Restart oder doch ein Reboot?

    Damit HA alle unsere Änderungen übernimmt, müssen wir unsern Server oder zumindest HA neu starten.

    Die Restart-Optionen finden wir über

    => Settings => (...) Drei Punkte rechts oben => Restart Home Assistant




    Wenn wir auf <Advanced options> klicken werden uns alle möglichen Restart-Varianten angezeigt.

    • Quick reload
      => besser nie verwenden.
    • Restart Home Assistant
      => generell unsere Option zur Übernahme von Änderungen
      => Auf meinem RPI4 Produktivsystem dauert das schon mal gute 30 Sekunden
      => Am leeren RPI5 jetzt nur ca 5 Sekunden
    • Reboot system
      => Nach Updates des OS macht HA eine kompletten Reboot
    • Shut down system
      => ist klar.
    • Restart Home Assistant in safe mode
      => habe ich noch nie verwendet


    Wir haben es gleich geschafft! Nur ein Schritt noch! CUSTOM: BUTTON-CARD !


    Wir müssen die "button-card.js"-Datei noch als Dashboard-Ressource registrieren.

    Das geht ganz einfach wenn man weiss wie (ganz ohne HACS)


    Wie wir später beim Erstellen der Dashboads sehen werden, mache ich in den Dashboards praktisch alles mit dieser Ressource. Ohne "button-card.js" wäre diese HKS so wie ich mir das vorstelle nicht möglich!

    Großer Dank an die Entwickler!


    Also bitte wieder folgen:

    => Settings => Dashboards => (...) Drei Punkte rechts-oben => Resources

    => ADD RESOURCE

    • URL: /local/community/button-card.js
    • Resource type: JavaScript module

    => CREATE


    Jetzt haben wir alles zusammen, um im nächsten Kapitel unser erstes Dashboard zu erstellen!


    Danke fürs durchhalten !! :freu:


    Wenn wir jetzt im Sidebar auf den neuen <File editor> klicken und im <File editor> dort links-oben auf <Browse Filesystem> sehen wir den Benutzerbereich der HA-Konfigurationsdateien.

    (Auf versteckte HA- und Systemdateien kann man mit diesem <File editor>, soweit ich weiss nicht zugreifen, aber das brauchen wir auch nicht.)




    Kurze Info zu den hier sichtbaren Dateien und Ordnern:

    Info:

    - Ein Klick auf die Dateien zeigt diese im Editor an
    - Die für uns hier wichtigen Dateien habe ich inf folgender Liste hervorgehoben

    • .HA_Version
      => Aktuell installierte Version des HA-Core
      => interessiert uns nicht
    • .shopping_list.json
      => Hier hat die Integration "Shopping List" nach unserem Test von zuvor seine Daten im JSON-Format abgelegt.
      => bitte kurz ansehen, sonst nicht mehr relevant.
    • automations.yaml
      => Die Datei ist jetzt noch leer.
      => Hier speichert HA die vom User generierten Automations ab.
      => HA mag es gar nicht, wenn man diese Datei editiert. Also Automations immer nur über das GUI bearbeiten!
    • blueprints (Ordner)
      => enthält Vorlagen für Automations und Scripts. Brauchen wir hier nicht.
      => interessiert uns nicht
    • configuration.yaml
      => Früher der Kern der HA-Benutzerkonfiguration.
      => Einige wesentliche Dinge sind aber noch in der aktuellen HA-Version hier einzutragen
    • home-assistant.log
      => Das eine und zentrale Logfile von HA
      => Wichtig bei der Fehlersuche!
      => Mit jedem Restart wird eine neues Logfile begonnen und das alte in home-assistont.log.1 unbenannt
    • home-assistant.log.fault
      => gefilterte Fehler aus home-assistant.log
    • home-assistant_v2.db
      => Die SQLite-Datenbank von HA.
      => Hierin sind alle aktuellen und historischen Daten der Entities gespeichert.
      => mit dem Add-on "SQLite Web" kann man sich diese gut überschaubare Datenbank ansehen und auch Einträge nach belieben verändert. Also Vorsicht!
      => interessiert uns sonst nicht weiter
    • scences.yaml
      => Die Datei ist jetzt noch leer.
      => Hier speichert HA die vom User generierten Szenen ab.
      => Ich verwende keine Szenen, daher bleibt diese Datei auch leer.
    • secrets.yaml
      => Hier werden wir später IP-Adressen und TCP-Ports der Geräte eintragen
      => Diese Daten könen wird dann in der configuration.yaml nutzen
    • tts
      => Ordner für Text2Speech
      => sonst kann ich zZ nichts dazu sagen.

    Zurück zur Startseite und zum Inhaltsverzeichnis

    Voriges Kapitel: #02.03 Grundlagen Teil 2 - HA Core

    Nächstes Kapitel: #02.05 Grundlagen Teil 3 - HA Dashboards

    Version: 2024-03-12


    Als nächstes konfigurieren wir unseren HA-Server.

    Das wird jetzt ev. etwas mühsam, bitte durchhalten! Ab dem nächsten Kapitel wird es dann spaßiger! Versprochen!


    Also:

    • wir werden das Benutzerprofil anpassen
    • Dinge aus HA entfernen die wir nicht brauchen.
      ZB. das Energy-Dashboard zur Steuerung der Solaranlage und der Heizung.
    • Und Add-ons/Ressourcen hinzufügen, ohne die wir nicht weiter kommen.
      File Editor, Terminal und Custom Button-Card


    User Profile anpassen

    (links-unten im Sidebar auf den User-Namen klicken)

    • Theme auf "Dark" stellen
      Das ist die Grundlage des Farbschemas meiner Dashboards.
      Später könnt ihr gerne euer eigenes Farbschema und Theme erstellen
    • Sprache auf "Englisch" stellen
      (Sofern ihr das beim ersten Anmeldebildschirm noch nicht umgestellt habt.)
      Hintergrund: Die deusche Übersetzung in HA ist eigenlich sehr gut, aber spätestens sobald man im Internet etwas zu einem Thema sucht findet man mit den deutschen Begriffen nur einen Bruchteil der Artikel bzw. man findet sich in den englischen Texten nur mühsam zurecht. Das gilt aber generell und nicht nur für HA.
    • Advanced Mode aktivieren

    Entfernen nicht benötigter Integrationen

    => Settings => Device & services => Integrations

    • Discovered Integrations
      Ihr könnte alle von HA automatisch gefundenen Geräte ignorieren => IGNORE
      Sollte ein der AppleTV oder ein HarmonyHub anzeigt werden könnt ihr diese auch belassen.
      Ignorierte Geräte sind in dieser Ansicht nur ausgebeldet und können über das Menu-Icon (...) rechts-oben wieder angezeigt werden.
    • Configured Integrations
      Alle (bis auf die folgenden) bereits installierten Integrationen löschen:
      • Shopping List
      • Bluetooth
      • Home Assistant Supervisor
      • Raspberry Pi Power Supply Checker
      Das Löschen geht so:



    Erforderliche Add-Ons installieren

    => Settings => Add-ons => ADD-ON STORE

    • "File editor"
    • "Advanced SSH & Web Terminal"

    Vorgang:

    • Das Add-on im ADD-ON STORE suchen (Suchfeld verwenden!)
    • Das Add-on anklicken
    • <INSTALL> klicken
    • <Show in sidebar> aktivieren
    • <START> klicken

    Hinweis zum "Advanced SSH & Web Terminal":

    Damit dieses Add-on starten kann, muss man vor dem Starten unter <Configuration> ein Passwort eintragen.

    (Wer möchte kann auch ssh-keys nutzen. Ich sehe dazu hier jetzt aber keinen Bedarf)



    Bevor wir die nächsten Dinge entfernen ein Einschub zum HA-Dateisystem und dem "File editor"

    Services

    Unsere <Shopping List> hat auch netterweise >Services< in HA integriert.

    Diese Services finden wir am einfachsten unter

    => Development tools => Services


    Geben wir im Service-Eingabefeld "shop..." ein, werden alle von der Integration <Shopping List> registierten Services angezeigt.



    Wir wählen jetzt "Shopping List: Add item" aus, dann erscheint unten ein weiters Eingabefeld für den Parameter "Name", den dieses Service verarbeiten kann.


    Klinken wir auf <CALL SERVICE> wird der Text "Ein Kapitel schreiben" unserer <Shopping List> hinzugefügt.


    Sehen wir in der <Entity-Liste> nach, sehen wir, dass nach jedem Aufruf des Service <Add Item> der Status der Entity <shopping-list> um Eins erhöht wird.



    Klicken wir im Service-Formular auf "GO TO YAML MODE" wird der YAML-Code dieses Service-Aufrufs angezeigt.

    Unterhalb des YAML-Codes wird dann meist noch eine Beschreibung zu den verfügbaren Parametern angezeigt - wie hier unten für denParameter "name" des Service <shopping_list.add_item> dargestellt.



    Diesen Yaml-Code können wir dann später per Copy-Paste für das Erstellen von Buttons in den Dashboards oder für Aktionen in Automationen verwenden um Services aufzurufen!

    Um die Theorie besser zu verstehen, werden wird uns das jetzt konkret in unserer HA-Installation ansehen.


    Bitte jetzt nicht abschrecken lassen, ich versuche es wirklich einfach zu halten und auf das Notwendigste zu beschränken!


    Wichtig! Ich empfehle jetzt noch nicht bei interessant klingenden Begriffen abzubiegen oder frei herumzuklicken, dass führt nur zu Verwirrung !!!


    Integrationen

    Suchen wir nun die Integrationen in HA. Die "regulär installierten" Integrationen finden wir hier:

    => Settings => Devices&Services => Integrations



    Wie wir sehen, hat HA schon einige Geräte in unserem Netzwerk automagisch gefunden und bietet deren Installation an, und hat auch bereits einige Integrationen vorinstalliert.

    (Wir werden hier später noch ausmisten.)



    Jetzt bitte nur beachten, dass es eine Integration <Shopping List> gibt.
    Mit dieser Integration werden wir uns im folgenden das Thema "Services und Entities" kurz ansehen.


    Entities

    Die zuvor beschriebene Entity-Liste (die mit den drei Spalten) finden wir unter

    => Development-Tools => States

    Diese Tabelle enthält die Liste aller aktuell verfügbaren HA-Entities mit deren Status und Attributen.



    Die Entity unserer <Shopping List> finden wir in der Liste entweder durch scrollen nach unten, oder einfacher wenn wir in der Kopfzeile "to..." als Filter eintragen.



    Wir können hier sogar ganz einfach den Status und die Attribute der Entity <todo.shopping_list> nach belieben ändern.

    Dazu auf die blaue Bezeichnung der Entity klicken und es erscheint ein Eingabeformular oberhalb der Tabelle.



    Hier habe ich den Status auf 15 gesetzt und ein Attribut <Heimkino> mit dem Wert "is great" gesetzt.


    Ergänzend noch:

    Die Attribute einer Entity werden als "Dictionary" gespeichert. Dh. als Liste von Parameteren, wobei jeder Parameter aus einem "Key" und einem "Value" besteht.

    Später können wir dann über die Entity-Bezeichnung und dem Key des Attributes auf jeden Wert zugreifen.

    Zurück zur Startseite und zum Inhaltsverzeichnis

    Voriges Kapitel: #02.02 Basisinstallation von HA

    Nächstes Kapitel: #02.04 Grundkonfiguration von HA

    Version: 2024-03-11

    Wenn wir uns auf die Funktionen von HA beschränken, welche wir für unsere Heimkinosteuerung benötigen, würde ich das System grob vereinfacht wie folgt darstellen:



    Integrationen

    Auf der einen Seite (hier links) bindet sich HA mittels Integrationen an Devices an.

    • Integrationen sind gerätespezifische Schnittstellen und Adpater (Software)
    • Integrationen konvertieren die gerätespezifische Protokolle auf das einheitliche interne HA Interface (Entities und Services)
    • HA stellt bereits eine Vielzahl von Integrationen bereit
    • HA bietet eine Einwicklungsumgebung an. Damit kann man "recht einfach" Integrationen für beliebige Geräte programmieren. Somit wächst der Pool an verfügbaren Integrationen täglich an (https://www.home-assistant.io/integrations)
    • Das Einbinden und Konfigurieren der Integrationen in HA wird imho leider nicht sehr einheitlich umgesetzt.


    Dashboards (Lovelace)

    Auf der anderen Seite (hier rechts) werden Dashboards erstellt, welche von Anwender über HA-Clients zur Anzeige von Geräte-Informationen und zur Aktivierung von Geräte-Steuerbefehlen genutzt werden.

    • Für das Erstellen der Dashboards stellt HA ein recht einfaches aber mächtiges GUI zur Verfügung.
    • Mit dieser GUI wird der eigentliche Konfigurationssyntax (YAML) bearbeitet.
    • Wir werden hier YAML vielfach benötigen und einsetzen!


    Entities

    Sämtliche Informationen welche über Integrationen von Devices einlagen werden in der Entities-Tabelle gespeichert.

    Die Entity-Tabelle hat drei Spalten:

    1. Die Bezeichnung der Entity
    2. Status der Entity
    3. Attibute der Entity

    Was konkret in einer Entity gespeichert wird, ist sehr von der jeweiligen Integration abhängig.

    Einerseits kann eine Entity einem ganzen Gerät entsprechen.

    • ZB. dem AVR, mit dem Bestriebszustand als Status und die Konfigruationsparameter werden in der Attribut-Spalte gespeichert.

    Andererseits kann mit einer Entity auch nur einen Wert gespeichert sein.

    • ZB. einem Temperatur-Sensor, mit der Temperatur als Status und Detail-Infos (Letztes Update, etx.) in der Attribut-Spalte.


    Services

    Um Geräte steuern zu können registiert eine Integration <Services> in HA, welche man nutzen kann um Befehl an das dahinterliegende Gerät zu senden.

    Die Implementierung der Services ist wieder je Integration sehr unterschiedlich!

    Beispiele für Services sind zB.

    • Gerät einschalten
    • Quelle auf HDMI1 ändern
    • Eine Einstellung auf einen Wert ändern
    • Einen Wert abfragen
    • u.v.m


    Automations

    HA bietet mit Automations die Möglichkeit auf Basis Ereignissen (=Trigger) Aktionen auszulösen.

    • Trigger sind zB. Status-Änderungen (AVR wurde eingeschalten)
    • Aktionen sind YAML-Scripts die Services aufrufen können

    Diese Automations können übergreifend über sämtliche installierte Integrationen genutzt werden.


    Push/Pull

    Daten von Geräten können über zwei Methoden an HA übertragen werden:

    • Push
      Ein Gerät überträgt automatisch jede Statusänderung an HA ohne das HA aktiv danach fragt.
      ZB. Ändert man die Lautstärke am AVR, sendet der AVR selbständig eine Meldung an HA mit der neuen Lautstärke-Information und HA kann diese Info sofort anzeigen oder weiterverarbeiten.
    • Pull
      Ein Gerät überträgt nur Daten an HA wenn HA aktiv danach fragt.
      Hierfür gibt es einen Sheduler-Prozess in HA, der alle 30s alle im Sheduler registrierte Integeration triggert (update), um ausgewählte Daten-Abfragen durchzuführen,
      oder man nutzt ein Service der Integration um Daten manuell abzufragen.

    In der Regel werden in Integrationen beide Methoden genutzt.

    Bei mir sind bei der Installation am RPI5 folgende zwei Probleme aufgetreten!

    1. Der RPI5 drehte sich nach 1-2min immer wieder plötzlich ab.
    2. Der Bootvorgang blieb stecken mit "Waiting for root device ..."


    Ursache zu 1:

    • Das passive Metallgehäuse kühlt nicht ausreichend!
      (Beim RPI4 funktioniert dieses Gehäuse problemlos.)

    Lösung zu 1:



    Ursache zu 2:

    • Firmware/Bootloader des RPI5 war nicht aktuell

    Lösung zu 2:

    • Firmware/Bootloader aktualisieren !

    Dazu:

    • Schreiben von Raspian auf diese oder eine andere microSD-Card mit dem Raspberry PI Imager
      OS: Raspberry PI OS Lite (64-Bit)
      Einstellungen: alles wie vorgeschlagen belassen bis auf:
      - Benutzer und Passwort festlegen (pi|1234)
      - Tastaturlayout: de
      => Schreiben
    • microSD-Card in den RPI5 und starten (Strom anschließen)
    • Bootvorgang sollte jetzt bis zur Commandline-Eingabeaufforderung duchlaufen.
    • Anmelden mit pi|1234
    • Firmware-Update mit dem Befehl
      > sudo rpi-update



    • => Zurück zu Schritt 1 und das HA-Image neu auf die SD-Card schreiben