FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Mad am 27 Mai 2020, 19:57:28

Titel: [gelöst] Platzhalter Bild
Beitrag von: Mad am 27 Mai 2020, 19:57:28
Hallo zusammen,
ich bräuchte einen Denkanstoß für folgendes Problem.
Ich habe ein Musikwidget, was entsprechend eines readings das Coverbild lädt und in Ftui anzeigt.
Ist die Musikanlage aus, gibt es entsprechend kein reading und so wird ein unschönes "img" im Ftui als Coverbild angezeigt.
Nun möchte ich, dass, wenn die Musikanlage aus ist, ein anderes Bild (z.B. das der Musikanlage) angezeigt wird.
So sieht der code aus.

<div data-type="image" data-device="BOSE_68C90BXXXXX" data-get="art" data-size="100px" data-refresh="5" class="top-space"></div>

Und hier liegt das Platzhalterbild:
../images/bose.png

Ich habe schon manches versucht, dummy, userreadings, doifs. Komme aber leider nicht zum Ziel.

Danke für eure Hilfe
Titel: Antw:Platzhalter Bild
Beitrag von: TWART016 am 27 Mai 2020, 21:00:42
Zitat von: Mad am 27 Mai 2020, 19:57:28
Hallo zusammen,
ich bräuchte einen Denkanstoß für folgendes Problem.
Ich habe ein Musikwidget, was entsprechend eines readings das Coverbild lädt und in Ftui anzeigt.
Ist die Musikanlage aus, gibt es entsprechend kein reading und so wird ein unschönes "img" im Ftui als Coverbild angezeigt.
Nun möchte ich, dass, wenn die Musikanlage aus ist, ein anderes Bild (z.B. das der Musikanlage) angezeigt wird.
So sieht der code aus.

<div data-type="image" data-device="BOSE_68C90BXXXXX" data-get="art" data-size="100px" data-refresh="5" class="top-space"></div>

Und hier liegt das Platzhalterbild:
../images/bose.png

Ich habe schon manches versucht, dummy, userreadings, doifs. Komme aber leider nicht zum Ziel.

Danke für eure Hilfe

Wie wäre es mit einem userreading um das abzufangen. Das neue reading dann in ftui angeben.
Titel: Antw:Platzhalter Bild
Beitrag von: Mad am 27 Mai 2020, 21:11:16
Habe es mit diesem userreading erfolglos versucht
Platzhalter {ReadingsVal ("BOSE_68C90BXXXXX","art","../images/bose.png")}
Titel: Antw:Platzhalter Bild
Beitrag von: TWART016 am 27 Mai 2020, 22:36:51
Zitat von: Mad am 27 Mai 2020, 21:11:16
Habe es mit diesem userreading erfolglos versucht
Platzhalter {ReadingsVal ("BOSE_68C90BXXXXX","art","../images/bose.png")}

Wie sieht denn das Reading Platzhalter und art nun aus?

Ansonsten probiere mal die data-hide Attribute.

Titel: Antw:Platzhalter Bild
Beitrag von: Mad am 27 Mai 2020, 23:06:53
Die beiden readings sind dentisch. Wenn die Anlage an ist, ist in beiden readings eine url, wenn sie aus ist, sind beide readings leer.
Wie soll es denn mit data-hide funktionieren?
Titel: Antw:Platzhalter Bild
Beitrag von: TWART016 am 28 Mai 2020, 00:40:15
Das Ziel ist ein reading zu erhalten, welches die korrekte URL in beiden Fällen anzeigt. Vermutlich muss mit einem if in dem userreading gearbeitet werden.

In fhem Tablet UI wiki gibt es die attribute bei dem Bereich image. Es wird das Bild nicht angezeigt, wenn ein reading einen bestimmten wert hat. Ein anderes Bild wird jedoch dargestellt, sobald ein reading einen bestimmten wert besitzt. Ohne zu wissen wie deine Geräte, kann das nur schwierig gesagt werden.

Im forum gibt es etliche Themen zu data-hide. Das Prinzip ist bei allen widgets gleich.
Titel: Antw:Platzhalter Bild
Beitrag von: yersinia am 28 Mai 2020, 09:30:16
Warum nicht zwei image widgets (https://wiki.fhem.de/wiki/FTUI_Widget_Image#Attribute) mit entgegengesetztem hide-on? Es gibt doch sicher einen state o.ä., der anzeigt ob das device on oder off ist. Beispielhaft könnte das so aussehen?
<div data-type="image"
     data-device="BOSE_68C90BXXXXX"
     data-get="art"
     data-size="100px"
     data-refresh="5"
     data-hide="STATE"
     data-hide-on="!on"
     data-hide-off="on"
     class="top-space"></div> <!-- hide wenn device ist off -->
<div data-type="image"
     data-device="BOSE_68C90BXXXXX"
     data-url="link/zu/images/bose.png"
     data-size="100px"
     data-refresh="900"
     data-hide="STATE"
     data-hide-on="on"
     data-hide-off="!on"
     class="top-space"></div> <!-- hide wenn device ist on -->
Titel: Antw:Platzhalter Bild
Beitrag von: MadMax-FHEM am 28 Mai 2020, 10:02:27
Ich denke es funktioniert schon mit dem userReadings...

Allerdings ist bei dir ein "Denkfehler" drin:

Zitat
Platzhalter {ReadingsVal ("BOSE_68C90BXXXXX","art","../images/bose.png")}

Der 3te Parameter bei ReadingsVal bedeutet NICHT, dass ein Ersatzwert genommen wird, wenn das Reading LEER ist sondern wenn es NICHT DA ist.
Es ist aber ja DA, daher wird NICHT der Ersatzwert genommen sondern eben auch "LEER" ;)


Platzhalter {if(ReadingsVal("BOSE_68C90BXXXXX","art","n.a.") eq ""){return "../images/bose.png"}else{return ReadingsVal("BOSE_68C90BXXXXX","art","../images/bose.png")}}


In dem Fall sollte in Platzhalter entweder das Bose Bild kommen, wenn das Reading "art" GAR NICHT DA IST (Ersatzwert) oder eben wenn es "LEER" ist (eq "")...

Jetzt steht in Platzhalter eigentlich immer drin was du willst!?

Ob dann Platzhalter noch der richtige Begriff/Readingname ist musst du wissen ;)

Gruß, Joachim
Titel: Antw:Platzhalter Bild
Beitrag von: Mad am 28 Mai 2020, 13:44:24
Das war es! Das userreading von MadMax-FHEM funktioniert bestens und ist schön schlank!
Vielen Dank dafür. Allen anderen natürlich auch!
Titel: Antw:Platzhalter Bild
Beitrag von: MadMax-FHEM am 28 Mai 2020, 15:04:36
Naja ein "gerbochenes" Bild heißt doch, dass das Bild nicht gefunden wird, oder!?

Das meinst du doch!?

Tja, dann ist evtl. der Pfad (je nach "Umgebung") nicht korrekt oder das Bild schlicht "nicht da"...

Weil du ja "relative Pfade" angibst!?
Und da kommt es eben drauf an "wo" "man" gerade "steht"...
...ist aber nur eine "vage Vermutung", kenne TabletUI nicht, wollte nur bei dem "konkreten Problem" mit dem "Ersatzpfad" helfen... ;)

Gruß, Joachim
Titel: Antw:Platzhalter Bild
Beitrag von: Mad am 01 Juni 2020, 21:51:59
Es funktioniert, wie es soll. Hatte dem Tablet den Internetzugang verboten :-)
Titel: Antw:Platzhalter Bild
Beitrag von: MadMax-FHEM am 01 Juni 2020, 21:53:31
Na dann...

Pack doch bitte ein [gelöst] vor den ersten Post, danke.

Viel Spaß, Joachim