Seite 1 von 1

oh-repeater Herausforderung

Verfasst: 7. Okt 2022 18:41
von newbie99
Hallo,

mein Name ist Newbie99, wie schon der Name aussagt bin ich hier neu im Forum - jedoch seit vielen Jahren ein begeisterter OH-Nutzer.
Seit geraumer Zeit bin ihc auf OH 3.2.0 auf Docker-Basis umgestiegen (zuvor OH3.x auf Raspberry), das System ist soweit stabil und läuft gut :D
Die Items, Groups, etc & Sitemap ist bsher auf textualer Ebene hinterlegt worden, jetzt möchte ich für meine mobilen Geräte dies entsprechend moderniesieren und stosse leider auf meine Programmier-Grenzen.

Meine Herausforderung und ich hoffe mit Eurer Hilfe zu einer Lösung zu kommen:
wie oben beschrieben sind die bisherigen Konfiruationen ausschließlich mittels Text-File im OH-Config Verzeichnis abgelegt (inkl. einer Gruppenzuordnung), zB:
it.items:

Code: Alles auswählen

Switch it_sHP_Printer           "HP Drucker"        <network>   (g_Warnings)        {channel="network:pingdevice:hp_printer:online" }
aquarium.items:

Code: Alles auswählen

Switch aqFilter "AQ - Filter"                                    <flow>              (g_Warnings)
root.items:

Code: Alles auswählen

Group:Number:COUNT("OFF")   g_Warnings                          "Warnungen [%d]
Switch a_Test_Trigger "Testschalter" (g_Warnings)
Die Gruppe "g_Warnings" enthält nun alle sensiblen Items, diese sollen dann in einer oh-list-card dynamisch im Dashboard dargestellt werden, das Widget sieht wie folgt aus:

Code: Alles auswählen

uid: my_warning_list
tags: []
props:
  parameters:
    - label: Title
      name: title
      required: true
      type: TEXT
    - context: item
      label: Group
      name: item
      required: true
      type: TEXT
  parameterGroups: []
timestamp: Oct 7, 2022, 4:47:37 PM
component: oh-list-card
config:
  title: '=items[props.item].state + " " + props.title + ":"'
  visible: =items[props.item].state !=0
slots:
  default:
    - component: oh-list
      config:
        mediaList: true
      slots:
        default:
          - component: oh-repeater
            config:
              for: item
              sourceType: itemsInGroup
              groupItem: g_Warnings
              filter: items[loop.item.name].state == "OFF"
            slots:
              default:
                - component: oh-list-item
                  config:
                    title: =loop.item.label + "; " + loop.item.groups
                    badgeColor: red
                    badge: '=loop.item.name.contains("it_") ? "OFFLINE" : "AUS"'
Die Listung jener Switches in OFF-Stellung klappt auch soweit.
Leider schaffe ich es nicht, bei der Ausgabe der List-Items eine Unterscheidung zwischen "OFFLINE" und "AUS" aufgrund des Item-Namens (it-Items stehen für Services und sollten dann auch mit "OFFLINE" angezeigt werden) zu erhalten. Entweder werden beide Items mit AUS oder beide mit OFFLINE dargestellt - siehe Anhang.
Der Schalter hat die korrekte Darstellung, der Drucker sollte mit dem Badge "OFFLINE" dargestellt sein.

Für Unterstützung wäre ich sehr dankbar.

Schöne Grüße
Newbie99

Re: oh-repeater Herausforderung

Verfasst: 9. Okt 2022 13:07
von KellerK1nd
Also prinzipiell, musst du gar nicht die Konfiguration ändern. Es gibt keinerlei Vorteil, soweit wie ich das Verstanden habe. Ich sehe sogar einen Vorteil von der „alten“ Konfiguration, denn die hat man zum „anfassen“. Selbst ohne größeres Backup, kann man, sofern man die Textdateien irgendwo zwischengespeichert hat, seine grundlegende Konfiguration wiederherstellen.

Re: oh-repeater Herausforderung

Verfasst: 10. Okt 2022 09:38
von newbie99
Vielen Dank KellerK1nd,

aber ich glaube meine Frage wurde falsch interpretiert:
@Docker & OH3.2 läuft alles gut - so wie es sein soll.

Mir geht es um die Darstellung der Badges (hatte ich bisher nicht implementiert, somit ist auch der Umzug auf das Docker-Setup nicht verantwortlich) wie oben beschrieben ... Dh eine Unterscheidung des Badge-Textes auf Grund des Variablennamens ...

Vielen Dank.