Label eine Entität zuweisen

Bolschi

Member
Hi ich komme einfach nicht weiter (Anfänger).
Ich habe eine custom:button-card und folgenden Code:
Code:
type: custom:button-card
entity: sensor.abfallnametonne
show_name: true
show_state: true
tap_action:
  action: toggle
show_label: true
name: null
styles:
  card:
    - height: 140px
    - font-size: 14px
  icon:
    - width: 90px
    - height: 90px
state:
  - value: Bio_Tonne
    color: white
    icon: mdi:trash-can
    name: Bio
    label: |
      [[[
        return entity.state
      ]]]
    styles:
      card:
        - background: rgb(125, 160, 20)

Funktioniert auch sehr gut. Nun möchte dem Label (siehe Fett) den Wert einer anderen Entität sensor.abfallnaechster anzeigen lassen. Ich bekomme es einfach nicht hin.
Könnt ihr mir helfen?

Danke schonmal.
 
Moin, versuchs mal mit return states['sensor.abfallnaechster'].state; anstelle von return entity.state.
 
Hey Danke für deine schnelle Anwort.
Irgendwie klappt das nicht ich komme nicht mit dem Syntax klar.

state:
- value: Bio_Tonne
color: white
icon: mdi:trash-can
name: Bio
label: |
[[[
return states['sensor.abfallnaechster'].state; anstelle von return entity.state.
]]]

Da motzt er rum.
Aber eigentlich soll das mit dem Label nur eine Umgehung werden weil ich es einfach nicht gebacken bekomme innerhalb meiner costum-button card eine zweite entität abzugreifen. Das ergebnis soll lediglich die Ausgabe des Sensorwertes sensor.abfallnaechster am Ende der Karte (unten).
 
Was motzt er denn genau? Wenn ich das testweise mit return states['sun.sun'].state; einbinde hat er nichts zu meckern - nicht, dass der Sensor doch anders heisst?
 
hast du dass so eingegeben ??

dass funktioniert so nicht
YAML:
label: |
[[[
return states['sensor.abfallnaechster'].state; anstelle von return entity.state.
]]]

das könnte funktionieren, wenn dein Sensor auch so heißt
YAML:
label: |
[[[
return states['sensor.abfallnaechster'].state;
]]]
 
Hallo ihr beiden. Danke für eure Antworten. Ich teste es heute Abend gleich nochmal aus und melde mich! Danke
 
so ich bin es wieder :) ihre seit Spitze !!! Es funktioniert mit.
Code:
label: |
[[[
return states['sensor.abfallnaechster'].state;
]]]

Ich habe nun folgendes auf der Karte stehen:
Bio_Tonne|1|03.02.2023

Das müsste nun noch gesplittet werden da ich nur den letzten Wert benötige. Bio_Tonne|1|03.02.2023. Die 1 steht für die Tage bis zum event also in meinem Fall 1 Tag noch. Hierzu habe ich folgendes Label mit dem gleichen Sensor aber irgendetwas stimmt auch hier nicht im Syntax:

Code:
  label: |
      [[[
       var days_to = sensor.abfallnaechster.state.split("|")[1]
       if (days_to == 0)
       { return "Heute" }
       else if (days_to == 1)
       { return "Morgen" }
       else
       { return "in " + days_to + " Tagen" }
      ]]]

Was müsste ich hier im Syntax anpassen damit es korrekt ausgegeben wird?

Danke!!!!!!
 
Was müsste ich hier im Syntax anpassen damit es korrekt ausgegeben wird?
Gleiche Syntax wie eben, nicht:
Javascript:
var days_to = sensor.abfallnaechster.state.split("|")[1]
sondern:
Javascript:
var days_to = states['sensor.abfallnaechster'].state.split("|")[1]
dann sollte das schon passen :)
 
Und wenn du Bio_Tonne nicht sehen möchtest geht das mit replace

YAML:
var days_to = states['sensor.abfallnaechster'].state.split("|") [1] | replace("Bio_Tonne","")

Sorry schreibe gerade vom Handy <hoffe ich habe die klammern alle richtig gesetzt>
Kann es gerade nicht testen
 
Zuletzt bearbeitet:
Juhu! Perfekt dank euch habe ich jetzt eine "Standardkarte" welche ich mir in Zukunft einbinden kann.
Vielleicht etwas unverschämt aber kann ich euch noch etwas fragen? Meine gesamte Karte sieht nun so aus.
YAML:
type: custom:button-card
entity: sensor.abfallnametonne
show_name: true
color_type: card
name: null
tap_action:
  action: toggle
show_label: true
styles:
  card:
    - height: 140px
    - width: 120px
    - font-size: 14px
  icon:
    - width: 80px
    - height: 90px
state:
  - value: Bio_Tonne
    icon: ios:trash
    name: Bio
    label: |
      [[[
        var days_to = states['sensor.mybuttoncardsensor'].state.split("|")[1]
           if (days_to == 0)
           { return "Heute" }
           else if (days_to == 1)
           { return "Morgen" }
           else
           { return "in " + days_to + " Tagen" }
      ]]]
    styles:
      card:
        - background: rgb(125, 160, 20)
      name:
        - font-size: 18px
        - color: white

Der Sensor sensor.mybuttoncardsensor liefert nun 0, 1... usw aus. bei 0 wird im Label "Heute" angezeigt und bei 1 "Morgen" beim Rest das Datum. So nun würde ich die karte gerne blinken lassen wenn 0 erreicht ist. Wenn ich
Code:
 - animation: blink 2s ease infinite
einbinde blinkt zwar die ganze Karte aber eben immer. Wie könnte ich das bewerkstelligen und wo muss ich das einbauen?

Danke Euch!!
 
Ja aber darum geht es mir nicht, es ist viel wichtiger für mich eine Standard Karte zu erstellen. Der Abfallsensor sollte nur exemplarisch vorhanden sein.
 
Hab zwar keine Ahnung, gefunden habe ich jenen Schnipsel hier:

YAML:
state:
  - color: red
    styles:
      card:
        - animation: blink 2s ease infinite
    value: 'on'

Müsste doch theoretisch möglich sein, dass man das "on" unten standardmässig auf "off" stehen hat und nur bei einer bestimmten erfüllten Bedingungung auf "on" schaltet (aber vllt liegt ich da auch völlig falsch). Alternativ kann man bei einer bestimmten Bedingung ggf. auch einfach den kompletten Style für die Karte umschreiben, aber davon hab ich keine Ahnung 😅
 
Wie könnte ich das bewerkstelligen und wo muss ich das einbauen?
Der Bereich styles nimmt ebenfalls Javascript-Templates an, also tatsächlich genau so wie bislang auch:
YAML:
    styles:
      card:
        - background: rgb(125, 160, 20)
        - animation: |
            [[[
              var days_to = states['sensor.abfallnaechster'].state.split("|")[1]
              if (days_to == 0)
              { return 'blink 2s ease infinite'; }
              else
              { return 'none'; }
            ]]]
Ab einer gewissen Wiederholfrequenz der Abfrage könnte man darüber nachdenken, den Kram in einen eigenen Hilfssensor zu stecken, um nicht jedes Mal split usw. machen zu müssen... aber das ist nicht zwingend notwendig. Globale Variablendefinition, so dass man sich diesbezüglich auf eine einmalige Extraktion innerhalb der custom:button-card beziehen könnte, scheint hier leider nicht vorgesehen zu sein.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.872
Beiträge
49.053
Mitglieder
4.533
Neuestes Mitglied
Karlmaster
Zurück
Oben