NEWS
ioBroker, HABPanel und ng-repeat - die 2.
-
Ich versuche in einer HABPanel-Visualisierung eine Tabelle darzustellen, in der die Prozentzahl des Batteriezustandes meiner ZigBee-Geräte gelistet ist. Dabei soll beim Unterschreiten von 70% der Hintergrund der Zelle gelb, beim Unterschreiten von 40% rot erscheinen.
Alle Versuche, dieses mit Hilfe der ng-repeat-Direktive zu erreichen sind gescheitert. Das Problem liegt offensichtlich in der Codezeile
{{'%.2f' | sprintf:itemValue({{batteries}}) }}Hier das ganze Problem in abgespeckter Form in einer Listendarstellung, die nicht funktioniert:
<ul> <li ng-repeat="batteries in ['zigbee.0.0c4314fffe1e2d25.battery', 'zigbee.0.b4e3f9fffed1bd72.battery']"> {{'%.2f' | sprintf:itemValue({{batteries}}) }} </li> </ul>Die Variante
<ul> <li ng-repeat="batteries in ['zigbee.0.0c4314fffe1e2d25.battery', 'zigbee.0.b4e3f9fffed1bd72.battery']"> {{batteries}} </li> </ul>funktioniert problemlos. Nur ist es nicht das, was ich will, da so nur die zwei Strings ausgegeben werden:
zigbee.0.0c4314fffe1e2d25.battery zigbee.0.b4e3f9fffed1bd72.batteryIch will aber den Inhalt der Items haben, wie ich es üblicherweise mit
itemValue({{batteries}})erreiche.
Hat jemand eine Idee, wie ich
{{'%.2f' | sprintf:itemValue({{batteries}}) }}zum Laufen bekommen? Oder einen Tipp, wo ich nachlesen könnte?
Ich habe schon in etlichen Foren, auch allen von openHAB und HABPanel selbst gesucht und leider nichts gefunden. -
Ich versuche in einer HABPanel-Visualisierung eine Tabelle darzustellen, in der die Prozentzahl des Batteriezustandes meiner ZigBee-Geräte gelistet ist. Dabei soll beim Unterschreiten von 70% der Hintergrund der Zelle gelb, beim Unterschreiten von 40% rot erscheinen.
Alle Versuche, dieses mit Hilfe der ng-repeat-Direktive zu erreichen sind gescheitert. Das Problem liegt offensichtlich in der Codezeile
{{'%.2f' | sprintf:itemValue({{batteries}}) }}Hier das ganze Problem in abgespeckter Form in einer Listendarstellung, die nicht funktioniert:
<ul> <li ng-repeat="batteries in ['zigbee.0.0c4314fffe1e2d25.battery', 'zigbee.0.b4e3f9fffed1bd72.battery']"> {{'%.2f' | sprintf:itemValue({{batteries}}) }} </li> </ul>Die Variante
<ul> <li ng-repeat="batteries in ['zigbee.0.0c4314fffe1e2d25.battery', 'zigbee.0.b4e3f9fffed1bd72.battery']"> {{batteries}} </li> </ul>funktioniert problemlos. Nur ist es nicht das, was ich will, da so nur die zwei Strings ausgegeben werden:
zigbee.0.0c4314fffe1e2d25.battery zigbee.0.b4e3f9fffed1bd72.batteryIch will aber den Inhalt der Items haben, wie ich es üblicherweise mit
itemValue({{batteries}})erreiche.
Hat jemand eine Idee, wie ich
{{'%.2f' | sprintf:itemValue({{batteries}}) }}zum Laufen bekommen? Oder einen Tipp, wo ich nachlesen könnte?
Ich habe schon in etlichen Foren, auch allen von openHAB und HABPanel selbst gesucht und leider nichts gefunden. -
@mcm57 suggestion accepted
-
Ich versuche in einer HABPanel-Visualisierung eine Tabelle darzustellen, in der die Prozentzahl des Batteriezustandes meiner ZigBee-Geräte gelistet ist. Dabei soll beim Unterschreiten von 70% der Hintergrund der Zelle gelb, beim Unterschreiten von 40% rot erscheinen.
Alle Versuche, dieses mit Hilfe der ng-repeat-Direktive zu erreichen sind gescheitert. Das Problem liegt offensichtlich in der Codezeile
{{'%.2f' | sprintf:itemValue({{batteries}}) }}Hier das ganze Problem in abgespeckter Form in einer Listendarstellung, die nicht funktioniert:
<ul> <li ng-repeat="batteries in ['zigbee.0.0c4314fffe1e2d25.battery', 'zigbee.0.b4e3f9fffed1bd72.battery']"> {{'%.2f' | sprintf:itemValue({{batteries}}) }} </li> </ul>Die Variante
<ul> <li ng-repeat="batteries in ['zigbee.0.0c4314fffe1e2d25.battery', 'zigbee.0.b4e3f9fffed1bd72.battery']"> {{batteries}} </li> </ul>funktioniert problemlos. Nur ist es nicht das, was ich will, da so nur die zwei Strings ausgegeben werden:
zigbee.0.0c4314fffe1e2d25.battery zigbee.0.b4e3f9fffed1bd72.batteryIch will aber den Inhalt der Items haben, wie ich es üblicherweise mit
itemValue({{batteries}})erreiche.
Hat jemand eine Idee, wie ich
{{'%.2f' | sprintf:itemValue({{batteries}}) }}zum Laufen bekommen? Oder einen Tipp, wo ich nachlesen könnte?
Ich habe schon in etlichen Foren, auch allen von openHAB und HABPanel selbst gesucht und leider nichts gefunden.@jahnbes
Das Problem ist gelöst. Hier auf die Schnelle ein Screenshot der Lösung

und der zugehörige html-Code:<style> caption { color: white; font-size: x-large; } th { text-align: center; color: black; background-color: #67eea8b7; font-size: large; font-weight: normal; } .alarm { color: black; background-color: rgb(253, 116, 116); } .attention { color: black; background-color: rgb(252, 234, 115); } td { text-align: center; color: white; font-size: large; } </style> <table class="table table-bordered" columns="3"> <caption> Zigbee-Thermometer Batteriezustand - 1 -</caption> <div ng-app="" ng-init="geraete=[ {raum:'Arbeitszimmer',adresse:'zigbee.0.00158d0008ce4367.'}, {raum:'Schlafzimmer',adresse:'zigbee.0.00158d0008c11f15.'}, {raum:'Wohnzimmer',adresse:'zigbee.0.00158d0008385f00.'} ]"> <tr> <th>Raum</th> <th>Prozent</th> <th>Spannung</th> </tr> <tr ng-repeat="x in geraete"> <td>{{x.raum}}</td> <td ng-init="percentV=itemValue(x.adresse+'battery')" ng-class="{'alarm': percentV <= 40, 'attention': percentV > 40 && percentV < 70}"> {{'%.0f' | sprintf:percentV}} %</td> <td>{{'%.2f' | sprintf:itemValue(x.adresse+'voltage')}} V</td> </tr> </div> </table>Und hier ein Screenshot einer komplizierteren Tabelle:

Ich bereite einen ausführlichen Beitrag vor. Wenn er im Netz ist, verlinke ich ihn hier.
Viele Grüße, jahnbes.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden