ESPHome about oder below mit Entität

hardl

Member
Ich habe eine Sensor- und eine Nummernkomponente in ESPHome erstellt. Hier ein Ausschnitt:


Code:
number:
  - platform: template
    name: plustemp 
    id: plustemp
    optimistic: true
    min_value: 0
    max_value: 25
    step: 1
    restore_value: true

Code:
sensor:
  - platform: dallas
    address: 0x190000001fa9d828
    name: "Frostsensor"
    id: frostsensor
    on_value_range:      
        - below: id(plustemp).state        
          then:       
          - switch.turn_on: frostrelay

Wenn ich -below: 3 verwende funktioniert es, bei -below: id(plustemp).state kommt eine Fehlermeldung: "float erwartet".
Ich habe schon versucht zu konvertieren, aber ohne Erfolg.
Wer kann helfen?
 
Ich hatte sowas ähnliches auch schon mal versucht, ging damals um Kellerlüftung oder so.
Zum Testen die Sensoren hier so erstellt:
frostsensor template
plustemp template ...auf 12 gesetzt
frostrelay switch

Das alles in einem interval mit 1s.

Den frostsensor in einer Schleife von 17 nach 6 runterzählen lassen.

Code:
      - if:
          condition:
            lambda: |-
              return (id(frostsensor).state > 6);
          then:
            lambda: |-
              (id(frostsensor).state -=1);
      - if:
          condition:
            lambda: |-
              return (id(frostsensor).state <= 6);
          then:
            lambda: |-
              (id(frostsensor).state = 17);

Und dann beide states direkt verglichen um das relay zu setzen.

Code:
      - if:
          condition:
            lambda: |-
              return (id(frostsensor).state < id(plustemp).state);
          then:
            lambda: |-
              (id(frostrelay).state = 1);
      - if:
          condition:
            lambda: |-
              return (id(frostsensor).state > id(plustemp).state);
          then:
            lambda: |-
              (id(frostrelay).state = 0);

Sobald er den mit plustemp vorgegeben Wert unterschreitet, schaltet das relay auf 1.
Nicht was du suchst, aber vielleicht kannst du da für dich was anpassen.


Edit:
Es sind alles templates:
frostsensor unter sensor
plustemp unter number
frostrelay unter switch
 
Zuletzt bearbeitet:
Hallo schnuppel,

danke für deine Tips.
Ich habe es gerade anders gelöst:
Code:
sensor:
  - platform: dallas
    address: 0x190000001fa9d828
    name: "Frost"
    id: frost
    filters:
      lambda: return  x - id (plustemp).state;
    on_value_range:
      - below: 0.0
        then:
        - switch.turn_on: frostrelay

Über frost.state erhalte ich die Temperatur + plustemp, über frost.raw_state erhalte ich die aktuelle Temperatur und kann die am Dispay anzeigen.
Deinen Ansatz werde ich mir merken, den kann man sicher einmal brauchen.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.556
Beiträge
54.721
Mitglieder
5.384
Neuestes Mitglied
BlueEclipse
Zurück
Oben