[widget_uwz] widget für UWZ Unwetterzentrale.

Begonnen von chris1284, 07 Januar 2017, 18:39:45

Vorheriges Thema - Nächstes Thema

lestat.le

Hallo,

sehr beeindruckend was hier entstanden ist.
Leider schein ich mich anzustellen. Ich wollte erstmal ganz einfach starten. Allerdings zeigt mir das Widget "Aktuell keine Warnmeldungen", obwohl aktuell zwei Warnungen vorliegen. Hat jemand spontan eine Idee, wo ich den Fehler suchen muss? Wo wird eigentlich die Meldung "Aktuell keine Warnmeldungen" generiert? Im Device selber hab ich nichts entdeckt.
Hier noch mein Code:

<li data-row="4" data-col="6" data-sizex="5" data-sizey="1">
  <header>Unwetterwarnung Leipzig</header>
  <div data-type="uwz" data-device="Unwetterzentrale" data-detail='["WarnUWZLevel_Color", "uwzLevel", "IconURL", "ShortText", "WarnTime"]' data-max="5" class="top-space autohide"></div>
</li>


Vielen Dank und beste Grüße

lestat.le

Hab das Raspi wiederholt neu gestartet. Geht nun!

Viele Grüße

chris1284

moin, uwzlevel gibts es nur intern, wird also nie nagezeigt und muss nicht in die ui-definition

<div data-type="uwz" data-device="Unwetterzentrale" data-detail='["WarnUWZLevel_Color", "IconURL", "ShortText", "WarnTime"]' data-max="5" class="top-space autohide"></div>

reich so also aus


Kuzl

Hallo Chris,

2 Ideen:

   -ist es möglich, dass du noch zwischen der Gültigkeit und dem Text einen Zeilenumbruch einbaust?
   -Kannst du was einbauen, dass man die einzelnen Teile Formatieren kann? z.b. ShortText Fett und WarnTime kleiner etc.

Viele Grüße,
Kuzl

moonsorrox

#49
Zitat von: Homer1978 am 11 Januar 2017, 20:24:07
ich habe glaube ich gefunden wo dran es liegt, die datei wurde als benutzer root runtergeladen, wahrscheinlich wid benutzer fhem die nicht ausführen können, ich habe aber keine ahnung wie ich die dem benutzer fhem zufügen kann

gib mal das auf der Shell Ebene (putty) ein
chown -R fhem:dialout /opt/fhem


@chris1284
ich habe deinen Beitrag im anderen Thread verfolgt, denn ich habe auch eine Fehlerhafte Darstellung der Meldungen (sieh Screenshot)
Der code dafür ist folgender:
<li data-row="3" data-col="3" data-sizex="8" data-sizey="8" class="semitransparent3d" style="overflow:auto;">
  <header>Unwetterwarnungen Niedersachsen</header>
  <div data-type="uwz" data-device="Unwetterzentrale" data-detail='["uwzLevel", "IconURL", "ShortText","LongText", "WarnTime"]' data-max="5" class="top-space"></div>
</li>
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

chris1284

es ist nicht vorgesehn short und longtext gleichzeitig zu zeigen.
das liegt daran das ich onst mit den col-x-x nicht hinkomme. das widget macht 2 col (1-5 fürs icon, 3-4 je für short als auch long).
ich habe ehrlich auch nicht gedacht dass das eine macht, wiso auch? im long steckt der short und wenn ich short wähle will ich wohl keinen langen. beide macht keinen sinn für mich (außer natürlich als popup long wenn man auf den shorttext klickt). ich überlege mal drüber....

chris1284

#51
UPDATE:
- das Problem mit der mehrfachanzeige ist gelöst, es können nun beliebig viele uwz-widgets für das selbe device auf einer siete sein (zb 2x device uwHannover mit unterschiedlichen data-detail)


NEW:

data-shttxtstyle  - hier kann man den style der schrift für den ShortText anpassen (zb big, bigger, small, ... was die ui so bietet) - im screenshot ist es small , für default einfach weg lassen
data-lngtxtstyle  - hier kann man den style der schrift für den longText anpassen (zb big, bigger, small, ... was die ui so bietet) - im screenshot ist es big , für default einfach weg lassen
data-textdivider  - hier kann man htmlcode eingeben um die trennung zwischen Short-/LongTextund der WarntTime angeben - im screenshot </br> (oben)  und 1x </br></br> (unten)  , für default einfach weg lassen

die änderungen sind im github (link post 1) zu finden!

der code des bildes


<li data-row="1" data-col="1" data-sizex="8" data-sizey="5">
<header>UWZ Hannover kutztext</header>
<div data-type="uwz" data-device="uwzHannover" data-detail='["uwzLevel", "IconURL", "ShortText","WarnTime"]' data-shttxtstyle="small" data-textdivider="</br>" data-imgsize="30" data-max="5" class=""></div>
<header>UWZ Hannover langtext ohne icon</header>
<div data-type="uwz" data-device="uwzHannover" data-detail='["uwzLevel", "LongText","WarnTime"]' data-lngtxtstyle="big" data-textdivider="</br></br>" data-imgsize="30" data-max="1" class=""></div>
</li>

lestat.le

Hallo,

bei mir werden die Umlaute im Widget nicht richtig dargestellt. In Fhem passt der Text allerdings. Musstet Ihr dafür etwas anpassen? Scheint ja ein Problem im FTUI zu sein. Habe auch bei anderen Widget das Problem und hatte es umgangen mit der Kodierung für HTML.
Hat jemand einen Anhaltspunkt für mich?

Danke und herzliche Grüße

Kuzl

Zitat von: chris1284 am 12 Januar 2017, 20:06:00
NEW:

data-shttxtstyle  - hier kann man den style der schrift für den ShortText anpassen (zb big, bigger, small, ... was die ui so bietet) - im screenshot ist es small , für default einfach weg lassen
data-lngtxtstyle  - hier kann man den style der schrift für den longText anpassen (zb big, bigger, small, ... was die ui so bietet) - im screenshot ist es big , für default einfach weg lassen
data-textdivider  - hier kann man htmlcode eingeben um die trennung zwischen Short-/LongTextund der WarntTime angeben - im screenshot </br> (oben)  und 1x </br></br> (unten)  , für default einfach weg lassen

Wunderbar, vielen Dank für die schnelle Umsetzung!

chris1284

ich überlege ob es sinnvoll war data-shttxtstyle + data-lngtxtstyle einzubauen statt data-textstyle da ja eh nur einer von beiden pro uwz-widget gedacht ist und ich eigentlich ja davon ausgehe das niemand short und long zusammen ausgeben will  :-\

moonsorrox

Zitat von: chris1284 am 13 Januar 2017, 07:23:23
eigentlich ja davon ausgehe das niemand short und long zusammen ausgeben will  :-\

Hallo chris1284, da ich sicher gemeint bin mal folgende Frage in deinem Screenshot #51 ist doch aber links der Kurztext und darunter der Longtext, oder verstehe ich das falsch..?

Solch eine Anzeige ist doch aber sinnvoll, oder nicht denn beide unterscheiden sich.. :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

chris1284

das war nur ein beispiel um zu zeigen das jetz 2 gleiche uwz-devices gehen :-) ich selber finde es dennoch nicht praktikabel, für mich. ich weiss aber nun auch das es den anwendungsfall gibt und habe auch schon eine lösung im kopf  ;) die das können wird

Ulm32b

#57
ALs Variante der von octek0815 entwickelten Popup-Lösung kann man das Icon bei nicht vorliegenden Warnmeldungen auch ausblenden.
Das geht ganz einfach mit zwei zusätzlichen Zeilen:
data-get="Unwetterzentrale:WarnCount"
data-hide="0"


Im Zusammenhang sieht das dann z.B. so aus:
<div class="inline" data-type="popup" data-mode="fade" data-height="600px" data-width="1000px">
<div data-type="push"
data-set-on="-"
data-icon=""
data-device="dFTUIdummy"
data-get="Unwetterzentrale:WarnCount"
data-hide="0"
data-warn="Unwetterzentrale:WarnCount"
style="font-size:310%; margin-top:5px; margin-right:-8px"
class="thin right-space">
<div data-type="symbol"
data-device="Unwetterzentrale"
data-get="WarnUWZLevel_Color"
data-states='["gruen","gelb","orange","rot"]'
data-icons='["fa-check-square-o","fa-exclamation-triangle","fa-exclamation-triangle","fa-exclamation-triangle blink"]'
data-colors='["lightgrey","yellow","#FD5F00","#FF0101"]'
style="font-size:95%;"
class="thin right-space"></div>
</div>
[ . . . ]


Das Design ist damit etwas aufgeräumter. Besonders genial: Bei ausgeblendetem Icon werden die benachbarten Widgets neu justiert, so dass sich immer ein harmonisches Bild ergibt. 8)

Zum wiederholten Mal bin ich fasziniert von FTUI und der Entwicklergemeinde. :) :)

Nachtrag: Seit 2.5 ist das Ausblenden folgendermaßen zu definieren:

data-hide="Unwetterzentrale:WarnCount"
data-hide-on="0"

Tutti_Bomovski

Habe versucht es einzubauen.
Kommt leider kein Ergebnis.
Was mache ich falsch?

Ulm32b

Wenn Du das Ausblenden des Buttons meinst:

Meine Code war unvollständig. Hinter [. . .] verbergen sich sich weitere Zeilen, ich weggelassen hatte, weil sie mit dem Effekt des Ausblendens nichts zu tun haben. Der benötigte Code findet sich weiter oben in diesem Thread.

Nachfolgend kommt mein vollständiger Code. Man beachte, dass man natürlich nichts sieht, wenn aktuell keine Warnmeldung vorliegt. Ggf. in UWZ (FHEM) eine andere PLZ wählen. Ebenfalls zu beachten ist, dass die in FHEM angelegte UWZ hier den Namen "Unwetterzentrale" hat.


<div class="inline" data-type="popup" data-mode="fade" data-height="600px" data-width="1000px">
<div data-type="push"
data-set-on="-"
data-icon=""
data-device="dFTUIdummy"
data-get="Unwetterzentrale:WarnCount"
data-hide="0"
data-warn="Unwetterzentrale:WarnCount"
style="font-size:310%; margin-top:5px; margin-right:-8px"
class="thin right-space">
<div data-type="symbol"
data-device="Unwetterzentrale"
data-get="WarnUWZLevel_Color"
data-states='["gruen","gelb","orange","rot"]'
data-icons='["fa-check-square-o","fa-exclamation-triangle","fa-exclamation-triangle","fa-exclamation-triangle blink"]'
data-colors='["lightgrey","yellow","#FD5F00","#FF0101"]'
style="font-size:95%;"
class="thin right-space"></div>
</div>

<div style="font-size:150%" class="dialog">
<header><div class="" style="color:grey; font-size:175%">Wetterwarnung</div></header>
<div class="top-space">
<div class="hbox center">
<div data-type="uwz" data-device="Unwetterzentrale" data-imgsize="50" data-detail='["IconURL","uwzLevel","ShortText","WarnTime"]' data-max="5" class="left-space-2x col-1-1"></div>
<div class="top-space col-1-1" data-type="image" data-refresh="900" data-width="415" data-height="415" data-url="http://www.unwetterzentrale.de/images/map/nrw_index.png"></div>
</div>
<br>
<div class="inline top-space" style="color:lightgrey">
<div data-type="link" class="round"
data-color="lightgrey"
data-border-color="#505050"
data-text-align="center"
data-width="135px"
onclick="$('.dialog-close').trigger('click');">Schließen
</div>
</div>
</div>
</div>
</div>