Frage an die Skining-Experten

  • Hallo Skinner,

    ich bin mal wieder mit der integration vom Serienplaner in Aeon Nox Silvo mod beschäftigt.
    Da die anzeige jetzt wieder 100% funktioniert wollte ich mich an die Buttons machen.
    Das meine Button in Abhängigkeit von gewählten Widget angezeigt werden funktioniert schonmal.
    Nun wollte ich die Anzeige der Button noch in eine Abhängigkeit von der Sartzeit und System-Time.

    In der wiki habe ich folgendes gefunden:

    Code
    System.Time(startTime,endTime) 	Returns true if the current system time is >= startTime and < endTime. endTime is optional. Time must be specified in the format HH:mm, using a 24 hour clock.

    was sich mir noch nicht gant erschließt, woher kommt die startTime?

    Ich möchte gern das mir wenn die startzeit der Sendung =< Systemzeit ist der button "ANSEHEN" angezeigt wird und
    wenn die Startzeit der Sendung > Systemzeit ist dann "Umschattimer setzen" bzw "Aufnahme"

    ich dachte das ich das in eine condition für visible einbauen könnte aber das schein nicht zu funktionieren..

    Code
    <visible condition="System.Time(startTime)">StringCompare(Window(Home).Property(Widget.Label),SerienPlaner)</visible>


    habe ich da einen Denkfehler?

    Gruß
    Sveni_Lee

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • jap.

    Visible can nicht conditional sein! (ist ja schon die condition :) )

    Als alternative zu "System.Time(startTime,endTime)

    Könnteste auch mit "integergreatherthan()" arbeiten.


    Schaubmal hier da werden visible conditions erklährt.

  • Hey,

    ich dachte das ich das in eine condition für

    visible haben keine condition, dein stringcompare ansich ist in dem fall dein "Conditional"..
    Alles was im visible tag steht muss ansich schon eine conditional info sein, du müsstest also dein System.Time dort unterbringen.
    Allerdings glaub ich kaum das diese Funktion überhaupt noch geht?
    Ich habe das noch nie so verwendet weil ich auch nicht ganz verstand wie, und habe stattdessen immer die Compares verwendet
    Also in der Art:

    Code
    String.IsEqual(System.Time(ss),01)

    Da ja System Time mittlerweile per Einstellung anpassbar ist wird das Wikibeispiel sicher gar nicht mehr funktionieren da System.Time
    ja nun als Ausgabe dieses Formate anzeigt das der User einstellt. Als starttime würde ich mal raten müsste da dann ein Fixer Wert kommen in der art

    System.Time(12:00)

    was aber durch die "Formatierung" von Systemtime kaum noch geht oder?

    Nur so etwas mit zweierlei "nicht fixen" Werten geht nicht immer..
    So etwas hast versucht? Also als visible Abfragen ob die Startzeit größer ist als die Systemzeit?
    Kann aber gut sein du musst das trennen und Stunden und Minuten einzeln Abfragen.

    Code
    Integer.IsGreater(System.Time(hh:mm),Startzeitlabel) + StringCompare(Window(Home).Property(Widget.Label),SerienPlaner)

    Wobei das wahrscheinlich einfacher wäre wenn so eine Art Property aus dem Addon käme das nur true ist wenn es eine der beiden Actions gibt.

    Grüße

  • okay, das macht sind...
    kann ich das anders umsetzen um die Abhängigkeit hinzubekommen...

    bspw:

    Code
    <visible>StringCompare(Window(Home).Property(Widget.Label),SerienPlaner) + System.Time(startTime)</visible>

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • hast denn ein Label für Startzeit?

    Generell funktioniert deine Wikicondition so das dort ein fester Wert vorrausgesetzt wird:
    Wenn das so mal in ein Widow setzt wird das label ab 14:58 sichtbar und bleibt es auch außer man gibts noch eine Endtime an..

    Code
    <control type="label">
    			<left>40</left>
    			<top>143</top>
    			<height>63</height>
    			<width>1200</width>
    			<align>center</align>
    			<label>xxx</label>
    			<visible>System.Time(14:58)</visible>
    		</control>

    Das klappt schon, nur ob das auch mit einem Label Funktioniert glaub ich nicht..
    Falls du eins hast versuchs doch einfach mal in so einem Testlabel..

    Die Meisten dieser Conditionals erwarten aber fixe Werte und klappen meistens nicht mit Werten die ihrerseits wieder variabel sind.

    Deswegen ja die Idee das dein Addon einfach ein Property dafür generiert.

    Grüße

  • Code
    <visible>StringCompare(Window(Home).Property(Widget.Label),SerienPlaner) + System.Time(startTime)</visible>

    "+ System.Time(startTime,endTime)" so sollte dir der Buttom nur angezeigt werden während die sendung läuft. Negiert "+ !System.Time(blablub)" wen Sie nicht läuft.


    (Sollte diese condition probleme bereiten ev. Mal mit integergreatherthan versuchen - sollte sie aber eigentlich nicht.)

  • (Sollte diese condition probleme bereiten ev. Mal mit integergreatherthan versuchen - sollte sie aber eigentlich nicht.)

    Aber das klappt doch alles nur solang ich nicht per Oberflächeneinstellung/international am Zeitformat umstelle oder?

    Ist mein Wert Startzeit 13:15 kommt der doch vom Addon, oder ändert sich der dann auch (hab kein PVR)?

    Ich kann ja auch in Kodi Einstellen das ich Einstelliges 12- Stundenformat will und daraus dann 1:15 machen in der System.Time..

    Grüße

  • Zitat von marc

    Aber das klappt doch alles nur solang ich nicht per Oberflächeneinstellung/international am Zeitformat umstelle oder?

    war eigentlich der ansicht das Kodi bei genanntem boolen unabhängig von den kodi einstellungen mit 24h arbeitet, kann mich natürlich aber auch irren (mit am pm dürfte das ganze meinem verständniss nach gar nicht tun, o.k. ausserves würde im "klartext" verglichen), bin am smart und kann so auch nicht gross testen...

    Wenn wer grad weis wo das im kodi code definiert ist könnte man auch n blick in die source werfen, n test sollte aber auch zeigen obs und wie es tut, denk ich mal.

    Der sveni wird sich schon melden wen es auch so wie beschrieben nicht tut denk ich mal ...

  • gut zu wissen ;) .
    Scheint in der Tat so zu sein das er da immer mit 24 Stunden Arbeitet.

    Ich habs nie versucht weil ich immer dachte da gibts dann sicher Probleme mit.
    Fragt sich nur noch ob er das dann auch mit "gelieferten Infos aus nem Addon" noch macht.

    Grüße

  • vielen Dank euch beiden...

    ich hatte mir jetzt mal das $INFO(System.Time) anzeigen lassen und es kam 15:26 dabei raus...
    soweit so gut. dan habe ich folgende Variante probiert:
    <visible>System.Time($INFO[Window(Home).Property(Widget.starttime)]) + StringCompare(Window(Home).Property(Widget.Label),SerienPlaner)</visible>
    das hat nicht funktioniert... lasse ich mir nur StringCompare(Window(Home).Property(Widget.Label),SerienPlaner)
    anzeigen kommt 16:30 also auch richtig...

    das hat leider auch nicht geklappt...
    <visible>Integer.IsGreaterOrEqual(System.Time,$INFO[Window(Home).Property(Widget.starttime)]) + StringCompare(Window(Home).Property(Widget.Label),SerienPlaner)</visible>

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • mal in Birgers rtv plugin geschaut?

    Der hat da ja Addon Propertys drin die man doch auch als visible nehmen könnte (keine Ahnung wie kompliziert die sind).


    !IsEmpty(Window(Home).Property(GTO.Info.isInFuture))
    !IsEmpty(Window(Home).Property(GTO.Info.isRunning))

    wäre das nicht einfacher?

    Grüße

  • Guten Morgen,

    sorry für die späte Rückmeldung aber am WE waren wieder Famiele, Haus und Garten an der Reihe...


    o.k ev. noch als Idee SystemTime(Listitem.StartTime,ListItem.EndTime), wenn er da aber Nummerische werte will get dat nicht..


    hat leider nicht funktioniert...


    mal in Birgers rtv plugin geschaut?

    Der hat da ja Addon Propertys drin die man doch auch als visible nehmen könnte (keine Ahnung wie kompliziert die sind).


    !IsEmpty(Window(Home).Property(GTO.Info.isInFuture))
    !IsEmpty(Window(Home).Property(GTO.Info.isRunning))

    wäre das nicht einfacher?


    Danke für den Denkanstoß! Genau das hab ich jetzt mal eingebaut und was soll ich sagen, es erfüllt meine Zwecke wunderbar...


    kann ich eigendlich mit dem KN-switcher auch Aufnahmen setzten?
    oder müsste man das anders umsetzten?

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • kann ich eigendlich mit dem KN-switcher auch Aufnahmen setzten?

    Hey,

    Ja, irgendwie gehen manche dieser Conditions in Kodi nur wenn man einen fixen Wert in form von Zahlen oder Text reinschreiben hat.
    Ich meine es gab da mal eine Erklärung dafür das bestimmte vergleiche bereits beim laden eines Fensters ausgeführt werden
    aber so ganz genau weiß es bei komplexeren Dingen immer niemand warum das eine geht und das andere nicht;)..

    Da muss dir Chief Birger helfen wenns um den switchtimer geht. In seinem gehts ja glaub ich, aber ob er da im Addon was für gemacht hat weiß ich nicht;)..
    soweit ich mich erinnere übergibts er ja nur die werte an die strings

    Code
    RunScript(service.kn.switchtimer,action=add,channel=$INFO[Window(Home).Property(GTO.Info.Channel)],icon=$INFO[Window(Home).Property(GTO.Info.Logo)],date=$INFO[Window(Home).Property(GTO.Info.Date)],title=$INFO[Window(Home).Property(GTO.Info.Title)])

    Die action add weiß ich aber nicht wie die im Addon Aussieht.
    Ich bin ja Phyton Idiot :) .

    Grüße

Jetzt mitmachen!

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