data-factor bei label-widget

Begonnen von killah78, 17 Juni 2020, 08:40:12

Vorheriges Thema - Nächstes Thema

killah78

Hi,
ich würde gerne einen Wert, den ich als Label ausgebe mit einem Faktor "0.001" (kW anstatt W) ausgeben.
Leider scheint FTUI von data-factor absolut unbeeindruckt.
Was kann das sein?

So sieht das im Detail aus:
<div class="col-1-5">
<div data-type="label"
data-device="du_Solar"
data-get="ZZZ_Hausverbrauch_today"
data-factor="0.001"
class="cell tall">
</div>
<div data-type="label" class="top-narrow">Hausverbrauch heute kWh
</div>
</div>


Gruss
killah78

amenomade

Was enthält genau [du_Solar:ZZZ_Hausverbrauch_today] ?
Wenn nicht numerisch (z.B. weil Einheit im Reading), geht es nicht.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

killah78

Hallo amenomade,
im Reading steht "5926.53". Also Wert mit Punkt. Ist der Punkt vielleicht das Problem?

amenomade

Habe gerade den Test gemacht: dummy definiert:
Internals:
   CFGFN     
   FUUID      5ef0d8b0-f33f-fe91-6b72-67732e79a121feb7
   NAME       du_Solar
   NR         172
   STATE      ???
   TYPE       dummy
   .attraggr:
   .attrminint:
   READINGS:
     2020-06-22 18:14:06   ZZZ_Hausverbrauch_today 5926.53
Attributes:


Und folgendes in FTUI hinzugefügt:
           <div data-type="label"
data-device="du_Solar"
data-get="ZZZ_Hausverbrauch_today"
data-factor="0.001"
class="cell tall">
          </div>


Und es geht. Siehe Bild.

Kannst Du ein "list du_Solar" bitte liefern?


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

killah78

Hallo amenomade,
sorry für die Verzögerungen, bin derzeit nur wenig am Rechner.

Hier ein List vom du_Solar. Es handelt sich um ein Dummy Device, welches von anderen Devices per userReadings die Werte sammelt.
Ich habe mal andere Werte rausgeschmissen, damit es übersichtlicher ist.

Danke für deine Hilfe.

Internals:
   FUUID      5edfcb80-f33f-86d0-6c37-ba7d5aee1a94848d
   NAME       du_Solar
   NR         819
   STATE      load
   TYPE       dummy
   READINGS:
     2020-06-28 17:30:00   ZZZ_Hausverbrauch_today 10429.49
     2020-06-28 17:30:00   state           load
Attributes:
   room       Photovoltaik
   userReadings ZZZ_Hausverbrauch_today { my $v1 = ReadingsVal($NAME,"statZZZ_Yield_Total",0) =~ m/Day:\s([\d\.]+)/ ? $1 : "0"; my $v2 = ReadingsVal($NAME,"statKSEM_Active_Energy_total_N_Wh",0) =~ m/Day:\s([\d\.]+)/ ? $1 : "0"; my $v3 = ReadingsVal($NAME,"statKSEM_Active_Energy_total_P_Wh",0) =~ m/Day:\s([\d\.]+)/ ? $1 : "0"; my $v9 = $v1 - $v2 + $v3; $v9}

amenomade

Na dann sollte es gehen. Wie alt ist dein widget_label.js ?

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

killah78

Gute Frage, wo sehe ich das? Ich habe aber mal reingeschaut und sehe nicht mit "factor".
Wie kann ich das updaten?

amenomade

#7
https://wiki.fhem.de/wiki/FHEM_Tablet_UI#Update

            val = me.substitution(val, elem.data('substitution'));
            val = me.map(elem.data('map-get'), val, val);
            //val = me.round(val, elem.data('round'));
            //val = formatValue(elem, val);
            val = me.factor(val, elem.data('factor'));   /* hier ist es (u.a.)*/
            val = me.fix(val, elem.data('fix'));
            val = elem.data('pre-text') + val + elem.data('post-text');
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

killah78

Ja das war es. Nach dem Update funktioniert es prima.
Danke für die Hilfe.

brucky@freenet.de

Hallo Zusammen,

ich würde gerne meinen Wert von Label-Widget negieren, ich dachte es müsste einfach mit data-factor="-1" funktionieren. Leider geht das aber nicht.

Weiß zufällig jemand eine Lösung?

Danke,
Simon

brucky@freenet.de

Hallo Zusammen,

ich habs gefunden.... die Javascript funktion hinter dem "data-Factor" ist auf ">=0" begrenzt. Warum das so ist, weiß ich nicht, ich habe es nun auf ">=-1 geändert und schon wird negiert.
Wer das bei sich ändern will, muss in der Datei /opt/fhem/www/tablet/js/fhem-tablet-ui.js  nach der Zeile "return ($.isNumeric(value) && fac >= 0) ? Number(value) * fac : value;" suchen und sie auf "return ($.isNumeric(value) && fac >= -1) ? Number(value) * fac : value;" ändern.

Viele Grüße,
Simon