Benachrichtigungen
Alles löschen

Attribute eines Sensors in Home Assistant nutzen

24 Beiträge
3 Benutzer
0 Reactions
709 Ansichten
Beiträge: 2
Gast
(@Frank Ahrens)
New Member
Beigetreten: Vor 2 Jahren

Hallo Danke für die Ausführungen.
So kann ich die laufenden Attribute von Entitäten saauber auslesen und verwenden.
Mir fehlt aber eine andere Möglichkeit.
Die Attribute ändern sich aber stellenweise dynamisch.
Hast Du eine Idee, wie man, per "Knopf" auf dem Dashboard, gezielt ein Atribut "irgendwo"/"irgendwie"
zu einem bestimten Zeitpunkt zwischenspeichern kann?
Ich habe bei meiner Thermostat-Steuerung mehrere Automationen am Laufen, welche die Temperatur zu bestimmten Tageszeiten einstellt.
Jetzt möchte ich aber, auf Wunsch meiner Frau, auf dem Heizungsdashboard, Button anlegen, die die Automation gezielt "übersteuert".
Das funktioniert auch so weit und die "Übersteuerung" bleibt auch so lange aktiv, bis die nächste Automation greift.

Ich möchte aber in diese Button noch eine Funktion einbauen, welche den aktuell eingestellten Wert des Thermostats irgendwo sichert.
Dann möchte ich einen "Reset"-Button bauen, welcher diesen zwischengespeicherten Wert nimmt und die Thermostat-Steuerung wieder auf
den, vor der "Übersteuerung" gesicherten Wert zurücksetzt.

Has Du eine Idee wie man soetwas umsetzen kann und vielleicht auch ein kleinen Code-Schnipsel?

Danke im Voraus.
MfG
Frank

Antwort
2 Antworten
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

Hi Frank,

wenn ich dich richtig verstanden habe, würde ich das wie folgt umsetzen:

In dein bestehendes Übersteuern baust du ein scene.create ein:

- service: scene.create
data:
scene_id: 'zustand_alt'
snapshot_entities: climate_device

Und in deinem "Reset-Button" führst du dann lediglich ein scene.turn_on aus:

- service: scene.turn_on
target:
entity_id: 'zustand_alt'

So müsste das eigentlich funktionieren.

Da ich hierzu noch gar keinen Beitrag geschrieben habe, werde ich das wohl mal am Wochenende nachholen müssen! 😉

VG
Olli

PS: Das Einrücken des Codes erfolgt leider nicht wie gewünscht! Du musst das beim Nachbauen bitte beachten (also im 1. code data auf der Höhe von service und alles folgende weiter eingerückt; im 2. Code target auf der Höhe von service und die entity_id weiter eingerückt)!

Antwort
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

Hi Frank,

falls du mehr Infos hierzu brauchst, habe ich ganz aktuell einen Beitrag dazu geschrieben: https://smarterkram.de/5547/

VG
Olli

Antwort
Beiträge: 8
(@bernd32457)
Active Member
Beigetreten: Vor 2 Wochen
Hallo Oli , hallo Leute, ich möchte den Status (siehe attribuste unten )von "Deicing active" auslesen bzw wissen ob er true oder false ist und bekomme das einfach nicht hin. Hat jemand eine Idee ?
 
options:
- Frost protection
- Standby
- "Heating: Compressor shutdown"
- "Heating: Compressor blocked"
- "Heating: Prerun"
- "Heating: Compressor active"
- "Heating: Overrun"
- "Cooling: Compressor shutdown"
- "Cooling: Compressor blocked"
- "Cooling: Prerun"
- "Cooling: Compressor active"
- "Cooling: Overrun"
- "Heating: Immersion heater active"
- "Warm Water: Compressor blocked"
- "Warm Water: Prerun"
- "Warm Water: Compressor active"
- "Warm Water: Immersion Heater active"
- "Warm Water: Overrun"
- "Heating: Immersion Heater shutdown"
- "Heating: Immersion Heater blocked"
- "Warm Water: Immersion Heater shutdown"
- "Warm Water: Immersion Heater blocked"
- Air purging program active
- Deicing active
- Frequency converter fault
- "Connection fault: frequency converter"
- 4-port-valve position fault
 
device_class: enum

Weniger anzeigen

Antwort
11 Antworten
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

@bernd32457 Hi! Kannst du einen Screenshot aus den Entwicklerwerkzeugen von der Entität bereitstellen, in dem die Spalte "Attribute" sichtbar ist?

Antwort
(@bernd32457)
Beigetreten: Vor 2 Wochen

Active Member
Beiträge: 8
(@bernd32457)
Beigetreten: Vor 2 Wochen

Active Member
Beiträge: 8

@olli Hallo Oli, hiermit der  Screenshot 😀

 

Antwort
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

@bernd32457 Top, danke dir!

Das sieht, sagen wir mal, interessant aus, was da an Daten bereitgestellt wird. Strukturiert ist es leider nicht, aber ggf. hilft dir mein Code dennoch.

Probier' mal in den Entwicklerwerkzeugen unter Template aus, ob du mit folgendem Code eine Ausgabe der "options" bekommst:

{{ state_attr("sensor.ebusd_hmu_ebusd_hmu_statuscode_scode", "options") }}

Wenn ja, kannst du mit einer einfachen Abfrage überprüfen, ob der Wert "Deicing active" in der Auflistung enthalten ist:

{% if 'Deicing active' in state_attr("sensor.ebusd_hmu_ebusd_hmu_statuscode_scode", "options") %}
    ja
{% else %}
    nein
{% endif %}

Schau' sicherheitshalber mal, ob ich den Namen des Sensors korrekt abgetippt habe.

Antwort
(@bernd32457)
Beigetreten: Vor 2 Wochen

Active Member
Beiträge: 8

@olli Hallo Oli, erstmal vielen Dank für deine Mühen. Ich denke aber ich habe falsch ausgedrückt. Das der Wert "Deicing active" in der Auflistung vorhanden will ich nicht prüfen da es offensichtlich ist und z.b. bei Beginn der Enteisung im Logbuch als Meldung eingetragen wird. Ich möchte den Status auslesen um zu wissen ob ob "Deicing active" an oder aus ist. Mit den Informationen bzw die beiden Zuständen möchte ich z.b. Betriebsstunden ermitteln die für die Enteisung anfallen oder Verlustleistung berechnen die bei Enteisung anfällt.

Alle hier aufgeführten "Options"  sind auch verfügbar.

options:
- Frost protection
- Standby
- "Heating: Compressor shutdown"
- "Heating: Compressor blocked"
- "Heating: Prerun"
- "Heating: Compressor active"
- "Heating: Overrun"
- "Cooling: Compressor shutdown"
- "Cooling: Compressor blocked"
- "Cooling: Prerun"
- "Cooling: Compressor active"
- "Cooling: Overrun"
- "Heating: Immersion heater active"
- "Warm Water: Compressor blocked"
- "Warm Water: Prerun"
- "Warm Water: Compressor active"
- "Warm Water: Immersion Heater active"
- "Warm Water: Overrun"
- "Heating: Immersion Heater shutdown"
- "Heating: Immersion Heater blocked"
- "Warm Water: Immersion Heater shutdown"
- "Warm Water: Immersion Heater blocked"
- Air purging program active
- Compressor oil heating activated
- Fan 1 blocked
- Fan 1 air inlet too high
- Fan 1 air inlet too low
- Fan 2 blocked
- Building circuit flow too low
- Building circuit pump fault
- "Frequency converter fault: Compressor"
- "Frequency converter fault: Mains voltage"
- "Frequency converter fault: Overheating"
- Deicing time too long
- Deicing flow temperature too low
- Compressor outlet temperature too high
- Hot gas temperature switch open
- "Fan 1: Wind"
- "Fan 2: Wind"
- Current limt active
- High pressure switch open
- Compressor outlet temperature too high
- Evaporation temperature too low
- Condensation temperature too low
- Evaporation temperature too high
- Condensation temperature too high
- Building circuit return temperature too low
- Building circuit return temperature too high
- "Immersion heater: Flow temperature too high"
- Deicing active
- Frequency converter fault
- "Connection fault: frequency converter"
- 4-port-valve position fault

device_class: enum
friendly_name: "ebusd hmu Statuscode "
 

Antwort
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

@bernd32457 Das verstehe ich irgendwie nicht.

Ich möchte den Status auslesen um zu wissen ob ob "Deicing active" an oder aus ist.

Ist das jetzt ein Status oder eine Information im Attribut? 

...da es offensichtlich ist und z.b. bei Beginn der Enteisung im Logbuch als Meldung eingetragen wird

Aber dann kennst du doch den aktuellen Zustand, wenn es als Meldung im Logbuch steht?

Alle hier aufgeführten "Options"  sind auch verfügbar.

Meinst du damit, dass dies die möglichen Zustände der Entität sein können? Dann kann dort also als Zustand "Deicing active" stehen? Da es kein "Deicing inactive" gibt, unterstelle ich, dass jeder andere Zustand, als "Deicing active" dann als "inactive" anzusehen ist? Und wenn dem so ist, willst du vermutlich eigentlich nur wissen, wie lange die Entität den Zustand "Deicing active" hatte und 24h abzüglich dieses Zustandes wäre dann "Deicing inactive"?

Sorry, wenn ich unnötig viel Frage, aber aus der Ferne verstehe ich es bislang noch nicht so richtig 🤔 😆 

Antwort
(@bernd32457)
Beigetreten: Vor 2 Wochen

Active Member
Beiträge: 8

@olli sorry, du hast Recht ich möchte die möglichen Zustände der Entität  auswerten / weiterverarbeiten . Es z.B. den Zustand "Deicing active" ein / true oder aus / false. 

Antwort
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

@bernd32457 Sorry, dass ich noch einmal nachfrage: Du willst wissen, wie lange der Zustand "Deicing active" war, richtig?

Antwort
(@bernd32457)
Beigetreten: Vor 2 Wochen

Active Member
Beiträge: 8

@olli ja so ist es. Das heißt ich möchte natürlich den Status von "Deicing active"  wissen.

Antwort
 Olli
Admin
(@olli)
Beigetreten: Vor 10 Jahren

Mitglied
Beiträge: 651

@bernd32457 Alles klar, das sollte mit folgendem Code/History-Sensor gehen:

sensor:
  - platform: history_stats
    name: Deicing active
    entity_id: sensor.ebusd_hmu_ebusd_hmu_statuscode_scode
    state: "Deicing active"
    type: time
    start: "{{ today_at() }}"
    end: "{{ now() }}"

Ein Reboot von HA nach dem Hinzufügen des Codes ist notwendig. Das Ergebnis ist dann in Stunden mit Nachkommastelle.

Antwort
(@bernd32457)
Beigetreten: Vor 2 Wochen

Active Member
Beiträge: 8

@olli Vielen lieben Dank Oli !!! Es sieht so aus als würde es kla 😊 😊 ppen

Antwort
Beiträge: 8
(@bernd32457)
Active Member
Beigetreten: Vor 2 Wochen
Antwort
Seite 2 / 2