Value eines input_boolean Helfer ändern

Deladusde

Member
Hallo zusammen,

ich bin ziemlich neu in der Materie "Home Assistant". Ich komme von OpenHAB und habe von hier aus meine gesamte Smart Home Infrastruktur zusammengeführt und hauptsächlich damit meine Heizkörper gesteuert.

Vor einigen Wochen bin ich dann auf Home Assistant gewechselt, weil mir hier doch so einiges Bessergefallen hat und vieles deutlich einfacher und intuitiver ist als bei OpenHAB. Aber ein treibt mich zur Verzweiflung:

Ich lasse über unsere Smartphones im Haus checken, ob jemand Zuhause ist. Damit ich nicht jeden Nutzer immer in allen Automationen einfügen muss habe ich mit einen Umschalter als Helfer eingerichtet der über eine Automatisierung eingeschaltet wird, wenn mindestens eine Person Zuhause ist, und ausgeschaltet, wenn alle unterwegs sind. Als kontrolle habe ich als Element-Karte diesen Helfer nun in UI eingefügt. Er zeigt aber, wie zu erwarten für einen Schalter, nicht "Anwesend" oder "Abwesend", sondern "Ein" oder "Aus" an. Diese Werte würde ich gerne ändern. Bei OpenHAB war das auch über Mapping in der Sitemap (bei HA heißt es Dashboard) auch ohne Probleme möglich. Bei HA lese ich immer was von aufwendigen Code-Zeilen in einer YAML Configurations-Datei.

So einfach HA in ganz vielen Bereichen ist, steige ich durch dieses, für mich eigentlich völlig einfaches Problem, nicht durch. Ich finde endliche Einträge wo auf diesen Weg Binary Sensoren geändert werden. Aber dafür muss man etliche Zeilen Code einhaken.

Kann mir evtl. das einer einmal erklären? Ich habe schon alleine Stunden damit verbracht, wie ich überhaupt an die Configurations-Datei komme....

Vielen Dank und Gruß
Dennis
 
Okay, dann kopier mal das hier dadrunter:
YAML:
sensor:
  - platform: template
    sensors:
      anybody_home:
        value_template: >-
          {% if (states('input_boolean.on_off') == "off") %}
            {{ "Abwesend" }}
          {% else %}
            {{ "Anwesend" }}
          {% endif %}
        friendly_name: Jemand daheim?
Den Namen von input_boolean.on_off auf den Namen von Deinem Helfer anpassen, und je nachdem wie Du ihn konfiguriert hast eventuell noch die Logik anpassen / umdrehen.

Nachdem Du das so gespeichert hast, einmal HA neustarten.
 
Hi,

vielen Dank für deine Mühe. habe es nun eingefügt und den Namen meines Helfers angepasst, aber geändert hat sich nach einem Neustart nichts...
Screenshot 2023-02-27 104406.png

Der Schalter bleibt bei AN/AUS und auch in der Karte bleibt es wie es war.

Screenshot 2023-02-27 104249.png

Habe auch mal was von einer device_class gelesen die man anbringt, davon lese ich in deinem Beispiel nichts...

Sorry für diese "dummen" Fragen, aber ich steige da nicht ganz in der Mechanik durch. Finde dieses spezielle Thema doch sehr kompliziert.

Gruß
Dennis
 
Du hast jetzt einen weiteren Sensor angelegt - den findest Du z.B. unter Entwicklerwerkzeuge => Zustände - und den müsstest Du dann neu auf dem Dashboard einbinden :)
 
Super, vielen Dank, mit deinem, auf meine Situation zugeschnittenen, Code habe ich nun auch die Anpassung des ICONs geschafft.

YAML:
sensor:
  - platform: template
    sensors:
      anybody_home:
        value_template: >-
          {% if (states('input_boolean.anwesenheit') == "on") %}
            {{ "Anwesend" }}
          {% else %}
            {{ "Abwesend" }}
          {% endif %}
        friendly_name: Jemand daheim?
        icon_template: >-
          {% if (states('input_boolean.anwesenheit') == "on") %}
            mdi:account
          {% else %}
            mdi:account-off
          {% endif %}

So langsam bekomme ich ein Grundverständnis von der Mechanik. Aber ich finde es nach wie vor sehr umständlich. Aber man macht es ja nicht jeden Tag :)
 
Ok, eine Frage hätte ich da jetzt noch... mit if/else/endif habe ich jetzt kapiert. Das kann ich aber ja nur dann anwenden, wenn mein Sensor 2 Zustände hat, jetzt wollte ich das nun abwandeln und habe versucht den Temperaturtrend, den mir meine Netatmo angibt "up", "down" und "stable" über dieses Template anzupassen:

YAML:
  - platform: template
    sensors:
      OutdoorTemp_trend:
        value_template: >-
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "down") %}
            {{ "Fallend" }}
          {% else %}
            {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "stable") %}
              {{ "Stabil" }}
          {% else %}
            {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "up") %}
              {{ "steigend" }}
          {% end %}
        friendly_name: Temparatur (Trend)
        icon_template: >-
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "down") %}
            mdi:trending-down
          {% else %}
            {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "stable") %}
              mdi:trending-neutral
          {% else %}
            {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "up") %}
              mdi:trending-up
          {% endif %}

Habe auch die Variante:
YAML:
  - platform: template
    sensors:
      OutdoorTemp_trend:
        value_template: >-
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "down") %}
            {{ "Fallend" }}
          {% endif %}
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "stable") %}
            {{ "Stabil" }}
          {% endif %}
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "up") %}
            {{ "steigend" }}
          {% endif %}
        friendly_name: Temparatur (Trend)
        icon_template: >-
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "down") %}
            mdi:trending-down
          {% endif %}
            {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "stable") %}
              mdi:trending-neutral
          {% endif %}
            {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "up") %}
              mdi:trending-up
          {% endif %}

ausprobiert, aber beides gibt mir HA als invalid an. Welchen Denkfehler mache ich hier?
 
Ich glaube, Du suchst elif (und Du hast beim ersten Code end anstelle von endif geschrieben, das mag es sowieso nicht) :)

Jetzt nur aus dem Kopf, sollte aber so passen:
YAML:
        value_template: >-
          {% if (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "down") %}
            {{ "Fallend" }}
          {% elif (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "stable") %}
            {{ "Stabil" }}
          {% elif (states('sensor.indoor_indoor_indoor_garten_temperature_trend') == "up") %}
            {{ "Steigend" }}
          {% endif %}
 
Vielen Dank, nochmal!
ich habe aber noch einen Fehler zufällig gefunden, das System mag offensichtlich die Art, wie ich
Code:
OutdoorTemp_trend
geschrieben hatte nicht.
Code:
outdoortemp_trend
hat er dann aber genommen...
 
Gibt es eigentlich auch eine Möglichkeit Klassen oder allgemeine Template zu machen! Die Templates jetzt sind ja immer auf ein bestimmte Entität festgelegt. wenn ich aber jetzt mehrere Entitäten des gleichen Typs habe - z.B. hat Netatmo, den Sensor "Trend" für Innentemperatur, Außentemperatur und Luftdruck. immer mit den werten down, stable und up.

muss ich jetzt jede Entität einzeln in die Konfigurationsdatei eintragen oder kann ich das eleganter lösen?
 
Jede Entität muss einzeln bearbeitet werden.
Über die Groß-Kleinschreibung stolpern wir alle am Anfang!

Eine Automatisierung kann man mittels Boardmittel ganz einfach starten wenn keiner zu Hause ist.

Ich zB fahre meine Heizung runter wenn keiner zu Hause ist.

Erstelle eine Gruppe mit allen die im Haus wohnen, dann kannst du einfach den Zustand „home“ oder „not_home“ abfragen um eine Automation zu starten.

Ich kann grade keinen Code einfügen weil ich unterwegs bin.
 
Zuletzt bearbeitet:
Was @Barry Ricoh schrieb ist nur auf yaml Ebene möglich, nicht per UI. Allerdings ist das tatsächlich die elegantere Lösung und sieht so aus:

Code:
group:
  Anwesenheit:
    name: "Anwesenheit"
    entities:
      - person.xxxx
      - person.yyyy

Wenn du keine Personen hast sondern nur device tracker, dann halt mit device_tracker.xxx und so weiter
 
Zum vereinfachen deiner Templates kannste das hier machen:

YAML:
        value_template: >-
          {% set entity = 'sensor.indoor_indoor_indoor_garten_temperature_trend' %}
          {% if (states(entity) == "down") %}
            {{ "Fallend" }}
          {% elif (states(entity) == "stable") %}
            {{ "Stabil" }}
          {% elif (states(entity) == "up") %}
            {{ "Steigend" }}
          {% endif %}

So musst du nur einmal den entsprechenden Sensor definieren fürs gesamte template. Spart ein wenig Lebenszeit.
 

Zurzeit aktive Besucher

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
5.439
Beiträge
53.748
Mitglieder
5.235
Neuestes Mitglied
MichaelS
Zurück
Oben