Batterie-Ladestandsanzeige als Widget

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Batterie-Ladestandsanzeige als Widget

Beitrag von peter-pan »

Ich hab mir ein kleines Widget gebastelt mit dem man sich den Ladestand (prozentual) der Batterien anzeigen lassen kann.

Es werden alle Batterien überwacht, die den Tag "LowBattery" (Property) haben. Man muss also nicht eine bestimmte Gruppe angeben. Die Selektionsgrenze(n) ist(sind) skalierbar.
lowbatt.jpg
Der Yaml-Code:

Code: Alles auswählen

uid: battery_charging_status
tags:
  - peter
  - rich
  - rlk_battery_status - derivation
  - null
props:
  parameters:
    - default: "55"
      description: Maximum percentage to show in the widget
      label: Max Percent
      name: max
      required: false
      type: INTEGER
      min: 0
      max: 100
    - default: "50"
      description: The percentage above which green is used
      label: Green Level
      name: green
      required: false
      type: INTEGER
      min: 0
      max: 100
    - default: "39"
      description: The percentage above which orange is used
      label: Orange Level
      name: orange
      required: false
      type: INTEGER
      min: 0
      max: 100
    - default: Battery Charging Status /Ladezustand
      description: Title used for the widget to the left of the colon.
      label: Title
      name: title
      required: false
      type: TEXT
  parameterGroups: []
timestamp: Jul 15, 2025, 9:28:03 AM
component: oh-list-card
config:
  title: =props.title
  style:
    background: linear-gradient(to bottom left,#FA8072 30%,#00FFFF 60%)
    border-radius: var(--f7-card-expandable-border-radius)
slots:
  default:
    - component: oh-repeater
      config:
        filter: Number.parseFloat(items[loop.item.name].state) <= props.max
        for: item
        fragment: true
        itemTags: LowBattery
        sourceType: itemsWithTags
      slots:
        default:
          - component: oh-list-item
            config:
              badge: "=(items[loop.item.name].displayState === undefined) ? loop.item.state :
                items[loop.item.name].displayState"
              badgeColor: '=(Number.parseFloat(loop.item.state) > props.green) ? "green" :
                (Number.parseFloat(loop.item.state) > props.orange) ? "orange" :
                "red"'
              icon: '=(Number.parseFloat(loop.item.state) > props.green) ? "f7:battery_100" :
                (Number.parseFloat(loop.item.state) > props.orange) ?
                "f7:battery_25" : "f7:battery_0"'
              iconColor: '=(Number.parseFloat(loop.item.state) > props.green) ? "green" :
                (Number.parseFloat(loop.item.state) > props.orange) ? "orange" :
                "red"'
              item: =loop.item.name
              title: =loop.item.label
Vielleicht gefällt's dem ein oder anderen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Batterie-Ladestandsanzeige als Widget

Beitrag von peter-pan »

Mit Hilfe von JustinG aus dem internationalen Forum, konnte das Widget noch etwas modifiziert werden.

Die Werte, werden nun in aufsteigender Reihenfolge ausgegeben.
battery.jpg
Der Yaml-Code:

Code: Alles auswählen

uid: battery_charging_status
tags:
  - peter
  - rich
  - JustinG - Sort_Function
  - rlk_battery_status - derivation
props:
  parameters:
    - default: "55"
      description: Maximum percentage to show in the widget
      label: Max Percent
      name: max
      required: false
      type: INTEGER
      min: 0
      max: 100
    - default: "50"
      description: The percentage above which green is used
      label: Green Level
      name: green
      required: false
      type: INTEGER
      min: 0
      max: 100
    - default: "39"
      description: The percentage above which orange is used
      label: Orange Level
      name: orange
      required: false
      type: INTEGER
      min: 0
      max: 100
    - default: Battery Charging Status /Ladezustand
      description: Title used for the widget to the left of the colon.
      label: Title
      name: title
      required: false
      type: TEXT
  parameterGroups: []
timestamp: Jul 18, 2025, 8:41:31 PM
component: oh-list-card
config:
  style:
    background: linear-gradient(to bottom left,#FA8072 30%,#00FFFF 60%)
    border-radius: var(--f7-card-expandable-border-radius)
  title: =props.title
slots:
  default:
    - component: oh-repeater
      config:
        filter: Number.parseFloat(items[loop.item.name].state) <= props.max
        for: item
        fragment: true
        itemTags: LowBattery
        sourceType: itemsWithTags
        map: loop.item_source.sort((x,y)
          =>(x.state).localeCompare(y.state))[loop.item_idx]
      slots:
        default:
          - component: oh-list-item
            config:
              badge: "=(items[loop.item.name].displayState === undefined) ? loop.item.state :
                items[loop.item.name].displayState"
              badgeColor: '=(Number.parseFloat(loop.item.state) > props.green) ? "green" :
                (Number.parseFloat(loop.item.state) > props.orange) ? "orange" :
                "red"'
              icon: '=(Number.parseFloat(loop.item.state) > props.green) ? "f7:battery_100" :
                (Number.parseFloat(loop.item.state) > props.orange) ?
                "f7:battery_25" : "f7:battery_0"'
              iconColor: '=(Number.parseFloat(loop.item.state) > props.green) ? "green" :
                (Number.parseFloat(loop.item.state) > props.orange) ? "orange" :
                "red"'
              item: =loop.item.name
              title: =loop.item.label
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten