Entitรคten also auch Sensoren kรถnnen in Home Assistant neben dem eigentlichen Zustand auch noch weitere Attribute haben, die beliebig genutzt werden kรถnnen. Hierdurch stehen einem unzรคhlige weitere Werte zur Verfรผgung, welche fรผr Automatisierungen beispielsweise genutzt werden kรถnnen. Wie man auf diese Attribute zugreifen kann, erklรคre ich dir in diesem Beitrag.
Da vermutlich einige nun irritiert sein werden, worum es sich bei Attributen einer Entitรคt handelt, mรถchte ich diese zunรคchst an einem konkreten Beispiel erklรคren:
Was wir im obigen Screenshot sehen, ist der Dialog Entwicklerwerkzeuge Zustรคnde fรผr die Entitรคt sensor.pixel_5n_geocoded_location. Bei der Entitรคt handelt es sich um eine von der Home Assistant App bereitgestellte Entitรคt – also Daten von meinem Handy. Im konkreten Fall die „geocoded location“, also Informationen รผber den aktuellen Standort des Handys (ein paar Details unter Attribute habe ich ausgepixelt – bitte nicht wundern).
Hier findest du diesen Beitrag auch als Video von mir:
Was man in der Regel fรผr Automations nutzt, ist der eigentliche Zustand der Entitรคt. Ebenso ist aber auch mรถglich auf die unter „Attribute“ aufgefรผhrten Attribute und deren Werte zuzugreifen. Die Auflistung dort ist wie ein Telefonbuch zu verstehen: Wenn man auf das Attribut „administrative_area“ zugreift, erhรคlt man als Wert „Nordrhein-Westfalen“ zurรผck beispielsweise.
Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!
Am einfachsten probiert man das Auswรคhlen des gewรผnschten Attributs unter Entwicklerwerkzeuge -> Template aus, da man hier „on-the-fly“ Code schreiben und das Ergebnis prรผfen kann:
Links im Template-Editor kann man Code eintippen, dessen Ergebnis dann rechts im Bild gezeigt wird.
Wie liest man das Attribut einer Entitรคt aus?
Aus dem Screenshot kann man es schon ablesen, wie ein konkretes Attribut einer Entitรคt angesprochen beziehungsweise ausgelesen wird. Der Aufbau ist immer gleich wie folgt:
{{ states.DEINE-ENTITรT.attributes.DEIN-ATTRIBUT }}
In dem konkreten Fall von mir also {{ states.sensor.pixel_5n_geocoded_location.attributes.administrative_area }} um auf das Attribut administrative_area der Entitรคt sensor.pixel_5n_geocoded_location zuzugreifen
Um fรผr die selbe Entitรคt auf das Attribut iso_country_code zuzugreifen, wรผrde man lediglich das Attribut am Ende tauschen, also konkret {{ states.sensor.pixel_5n_geocoded_location.attributes.iso_country_code }} – lediglich das Attribut am Ende รคndert sich!
In einer Automation kannst du auf solche Attribute wie folgt zugreifen:
trigger: - platform: numeric_state entity_id: weather.home attribute: temperature above: 23
Wie du siehst, musst du nicht den „Umweg“ รผber die geschweiften Klammern etc. gehen. Aber in anderen Anwendungsfรคllen wirst du ggf. hierum nicht umherkommen.
Ich hoffe, dass ich dir mit diesem Tipp ein wenig weiterhelfen konnte und du somit ggf. sogar die Lรถsung fรผr ein bislang bestehendes Problem gefunden hast – immerhin stehen dir nun deutlich mehr dynamische Attribute in deinem Smarthome zur Verfรผgung! ๐
Produktempfehlungen
Hallo Danke fรผr die Ausfรผhrungen.
So kann ich die laufenden Attribute von Entitรคten saauber auslesen und verwenden.
Mir fehlt aber eine andere Mรถglichkeit.
Die Attribute รคndern sich aber stellenweise dynamisch.
Hast Du eine Idee, wie man, per „Knopf“ auf dem Dashboard, gezielt ein Atribut „irgendwo“/“irgendwie“
zu einem bestimten Zeitpunkt zwischenspeichern kann?
Ich habe bei meiner Thermostat-Steuerung mehrere Automationen am Laufen, welche die Temperatur zu bestimmten Tageszeiten einstellt.
Jetzt mรถchte ich aber, auf Wunsch meiner Frau, auf dem Heizungsdashboard, Button anlegen, die die Automation gezielt „รผbersteuert“.
Das funktioniert auch so weit und die „รbersteuerung“ bleibt auch so lange aktiv, bis die nรคchste Automation greift.
Ich mรถchte aber in diese Button noch eine Funktion einbauen, welche den aktuell eingestellten Wert des Thermostats irgendwo sichert.
Dann mรถchte ich einen „Reset“-Button bauen, welcher diesen zwischengespeicherten Wert nimmt und die Thermostat-Steuerung wieder auf
den, vor der „รbersteuerung“ gesicherten Wert zurรผcksetzt.
Has Du eine Idee wie man soetwas umsetzen kann und vielleicht auch ein kleinen Code-Schnipsel?
Danke im Voraus.
MfG
Frank
Hi Frank,
wenn ich dich richtig verstanden habe, wรผrde ich das wie folgt umsetzen:
In dein bestehendes รbersteuern baust du ein scene.create ein:
- service: scene.create
data:
scene_id: 'zustand_alt'
snapshot_entities: climate_device
Und in deinem „Reset-Button“ fรผhrst du dann lediglich ein scene.turn_on aus:
- service: scene.turn_on
target:
entity_id: 'zustand_alt'
So mรผsste das eigentlich funktionieren.
Da ich hierzu noch gar keinen Beitrag geschrieben habe, werde ich das wohl mal am Wochenende nachholen mรผssen! 😉
VG
Olli
PS: Das Einrรผcken des Codes erfolgt leider nicht wie gewรผnscht! Du musst das beim Nachbauen bitte beachten (also im 1. code data auf der Hรถhe von service und alles folgende weiter eingerรผckt; im 2. Code target auf der Hรถhe von service und die entity_id weiter eingerรผckt)!
Hi Frank,
falls du mehr Infos hierzu brauchst, habe ich ganz aktuell einen Beitrag dazu geschrieben: https://smarterkram.de/5547/
VG
Olli
Hi, hat wer eine Idee, ein Attribut (Helligkeit) entsprechend eines Wertes in einem Sensor (Dimmer) zu รคndern. Mit Automatisierung kann ich zwar das Attribut auslesen, aber scheinbar nicht schreiben, oder?
Danke fรผr egal welchen input 🙂
Thomas
Ich habe das zwar hinbekommen.
Aber der Wert des Attributs (eine Temperatur) wird nur 1x gelesen.
Und zwar, wenn ich die config yaml (Template) neu starte.
Danach รคndert sich zwar der Wert (sehe ich in meiner Ios App) aber
diese geรคnderten Werte tauchen in Home Assitant nicht auf.
Wie fรผge ich also ein „Refresh“ durch, damit ich stรคndig den aktuellen Wert
in home assistant bekomme.
Kann es sein, dass du einen Handy-Sensor ausliest, der von der Home Assistant App bereitgestellt wird? Was du schreibst, klingt nรคmlich ein wenig danach. Und wenn dem so ist, klingt das fรผr mich danach, als wรคre die Aktualisierungsfrequenz der App-Sensoren auf „selten“ eingestellt. Bei Android kann man in den App-Einstellungen unter Aktualisierungsfrequenz der Sensoren wรคhlen zwischen: Normal, Schnell wรคhrend des Ladens, Immer schnell.
Hilft das ggf.?
Hey ich stehe etwas auf dem Schlauch. Wie kann ich die Attribute aktivieren? Bei mir fehlt der Reiter komplett.
Hi Christian,
also ich habe bewusst nichts getan, um die Attribute sehen zu kรถnnen. Auch auf meiner DEV-Umgebung von Home Assistant, die noch relativ unangetastet ist, habe ich die Ansicht Entitรคt, Zustand, Attribute, wenn ich in den Entwicklerwerkzeugen auf Zustรคnde wechsel.
Wenn ein Attribut eine Leerstelle hat, dann so: {{states.sensor.anjas_iphone_11_pro_max_geocoded_location.attributes[‚Sub Locality‘]}}
Doch wie kann ich das in einer Karte darstellen?
Also wenn dein iPhone 11 Pro Max mit einer Person (Anja) verknรผpft ist, solltest du bei einem Klick auf person.anja eigentlich eine OpenStreetMap-Karte angezeigt bekommen mit dem zuletzt bekannten Standort.