FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: M.Piet am 25 April 2018, 14:57:57

Titel: TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: M.Piet am 25 April 2018, 14:57:57
Hallo Zusammen,

ich habe je nach Kalenderwoche ein anderes State von einem DOIF:
DOIF_Kinder_KW:Ungerade-Woche
DOIF_Kinder_KW:Gerade-Woche


Jetzt möchte ich in TabletUI je nach State ein anderes Bild anzeigen:

DOIF_Kinder_KW:Ungerade-Woche -> www.einetesturl.de/pics/ungeradewoche.jpg
DOIF_Kinder_KW:Gerade-Woche -> www.einetesturl.de/pics/geradewoche.jpg


Ich habe mir alle Widgets soweit angeschaut, aber ich finde für meine Anforderung nicht das richtige Widget. Jemand eine Idee wie ich das umsetzten könnte?

Hintergrund: Meine Kids haben im wöchentlichen Wechsel eine kleine tägliche Aufgabe zu erledigen. Ständig zoffen sie sich, wer in dieser Woche dran ist. Und ich vergesse es auch.... Dazu habe ich bereits (dank der Hilfe im Forum) einen DOIF eingerichtet, der mir ein entsprechenden State liefert.
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: Ulm32b am 25 April 2018, 17:11:31
Siehe https://wiki.fhem.de/wiki/FTUI_Widget_Symbol (https://wiki.fhem.de/wiki/FTUI_Widget_Symbol)
und dort data-hide.
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: Loetkolben am 25 April 2018, 21:22:45
Hi,
ich habe so etwas für die Anzeige eines Stundenplans (Woche A und Woche B) gemacht.
Der Stundenplan ist als PNG gespeichert, für die gerade und ungerade Woche liegt also jeweils eine Datei auf meinem Web-Server.
Ein DOIF setzt (Sonntag-Abend um 20:00Uhr) die URL des entsprechenden PNG, das dann über TabletUI angezeigt wird.


define di_Stundenplan_URL DOIF ( [20:00|So] and (POSIX::strftime("%V", gmtime time) &1) == 1)
(set Stundenplan_URL http://<SERVER>/stundenplan/Stundenplan_A.png)
DOELSE
(set Stundenplan_URL http://<SERVER>/stundenplan/Stundenplan_B.png)



define Stundenplan_URL dummy



<li data-row="4" data-col="4" data-sizex="5" data-sizey="2">
  <header><div data-type="label" class="large">Stundenplan</div></header>
    <div data-type="image"
        data-device="Stundenplan_URL"
        data-size="65%"
        data-get="STATE">
    </div>
</li>


Ist nicht alls auf meinem Mist gewachsen!


   Andreas
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: M.Piet am 26 April 2018, 08:15:35
@Ulm32b
Danke für deinen Vorschlag. Aber das wird nicht gehen. Ich kann nur Icons in Abhängigkeit des Readings anzeigen lassen, keine Bilder.

@Loetkolben
Ja, das hört sich rund an. :) Das werde ich so umsetzten. Ich danke dir. :)
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: dt2510 am 26 April 2018, 08:38:35
Ich hab' sowas ähnliches mit dem Hintergrundbild gemacht (zeigt ein Bild entsprechend dem aktuellen Wetter an), vielleicht kannst du das anpassen ....

widget_weatherbackground.js
var Modul_weatherbackground = function () {

    function init() {

        me.elements = $('div[data-type="' + me.widgetname + '"]', me.area);
        me.elements.each(function (index) {
            var elem = $(this); 
            elem.initData('get', 'STATE');
            me.addReading(elem, 'get');
        });
    }

    function update(device, reading) {     

        me.elements.filterDeviceReading('get', device, reading)
        .each(function (index) {
           var elem = $(this);
           var value = elem.getReading('get').val;
           if (value) {
               document.body.style.backgroundImage = "url(weatherimages/" + value + ".jpg)";
           }
        });
}

    var me = $.extend(new Modul_widget(), {
        widgetname: 'weatherbackground',
        init: init,
        update: update,
    });

    return me;
};


Aufruf in TabletUI
<div data-type="weatherbackground" data-device="Wetter" data-get="code"></div>

In meinem Fall ist "code" im data-get "0" bis "47" und die zugehörigen Dateien müssen im Verzeichnis "weatherimages" liegen und heißen entsprechend 1.jpg bis 47.jpg
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: drhirn am 26 April 2018, 09:27:42
Zitat von: Loetkolben am 25 April 2018, 21:22:45

define di_Stundenplan_URL DOIF ( [20:00|So] and (POSIX::strftime("%V", gmtime time) &1) == 1)
(set Stundenplan_URL http://<SERVER>/stundenplan/Stundenplan_A.png)
DOELSE
(set Stundenplan_URL http://<SERVER>/stundenplan/Stundenplan_B.png)



define Stundenplan_URL dummy



Wenn du cmdState (https://commandref.fhem.de/commandref_DE.html#DOIF_cmdState) verwendest, brauchst du nicht mal mehr den Dummy.
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: M.Piet am 26 April 2018, 11:11:37
@drhirn
Genau. So habe ich es gemacht. Und auf den dummy kann ich auch verzichten. :)

define DOIF_Kinder_KW DOIF ([00:01] and $week % 2)
attr DOIF_Kinder_KW cmdState http://www.www.meine_domain.net/files_fhem/hannah.jpg|http://www.meine_domain.net/files_fhem/lara.jpg


TabletUI
    <div data-type="image"
        data-device="DOIF_Kinder_KW"
        data-size="85%"
        data-get="STATE">
    </div>
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: Loetkolben am 26 April 2018, 11:48:04
... das sieht ja wesentlich schlanker aus, probiere ich auch mal.

Danke.
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: M.Piet am 26 April 2018, 13:06:27
Ist nicht von mir. Habe ich hier aus dem Forum. :)
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: Ulm32b am 26 April 2018, 21:58:54
Zitat von: M.Piet am 26 April 2018, 08:15:35
@Ulm32b
Danke für deinen Vorschlag. Aber das wird nicht gehen. Ich kann nur Icons in Abhängigkeit des Readings anzeigen lassen, keine Bilder.
Wirklich? data-hide geht doch auch bei image.
Titel: Antw:TabletUI: Bild A oder Bild B anzeigen, in Abhängigkeit eines Readings
Beitrag von: M.Piet am 27 April 2018, 07:51:38
Zitat von: Ulm32b am 26 April 2018, 21:58:54
Wirklich? data-hide geht doch auch bei image.
OK, das weiß ich jetzt nicht. Ich hatte es auf deinen Vorschlag "FTUI Widget Symbol" bezogen, und dort kann ich nur Symbole, aber keine Bilder erscheinen lassen.