[GELÖST] DWDUnwetter Bindung - Lange Texte umbrechen? 2. Version

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

thomas_w

[GELÖST] DWDUnwetter Bindung - Lange Texte umbrechen? 2. Version

Beitrag von thomas_w »

Gestern war wieder eine Unwetterwarnung vom DWD ( https://www.openhab.org/addons/bindings/dwdunwetter/ ) zu sehen. Die Anzeige in der Sitemap ist allerdings unschön. Die langen Text werden abgehackt und nahezu unleserlich dargestellt (Bild Smartphone)

OpenHabWeatherMaps.JPG

Exakt diese Anfrage an OpenHAB gab es im Januar 2019 auf Basis OpenHAB 2.4 schon mal.
https://community.openhab.org/t/obvious ... -how/63193

Allerdings ohne Lösung. Gibt es dazu neues mit OH 2.5.5?

Danke und Grüße
Thomas
von Anonymous » 20. Jun 2020 10:02
Ich habe mal versucht die überlangen Text von DWD Unwetter in einer halbwegs lesbarer Form anzuzeigen. Hilfreich ist dabei, die langen Texte in eine Untergruppe zu verlagern. Der "Trick" war es anstatt Text Items nur Frame Items in dieser Untergruppe des haus.sitemap zu verwenden. Der Text wird dann als Label ausgegeben und sinnvoll umgebrochen. Mit dem zusätzlichen einbinden eigener CSS Klassen über eine Webview ist es dann möglich, die Text etwas kleiner zu gestalten. Nicht schön aber selten.

Damit die Webview keinen Platz auf dem Bildschirm einnimmt, dass ich diese durch visibility=[WarningOrt==dummy] ausgeblendet.

Bild 1:
OpenHabWeatherMaps2.JPG
Bild 2:
OpenHabWeatherMaps3.JPG
Lesbarer, aber insoweit unschön, da ich keine Idee habe die eckigen Klammer zu vermeiden. Die kommen aus der Formatierung der Item. Vielleicht hat ja noch jemand einen Tipp für mich

Hier nun der Code dazu (die :xxx: stehe für den tatsächlichen Ort)

dwdunwetter.items

Code: Alles auswählen

// Items fuer das DWD Unwetter Bindung
// Stand 19.06.2020
Group gDWDUnwetter "Weiter Details..." <none> 
Switch WarningOrt "Weather warning" <none> { channel="dwdunwetter:dwdwarnings:xxx:warning1" }
String WarningOrtServerity "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:severity1" }
String WarningOrtBeschreibung "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:description1" }
String WarningOrtAusgabedatum "Vorhersage für [%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:effective1" }
String WarningOrtGueltigAb "ab Uhrzeit [%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:onset1" }
String WarningOrtGueltigBis "bis Uhrzeit [%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:expires1" }
String WarningOrtTyp "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:event1" }
String WarningOrtTitel "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:headline1" }
String WarningOrtHoeheAb "von Höhe [%d m]" <none> { channel="dwdunwetter:dwdwarnings:xxx:altitude1" }
String WarningOrtHoeheBis "bis Höhe [%d m]" <none> { channel="dwdunwetter:dwdwarnings:xxx:ceiling1" }
String WarningOrtUrgency "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:urgency1" }
String WarningOrtInstruction "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:instruction1" }

haus.sitemap

Code: Alles auswählen

    Frame label="DWD Unwetterwarnung" item=WarningOrtTyp visibility=[WarningOrt==ON] {
        Group item=gDWDUnwetter icon="alarm" {
            Frame item=WarningOrtTitel
            Frame item=WarningOrtBeschreibung
            Frame item=WarningOrtAusgabedatum
            Frame item=WarningOrtGueltigAb
            Frame item=WarningOrtGueltigBis
            Frame item=WarningOrtInstruction
            Webview url="/static/dwdunwetter.html" icon="none" visibility=[WarningOrt==dummy]
        }
    }


dwdunwetter.html

Code: Alles auswählen

<html>
 <head></head>
 <body>

  <script type="text/javascript">
  /**
  * Ersetzt die bestehende CSS Klasse für Textitems und erlaubt längere Text mit Zeilenumbruch 
  * dwdunwetter.html wird als iframe eingebunden. Somit muss JavaScript auf die Parent CSS Klassen zugreifen
  */      
  function addStyleString(str) {
      var node = window.parent.document.createElement('style');
      node.innerHTML = str;
      window.parent.document.head.appendChild(node);
  }      
  
  addStyleString('h5 { font-size: 14px !important; font-weight: normal !important } ');
  
  // var item = window.parent.document.querySelector('[data-widget-id="000000"]')

  </script>
 </body>
</html>
    



Danke für Tipps
Thomas
Gehe zur vollständigen Antwort
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von thomas_w am 17. Jul 2020 19:28, insgesamt 2-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von udo1toni »

Nein, dazu gibt es keinen befriedigenden Ansatz.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

thomas_w

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von thomas_w »

Ich habe mal versucht die überlangen Text von DWD Unwetter in einer halbwegs lesbarer Form anzuzeigen. Hilfreich ist dabei, die langen Texte in eine Untergruppe zu verlagern. Der "Trick" war es anstatt Text Items nur Frame Items in dieser Untergruppe des haus.sitemap zu verwenden. Der Text wird dann als Label ausgegeben und sinnvoll umgebrochen. Mit dem zusätzlichen einbinden eigener CSS Klassen über eine Webview ist es dann möglich, die Text etwas kleiner zu gestalten. Nicht schön aber selten.

Damit die Webview keinen Platz auf dem Bildschirm einnimmt, dass ich diese durch visibility=[WarningOrt==dummy] ausgeblendet.

Bild 1:
OpenHabWeatherMaps2.JPG
Bild 2:
OpenHabWeatherMaps3.JPG
Lesbarer, aber insoweit unschön, da ich keine Idee habe die eckigen Klammer zu vermeiden. Die kommen aus der Formatierung der Item. Vielleicht hat ja noch jemand einen Tipp für mich

Hier nun der Code dazu (die :xxx: stehe für den tatsächlichen Ort)

dwdunwetter.items

Code: Alles auswählen

// Items fuer das DWD Unwetter Bindung
// Stand 19.06.2020
Group gDWDUnwetter "Weiter Details..." <none> 
Switch WarningOrt "Weather warning" <none> { channel="dwdunwetter:dwdwarnings:xxx:warning1" }
String WarningOrtServerity "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:severity1" }
String WarningOrtBeschreibung "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:description1" }
String WarningOrtAusgabedatum "Vorhersage für [%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:effective1" }
String WarningOrtGueltigAb "ab Uhrzeit [%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:onset1" }
String WarningOrtGueltigBis "bis Uhrzeit [%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:expires1" }
String WarningOrtTyp "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:event1" }
String WarningOrtTitel "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:headline1" }
String WarningOrtHoeheAb "von Höhe [%d m]" <none> { channel="dwdunwetter:dwdwarnings:xxx:altitude1" }
String WarningOrtHoeheBis "bis Höhe [%d m]" <none> { channel="dwdunwetter:dwdwarnings:xxx:ceiling1" }
String WarningOrtUrgency "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:urgency1" }
String WarningOrtInstruction "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:instruction1" }

haus.sitemap

Code: Alles auswählen

    Frame label="DWD Unwetterwarnung" item=WarningOrtTyp visibility=[WarningOrt==ON] {
        Group item=gDWDUnwetter icon="alarm" {
            Frame item=WarningOrtTitel
            Frame item=WarningOrtBeschreibung
            Frame item=WarningOrtAusgabedatum
            Frame item=WarningOrtGueltigAb
            Frame item=WarningOrtGueltigBis
            Frame item=WarningOrtInstruction
            Webview url="/static/dwdunwetter.html" icon="none" visibility=[WarningOrt==dummy]
        }
    }


dwdunwetter.html

Code: Alles auswählen

<html>
 <head></head>
 <body>

  <script type="text/javascript">
  /**
  * Ersetzt die bestehende CSS Klasse für Textitems und erlaubt längere Text mit Zeilenumbruch 
  * dwdunwetter.html wird als iframe eingebunden. Somit muss JavaScript auf die Parent CSS Klassen zugreifen
  */      
  function addStyleString(str) {
      var node = window.parent.document.createElement('style');
      node.innerHTML = str;
      window.parent.document.head.appendChild(node);
  }      
  
  addStyleString('h5 { font-size: 14px !important; font-weight: normal !important } ');
  
  // var item = window.parent.document.querySelector('[data-widget-id="000000"]')

  </script>
 </body>
</html>
    



Danke für Tipps
Thomas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von udo1toni »

Topp! Wo kommen die eckigen Klammern denn her?

Gesendet von meinem SM-G973F mit Tapatalk

openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

thomas_w

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von thomas_w »

Die eckigen Klammer kommen von den Items hier...

Code: Alles auswählen

String WarningOrtTitel "[%s]" <none> { channel="dwdunwetter:dwdwarnings:xxx:headline1" }
Wenn man "[%s]" zu "%s" ändert, dann gibt es einen Syntaxfehler im OpenHAB Logfile...

Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von udo1toni »

Ah. Vielleicht mit einem Leerzeichen davor? " [%s]"

Gesendet von meinem SM-G973F mit Tapatalk

openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

thomas_w

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von thomas_w »

Nein, bringt leider keine Veränderung. Die eckigen Klammern sind weiterhin da.

thomas_w

Re: DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von thomas_w »

Betrachte das Problem mal als gelöst.

Grüße
Thomas

thomas_w

Re: [GELÖST] DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von thomas_w »

Hier ist eben ein starkes Gewitter durch. Die Anzeige von DWD Unwetter ist doch sehr hilfreich.
OpenHabWeatherMaps2.JPG
Grüße
Thomas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

eric1905
Beiträge: 13
Registriert: 14. Apr 2020 12:40

Re: [GELÖST] DWDUnwetter Bindung - Lange Texte umbrechen?

Beitrag von eric1905 »

Im Browser funktioniert es bei mir, in der App allerdings nicht. Verwendest du die App und geht es bei dir?

Antworten