Ich habe diverse Fenstergriffsensoren (HmIP-SRH). Die Entity sieht wie folgt aus: sensor.name_state. Die angezeigten Optionen stimmen auch soweit, nur sind diese auf englisch - Closed, Tilted, Open.
Wie und wo kann ich diese Optionen auf Deutsch übersetzen?
Vielleicht hilft Dir das weiter.
[Datum übersetzen / formatieren - SmartHome yourself]
Gruß, Andreas
Hi Andreas,
vielen Dank, aber wie binde ich dass ein?
Beste Grüße
Detlef
Naja du hast ne cover Integration mit diverse Stati.
Würdest du diese nun übersetzen wo soll denn z.B. ein service.call hinlaufen?
Der macht ein cover.close_cover und es gibt gar kein ‘close’ weil du den auf ‘geschlossen’ geändert hat. Sprich er erreicht nie sein Ziel. Also selbst für den Fall das würde gehen hättest du dich selbst ausgeknockt.
Du musst unterscheiden zwischen einem systembedingten Status und dem zu visualisierenden Text. Das sind 2 komplett unterschiedliche Dinge, und ja solange du keinen Text vorgibt wird natürlich der Status benutzt, was auch sonst.
Bei Software sehr üblich, kommt halt meistens aus dem englischsprachigen Raum womit bei denen dieses exklusive Problem das sich daraus ergibt kein wirkliches Problem ist.
Deshalb gibts ja auch bei den entities selbst den friendly_name und du suchst nun den friendly_state würde ich mal sagen. Das klappt gut mit Dingen bei denen die meisten Dinge “templatable” <== geiles Wort) sind.
Im Thread Shutter Card hab ich ein Beispiel von Buttons die ich mit der “custom:button card” realisiert habe, schau dir da mal im YAML code den Bereich “state” in dem Code für den button an.
state:
- value: closed
name: geschlossen
- value: open
name: offen
Hallo Detlef,
so weit bin ich leider auch noch nicht. Ich arbeite selber nur mit der Wochentagsvariante und dachte, das es auch eine Möglichkeit sein könnte.
Das von justone scheint mir aber eine gute Lösung zu sein.
Gruß, Andreas
Das wäre zu schön gewesen…
Mein YAML Code sieht entsprechend so aus:
- type: horizontal-stack
cards:
- type: "custom:button-card"
template: card_generic
entity: binary_sensor.detlef_fenster_state
- type: "custom:button-card"
template: card_generic
entity: sensor.detlef_fenstergriff_state
state:
- value: closed
name: Geschlossen
- value: tilted
name: Gekippt
- value: open
name: Offen
Am Ergebnis ändert dies leider nichts:
Was mir aufgefallen ist, wenn ich die weiteren Infos aufrufe, dann steht es dort in Deutsch:
Versuche mal state_text anstatt name, also so:
- value: closed
state_text: Geschlossen
- value: tilted
state_text: Gekippt
- value: open
state_text: Offen
Hier ein Beispiel wie ich es bei mir habe:
show_state: true
state:
- value: 'on'
color: Red
icon: mdi:door-open
state_text: Offen
styles:
card:
- animation: blink 2s ease infinite
Ist leider auch nicht die Lösung. Aber, wenn ich folgendes raus nehme:
template: card_generic
Dann ist das Ergebnis:
Füge ich jetzt Deinen ersten Code hinzu:
state:
- value: 'closed'
name: Geschlossen
- value: 'tilted'
name: Gekippt
- value: 'open'
name: Offen
Bekomme das richte Ergebnis:
Nur leider sieht die Karte nicht mehr so dezent aus wie mit dem template
Auch state_text ändert leider mit dem template nichts. Wenn ich das template wieder rausnehme wird “Fenstergriff” anstatt der Status “Gekippt” ausgegeben.
Ich vermute dass es daran liegt, dass es keine binär Sensoren (on/off) sind. Beim Rauchmelder ist es genau dasselbe. Die template Karten sind jedoch für binär Sensoren ausgelegt, weshalb der einfache Fenstersensor (im Bild links neben dem Fenstergriff) auch richtig dargestellt wird.
custom:button-card hast du ja installiert
card-mod hoffentlich auch
die shutter-card auch?
und der code hier funktioniert genau so was dein Problem angeht.
Du kannst ihn nur nicht komplett so benutzen weil dann müsstest du dir zum testen ein
Input.select basteln der bei mir vom enocean2mqtt geliefert wird.
Anbei meine Lösung für EnOcean … und das kannst du auch. Da muss nicht viel geändert werden.
sieht übrigens so aus die nachfolgenden YAML Zeilen
und wenn ich vor oder hinter dem physikalischen Rolladen stehen fährt der auch genau so.
wenn ich raten müsste … weil deine Karte keine Tap-Action hat ändert die Karte auch nie den Status also guckt sie auch in Folge nicht ob sie denn denn state: ändern müsste. Aber das ist nur ne Idee die mir gerade kommt beim vergleichen deiner YAML Zeilen mit meinen.
type: vertical-stack
cards:
- type: custom:shutter-card
title: Esszimmer
entities:
- entity: cover.ar_esszimmer
name: 'offen zu:'
buttons_position: none
title_position: bottom
style: |
ha-card {
font-size: 11px !IMPORTANT;
}
.sc-shutter-label {
font-size: 15px !IMPORTANT;
}
.sc-shutter-top {
text-align: left !IMPORTANT;
}
.card-header {
font-size: 10px !IMPORTANT;
}
.sc-shutter-selector-slide {
width: 129px !IMPORTANT;
}
.sc-shutter-selector-picture {
width: 147px !IMPORTANT;
background-size: 147px 100% !IMPORTANT;
background-repeat: no-repeat !IMPORTANT;
}
.sc-shutter-selector-picker {
width: 91.0% !IMPORTANT;
}
.sc-shutter-buttons {
width: 1px !IMPORTANT;
}
.sc-shutter-button {
width: 1000px !IMPORTANT;
}
- type: horizontal-stack
cards:
- type: custom:button-card
entity: cover.ar_esszimmer
tap_action:
action: call-service
service: script.virt_ar_unified
service_data:
select: select.e2m_virt_ar_esszimmer_action
what: AO
which: cover.ar_esszimmer
aspect_ratio: 1/0.5
color_type: card
color: rgb(65, 109, 150)
state:
- operator: template
value: |
[[[
if (entity.attributes.current_position > 99
)
return 'open';
]]]
icon: mdi:file-excel-box-outline
name: n/a
color: rgb(100,100,100)
- operator: template
value: |
[[[
if (entity.attributes.current_position > 0
&& entity.attributes.current_position < 100
&& entity.state == 'open'
)
return 'tilt';
]]]
icon: mdi:transfer-up
name: OPEN
color: rgb(65, 109, 150)
- value: closed
icon: mdi:transfer-up
name: OPEN
color: rgb(65, 109, 150)
- value: opening
icon: mdi:stop
name: STOP
color: rgb(65, 109, 150)
- value: closing
icon: mdi:stop
name: STOP
color: rgb(65, 109, 150)
- type: custom:button-card
entity: cover.ar_esszimmer
tap_action:
action: call-service
service: script.virt_ar_unified
service_data:
select: select.e2m_virt_ar_esszimmer_action
what: AI
which: cover.ar_esszimmer
aspect_ratio: 1/0.5
color_type: card
color: rgb(65, 109, 150)
state:
- value: opening
icon: mdi:stop
name: STOP
color: rgb(65, 109, 150)
- value: closing
icon: mdi:stop
name: STOP
color: rgb(65, 109, 150)
- operator: template
value: |
[[[
if (entity.attributes.current_position < 1)
return 'closed';
]]]
icon: mdi:file-excel-box-outline
name: n/a
color: rgb(100,100,100)
- operator: template
value: |
[[[
if (entity.attributes.current_position > 99
&& entity.state == 'open')
return 'open';
]]]
icon: mdi:transfer-down
name: CLOSE
color: rgb(65,109,150)
- operator: template
value: |
[[[
if (entity.attributes.current_position > 0
&& entity.attributes.current_position < 100
&& entity.state == 'open')
return 'tilt';
]]]
icon: mdi:transfer-down
name: CLOSE
color: rgb(65, 109, 150)
Na klar, sonst hätte ich ja ganz andere Probleme
Der für mich schlüssigste Code wäre:
- type: 'custom:button-card'
template: card_generic
entity: sensor.detlef_fenstergriff_state
state:
- >
{% if state('sensor.detlef_fenstergriff_state', 'closed') %}
Geschlossen
{% elif state('sensor.detlef_fenstergriff_state', 'tilted') %}
Gekippt
{% else %}
Offen
{% endif %}
Bringt aber leider auch keinen Erfolg
Auf meiner Dashboard Seite sieht es so aus:
Dort lass ich dem Icon je nach Zustand eine andere Farbe zukommen. Der Code dazu:
entity_id: sensor.detlef_fenstergriff_state
templates:
- >
[[[
if (states['sensor.detlef_fenstergriff_state'].state === 'open')
return 'pink_no_state';
else if (states['sensor.detlef_fenstergriff_state'].state === 'tilted')
return 'purple_no_state';
return 'grey_on'
]]]
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
Nur mit der Übersetzung, da will es nicht klappen
ah ok … hab mir nochmal meinen Code angeschaut und etwas gespielt.
Also es kann nicht gehen solange deine custom button-card kein button ist, sprich du keine tap-action definiert hast.
Und denn zeige ich in meinem Beispiel halt auch nicht den Status an deshalb
show_state: false
dafür aber
show_name: true
Sprich das was man denkt ist nicht immer das was man sieht. Man glaubt in meinem Beispiel es wäre der Status der natürlich immer noch Open Closed … ist. Anzeigen tue ich aber den Namen und denn ändere ich halt auch mit dem
state:
- value: Open
name: Offen
sorry … ich bin grad die Tage etwas im Stress … hätte mir ja auch gleich auffallen müssen.
Aber vielleicht bekommst du damit ne Idee was du versuchen könntest.
Du musst Dich doch nicht entschuldigen! Ich bin doch froh, dass Du mir Input lieferst.
state:
- value: closed
name: Geschlossen
- value: tilted
name: Gekippt
- value: open
name: Offen
Gibt die richtigen Werte aus:
show_state: false
show_name: true
Sieht dann so aus:
Der gesamte Code:
- type: horizontal-stack
cards:
- type: 'custom:button-card'
template: card_generic
entity: binary_sensor.detlef_fenster_state
- type: 'custom:button-card'
template: card_generic
entity: sensor.detlef_fenstergriff_state
show_name: true
show_state: false
tap_action:
action:
hold_action:
action: none
double_tap_action:
action: none
state:
- value: closed
name: Geschlossen
- value: tilted
name: Gekippt
- value: open
name: Offen
Das ich keine tap_action bei custom:button-card definiert hatte, dürft nicht das Problem sein - siehe Fenster.
Die von mir genutzte Karte card_generic ist im Prinzip eine card_binary_sensor, bei welcher name und state vertauscht sind.
Hier gibt es einen andere Herangehensweise. Aber da fehlt es mir an Wissen um dies umzusetzen.
Mir wäre damit vielleicht für den Fenstergriff geholfen, aber ich habe ja noch weitere Sensoren, mit mehr als zwei Werten - also keine binären Sensoren. Die funktionieren auch alle soweit, nur gibt es in der Dashboard Ansicht für diese Sensoren keine Deutsche Übersetzung.
Vielen lieben Dank für Eure Unterstützung
Hier ist die Lösung:
Ich habe einfach meine eigenen Karten erstellt:
- type: horizontal-stack
cards:
- type: custom:mushroom-template-card
entity: binary_sensor.detlef_fenster_state
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
primary: |-
{% if is_state('binary_sensor.detlef_fenster_state', 'on') %}
Offen
{% else %}
Geschlossen
{% endif %}
icon: |-
{% if is_state('binary_sensor.detlef_fenster_state', 'on') %}
mdi:window-open
{% else %}
mdi:window-closed
{% endif %}
icon_color: |-
{% if is_state('binary_sensor.detlef_fenster_state', 'on') %}
deep-orange
{% else %}
disabled
{% endif %}
secondary: Fenster
- type: custom:mushroom-template-card
entity: sensor.detlef_fenstergriff_state
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
primary: |-
{% set mode = states('sensor.detlef_fenstergriff_state') %}
{% if mode == 'open' %}
Offen
{% elif mode == 'tilted' %}
Gekippt
{% else %}
Geschlossen
{% endif %}
icon: |-
{% set mode = states('sensor.detlef_fenstergriff_state') %}
{% if mode == 'open' %}
mdi:window-open
{% elif mode == 'tilted' %}
mdi:window-open
{% else %}
mdi:window-closed
{% endif %}
icon_color: |-
{% set mode = states('sensor.detlef_fenstergriff_state') %}
{% if mode == 'open' %}
deep-orange
{% elif mode == 'tilted' %}
orange
{% else %}
disabled
{% endif %}
secondary: Fenstergriff