device_id vs. entity_id

Basic im Umgang mit Home Assistant. Tipps und Ratschläge die den Umgang mit Home Assistant erleichtern.


Antworten
Benutzeravatar
Figuhr
Beiträge: 14
Registriert: So 5. Feb 2023, 12:21
1
Has thanked: 1 time

device_id vs. entity_id

Beitrag von Figuhr »

Gibt es einen Unterschied zwischen der Nutzung von
device_id und entity_id?

In mit der UI erstellt Automatisierungen werden oft beide gleichzeitig benutzt, um ein Gerät zu bezeichnen. Aber Wofür?

Code: Alles auswählen

- condition: device
  type: is_off
  device_id: 81b820dce4df1c66bfb75df8f97ea43f
  entity_id: light.licht_schlafzimmer
  domain: light

Die device_id ist ein Graus!

Und wofür brauche ich domain?

Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: device_id vs. entity_id

Beitrag von Osorkon »

Mal abgesehen von der Tatsache, dass die device_id sehr kryptisch ist? ;)

Die Device ID wurden eingeführt mit der Möglichkeit Automatisierung direkt in der GUI zu erstellen. Diese finden Verwendung in dem Du direkt aus der Geräte Sicht eine Automatisierung erstellen möchtest. Und stehen konsequenter Weise auch zur verfügung, wenn Du eine neue Automatisierung erstellen tust.

Ich persönlich nutze die device_id überhaupt nicht. Da wie schon erwähnt diese absolut kryptisch sind. Dass zu jeder device_id auch die jeweilige Entität aufgeführt wird, kam erst später dazu.
Wohl aus dem Grund, da die device_id absolut nichts sagend ist.

Die Verwendung von services/platform und Entitäten, haben aus meiner Sicht nur Vorteile:

  • Automatisierungen lassen sich einfacher Teilen, nur die jeweiligen Entitäten müssen ausgetauscht werden.
  • Ich kann defekte Geräte einfach austauschen, muss nur dafür sorgen das ich die Entitäten genau so umbenene wie die alten.
  • Die Verwendung von Templates ist nur mit Entitäten möglich, nicht mit devise_id
  • Automatisierungen lassen sich einfacher direkt in yaml erstellen, bearbeiten, anpassen.
  • Der yaml code lässt sich einfacher lesen, zumindest für mein empfinden.

Dagegen lassen sich vielleicht für Anfänger über die Verwendung der device_id schneller Automatisierungen erstellen, da man sich nur durchklicken muss.

Am Bsp. Auslöser

Code: Alles auswählen

trigger:
  - type: motion
    platform: device
    device_id: 468aeaf992c1259c6b30ca3849ba7d30
    entity_id: binary_sensor.motion_keller
    domain: binary_sensor

Code: Alles auswählen

trigger:
  - platform: state
    entity_id:
      - binary_sensor.motion_keller
    from: "off"
    to: "on"

Oder Bsp. Aktion

Code: Alles auswählen

action:
  - type: turn_on
    device_id: 9d76a5e73e6711c034aa8764ba166b9d
    entity_id: light.esszimmertisch
    domain: light

Code: Alles auswählen

action:
  - service: light.turn_on
    data: {}
    target:
      entity_id: light.esszimmertisch

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Figuhr
Beiträge: 14
Registriert: So 5. Feb 2023, 12:21
1
Has thanked: 1 time

Re: device_id vs. entity_id

Beitrag von Figuhr »

Also könnte ich die device_id in sämtlichen über die GUI erstellten Automatisierungen konsequent wieder entfernen?

Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: device_id vs. entity_id

Beitrag von Osorkon »

Nein, kannst Du nicht!!

Du musst die Automatisierungen ohne Verwendung von device_id erstellen.

Also als Auslöser, Bedingung und Aktion nicht Geräte verwenden.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Antworten