Ausgliederung der sensor.yaml

atrost

Member
Ich habe einiges dazu gelesen und auch hier im Forum gefunden. Es schein so einfach zu sein und trotzdem gibt es einen Fehler.
Man kann an diesem Syntax auch echt verzweifeln (wenn es daran liegt).
Direkt vor der Zeile 16 "sensor: !include sensor.yaml" soll etwas falsch sein.
Invalid config for [sensor]: required key not provided @ data['platform']. Got None. (See /config/configuration.yaml, line 15).

Code:
# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensor.yaml

Das ist die dazugehörige sensor.yaml.
YAML:
  - name: "WP_Leistung"
    unique_id: "wp_leistung"
    device_class: "power"
    state_class: "measurement"
    unit_of_measurement: "KW"
    state: >
      {% set l1_power = states('sensor.shelly_em3_channel_a_power') | float(0) %}
      {% set l2_power = states('sensor.shelly_em3_channel_b_power') | float(0) %}
      {% set l3_power = states('sensor.shelly_em3_channel_c_power') | float(0) %}
              
      {{ ((l1_power + l2_power + l3_power) / 1000) | round(3) }}
              
  - name: "WP_Verbrauch"
    unique_id: "wp_verbrauch"
    unit_of_measurement: "KWh"
    device_class: "energy"
    state_class: "total_increasing"
    state: >
      {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) %}
      {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) %}
      {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) %}
      {% set l4_energy = states('input_number.wp_zaehlerstand') | float(0) %}
      {% set konst = states('input_number.wp_faktor') | float(0) %}
            
      {{ ((l1_energy + l2_energy + l3_energy  + l4_energy) * konst) | round(1) }}
 
Zuletzt bearbeitet:
Nur noch das dahinter mit 2 Leerzeilen.

YAML:
climate:
  - platform: climate_group
    name: "Wohnzimmer"
    temperature_unit: C  # default to celsius, 'C' or 'F'
    entities:
    - climate.wohnzimmer_couch
    - climate.wohnzimmer_tur
 
Vor den Zeilen mit -name in der sensor.yaml müsste doch eigentlich noch eine Zeile mit - platform stehen, oder?
 
Das sind template-Sensoren...

Ändere das "sensor: !include sensor.yaml" mal zu "template: !include template.yaml"

Die sensor.yaml benennst um in template.yaml und fügst das so ein:

YAML:
- sensor:
    name: "WP_Leistung"
    unique_id: "wp_leistung"
    device_class: "power"
    state_class: "measurement"
    unit_of_measurement: "KW"
    state: >
      {% set l1_power = states('sensor.shelly_em3_channel_a_power') | float(0) %}
      {% set l2_power = states('sensor.shelly_em3_channel_b_power') | float(0) %}
      {% set l3_power = states('sensor.shelly_em3_channel_c_power') | float(0) %}
              
      {{ ((l1_power + l2_power + l3_power) / 1000) | round(3) }}
              
- sensor:
    name: "WP_Verbrauch"
    unique_id: "wp_verbrauch"
    unit_of_measurement: "KWh"
    device_class: "energy"
    state_class: "total_increasing"
    state: >
      {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) %}
      {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) %}
      {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) %}
      {% set l4_energy = states('input_number.wp_zaehlerstand') | float(0) %}
      {% set konst = states('input_number.wp_faktor') | float(0) %}
            
      {{ ((l1_energy + l2_energy + l3_energy  + l4_energy) * konst) | round(1) }}
 
Woran erkennt man, daß das Template-Sensoren sind? Wie macht man daraus normale Sensoren?
Oder liegt das an der Berechnung?
 
Ein normaler sensor sieht zb so aus:

YAML:
- platform: systemmonitor
  resources:
  - type: memory_use_percent
  - type: memory_free
  - type: processor_use
  - type: processor_temperature
  - type: disk_use_percent
    arg: /home
  scan_interval: 120

Da sind keine Templates drin. Sind Templates drin, ist es ein template sensor. In deinem Fall die Berechnung.
Daraus brauchst du auch keine "normalen Sensoren" machen. Das ist schon alles gut und richtig so 😉
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.379
Beiträge
45.232
Mitglieder
3.982
Neuestes Mitglied
ThomasW
Zurück
Oben