jahreszeitabhängige Wetterhintergründe.

  • Mahlzeit,
    wer nicht an einem zwar klaren, aber saukalten Wintermorgen mit Palmentränden begrüsst werden möchte, kann die Wetterhintergründe einfach nochmal nach Jahreszeiten unterteilen (siehe Pfad bei <thumb>) und über die visible-states unterscheiden lassen.
    Im Beispiel habe ich ein neues item angelegt, dass nur sichtbar wird, wenn das Datum einen der Monate Oktober-Dezember enthält. (30=Oktober, etc, siehe strings.xml):

    XML
    <item id="1234">
    	<label>8</label>
    	<onclick>ActivateWindow(Weather)</onclick>
    	<icon>special://skin/backgrounds/weather.jpg</icon>
    	<thumb>$INFO[Skin.String(WeatherFanartDir)]/winter/$INFO[Weather.FanartCode]</thumb>
            <visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible>
            <visible>Skin.HasSetting(ShowWeatherFanart) + !IsEmpty(Skin.String(WeatherFanartDir))</visible>
    	<visible>substring(system.date,$LOCALIZE[30])|substring(system.date,$LOCALIZE[31])|substring(system.date,$LOCALIZE[32])</visible>
    </item>


    ... in der restlichen Zeit wird dann aus einem anderen Verzeichnis gelesen, der code dafür ist analog zu oben, den visible Zustand kann man dann negieren, also

    XML
    <visible>!Control.isVisible(1234)</visible>


    Wenn man sich noch die Tagezeit anschaut, kann man sicherlich auch noch zw. Tag und Nacht unterscheiden. (bei Wetterzuständen ohne Mond oder Sonne im icon)

    [warnbox]Unter Windows müsst Ihr bei der Pfadangabe eine backslash ("\") statt des slashs ("/") verwenden.[/warnbox]

  • ... gibt es denn die Funktion? system.date() mit Parameteraufruf? Kenne nur den string system.date, der einfach das Datum enthält.
    Das ist ja das Problem (bzw. muss man sich dran gewöhnen), dass man keine/kaum Mittel zur Verfügung hat, sondern eigentlich alles über die visible-conditions machen muss.
    (z.B. das Ausgeben eines Teilstrings geht auch nur in dem man im visible-tag prüft ob dieser vorhanden ist, und dann mit <label> ausgibt)

  • Hi freaksworth,
    finde ich ein sehr interessantes Thema. ;)

    Habe aber noch ein paar Fragen.

    Benutze momentan die Weatherfanarts Weather FanArt Pack (Backdrops with different weather conditions) im englischen Forum vorhanden. http://forum.xbmc.org/showthread.php?t=41650.

    Dort sind in ca. 40 Ordner Bilder abgelegt nach Wettersituation und Tag/Nacht. Dies wäre natürlich super, wenn man hier jetzt auch noch z.B nach Jahreszeiten weiter eingrenzen kann.

    Jetzt noch die Fragen zu Deiner oben beschriebenen Anpassungen.

    1. In welcher Datei müsste man den xml code von Dir anpassen? Hoffe dort dann auch schon die Funktionen zu finden, das nach dem jeweiligen Wetter und Tag/Nacht ein spezieller Ordner ausgewählt wird.

    2. In der Strings.xml wird dann einfach pro Monat ein Wert eingetragen, wenn ich das richtig verstehe, also maxiamal 12 Einträge für Januar bis Dezember?

    Danke Gruss Zippolighter

    Edit: Die xml habe ich in annähernd ähnlicher form in der home.xml gefunden

  • HI,
    hast Du generell die Wetterhintergründe am laufen? Dann ist es nicht mehr viel.
    Richtig, das ist eine Kopie des "Standard-"Eintrags in der home.xml, ergänzt um das "winter" im Pfad und das visible-tag.
    Mehr brauchst Du auch nicht zu machen, die Monate sind schon alle in der strings.xml vorhanden.

    f

  • So jetzt habe ich es kapiert. Hatte natürlich mal wieder vergessen das es eine system strings.xml und ein skinabhängige strings.xml gibt.
    Hatte nur in die skinabhängige reingeschaut, dort aber die Monate nicht gefunden.

    Musste eine kleine Änderung vornehmen gegenüber deinem Beispiel, da bei mir auf Windows mit dem /\ es Probleme gab.

    Bei mir lautet die Zeile

    Zitat

    <thumb>$INFO[Skin.String(WeatherFanartDir)]winter\$INFO[Weather.FanartCode]</thumb>


    War relativ einfach in der home.xml zu realisieren mit deinem Beispiel, wenn man erstmal gefunden hatte wo es stand. Allerdings hat er in der Wetteransicht myweather.xml immer noch die Sommerbilder gehabt. In der myweather.xml gibt es allerdings den Eintrag nicht, da dort auf die includes.xml verwiesen wird.

    Nachdem ich das da auch noch angepasst habe, habe ich jetzt in beiden Ansichten die gleichen Winterfanarts.

    Jetzt kommt die letzte Hürde, das wenn der Winter vorbei ist, auch wieder Frühlings, Sommer oder Herbstfanarts angezeigt werden.

    Nochmal danke für die Hilfe und das Beispiel :thumbup:

  • In meiner XBMC Live installation habe ich noch ein Problem.

    Vielleicht hat da noch jemand eine Idee

    Es werden keine Fanarts angezeigt. Im Log sehe ich dann auch folgenden falschen Pfad (Backslash vor der 26 anstatt /)

    Zitat

    GetDirectory - Error getting /home/andreas/weather/winter\26/


    Obwohl in der Home.xml dieser Eintrag vorhanden ist

    Zitat

    <thumb>$INFO[Skin.String(WeatherFanartDir)]/winter/$INFO[Weather.FanartCode]</thumb>

    Hat hierfür jemand eine Erklärung bzw weiss wie ich das anpassen kann, das es auch in der Live funktioniert.

    Danke Gruss Zippolighter

  • Ist jetzt nur ins Blaue geraten:
    Probier mal, hinter der letzten Klammer noch ein "/" zu setzen.
    $INFO[Weather.FanartCode]/</thumb>
    Die Auflösung mit den Backslashs, die die Richtung wechseln, ist schon sehr seltsam.
    /weather/winter\26/

    Das wirkt wirklich irgendwie falsch.

    Aber der Pfad ist vorhanden?

  • Habe das Problem gefunden. Hat vor der Maschine gesessen.

    Hatte meinen modifizierten Skin im live system fälschlicherweise nach /home/user/xbmc/addons kopiert gehabt. Dort wurde er dann nicht gefunden. Daraufhin habe ich ihn auch noch nach /usr/share/xbmc/addons kopiert, hier wurde er dann gefunden und konnte ausgewählt werden. In diesem Pfad habe ich dann auch die Änderungen in der Home.xml gemacht, die haben aber gar nicht gegriffen, da der Skin unter /home/user/xbmc/addons der wirklich aktive war. Nachdem ich dort den Skin gelöscht habe, hat die Ursprüngliche Änderung des \ in / sofort gegriffen und die Fanarts werden Jahreszeitbezogen angezeigt.

    Trotzdem danke für die Hilfe

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!