ioBrokerioBroker TutorialsioBroker VIS WidgetsioBroker Wissensdatenbank

ioBroker VIS – Object Binding im HTML-Widget

Im folgenden Artikel zeige ich Dir, wie Du Werte von Datenpunkten direkt im HTML-Widget darstellen kannst.Für die Darstellung von Sensorwerten wollte ich bestimmte Datenpunkte in einer tabellarischen Form auf meiner View darstellen. Im ersten Schritt habe ich dazu ein HTML-Widget auf die View gezogen und die Größe und Position festgelegt.

 

Nach dem wir das Widget soweit auf der View platziert haben können wir im nächsten Schritt mit dem HTML beginnen. Dazu klicken wir auf der Lasche Allgemein des HTML-Widget auf die Schaltfläche hinter dem HTML-Eingabefeld.

 

Jetzt können wir mit dem HTML-Code für die Darstellung beginnen. Für die Darstellung habe ich die Form einer Tabelle gewählt, da wir so unsere Sensorwerte übersichtlich darstellen können. Zudem kann die Tabelle einfach und schnell erweitert werden. In der Tabelle sollen zwei Spalten angezeigt werden. In der ersten Spalte soll die Bezeichnung (z.B. Lufttemperatur) stehen. Die Bezeichnung ist statisch und wird später einfach im HTML-Code eingetragen. Der Wert in der zweiten Spalte ist ein dynamischer Wert aus dem entsprechenden Datenpunkt. Diesen Wert können wir über das Object-Binding einfügen. Dazu benötigen wir im ersten Schritt die Object-ID des Wertes. In meinem Fall ist der Wert im MQTT-Bereich der Objekte zu finden:

mqtt.0.outdoor1_Lufttemperatur

Für das Binding wird diese ID nun einfach in geschweifte Klammern gesetzt und direkt im HTML-Code eingefügt.

{mqtt.0.outdoor1_Lufttemperatur}

Der fertige HTML-Code des Widget sind nun folgendermaßen aus:

<table>
  <tr>
    <td>Lufttemperatur:</td>      
    <td align="right"><b>{mqtt.0.outdoor1_Lufttemperatur}°C</b></td>
  </tr>      
  <tr>
    <td>Luftfeuchtigkeit:</td>      
    <td align="right"><b>{mqtt.0.outdoor1_Luftfeuchtigkeit}%</b></td>
  </tr>   
  <tr>
    <td>Bodenfeuchtigkeit:</td>      
    <td align="right"><b>{mqtt.0.outdoor1_Bodenfeuchtigkeit}</b></td>
  </tr>     
</table>

 

Nun speichern wir den HTML-Code. In der View wird das Object-Binding nicht als Wert sondern als Definition angezeigt.

 

Wenn wir jetzt auf die View in der Anzeige wechseln sehen wir folgendes Ergebnis:


Hinweis:

Beim Einsatz von zu vielen Objekt-Bindings kann es zu Performance-Problemen kommen. Ich bin hier noch auf der Suche nach einer alternativen Lösung.

 

Ich hoffe euch gefällt dieser kurzer Artikel.
Über Kommentare unterhalb des Artikels oder Feedback per E-Mail freue ich mich wie immer ?

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

17 Gedanken zu „ioBroker VIS – Object Binding im HTML-Widget

  • Florian

    Wäre dies auch als Input möglich?

    Antwort
    • Matthias Korte

      Ja, das geht auch. Der Artikel dazu folgt in den nächsten 1-2 Tagen 🙂

      Antwort
  • Martin

    Kann ich die Zahlen (Datenpunkte) auch formatieren? Z.B. nur 1 Nachkommastelle?

    Antwort
    • Matthias Korte

      Hallo, mit dem HTML-Widget eher nicht. Für die Formatierung von numerischen Werten würde ich das Widget „Number“ verwenden. Schau mal bei mir in der VIS-Artikelreihe, da ist ein Artikel zum Thema dabei ?

      Antwort
  • Martin

    Ist es auch möglich die Werte zu formatieren, d.h. z.B. die Nachkommastellen auf 1 zu begrenzen?

    Antwort
    • Matthias Korte

      Hallo, mit dem HTML-Widget eher nicht. Für die Formatierung von numerischen Werten würde ich das Widget „Number“ verwenden. Schau mal bei mir in der VIS-Artikelreihe, da ist ein Artikel zum Thema dabei 🙂

      Antwort
  • Torsten

    Hallo Matthias gibt es schon den Beitrag mit dem Input als Binding?
    Kann ihn nämlich nicht finden.

    Antwort
  • Jens

    Ein Input wäre für mich auch ganz insteressant. Ich stelle mir zB vor, die Sensorstände meines „Staubis“ in einer Tabelle darzustellen und dahinter jeweils einen Knopf pro Zeile welcher den Status auf 100% zurücksetzt (Datenpunkt Button)

    Antwort
  • Frank

    Hallo,
    kennt das HTML Widget kein colspan? Habe folgenden Code eingegeben und das einzige was nicht funktioniert, ist das zusammenfügen der beiden Zellen.

    Batteriespannungen

    Gerät
    U

    Wandthermostat
    {hm-rpc.1.000A9A4999375A.0.OPERATING_VOLTAGE} V

    Fensterkontakt
    {hm-rpc.1.0007D5699E92C2.0.OPERATING_VOLTAGE} V

    linkes Thermostat
    {hm-rpc.1.000A18A9941CD5.0.OPERATING_VOLTAGE} V

    rechtes Thermostat
    {hm-rpc.1.000A1709AF5C54.0.OPERATING_VOLTAGE} V

    Antwort
  • Frank

    ups, irgendwie werden die HTML Tags in meinem Code hier ignoriert 😀

    Antwort
  • wie kann ich zB {hm-rpc.1.000A1709AF5C54.0.OPERATING_VOLTAGE.ts} im html Widget integrieren?
    würde gerne den Zeitstempel als „vor x Minuten“ anzeigen ohne ein eigenes Widget platzieren zu müssen

    Antwort
  • Hallo zusammen
    Ich habe da einmal ein Problem und zwar will ich mit dem HTML Card Widget Datenpunkte darstellen die zum einen eine Zahl enthalten (Anzahl offener Fenster) und zum andren den Bezeichner des Fensters.
    Im VIS Editor wird interessanterweise der Bezeichner des Fensters angezeigt, nicht aber in der runtime. Dort wird nur [object Object] angezeigt.
    Ist das mit dem HTML Card Widget grundsätzlich nicht möglich? Wenn, ja welches Widget?
    Muss ich eine „spezielle“ Formatierung vornehmen?
    Danke und Gruß

    Antwort
  • Stefan

    Hallo zusammen,

    habe den HTML code modifiziert auf meinen Siemens Trockner,
    aber das Ergebnis ist nicht das gewünschte.

    Trockner an/aus: BSH.Common.EnumType.PowerState.On
    welches Programm: LaundryCare.Dryer.Program.Pillow
    Status Türe: BSH.Common.EnumType.DoorState.Open

    Eigentlich sollte das AN oder Kopfkissen oder offen stehen

    Hat jemand einen Tipp was ich anders machen muß?
    VG
    Stefan

    Antwort
  • Stefan

    Nachtrag:
    Beim Ecovacs Staubsauger funktioniert das perfekt.

    Antwort
  • Stefan

    Hallo zusammen,
    weiß jemand wie ich den angezeigten Text gekürzt bekomme?

    BSH.Common.EnumType.PowerState.Off

    Ich möchte nur „Off“ oder noch besser „Aus“ angezeigt bekommen
    Bei einigen Werten liefert Siemens auch nur true
    Bei anderen kommt der halbe Pfad mit.
    Weiß jemand Rat?

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert