Ein/Aus Status Widget

  • Die Sekunden nehme ich raus.
    Namen eintragen hatte ich dann eh vor.

    Es is möglich die MAC über die ARP Table auszulesen aber das dann so im Setup des Add-ons zu übernhemen ist nicht so einfach denke ich. Ich müsste aus dem Setup des Add-ons eine Action auslösen oder beim anpingen der IP die MAC auslesen. Ich weiss jetzt nicht on man überhaupt aus dem Setup eine Action auslösen kann oder ob das nur alles passive ist.

    Ich schau mir das mal an ob da was Sinnvoll umzusetzen ist.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Hallo. Hier eine neue Version. Bitte einmal testen. https://drive.google.com/open?id=0B0jBz…QWE4VjVnZ3RNTDA
    Am besten wäre es das vorhandene Verzeichnis script.skinhelper.PIN im Add-on Order zu löschen und Kodi neustarten.
    Danach das neue zip installieren. Es sollte jetzt noch eine Abhängigkeit installiert werden, da ich das Framework pyxbmct nutze.


    Jetzt in das Setup des Addons und die Server mit Namen, IP und MAC eintragen.


    Es gibt 3 Möglichkeiten:

    a) Das Script wird ohne Parameter aufgerufen:

    <onclick>RunScript(script.skinhelper.PING)</onclick>

    So wie gehabt dadurch werden die Server angeping und die Properties im Skin bereitgestellt
    b) Das Script wird mit dem Parameter wol1 - wol5 aufrufen
    <onclick>RunScript(script.skinhelper.PING,wol1)</onclick>

    Es wird der Server mit der MAC der Menü unter Server1 hinterlegt ist aufgeweckt.
    c) Das Script wird mit dem Parameter menu aufgerufen
    <onclick>RunScript(script.skinhelper.PING,menu)</onclick>
    Es öffnet sich ein Modales Fenster. Dort werden alle Server mit Namen aufgelistet. Hinter den Server ist ein Smybol welches anzeigt ob der Server aktiv ist oder nicht.
    Jetzt kann der jeweilige Server selektiert werden und nach einem Enter, wird der Server aufgeweckt.
    Escape oder Back schliesst das Fenster

    Bitte das einmal so testen. Bei Fehlern bitte melden. Wenn die Funktion so OK ist, kann ich evtl noch grafisch etwas verbessern. Evtl irgendwo Grafiken einbauen oder so.
    Da brauche ich Eure Vorschläge.
    Danach schaue ich mir dann evtl an wie die MAC automatisch eingetragen werden kann.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Linux habe ich nicht getestet. Dazu fehlt auch die binary für den wol. Das kann im Moment auch nicht funktionieren. Für mich war erstaml die Funktion unter Windows interessant.

    Hatte ich vergessen. Man kann jetzt auch den Aufruf in die keyboard.xml legen. Dadurch kann das interaktive Fenster jederzeit von einem keyboard shortcut aufgerufen werden um einen Server aufzuwecken.
    Das geht auch wenn ein Film läuft. Ich rufe so über meine Fernbedienung das Statusfenster von meiner Homeautomation auf.
    Z.B <nine>RunScript(script.skinhelper.PING,menu)</nine>
    Bei Tastendruck auf 9 geht das Fenster zum aufwecken der Server auf.

    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_ (15. Februar 2017 um 03:41)

  • Linux habe ich nicht getestet. Dazu fehlt auch die binary für den wol. Das kann im Moment auch nicht funktionieren. Für mich war erstaml die Funktion unter Windows interessant.

    Hatte ich vergessen. Man kann jetzt auch den Aufruf in die keyboard.xml legen. Dadurch kann das interaktive Fenster jederzeit von einem keyboard shortcut aufgerufen werden um einen Server aufzuwecken.
    Das geht auch wenn ein Film läuft. Ich rufe so über meine Fernbedienung das Statusfenster von meiner Homeautomation auf.
    Z.B <nine>RunScript(script.skinhelper.PING,menu)</nine>
    Bei Tastendruck auf 9 geht das Fenster zum aufwecken der Server auf.

    bin gerade noch am testen.
    was mir aber gerade aufgefallen ist: du nutzt ein kleines Programm für WOL. Besser und auch unter Linux verwendbar wäre die Kodi eigene Funktion. Im Skin mache ich das per WakeOnLan(MAC-Adresse). Das sollte doch auch im Addon nutzbar sein oder?
    Ansonsten kann ich per Property die MAC auslesen (?) und das mit dem Befehl verknüpfen.

    Code
    WakeOnLan($INFO[Window(Home).Property(SkinHelperPING.mac1)]

    Ist nur ma so eine Idee, kenn aber nicht die Möglichkeiten, die du hast.
    bg

    Edit: eine Info, dass der gewählte Server gestartet wird wäre auch von Vorteil, sonst denkt man es passiert ja gar nicht.
    Gut wäre auch, wenn man mit "back" aus dem Menü rauskommt, nicht nur mit "ESC".
    Habe keine ESC Taste auf meiner Fernbedienung, nur Back.
    Wenn ich jetzt die Back Taste zu einer ESC Taste mache, dann kann ich aber in den Untermenüs nicht vernünftig navigieren.

    Edit2: Wenn man keinen Namen vergibt, was wird dann im WOL-Menü angezeigt?
    Wenn ich die Mac Adresse oder die IP im Skin verwenden möchte brauche ich auch noch ein Property dafür ;)

    P.S.: mal sehen wann du genug von meinen Wünschen hast ;)

  • So, eine neue Version :) https://drive.google.com/open?id=0B0jBz…QWE4VjVnZ3RNTDA

    a) WOL umgestellt auf das interne Kodi WOL. Sollte dann auch mit Linux gehen
    b) Zusätzliche Skin Propertys
    SkinHelperPING.mac1-5

    SkinHelperPING.ip1-5
    SkinHelperPING.servername1-5

    c) Beim aufwecken aus dem Menü gibt es eine Notification mit dem Servernamen welcher geweckt wird

    d) Das schliessen des WOL Menü ist mit dem Kodievent Back Taste (ACTION_NAV_BACK) verbunden

    e) Wenn kein Name hinterlegt ist, wird zwar der Button eingeblendet aber ohne Namen, es ist aber keine Function hinterlegt und somit beim Tastendruck kommt auch keine Notification

    Evtl kann das noch Optimiert werden, das kein Button dann gezeigt wird. Das ist aber dann ein Problem mit der Navigation. Muss ich mal sehen.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Unter LibreELEC haut was nicht hin. Ich bekomme mein Icon nicht angezeigt.
    Bin mir zu 99℅ sicher, dass es nicht an meinem Code liegt.
    Gucke aber nochmal.

    Edit: ich kann nix finden. Er gibt bei keinem Property etwas aus. Habe mir ein paar testlabel gebastelt.
    Übrigens fehlt hinter "Server" in der Notification ein Leerzeichen. Bei mir steht dann "Wake up ServerNAS".

    Edit2: BACK geht auch nicht

  • hab mich mal per ssh eingeloggt.

    Code
    # ping -c 1 192.168.0.250
    PING 192.168.0.250 (192.168.0.250): 56 data bytes
    64 bytes from 192.168.0.250: seq=0 ttl=64 time=1.047 ms
    
    
    --- 192.168.0.250 ping statistics ---
    1 packets transmitted, 1 packets received, 0% packet loss
    round-trip min/avg/max = 1.047/1.047/1.047 ms
  • Hier bitte nochmals schauen. https://drive.google.com/open?id=0B0jBz…QWE4VjVnZ3RNTDA
    Die BackTaste im Menü sollte jetzt gehen. Zusätzlich gibt es aber noch ein Button 'Close'

    Ich habe mal die Propertys mac1,ip1 und servername1 in ein Label ausgeben lassen. Bei mir werden alle Properties angezeigt. Denkt daran, dass das Script mindestens einmal ohne Parameter gestartet werden muss.
    Vorher gibt es auch keine Properties.

    Zu den WOL unter Linux kann es evtl daran liegen, das als root gestartet werden muss. Zumindest habe ich so etwas im Kodi Wiki gelesen. Wenn es unter Windows geht, dann sollte es auch unter Linux gehen. Außer eine Berechtigung fehlt unter Linux.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • teste ich gleich mal. das script wird immer 1x ausgeführt, wenn ich ins home gehe, daran sollte es also nicht liegen.
    denke es liegt an der art und weise wie der ping ausgelöst wird. deine parameter kennt libreelec nicht.
    bg

    Edit: Aufwecken von Windows und LibreELEC klappt 1A.
    Nur die Anzeige der Propertys unter LibreELEC will nocht nicht. Meine Labels zeigen nix an.

    so sieht es in meiner Home.xml aus:
    Onload + Testlabels. Unter Windows kein Problem. Groß- / Kleinschreibung müsste auch passen.

  • Ok. Wenn alle Properties nicht angezeigt werden, dann muss das Script in den try,except laufen. Dann müsste aber auch im Kodi [definition='1','0']log[/definition] irgendwo eine Fehlermeldung auftauchen.
    Im Kodi [definition='1','0']log[/definition] müsste dann irgendwo stehen PING Helper:Fehlermeldung

    Ansonsten kann ich mir das nicht erklären, da es in Windows ja geht.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Ok. Wenn alle Properties nicht angezeigt werden, dann muss das Script in den try,except laufen. Dann müsste aber auch im Kodi [definition='1','0']log[/definition] irgendwo eine Fehlermeldung auftauchen.
    Im Kodi [definition='1','0']log[/definition] müsste dann irgendwo stehen PING Helper:Fehlermeldung

    Ansonsten kann ich mir das nicht erklären, da es in Windows ja geht.

    Ja, ich hab zwar keine Ahnung von Python, aber seltsam finde ich es auch.
    Im LOG steht nix ;(
    Du hast keinen Zugang zu Linux bzw LibreELEC?
    Es bringt dir auch nix, wenn du auf meinen ODroid per SSH zugreifen könntest, du brauchst ja die Kodioberfläche?
    bg

  • Aha. Dann ist es klar. Der shell execute findet den Befehl ping nicht. Dadurch kommt es sofort beim ersten Ping Versuch zu einem Fehler und der überspringt alle anderen Befehler und somit auch das setzten der Properties.
    Das kann mehrere Gründe haben.

    a) Der Befehl Ping ist tatsächlich nicht vorhanden.
    b) Der user worunter Kodi gestartet wird darf auf den Ping nicht zugreifen. Wenn das der Fall ist muss mittels visudo dem user die Berechtigung erteilt werden. (Liegt schon länger zurück das ich das mlal gemacht habe. Ist lieder auch abhängig von der Deistro)
    c) evtl ist unter dem user wo Kodi gestartet wird der Pfad zu dem Befehl ping nicht gesetzt. Das könnte mttels export korriegiert werden.

    Da ich keine LibreELEC habe, kann ich jetzt auch nicht herrausfinden wo genau das Problem ist.
    Im Prinzip müsste man sich mittels ssh einloggen und in den user mittels su wechseln und mal versuchen zu pingen. Am besten das Ping mit einem Python script simulieren um auch den Pyhthon interpreter mit einzubeziehen.
    Dann sollte man erkennen können wo das Problem ist und dann beheben.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Aha. Dann ist es klar. Der shell execute findet den Befehl ping nicht. Dadurch kommt es sofort beim ersten Ping Versuch zu einem Fehler und der überspringt alle anderen Befehler und somit auch das setzten der Properties.
    Das kann mehrere Gründe haben.

    a) Der Befehl Ping ist tatsächlich nicht vorhanden.
    b) Der user worunter Kodi gestartet wird darf auf den Ping nicht zugreifen. Wenn das der Fall ist muss mittels visudo dem user die Berechtigung erteilt werden. (Liegt schon länger zurück das ich das mlal gemacht habe. Ist lieder auch abhängig von der Deistro)
    c) evtl ist unter dem user wo Kodi gestartet wird der Pfad zu dem Befehl ping nicht gesetzt. Das könnte mttels export korriegiert werden.

    Da ich keine LibreELEC habe, kann ich jetzt auch nicht herrausfinden wo genau das Problem ist.
    Im Prinzip müsste man sich mittels ssh einloggen und in den user mittels su wechseln und mal versuchen zu pingen. Am besten das Ping mit einem Python script simulieren um auch den Pyhthon interpreter mit einzubeziehen.
    Dann sollte man erkennen können wo das Problem ist und dann beheben.

    Dass ich den Fehler nicht gesehen habe ... ;(
    Nach gut.

    Wie bekomme ich raus unter welchem User Kodi gestartet wird?
    Wenn ich mich per root einlogge, dann kann ich ping nutzen ... siehe Post weiter oben.

Jetzt mitmachen!

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