Sensor oder Entität, was ist der Unterschied?

Hallo,

ich bin ziemlich neu bei der Hausautomatisierung.
Ich habe zwar schon einige Geräte per MQTT oder Tasmota eingebunden,
stolpere aber immer wieder über die Begrifflichkeiten.
Was unterscheidet einen Sensor von einer Entität?
Welche der beiden kann/muß/darf ich per Yaml anlegen oder nicht?

Moin,
Willkommen in der Community.

Ein Sensor hat immer eine Entität, aber nicht jede Entität ist ein Sensor.
Eine Entität ID(entity) fängt mit der Domain an z.B.:

  • ein Sensor startet immer mit sensor.
  • ein Binärer Sensor immer mit binary_sensor.
  • ein Licht mit light.
  • ein Schalter mit switch.

dürfte so das wichtigste sein.
Hintern punkt folgt dann meist der Name, dann sieht das z.B. so aus: sensor.temp_abstellkammer
Wichtig wen du die ID selber abänderst: nur klein schreiben keine Sonderzeichen außer _ und keine Leerzeichen.

Müssen musst du Garnichts, man kann aber eigentlich alles über YAML erstellen.

Was möchtest du denn per YAML erstellen?

LG
Tobi

Ich möchte eigentlich meinen Tasmota Smartmeter-Reader so einbinden, daß ich die Werte im Energie-Dashboard verarbeiten kann.
Die von der Tasmota-Integration bereitgestellten Sensoren tauchen im Energie-Dashboard nicht auf.
Selbst erstellte Sensoren über MQTT bekomme ich nicht hin, da das Topic zwei Anführungszeichen (“”) enthält.

sensors = {“sn”:{“Time”:“2024-01-24T15:48:19”,“”:{“Verbrauch_T1”:5651.8600000,

Meinen Solar-Inverter hab ich per MQTT eingebunden:

    - name: Solar-Willi-Energie-heute
      state_topic: energy/shine1
      value_template:  "{{value_json.TodayGenerateEnergy }}"
      unit_of_measurement: 'kWh'
      unique_id: solar-willi-energie-heute  
      device_class: energy
      state_class: total
      last_reset_value_template: '1970-01-01T00:00:00+00:00' 

Die Sensoren der Tasmota Integation kannst du folgendermaßen weiterverarbeiten, damit du ihn im Energy-Dashboard einfügen kannst:

template:
  - sensor:
    # Stromzähler Keller Verbrauch
      - name: "Stromzähler Verbrauch"
        unique_id: "StromzVerbrauch"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_sm_1_8_0')) | round(3) }}

Natürlich mit deinen Sesnoren ersetzen.

Alternativ sollte es auch funktionieren, wenn du dem Originalsensor die folgenden Eigenschaften ergänzt in der customize.yaml:

  sensor.tasmota_sm_1_8_0:
    unit_of_measurement: 'kWh'
    device_class: "energy"
    state_class: "total_increasing"

Danke für die schnelle Antwort.
Wo muß ich das Template erstellen?
Ich habe keine customize.yaml,
einfach eine erstellen und in der configuration.yaml includieren?

In der configuration.yaml fügst du ganz am Anfang die folgenden beiden Zeilen ein:

homeassistant:
  customize: !include customize.yaml
  
# Loads default set of integrations. Do not remove.

die customize.yaml erstellst du dir dann einfach selbst im Ordner “config” und fügst die Zeilen wie oben geschrieben ein.

Den Abschnitt mit Template kannst du entweder so wie er ist in die configuration,yaml einfügen, oder per include in eine template,yaml auslagern.
Dabei musst du nur darauf achten, dass du template nur an einer Stelle schreiben darfst, da HA sonst mir duplicate Meldungen reagiert.

Dann die yaml prüfen lassen und HA neu starten.
Danach kannst du über Entwicklerwerkzeuge → Zustände prüfen, ob die Daten an den Sensoren passen

So habe ich mir das gedacht.

Wie meinst du das?
nur eine template.yaml oder in dieser nur 1 mal template?

Wenn du die templates in eine template.yaml auslagerst, dann steht in der configuration,yaml

template: !include template.yaml

In der Template.yaml dann nur

  - sensor:
    # Stromzähler Keller Verbrauch
      - name: "Stromzähler Verbrauch"
        unique_id: "StromzVerbrauch"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_sm_1_8_0')) | round(3) }}

Hatte ich so vermutet.
Danke für deine Hilfe, ich werde versuchen, das so umzusetzen.