Seit letztem Update kein HTML-Code in Label Widget

Begonnen von zap, 02 März 2016, 19:56:40

Vorheriges Thema - Nächstes Thema

zap

Hallo,
ich habe ein FHEM-Device, das in einem Reading einen fertig formatierten HTML-Code enthält (Tabelle mit div Tags und FTUI Klassen col und row).

Bisher konnte ich das in einem Label-Widget darstellen. Seit einem Update vorhin geht das nicht mehr. Es wird nur die erste Zeile der Tabelle (enthält die Überschrift) ausgegeben.

Von der 2. Zeile wird nur "02" angezeigt. Möglicherweise liegt es am Inhalt (Datum). Hier mal der Inhalt des Readings (die Klasse col-12 ist selbst definiert, entspricht col-1-2 minus 1%):

<div class="cell">
  <div class="row">
    <div class="red">
      <div class="col-12">Uhrzeit</div><div class="col-12">Nummer</div>
    </div>
  </div>
  <div class="row">
    <div class="black">
      <div class="col-12">02.03 18:48</div><div class="col-12">01714234217</div>
    </div>
  </div>
</div>
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

roman1528

Moin.

Ja es liegt leider am Datum/Uhrzeit... Da gab es schon einige Diskussionen dies bzgl.

Habe leider das gleiche Problem: Bei wird Datum/Uhrzeit aus SYSMON starttime_text nicht mehr korrekt angezeigt. Witzigerweise ist hier ein Punkt der auslöser. Nicht wie in den anderen Diskussionen der Doppelpunkt aus der Uhrzeit.

Beispiel-Reading SYSMON: 24.02.2016 12:02
Beispiel-Anzeige-FTUI: 24.02

Grüße^^

P.S. Hatte vorhin auch mal versucht HTML in ein Dummy zu verpacken. Leider ist es am Semikolon ; gescheitert. War Java-Code mit drin  :'(
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

zap

Könnte mit der neu eingeführten Formatierung der Nachkommastellen zusammenhängen. Ich hoffe, setstate behebt das. Vor der aktuellen Version hat das zumindest mit native html funktioniert. Durfte nur kein Newline drin sein.

Ich könnte mir auch eine Klasse oder ein Attribut vorstellen, das dem Widget signalisiert, dass das Reading HTML enthält, das nicht angefasst werden soll.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

zap

ich glaube, ich habe die fragliche Stelle im Label Widget gefunden:


if (val.indexOf('.')>-1){
                    var vals = val.split('.');
                    val = "<span class='label-precomma'>"+vals[0]+"</span>" +
                          "<span class='label-comma'>.</span>" +
                          "<span class='label-aftercomma'>"+vals[1]+"</span>";
                }


Sieht so aus, als würde das Widget jeden Wert, der einen Punkt enthält, wie eine Zahl behandeln. Die <spans> zerschiessen dann den HTML-Code in meinem Reading.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

setstate

#4
Das ist natürlich wahr. Danke dir für die Ursachensuche.
Schaue ich mir an, das ist noch nicht so gut gelöst.

mgl. Lösung?

                if (!isNaN(parseFloat(val)) && isFinite(val) && val.indexOf('.')>-1){
                    var vals = val.split('.');
                    val = "<span class='label-precomma'>"+vals[0]+"</span>" +
                          "<span class='label-comma'>.</span>" +
                          "<span class='label-aftercomma'>"+vals[1]+"</span>";
                }


zap

Ja, ich denke das würde gehen. Würde nur schief gehen, wenn im Value ein Datum der Form "01.03" steht. Aber mit einer Änderung auf "01.03." sollte das dann auch keine Probleme mehr machen.

Was hältst Du davon, alternativ ein Element "data-content" einzuführen? Das könnte das Format von Value explizit festlegen. Mögliche Werte könnten sein: "number", "text", "static". Der Wert "static" würde für das Widget bedeuten: fasse den Inhalt nicht an. Das wäre dann für vorformatierten Inhalt wie z.B. HTML gedacht.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

brmpfl

Moin,

ich kämpfe ebenfalls mit dem . Problem.
Hat das schon irgendwer in den Griff bekommen?

:)
Hajo

zap

Ja, habe eine Kopie mit dem Namen widget-exlabel angelegt, im Widget alles was label war auf exlabel geändert, ein zusätzliches Element "data-content" eingebaut und in Abhängigkeit von dessen Inhalt den Code für die Punktverarbeitung ausgeschlossen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Mario67

Hallo zap,

kannst Du bitte Dein Widget widget-exlabel zur Verfügung stellen. Mein eigener Versuch auf Grundlage von widget_label und widget_example ein HTML-fähiges Widget zu bauen, führt leider nicht zu einem brauchbaren Ergebnis. Wenn das darzustellende HTML eine Tablelle enthält, blitzt diese nach Browseraktualisierung kurz auf. Danach ist das Widget leer. Einfache HTML-Konstrukte werden richtig dargestellt.

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

zap

Bei mir funktioniert das normale Label Widget seit dem letzten Update wieder. Ich verwende auch Tabellen, sowohl mit div als auch normalen table Tags. Ich poste später mal ein Beispiel.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Mario67

Danke für die Rückmeldung. Verwendest Du die 2.0 Beta?

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

zap

Ja. Hier der Inhalt eines Readings. Vielleicht gut zu wissen: in dem Code kommt kein newline vor!


<table width="100%"><tr><th>Zeitraum</th><th>Warnung</th></tr><tr style="color: #ffff00;"><td width="20%" valign="middle" class="border-t">16.03.2016 00:00:00<br>16.03.2016 10:00:00</td><td width="80%" align="left" valign="middle" class="border-t">Vor allem bei Aufklaren tritt leichter Frost um -1 °C auf.</td></tr><tr style="color: #ffff00;"><td width="20%" valign="middle" class="border-t">15.03.2016 20:00:00<br>16.03.2016 10:00:00</td><td width="80%" align="left" valign="middle" class="border-t">Es tritt oberhalb 400 m leichter Frost zwischen -1 °C und -4 °C auf.</td></tr></table>

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Mario67

Danke für den Hinweis auf das Newline. Ein $messageTable =~ s/[\x0A\x0D]//g; hat (fast) alle Probleme gelöst.
Ist bekannt warum die Mechanik so empfindlich gegenüber Zeilenschaltungen ist?

Danke & Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

zap

Ich nehme an, das hängt mit der Art und Weise zusammen, wie Tablet-UI die Readings abfragt. Möglicherweise hat sich das durch die Verwendung von JSON in der 2.0 Beta verbessert. Ich würde mir wünschen, dass setstate ein Attribut data-content einbaut, mit dem man steuern kann, ob der Content 1:1 aus dem Reading übernommen wird.

BTW: Falls Du newlines unbedingt brauchst, kannst Du <br/> verwenden. Das funktioniert.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Mario67

Nein die Newlines brauche ich an sich nicht. Die Inhalte der Zellen in der Tabelle sind jeweils relativ kurz.
Das sind Verkehrsmeldungen (inkl. Blitzer  ;), welche ich mit einem eigenen von HTTPMOD abgekupferten Modul aus einer Website extrahiere und beliebig (z.B. gefiltert) wieder zusammenbauen kann.
Das generierte HTML ist dann nur schlecht lesbar. Das ist aber nicht weiter tragisch.
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich