[tablet-UI] Frostwarnung

Begonnen von jnewton957, 19 Dezember 2016, 20:33:16

Vorheriges Thema - Nächstes Thema

jnewton957

Hallo,

ich würde gerne eine schone Frostwarnung bauen und komme nicht weiter.

<li class="halbTransparent border-left border-right" data-row="2" data-col="4" data-sizex="1" data-sizey="1">
<header class="headerTransparent">Frostwarnung</header>
<div class="top-space">
<div data-type="symbol"
data-device="CUL_TX_4"
data-get="temperature"
data-limits='[-10,2,5]'
data-icons='["fa-snowflake-o warn", "fa-exclamation-triangle", "fa-exclamation-triangle"]'
data-colors='["red","yellow","transparent"]'
            class="cell big inline" ></div>
</div>
</li>


CUL_TX_4 ist ein TX Temperatursensor..

Idee ist, dass eben bei -10 bis 2 Grad eine Frostwarnung (snowflake) und im kleinen Kreis(warn) dann die Temperatur steht.
Dann eben 2 bis 5 Grad ein gelbes Triangle und über 5 Grad eigentlich eine leere Zelle.

Wo ist mein Gedankenfehler bzw. wie könnte man das umsetzen ?

Grüße
Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

derNeue

das würde ich auch übernehmen....super Idee

setstate

Beim Symbol heißt es data-states
nicht, wie beim Label-Widget data-limits.
Beim Label geht aber auch data-states. Mal sehen, ob ich es angleichen kann

derNeue

Hat schon einer eine Lösung....??? ich habe es auch versucht bekomme es mit states aber auch nicht hin....

Ulm32b

Ich habe so etwas Ähnliches auf der Basis der Proplanta-Vorhersage:

<div class="container inline top-space-2x">
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc0_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" data-device="WetterProplanta:fc0_frost" data-states='[0,1]' data-colors='["white","#5858FA"]' data-refresh="900">
<div data-type="label" class="cell large narrow nocache">Heute</div></div>


Das Ganze wiederholt sich dann mit ,,fc1_*" (bei Proplanta) und "fc2_day_of_week" (bei Wetter (so heißt bei mir das Weather-Device)) usw.
Den Rest des Codes (Symbole, Temperaturen etc.) lasse ich hier weg.
Das Ergebnis ist im ersten Bild dargestellt. Wenn eine Frostwarnung vorliegt, wird das Snowflake angezeigt und der Name des Tages von Weiß auf Blau umgestellt. Alles gut.

Wie es so ist im Leben, ändert Proplanta ggf. seine Meinung, in diesem Fall wurde die Frostwarnung für den Do von ,,1" auf ,,0" zurückgenommen. Das Ergebnis ist dann nicht ganz so gut: Der Snowflake verschwindet wunschgemäß, aber die Schrift bleibt (auch über Stunden) blau, siehe Bild 2.
Wenn man die Seite neu lädt, ist alles wieder gut (Bild3).

Das Problem liegt also darin, dass
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc3_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
automatisch aktualisiert wird, nicht jedoch:
<div data-type="label" data-device="WetterProplanta:fc3_frost" data-states='[0,1]' data-colors='["white","#5858FA"]' data-refresh="900">
<div data-type="label" class="cell large narrow nocache" data-device="Wetter" data-get="fc4_day_of_week"></div></div>

Meine Versuche mit ,,data-refresh" und ,,nocache" haben nichts gebracht. Kann jemand helfen?

setstate

<div data-type="label" data-device="WetterProplanta:fc3_frost" ist falsch

richtig ist
<div data-type="label" data-device="WetterProplanta" data-get="fc3_frost"

oder

<div data-type="label" data-get="WetterProplanta:fc3_frost"

Ulm32b

Das Ergebnis überzeugt leider nicht.

Mit
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc1_frost" data-get-on="1" data-get-off="!on"
data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-device="WetterProplanta" data-get="fc1_frost" data-states='[0,1]' data-colors='["white","#5858FA"]' data-refresh="900">
<div data-type="label" class="cell large narrow nocache" data-device="Wetter" data-get="fc2_day_of_week"></div>
</div>


erhält man Bild 11.  (Merkwürdigerweise ist auch das Label zum Wetterbild plötzlich weg.)

Mit
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc1_frost" data-get-on="1" data-get-off="!on"
data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc1_frost" data-states='[0,1]' data-colors='["white","#5858FA"]' data-refresh="900">
<div data-type="label" class="cell large narrow nocache" data-device="Wetter" data-get="fc2_day_of_week"></div>
</div>


erhält man Bild 12.

Etwas verallgemeinert lautet die Herausforderung: Der Inhalt des Labels Wochentag kommt aus dem einen Reading, die Farbe aus einem anderen Reading. Mit meiner Eingangslösung hat das - abgesehen von der Aktualisierungsproblematik - funktioniert.

jnewton957

Zitat von: setstate am 19 Dezember 2016, 21:27:17
Beim Symbol heißt es data-states
nicht, wie beim Label-Widget data-limits.
Beim Label geht aber auch data-states. Mal sehen, ob ich es angleichen kann

Hallo und danke.
Hat funktioniert.
<div class="top-space">
<div data-type="symbol"
data-device="CUL_TX_4"
data-get="temperature"
data-states='[-10,2,4]'
data-icons='["fa-snowflake-o warn", "fa-exclamation-triangle warn", "fa-exclamation-triangle"]'
data-colors='["#bcd3f4","yellow","transparent"]'
            class="cell big inline" ></div>
</div>


Bild zeigt einmal das data-states mit [-10,2,4] und einmal mit [-10,3,4], damit ich die Funktion testen konnte.

Die anderen Ideen baue ich mir in die Wetterseite ein. Diese Frostwarnung (1 Zelle) soll auf die Startseite.

Danke
Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

setstate

Zitat von: Ulm32b am 20 Dezember 2016, 02:15:48
Etwas verallgemeinert lautet die Herausforderung: Der Inhalt des Labels Wochentag kommt aus dem einen Reading, die Farbe aus einem anderen Reading.

data-get             für den Label-Content
data-limits-get    für den Limits Vergleich


<div class="small" data-type="symbol" data-device="AgroWeather" data-get="fc0_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" data-device="AgroWeather" data-get="fc0_date" data-substitution="toDate().eeee()"  data-limits-get="fc0_frost" data-limits='[0,1]' data-colors='["white","#5858FA"]' ></div>


Ich habe kein "fcx_day_of_week" bei meinem Proplanta, deshalb nutze ich data-substitution="toDate().eeee()" für den Wochentag in meinem Beispiel.

bjoernbo

Danke für die tolle Anregung. Prompt umgesetzt !



Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

bjoernbo

@Ulm32b:

ZitatDen Rest des Codes (Symbole, Temperaturen etc.) lasse ich hier weg.

Kannst Du mal deinen vollständigen Code zur Verfügung stellen? Vielen Dank!
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

derNeue

#11
Bei mir sieht es jetzt so aus.....draußen ist es -0,3 Grad.....also gehe ich davon aus das es richtig ist........

chris1284

weil dein regexp für die werte offenbar suboptimal ist. du must den  data-states='[...]'  teil so anpassen das er auch bei zahlen mit kommastelle greift
zb \-(?:\d*\.)?\d+ würde alles <0 nehmen

Ulm32b

@Ulm32b:
Zitat
    Den Rest des Codes (Symbole, Temperaturen etc.) lasse ich hier weg.

Kannst Du mal deinen vollständigen Code zur Verfügung stellen? Vielen Dank!


Mache ich gerne, sobald eine funktionierende Version vorliegt.

Ulm32b

Hier kommt nun der vollständige Code für die Wetteraussichten.
In FHEM muss hierzu das Device Proplanta (bei mir heißt es "WetterProplanta") angelegt werden. Der Wochentag stammt jetzt (auf Hinweis von Setstate) auch aus Proplanta, sodass andere Devices nicht mehr benötigt werden. Bei Bedarf kann der Zeithorizont natürlich verkürzt oder erweitert werden.

In den vorliegenden Beispieldaten tritt der Fall ein, das bei aktivierter Frostwarnung eine Minimaltemperatur > 0 ausgewiesen wird. Darin sehe ich keinen Widerspruch; in meinem Auto zirpt die Frostwarnung schon bei 4°C.

<div class="container inline top-space-2x">
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc0_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" class="cell large narrow" data-limits-get="WetterProplanta:fc0_frost" data-limits='[0,1]' data-colors='["white","#5858FA"]'>Heute</div>
<div data-type="weather" data-device="WetterProplanta" data-get="fc0_weatherDay" data-imageset="kleinklima" class="cell" style="font-size:400%"></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc0_weatherDay" class="cell top-narrow"></div>
<div class="doublebox-v inline top-space right-narrow">
<div data-type="label" data-device="WetterProplanta" data-get="fc0_tempMax" data-unit="%B0C%0A" class="cell large inline wider" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc0_chOfRainDay" data-unit="%" class="cell large inline top-space-2x right-narrow"></div>
</div>
<div class="doublebox-v inline top-space compressed">
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-thermometer-3"><data-off-color="#999"></div>
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-umbrella"><data-off-color="#999"></div>
</div>
<div class="doublebox-v inline top-space">
<div data-type="label" data-device="WetterProplanta" data-get="fc0_tempMin" data-unit="%B0C%0A" class="cell large inline wider left-align" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc0_rain" data-unit="mm" data-fix="0" class="cell large inline top-space-2x left-align"></div>
</div>
</div>

<div class="container inline top-space-2x">
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc1_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" class="cell large narrow" data-device="WetterProplanta" data-get="fc1_date" data-substitution="toDate().ee()"  data-limits-get="fc1_frost" data-limits='[0,1]' data-colors='["white","#5858FA"]'></div>
<div data-type="weather" data-device="WetterProplanta" data-get="fc1_weatherDay" data-imageset="kleinklima" class="cell" style="font-size:400%"></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc1_weatherDay" class="cell top-narrow"></div>
<div class="doublebox-v inline top-space right-narrow">
<div data-type="label" data-device="WetterProplanta" data-get="fc1_tempMax" data-unit="%B0C%0A" class="cell large inline wider" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc1_chOfRainDay" data-unit="%" class="cell large inline top-space-2x right-narrow"></div>
</div>
<div class="doublebox-v inline top-space compressed">
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-thermometer-3"><data-off-color="#999"></div>
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-umbrella"><data-off-color="#999"></div>
</div>
<div class="doublebox-v inline top-space">
<div data-type="label" data-device="WetterProplanta" data-get="fc1_tempMin" data-unit="%B0C%0A" class="cell large inline wider left-align" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc1_rain" data-unit="mm" data-fix="0" class="cell large inline top-space-2x left-align"></div>
</div>
</div>

<div class="container inline top-space-2x">
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc2_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" class="cell large narrow" data-device="WetterProplanta" data-get="fc2_date" data-substitution="toDate().ee()"  data-limits-get="fc2_frost" data-limits='[0,1]' data-colors='["white","#5858FA"]'></div>
<div data-type="weather" data-device="WetterProplanta" data-get="fc2_weatherDay" data-imageset="kleinklima" class="cell" style="font-size:400%"></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc2_weatherDay" class="cell top-narrow"></div>
<div class="doublebox-v inline top-space right-narrow">
<div data-type="label" data-device="WetterProplanta" data-get="fc2_tempMax" data-unit="%B0C%0A" class="cell large inline wider" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc2_chOfRainDay" data-unit="%" class="cell large inline top-space-2x right-narrow"></div>
</div>
<div class="doublebox-v inline top-space compressed">
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-thermometer-3"><data-off-color="#999"></div>
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-umbrella"><data-off-color="#999"></div>
</div>
<div class="doublebox-v inline top-space">
<div data-type="label" data-device="WetterProplanta" data-get="fc2_tempMin" data-unit="%B0C%0A" class="cell large inline wider left-align" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc2_rain" data-unit="mm" data-fix="0" class="cell large inline top-space-2x left-align"></div>
</div>
</div>

<div class="container inline top-space-2x">
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc3_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" class="cell large narrow" data-device="WetterProplanta" data-get="fc3_date" data-substitution="toDate().ee()"  data-limits-get="fc3_frost" data-limits='[0,1]' data-colors='["white","#5858FA"]'></div>
<div data-type="weather" data-device="WetterProplanta" data-get="fc3_weatherDay" data-imageset="kleinklima" class="cell" style="font-size:400%"></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc3_weatherDay" class="cell top-narrow"></div>
<div class="doublebox-v inline top-space right-narrow">
<div data-type="label" data-device="WetterProplanta" data-get="fc3_tempMax" data-unit="%B0C%0A" class="cell large inline wider" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc3_chOfRainDay" data-unit="%" class="cell large inline top-space-2x right-narrow"></div>
</div>
<div class="doublebox-v inline top-space compressed">
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-thermometer-3"><data-off-color="#999"></div>
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-umbrella"><data-off-color="#999"></div>
</div>
<div class="doublebox-v inline top-space">
<div data-type="label" data-device="WetterProplanta" data-get="fc3_tempMin" data-unit="%B0C%0A" class="cell large inline wider left-align" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc3_rain" data-unit="mm" data-fix="0" class="cell large inline top-space-2x left-align"></div>
</div>
</div>

<div class="container inline top-space-2x">
<div class="small" data-type="symbol" data-device="WetterProplanta" data-get="fc4_frost" data-get-on="1" data-get-off="!on" data-icon="fa-snowflake-o" data-on-color="#5858FA" data-hide="0"></div>
<div data-type="label" class="cell large narrow" data-device="WetterProplanta" data-get="fc4_date" data-substitution="toDate().ee()"  data-limits-get="fc4_frost" data-limits='[0,1]' data-colors='["white","#5858FA"]'></div>
<div data-type="weather" data-device="WetterProplanta" data-get="fc4_weatherDay" data-imageset="kleinklima" class="cell" style="font-size:400%"></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc4_weatherDay" class="cell top-narrow"></div>
<div class="doublebox-v inline top-space right-narrow">
<div data-type="label" data-device="WetterProplanta" data-get="fc4_tempMax" data-unit="%B0C%0A" class="cell large inline wider" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc4_chOfRainDay" data-unit="%" class="cell large inline top-space-2x right-narrow"></div>
</div>
<div class="doublebox-v inline top-space compressed">
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-thermometer-3"><data-off-color="#999"></div>
<div class="cell big inline narrow" data-type="symbol" data-icon="fa-umbrella"><data-off-color="#999"></div>
</div>
<div class="doublebox-v inline top-space">
<div data-type="label" data-device="WetterProplanta" data-get="fc4_tempMin" data-unit="%B0C%0A" class="cell large inline wider left-align" data-limits='[-50,1]' data-colors='["#5858FA","white"]' ></div>
<div data-type="label" data-device="WetterProplanta" data-get="fc4_rain" data-unit="mm" data-fix="0" class="cell large inline top-space-2x left-align"></div>
</div>
</div>