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
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.
Habe es mit diesem userreading erfolglos versucht
Platzhalter {ReadingsVal ("BOSE_68C90BXXXXX","art","../images/bose.png")}
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.
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?
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.
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 -->
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
Das war es! Das userreading von MadMax-FHEM funktioniert bestens und ist schön schlank!
Vielen Dank dafür. Allen anderen natürlich auch!
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
Es funktioniert, wie es soll. Hatte dem Tablet den Internetzugang verboten :-)
Na dann...
Pack doch bitte ein [gelöst] vor den ersten Post, danke.
Viel Spaß, Joachim