Symbol Widget Driving me nuts

Begonnen von zap, 06 Februar 2016, 17:02:32

Vorheriges Thema - Nächstes Thema

zap

Ich bin kurz davor, den Kram mit rm -r * seiner Bestimmung zu zu führen  >:(

Folgendes: Habe ein Dummy Device mit einem Reading, das ganze, positive Zahlen >= 0 enthält. Nun möchte ich ein Symbol darstellen, das oben rechts in einem Kreis einen Warneintrag enthält, wenn das Reading 0 oder 1 ist. Bei größeren Werten soll der Warnkreis nicht angezeigt werden. Mein Code sieht wie folgt aus:


<div data-type="symbol" data-device="d_caltrashdates"
    data-get="d_offset_Rest"
    data-get-on='["1", "0"]'
    data-icons='["fa-trash warn", "fa-trash warn fa-blink"]'
    data-on-colors='["#808080", "#808080"]'
    data-off-color="#808080"
    data-background-icon="fa-circle"
    data-on-background-color="#ffffff"
    data-off-background-color="#505050"
    class="bigger inline">
  </div>


Leider wird nun immer das Warnsymbol mit blinkendem Mülleimer angezeigt, auch wenn der Reading Wert z.B. = 7) ist, d.h das Widget verhält sich wie wenn der Wert 0 wäre. Auch die Hintergrundfarbe wird auf die "On-Background-Color" gesetzt, auch wenn der Reading-Wert = 7 ist.
Ich habe es auch schon mit regulären Ausdrücken versucht, ohne Erfolg. Selbst wenn ich ein data-get-off="7" definiere, wird trotzdem die data-on Farbe verwendet und das Warnsymbol rechts oben angezeigt.

Erschwerend kommt dazu, dass es anscheinend keine einheitliche Doku zu Tablet-UI gibt. Die Beschreibung im Wiki unterscheidet sich an vielen Stellen von der im Github-Readme. Und im Forum steht meistens dann noch eine dritte Variante. Alles wenig hilfreich.

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

roman1528


<div data-type="symbol" data-device="d_caltrashdates"
    data-get="d_offset_Rest"
    data-states='["1","0","^(?!1)|^(?!0)"]'
    data-icons='["fa-trash warn","fa-trash warn fa-blink","fa-trash"]'
    data-colors='["#808080","#808080","#808080"]'
    data-background-icons='["fa-circle","fa-circle","fa-circle"]'
    data-background-colors='["#ffffff","#ffffff","#505050"]'
    class="bigger inline">
</div>


Viel Spaß.... Bin sicher es geht so... Wenn nicht: Schande über mein Haupt!

Du "developest" was noch gleich?  :P
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

Das meine ich: weder data-background-icons noch data-states ist laut Wiki möglich. Laut Github-Readme schon.

Was ist der Unterschied zwischen data-states und data-get-on und warum funktioniert letzteres nicht?

P.S. Was meinst Du mit "Was entwickelst Du?". Beruflich oder hier für FHEM?
Ich denke ich bin ganz gut darin, Multimedia Server Dienste in C++ zu schreiben. Und an einem MPEG-Decoder habe ich mich auch schon mal versucht. Zu einigen Linux Modulen habe ich die eine oder andere Code Zeile beigetragen. Ist aber weniger geworden, da ich beruflich mittlerweile weg von der Entwicklung bin.

Ach ja, bei FHEM das hier: http://forum.fhem.de/index.php?topic=40189.0

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

roman1528

Zitat von: zap am 06 Februar 2016, 18:17:26
Das meine ich: weder data-background-icons noch data-states ist laut Wiki möglich. Laut Github-Readme schon.
Ich halte mich weitesgehend an die GitHub-ReadMe... Die ist meistens auf dem neusten Stand (obwohl auch da lange nicht alles drin steht).

Zitat von: zap am 06 Februar 2016, 18:17:26
Was ist der Unterschied zwischen data-states und data-get-on und warum funktioniert letzteres nicht?
Da bin ich maßlos überfragt  ;D

Zitat von: zap am 06 Februar 2016, 18:17:26
P.S. Was meinst Du mit "Was entwickelst Du?". Beruflich oder hier für FHEM?
Ich denke ich bin ganz gut darin, Multimedia Server Dienste in C++ zu schreiben. Und an einem MPEG-Decoder habe ich mich auch schon mal versucht. Zu einigen Linux Modulen habe ich die eine oder andere Code Zeile beigetragen. Ist aber weniger geworden, da ich beruflich mittlerweile weg von der Entwicklung bin.
Ach ja, bei FHEM das hier: http://forum.fhem.de/index.php?topic=40189.0
Genau das meinte ich. Wenn man schon mal beim Thema ist kann man ja mal fragen... Dacht ich mir.
Ist jetzt nichts dabei was ich brauchen könnte aber es ist gut zu wissen, dass jemand hier dabei ist der das kann.

Grüße^^
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

#4
Zitat von: roman1528 am 06 Februar 2016, 17:46:13

<div data-type="symbol" data-device="d_caltrashdates"
    data-get="d_offset_Rest"
    data-states='["1","0","^(?!1)|^(?!0)"]'
    data-icons='["fa-trash warn","fa-trash warn fa-blink","fa-trash"]'
    data-colors='["#808080","#808080","#808080"]'
    data-background-icons='["fa-circle","fa-circle","fa-circle"]'
    data-background-colors='["#ffffff","#ffffff","#505050"]'
    class="bigger inline">
</div>


Viel Spaß.... Bin sicher es geht so... Wenn nicht: Schande über mein Haupt!

Funktioniert leider nicht. In obigem Beispiel und wenn das Reading = 8 ist binkt das Symbol. Das deutet darauf hin, dass das Widget meint, der Wert wäre "0", also 2. Eintrag im Array. Allerdings werden die Farben überhaupt nicht gesetzt, weder die Symbolfarbe noch die des Hintergrundicons (wobei das sowieso nicht angezeigt wird).

Wenn ich jetzt ein data-off-color="#ff0000" einfüge, wird das Symbol eingefärbt! Also einerseits greift data-state 2. Eintrag, andereseits wird die Off-Farbe verwendet.

Ich glaube, das Symbol Widget hat noch den ein oder anderen Bug und ist - zumindest für mich - so nicht verwendbar.

UPDATE: Habe mittlerweile festgestellt, dass das Symbol immer blinkt, sobald in mindestens einem der Array-Einträge ein fa-blink drin ist.

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

roman1528

Zitat von: zap am 07 Februar 2016, 15:24:55
Funktioniert leider nicht. In obigem Beispiel und wenn das Reading = 8 ist binkt das Symbol. Das deutet darauf hin, dass das Widget meint, der Wert wäre "0", also 2. Eintrag im Array. Allerdings werden die Farben überhaupt nicht gesetzt, weder die Symbolfarbe noch die des Hintergrundicons (wobei das sowieso nicht angezeigt wird).

Wenn ich jetzt ein data-off-color="#ff0000" einfüge, wird das Symbol eingefärbt! Also einerseits greift data-state 2. Eintrag, andereseits wird die Off-Farbe verwendet.

Ich glaube, das Symbol Widget hat noch den ein oder anderen Bug und ist - zumindest für mich - so nicht verwendbar.

Aber ich habe auch symbol-Widget's am laufen... zwar nicht ganz so aufwändig mit data-background-color aber auch mit RegEx... vielleicht ist das ja auch nicht richtig. Also die RegEx... Ich hab da nicht so den Plan von...


<div data-type="symbol"
data-device="WVC_TAB3_Buro"
data-get="powerLevel"
data-states='["([1][5-9]|[2][0-5])","([2][6-9]|[3][0-9]|[4][0-9]|50)","([5][1-9]|[6][0-9]|[7][0-5])","([7][6-9]|[8][0-9]|[9][0-9]|100)"]'
data-icons='["fa-battery-1 warn","fa-battery-2 warn","fa-battery-3 warn","fa-battery-4"]'
data-colors='["firebrick","yellow","green","green"]'
class="inline bigger narrow">
</div>

Hier wird das Standard-Background-Icon verwendet ("none"). aber die Icon-Einfärbung funktioniert.

Noch was fällt mir ein: Ist "d_caltrashdates" ein Dummy?

attr d_caltrashdates event-on-change-reading d_offset_Rest

oder:

attr d_caltrashdates event-on-change-reading .*


Aber normalerweise liest FTUI bzw. das Widget die Readings bei einem Reload komplett aus... mit event-on-change-reading ohne Reload ändern.
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

setstate

data-states='["1","0","[2-9]{1}|[0-9]{2}"]'

1. -> 1
2. -> 0
3. -> 2-9 oder 10-99

zap

Zitat von: setstate am 07 Februar 2016, 15:41:46
data-states='["1","0","[2-9]{1}|[0-9]{2}"]'

1. -> 1
2. -> 0
3. -> 2-9 oder 10-99

Danke! Das funktioniert. Wirft aber die Frage auf, warum einer der folgenden Ausdrücke nicht funktioniert:


data-states='["1","0","[2-9]|[1-9][0-9]"]'
data-states='["^1$","^0$","^[2-9]$|^[1-9][0-9]$"]'


Und wann nimmt man jetzt data-states und wann data-get-on ?
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

setstate


roman1528

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