Ein/Aus Status Widget

  • Die GUI kann ich schnell hinzumachen. Die Files sind schon dabei. Das hatte ich bis jetzt nicht gemacht, weil es erstmal getestet werden sollte.

    Wie willst Du dann den wechsel hinbekommen? Bei True wird ja eine Grafik angezeigt. Wenn aber die VAR auf False steht, dann wird doch die Grafik nicht angezeigt.

    Wie geht das dann ohne Compare auf false?

    Danke!
    Dachte, dass ich dann im Visibletag ein true bzw. flase zu stehen habe. So würde dann nur Skin.String(Window(Home).Property(SkinHelperPING.server1)) reichen.

    Ich habe eben in einem PR von Ronny gelesen, dass die Strings True und False, sowie on, off seit Krypton nicht mehr in Bool umgewandelt werden.
    Selbst wenn ich jetzt ein True, False Ausgebe, wird das nicht erkannt, da es weiterhin Strings sind und keine Bool.

    Ich denke es ist dann einfacher ich setze dann weiterhin on und off und im Skin braucht es dann ein Compare.

    Dann scheint sich das oben geschriebene erledigt zu haben. ;)

    Super, werde ich dann zu Hause mal testen.
    Melde mich dann nochmals. Kann aber etwas dauern.
    bg

    Edit: "off" wird eigentlich nicht benötigt. wenn nicht "on", dann ist es ja "off" ;)
    Edit2: man muss ja eine IP angeben, da ich es noch nicht getestet habe, muss ich mal fragen: dachte das Aufwecken geht über die MAC Adresse?!

  • Das Service Script ping nur die Server an und dient dann zur Visualisierung innerhalb des Skins. Das Script ist nicht dafuer da die Server wieder aufzuwecken.

    Sowas könnte auch hinzugefügt werden. Aber es ist ja nicht gesagt, dass alle Server die angepingt werden, auch immer laufen sollen.

    Oder versteh ich das falsch?

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Das Service Script ping nur die Server an und dient dann zur Visualisierung innerhalb des Skins. Das Script ist nicht dafuer da die Server wieder aufzuwecken.

    Sowas könnte auch hinzugefügt werden. Aber es ist ja nicht gesagt, dass alle Server die angepingt werden, auch immer laufen sollen.

    Oder versteh ich das falsch?


    Ja sorry meine Fehler. Hast natürlich Recht!
    Habe zu viele Dinge auf einmal gemacht ;)

  • @_Andy_

    Läuft (fast). ;)
    Wärst du noch bereit eine Einstellung in die GUI einzubauen?
    Ich würde gerne die 20 Sekunden Abfrage anpassen wollen.
    Und könntest du ein Property erstellen welches mir ausgibt wieviele IPs angegeben sind.
    Ich möchte gerne bei mehr als 1 angegebener IP eine andere Anzeige in meinen SKin einbauen.
    Danke!
    bg

    Edit: im Prinzip würde es reichen, wenn der Ping abgefragt wird, sobald man ins Hauptmenü wechselt.
    Vielleicht so 4x im Abstand von 5 Sekunden. Ich habe nämlich festgestellt, dass sich das Property nicht aktualisiert, wenn man eine IP hinzufügt oder wenn die Zeit (20sek?) abgelaufen ist.
    Getestet unter Windows

  • Vielen Dank für das Script. Auf Windows funktioniert das einwandfrei, auf Linux/Libreelec leider nicht. Im Log steht folgendes:

    09:44:37.147 T:3875533728 NOTICE: PING Helper:creationflags is only supported on Windows platforms


    Es erfolgt keine Ausgabe. Damit läufts bei mir unter Linux:

    Python
    def Ping(self,hostname,kodiproperty,onpix,offpix): 
     response = os.system("ping -c 1 " + hostname)
     #xbmc.[definition='1','0']log[/definition]("DEBUG PING Helper:"+ str(response), level=xbmc.LOGNOTICE)
     if response == 0:
               WINDOW.setProperty(kodiproperty,onpix)
     else:
               WINDOW.setProperty(kodiproperty,offpix)


    Suche noch Ideen, wie ich die Ausgabe visualisieren kann. Wie habt ihr das gelöst? Kleine Icons? :)

  • Suche noch Ideen, wie ich die Ausgabe visualisieren kann. Wie habt ihr das gelöst? Kleine Icons?

    Ich habe mir ein kleines Icon gepastelt und lasse es als "button" anzeigen. Als Label soll dann die Anzahl der Server angezeigt werden die online sind.

    Code: Home.xml
    <control type="button">
    	<width>40</width>
    	<height>42</height>
    	<label>$INFO[Window(Home).Property(SkinHelperPING.servercount)]</label>
    	<texturefocus border="5">ServerIcon.png</texturefocus>
    	<texturenofocus border="5">ServerIcon.png</texturenofocus>
    	<visible>Integer.IsGreater(Window(Home).Property(SkinHelperPING.servercount),0)</visible>
    	<visible>System.HasAddon(service.skinhelper.PING)</visible>
    </control>

    Die Funktion mit der Anzahl ist noch nicht im Addon enthalten.
    bg

    Edit: fehler im code korrigiert

  • Hallo, hier eine neue Version https://drive.google.com/open?id=0B0jBz…aTM2eEE3NnZYVzQ
    Es gibt jetzt 3 weitere Propertys :

    SkinHelperPING.servercount = Anzahl der eingetragenden Server
    SkinHelperPING.serveron = Anzahl der Server die on sind
    SkinHelperPING.serveroff = Anzhal der Server die off sind

    Der Bug mit Linux sollte auch behoben sein.

    Zusaätzlich kann noch die Zeit im Menü eingestellt werden. Zu beachten ist aber, dass die Zeit nicht zu klein sein sollte. Ein Ping dauert mindestens 1 Sekunde bis das Ergebnis vorliegt.

    Obwohl ich die IPs jedesmal Abfrage scheint Kodi/Python zu cachen. Die neuen Werte die im Menu eingestellt werden, werden nur nach einem neustart des Services angenommen. Also wenn mann die Werte verändert hat, einmal

    auf disbale/enable.

    Ich schau mir das mal an ob das noch anders geht.


    Bitte einmal testen.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Einmal editiert, zuletzt von _Andy_ (13. Februar 2017 um 16:26)

  • Also ein 1. Test war erfolgreich.
    Muss aber noch testen ob sich mein Icon korrekt aktualisiert.
    Vielen Dank!!

    Zum Aktualisieren beim öffnen des Hauptmenü nochmal:
    Meinst du du könntest noch sowas wie ein manuelles refresh einbauen?
    Das würde ich dann per onload in die Home.xml legen und die Pingzeit müsste dann auch ausgeschaltet werden können?
    Natürlich nur wenn du Zeit und Lust hast. ;)

  • Das einfachste ist es das Service Script in ein 'normales' Script umzuwandeln. Dann kannst Du es dann aufrufen wenn Du es brauchst. Es wird nur einmalig dann ausgeführt.
    Teste mal bitte: https://drive.google.com/open?id=0B0jBz…QWE4VjVnZ3RNTDA
    Entferne vorher das Verzeichnis vom service.skinhelper.PING aus den Add-on Verzeicnis und starte Kodi neu. Dann installiere das neue script.skinhelper.PING mittels der ZIP.

    Trage jetzt wieder die IPs in den Einstellungen ein.

    In dem Skin kannst Du jetzt mittels

    <onload condition="System.HasAddon(script.skinhelper.PING)">RunScript(script.skinhelper.PING)</onload>

    das Script ausführen. Nach dem ausführen stehen Dir dann die Propertys im Skin zu Verfügung.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Das einfachste ist es das Service Script in ein 'normales' Script umzuwandeln. Dann kannst Du es dann aufrufen wenn Du es brauchst. Es wird nur einmalig dann ausgeführt.
    Teste mal bitte: https://drive.google.com/open?id=0B0jBz…QWE4VjVnZ3RNTDA
    Entferne vorher das Verzeichnis vom service.skinhelper.PING aus den Add-on Verzeicnis und starte Kodi neu. Dann installiere das neue script.skinhelper.PING mittels der ZIP.

    Trage jetzt wieder die IPs in den Einstellungen ein.

    In dem Skin kannst Du jetzt mittels

    <onload condition="System.HasAddon(script.skinhelper.PING)">RunScript(script.skinhelper.PING)</onload>

    das Script ausführen. Nach dem ausführen stehen Dir dann die Propertys im Skin zu Verfügung.

    Danke!
    Werde es mal testen.
    Kann man es vielleicht mit deinem Addon verknüpfen?
    bg

  • Es können beide installiert und auch betrieben werden. Nur bringt der Aufruf des scriptes ja nichts, wenn der Service im Hintergrund läuft.

    Ein Service ist etwas was ständig im Hintergrund läuft und ein Script ist eher etwas was nur einmalig gestartet wird. Vermutlich kann das Script auch so 'missbraucht' werden, dass daraus auch ein Service wird.
    Aber dafür gibt es ja diese Unterschiedlichen Scriptarten.

    Von daher sollte man sich entscheiden ob der Service ständig rennt oder nur bei Bedarf ausgeführt wird. Das Resultat ist wohl in diesem Fall dasselbe. Evtl ist das Script vieleicht ein wenig Resoucenschonender.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Das ganze entwickelt sich ja immer weiter :P

    Also unter Windows läuft alles ohne Problem,unter Linux kann ich es leider nicht ausprobieren da ich auf den HTPCs noch Kodi 16.1 im Einsatz hab.
    Die Icons werden jetzt auch direkt beim start schon angezeigt. Also ich für meinen Teil bin wunschlos glücklich damit!

  • @blauesgruen Genau. Das Script und somit der/die Pings wird nur einmal ausgeführt. Danach beendet sich das script und somit auch kein Ping mehr. Du kannst auch in das Kodi [definition='1','0']log[/definition] schauen und einfach mal aus dem Homemenü raus und wieder rein. Jedes mal wenn das Script gestartet wird, steht in dem Kodi [definition='1','0']log[/definition] ein Eintrag script.skinhelper.PING :start und ein par Sekunden später dann script.skinhelper.PING :stop.
    Dann weisst Du auch wieviel Sekunden das Script braucht und kannst sehen wann und wie oft das Script ausgeführt wird.

    @Mc-Raw Das freut mich. Unter Linux sollte es aber auch laufen.

    Wenn Ihr noch Wünsche oder Ideen habt einfach mitteilen. Mal sehen was ich umsetzten kann.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Wäre es Interessant aus dem Script die Server mittels WOL aufzuwecken? Also z.B das Script mit einem Parameter aufrufen und somit dann z.B Server 1 aufwecken. Damit könnete man in den Skin ein Button integrieren der dann den Server aufwecken kann. Somit könnte mann in dem Skin wählen, wenn ein server off ist den aufzuwecken.

    Also nicht automatisch, sondern wenn man möchte.

    Wenn sowas interessant ist, kann ich das noch einbauen.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Dann hätte man alles unter einem Dach. Hab ich auch schon überlegt.
    Idealerweise könnte man dann noch Namen vergeben. zB. IP 1 = Filmkiste. Den Namen kann man dann per Property abgreifen.

    Edit:
    @_Andy_
    Das Script ist in der Funktion perfekt für mich. Dadurch, dass es in der Home.xml aufgerufen wird, muss das Script nach Änderung der Einstellungen auch nicht neugestartet werden.
    In den Settings kannst du noch die Sekunden rausnehmen.

    Wie wirst du das mit dem WOL angehen? Ließt dein Script dann die MAC Adresse aus oder muss man die eintragen?

Jetzt mitmachen!

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