Regenmesser - Anlage Sensors

SkyWalker2_D

Active member
Moin!

Ich versuche mich gerade an der Anlage eines Sensors für eines Regenmessers auf Basis dieser Anleitung
DIY Zigbee rain gauge

Den Sensor habe ich angelegt und der wird mir auch angezeigt nach Neustart.

Ich habe, aus Unwissenheit, aber Probleme mit der Anlage des Template Sensors um die Menge pro Tag zu errechnen.

Ich kenne mich leider nicht aus mit Template Sensoren usw. Ich bekomme nun eine Fehlermeldung bei der Prüfung
vor Neustart

YAML:
# Regenmesser
  - platform: history_stats
    name: Rainsensor_flips
    entity_id: binary_sensor.rainsensor_lumi_aq2_offnung #The aqara sensor
    state: 'off'
    type: count
    start: '{{ now().replace(hour=0, minute=0, second=0) }}'
    end: '{{ now() }}'
    
#Regenmesser Menge
  - platform: template
    sensors:
      regenmenge_heute:
        name: Regenmenge heute
        unit_of_measurement: mm
        state_class: increasing
        unique_id: Regenmenge_heute
        state: >-
          {% set count = states('sensor.rainsensor_flips') | int(0) %}
          {% set mm = count * 0.3703703703703704 %}
          {% if count >= 0 %}
            {{ mm|round(1, 'floor') }}
          {% endif %}

Konfigurationswarnungen
Invalid config for 'template' from integration 'sensor' at sensors.yaml, line 133: required key 'value_template' not providedInvalid config for 'template' from integration 'sensor' at sensors.yaml, line 134: 'name' is an invalid option for 'sensor.template', check: sensors->regenmenge_heute->nameInvalid config for 'template' from integration 'sensor' at sensors.yaml, line 136: 'state_class' is an invalid option for 'sensor.template', check: sensors->regenmenge_heute->state_classInvalid config for 'template' from integration 'sensor' at sensors.yaml, line 138: 'state' is an invalid option for 'sensor.template', check: sensors->regenmenge_heute->state

Ich denke, ich habe Syntaxfehler und finde keine Lösung durch probieren :)

Grüße
Sky
 
So auf den ersten Blick würde ich sagen, bei der Menge das state: austauschen gegen value_template: und das name: gegen friendly_name: - es ist so dann allerdings die alte Syntax (damit hast Du den Block eingeleitet) und die hat soweit ich weiß garkein state_class als Option.

Einfacher wäre es ggf., auf die neue Syntax zu wechseln: https://www.home-assistant.io/integrations/template/ - müsste dann in etwa so enden:
YAML:
template:
  - sensor:
    - name: "Regenmenge heute"
      unit_of_measurement: mm
      state_class: increasing
      unique_id: Regenmenge_heute
      state: >-
        {% set count = states('sensor.rainsensor_flips') | int(0) %}
        {% set mm = count * 0.3703703703703704 %}
        {% if count >= 0 %}
          {{ mm|round(1, 'floor') }}
        {% endif %}
- gehört allerdings schätzungsweise nicht in die sensors.yaml mit hinein, müsste dann wohl template: !include templates.yaml sein (wenn nicht eh schon vorhanden) und dann ab - sensor: übertragen.
 
Moin!

Vielen Dank. Leider bekomme ich weiterhin ein Fehlermeldung. Die Idee das alles auszulagern in eine templates.yaml macht die configuration.yaml auf jeden Fall etwas übersichtlicher.

Ich hatte das so gemacht und den Code dort hineinkopiert ab - sensor:

Bei der Überprüfung kommt dann das hier:
Logger: homeassistant.config
Quelle: config.py:623
Erstmals aufgetreten: 23. Juni 2024 um 19:55:52 (6 Vorkommnisse)
Zuletzt protokolliert: 07:28:58

Invalid config for 'template' at templates.yaml, line 5: expected SensorStateClass or one of 'measurement', 'total', 'total_increasing' for dictionary value 'sensor->0->state_class', got 'increasing' Invalid config for 'template' at templates.yaml, line 7: invalid template (TemplateSyntaxError: unexpected end of template, expected 'end of print statement'.) for dictionary value 'sensor->0->state', got "{% set count = states('sensor.rainsensor_flips') | int(0) %} {% set mm = count * 0.3703703703703704 %} {% if count >= 0 %}\n {{ mm|round"
Invalid config for 'template' at templates.yaml, line 7: invalid template (TemplateSyntaxError: unexpected end of template, expected 'end of print statement'.) for dictionary value 'sensor->0->state', got "{% set count = states('sensor.rainsensor_flips') | int(0) %} {% set mm = count * 0.3703703703703704 %} {% if count >= 0 %}\n {{ mm|round"
Invalid config for 'template' at templates.yaml, line 2: 'platform' is an invalid option for 'template', check: platform
Invalid config for 'template' at templates.yaml, line 13: 'platform' is an invalid option for 'template', check: platform
Invalid config for 'template' at templates.yaml, line 4: expected SensorStateClass or one of 'measurement', 'total', 'total_increasing' for dictionary value 'sensor->0->state_class', got 'increasing'

Ich denke, ich habe ein grundsätzliches Verständnisproblem.
 
one of 'measurement', 'total', 'total_increasing' for dictionary value 'sensor->0->state_class'
Das sagt ja eigentlich schon alles aus, diese drei hast Du zur Auswahl, "increasing" hingegen nicht. Um das richtige auszuwählen hilft Dir eventuell diese Übersicht: https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes - ich denke, "total_increasing" dürfte richtig sein / dem entsprechen, was Du gemeint hast.

Wenn es dann immernoch Fehler gibt, schau mal, ob Du eventuell mit den Einrückungen verrutscht bist - bei mir funktioniert das so:
1719213578235.png
- Defaultwert bei | int halt höher gesetzt um was anderes als 0 dort stehen zu haben, aber ansonsten identisch.
 
Vielen Dank! Ich HA Padawan habe noch viel zu lernen :)

Ich habe es jetzt lösen können mit Deiner Hilfe und einem neueren Beitrag zu dem Projekt!

1719214272302.png
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
4.951
Beiträge
49.873
Mitglieder
4.636
Neuestes Mitglied
TL767
Zurück
Oben