FHEM Forum

FHEM => Frontends => fronthem / smartVISU => Thema gestartet von: Johann.S am 03 Juli 2019, 15:52:04

Titel: Symbole mit mehr als 2 Farben (gelöst)
Beitrag von: Johann.S am 03 Juli 2019, 15:52:04
Hallo,

ich bin gerade beim Umstieg von TabletUI auf fronthem/smartVISU!
Dank der Beiträge hier im Forum hat bisher alles reibungslos funktioniert.
Ich hänge jetzt an einem Problem und finde seit Tagen keine Lösung.
FHEM läuft auf einem Raspberry 3 mit 2 Signalduinois (433MHz und 868MHz), smartVISU 2.8 auf einem NextCloud Server 15.0.8
und auf einem zweiten Raspberry 3 lauft RaspberryMatic 3.45.7.20190511 für meine HM-IP Geräte (Heizkörper, Fenster und Thermostate).

In Anlehnung an das Homematic-Widget von Bernd Gewehr versuche ich gerade ein eigenes Widget für meine HM IP Komponente.
In diesem Widget möchte ich gerne die Batterie mit unterschiedlichen Farben (Rot, Gelb, Gün) anzeigen, komme aber nicht wirklich dahinter.
/**
* Homematic IP HM-SWDO Tür und Fensterkontakt
*
* @param unique id for this widget
* @param a item for text1
* @param a item for window1
* @param a item for battery1
* @param a item for text2
* @param a item for window2
* @param a item for battery2
* @param a item for text3
* @param a item for window3
* @param a item for battery3
* @param a item for text4
* @param a item for window4
* @param a item for battery4
*/
{% macro hmswdo(id, item_text1, item_window1, item_battery1, item_text2, item_window2, item_battery2, item_text3, item_window3, item_battery3, item_text4, item_window4, item_battery4) %}
{% import "basic.html" as basic %}
{% import "icon.html" as icon %}
<div id="{{ uid(page, id) }}">
<div class="actual">
<div class="temp">
{% if item_window1 %}
{{ item_text1 }}&nbsp;
{{ basic.symbol(id~'windowopen1', item_window1, '', 'fts_window_2w_open.svg','offen', '', 'icon1') }}
{{ basic.symbol(id~'windowtilt1', item_window1, '', 'fts_window_2w_tilt_l.svg','gekippt', '', 'icon1') }}
{{ basic.symbol(id~'windowclose1', item_window1, '', 'fts_window_2w.svg','zu', '', '#25ea4e') }}
{% if item_battery1 > 1.3  %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#25ea4e") }}
{% elseif item_battery1 > 1.1 %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#ffdb00") }}
{% else %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#cc0000") }}
{% endif %}
{{ basic.value(id~'battery1_V', item_battery1) }}V
<br>
{% endif %}
{% if item_window2 %}
{{ item_text2 }}&nbsp;
{{ basic.symbol(id~'windowopen2', item_window2, '', 'fts_window_2w_open.svg','offen', '', 'icon1') }}
{{ basic.symbol(id~'windowtilt2', item_window2, '', 'fts_window_2w_tilt_l.svg','gekippt', '', 'icon1') }}
{{ basic.symbol(id~'windowclose2', item_window2, '', 'fts_window_2w.svg','zu', '', '#25ea4e') }}
{% if item_battery2 > '1.30'  %}
{{ icon.battery(id~'battery2', '', item_battery2, '1.0', '1.5', "#25ea4e") }}
{% elseif item_battery2 < '1.10' %}
{{ icon.battery(id~'battery2', '', item_battery2, '1.0', '1.5', "#ffdb00") }}
{% else %}
{{ icon.battery(id~'battery2', '', item_battery2, '1.0', '1.5', "#cc0000") }}
{% endif %}
{{ basic.value(id~'battery2_V', item_battery2) }}V
<br>
{% endif %}
{% if item_window3 %}
{{ item_text3 }}&nbsp;
{{ basic.symbol(id~'windowopen3', item_window3, '', 'fts_window_2w_open.svg','offen', '', 'icon1') }}
{{ basic.symbol(id~'windowtilt3', item_window3, '', 'fts_window_2w_tilt_l.svg','gekippt', '', 'icon1') }}
{{ basic.symbol(id~'windowclose3', item_window3, '', 'fts_window_2w.svg','zu', '', '#25ea4e') }}
{% if item_battery3 > '1.30'  %}
{{ icon.battery(id~'battery3', '', item_battery3, '1.0', '1.5', "#25ea4e") }}
{% elseif item_battery3 < '1.10' %}
{{ icon.battery(id~'battery3', '', item_battery3, '1.0', '1.5', "#ffdb00") }}
{% else %}
{{ icon.battery(id~'battery3', '', item_battery3, '1.0', '1.5', "#cc0000") }}
{% endif %}
{{ basic.value(id~'battery3_V', item_battery3) }}V
<br>
{% endif %}
{% if item_window4 %}
{{ item_text4 }}&nbsp;
{{ basic.symbol(id~'windowopen4', item_window4, '', 'fts_window_2w_open.svg','offen', '', 'icon1') }}
{{ basic.symbol(id~'windowtilt4', item_window4, '', 'fts_window_2w_tilt_l.svg','gekippt', '', 'icon1') }}
{{ basic.symbol(id~'windowclose4', item_window4, '', 'fts_window_2w.svg','zu', '', '#25ea4e') }}
{% if item_battery4 > '1.30'  %}
{{ icon.battery(id~'battery4', '', item_battery4, '1.0', '1.5', "#25ea4e") }}
{% elseif item_battery4 < '1.10' %}
{{ icon.battery(id~'battery4', '', item_battery4, '1.0', '1.5', "#ffdb00") }}
{% else %}
{{ icon.battery(id~'battery4', '', item_battery4, '1.0', '1.5', "#cc0000") }}
{% endif %}
{{ basic.value(id~'battery4_V', item_battery4) }}V
<br>
{% endif %}
</div>
</div>
</div>
{% endmacro %}


Der Teil an dem ich hänge schaut so aus:

{% if item_battery > 1.30  %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#25ea4e") }}
{% elseif item_battery1 < 1.10 %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#ffdb00") }}
{% else %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#cc0000") }}
{% endif %}


Das Ergebnis habe ich angehängt.
Nach allen Rechergen im Forum und im Internet komme ich nicht dahinter warum {% if item_battery > 1.30  %} nicht funktioniert!

Danke im voraus,

Johann

Titel: Antw:Symbole mit mehr als 2 Farben
Beitrag von: amenomade am 04 Juli 2019, 02:37:45
Was ist falsch? Der Wert 1.3 ist weder > 1.3 noch < 1.1
Dann kriegst Du #cc0000 = rot, wie im Bild ("else" Zweig)
Titel: Antw:Symbole mit mehr als 2 Farben
Beitrag von: Johann.S am 04 Juli 2019, 10:00:45
Hallo amenomade,

den Fehler habe ich behoben.
{% if item_battery1 > 1.3  %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#25ea4e") }}
{% elseif item_battery1 > 1.1 %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#ffdb00") }}
{% else %}
{{ icon.battery(id~'battery1', '', item_battery1, '1.0', '1.5', "#cc0000") }}
{% endif %}


Jetzt sieht das Ergebnis so wie im Anhang aus. Das Batterie-Symbol ist immer rot.
Fenster links sollte #25ea4e = grün, Fenster rechts und Türe sollten #ffdb00 = gelb sein.
Keine Ahnung warum es nicht geht, lt. Dr. Google müsste es so funktionieren.

Titel: Antw:Symbole mit mehr als 2 Farben
Beitrag von: amenomade am 04 Juli 2019, 17:18:49
Versuch mal ohne die 1.0 und 1.5, ich verstehe nicht warum die da sein sollen
Titel: Antw:Symbole mit mehr als 2 Farben
Beitrag von: Johann.S am 04 Juli 2019, 20:30:12
Die 1.0 und 1.5 sind min und max Werte für die Striche in der Batterie, ohne wird eine leere Batterie ohne Zwischenstriche/Füllstand angezeigt.
Titel: Antw:Symbole mit mehr als 2 Farben
Beitrag von: amenomade am 04 Juli 2019, 20:58:46
Ah ok... dann habe ich keine Ahnung, sorry
Titel: Antw:Symbole mit mehr als 2 Farben
Beitrag von: Johann.S am 10 Juli 2019, 09:06:15
Für alle die vielleicht das gleiche Problem haben!

{{ basic.symbol (id~'battery4', item_battery4, '', icon.battery(id~'battery4_i', '', item_battery4, '1.0', '1.5'), [ 1.2, 1.4], '>', ['#cc0000','#ffdb00','#25ea4e'])}}

In der V2.9 kann man icon.xxx in basic.symbol verwenden! Das Größer (>) gibt an, dass es eine Range ist.