[Erledigt] WOL Skript für Aufnahme funktioniert nicht

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Erledigt] WOL Skript für Aufnahme funktioniert nicht

      Hi!

      Ich habe vor einiger Zeit mal dieses schöne Skript im Netzt ausfindig gemacht und minimal angepasst, so dass es unter OpenATV immer einwandfrei funktioniert.

      Dieses Skript binde ich per Cronjob ein, so dass es einmal in der Minuten ausgeführt wird. Es überprüft, ob in den nächsten Minuten eine Aufnahme ansteht und sendet dann ein Magic Packet an mein NAS. Wie gesagt funktionierte es immer einwandfrei unter OpenATV und unter VTI tut sich nichts.

      Kann sich das mal bitte einer ansehen? Vielleicht gibts hier ja einen Unterschied, was die Variablen betrifft oder so.


      Shell-Script

      1. #!/bin/bash
      2. # written by Dominik Deobald
      3. # http://blog.deobald.org/
      4. # MAC-Adresse
      5. MAC=00:1D:EC:0F:8D:C5
      6. # Start in der nächsten10 Minuten
      7. TOLERANZ=600
      8. # Zeitfenster von
      9. TIME_MIN=`date +%s`
      10. # Zeitfenster bis
      11. TIME_MAX=$(($TIME_MIN+$TOLERANZ))
      12. cat /etc/enigma2/timers.xml | grep disabled=\"0\"\ justplay=\"0\" | sed 's/ /\n/g' | grep begin | sed 's/begin="//' | sed 's/"//' | while read Startzeit; do
      13. # liegt die Zeit zwischen der Zeitspanne, dann Funktion aufrufen...
      14. if [ $Startzeit -ge $TIME_MIN ] && [ $Startzeit -le $TIME_MAX ]; then
      15. ether-wake -b $MAC
      16. fi
      17. done
      Alles anzeigen
      Danke im Voraus! ;)

      b0mb
    • Wird das NAS geweckt wennst ether-wake per Telnet ausführst ?
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Habs eben an der Ultimo4k getestet - Duo2 wird bei anstehendem Timer geweckt (Start manuell per Telnet) - das Script funktioniert .
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Also irgendwie funktioniert das Script immer noch nicht, zumindest nicht als Cronjob (es wird kein Magic Packet versendet). Warum kann ich nicht beurteilen. Vielleicht kann ja noch mal einer intensiv drüberschauen.

      Ich bin aber auch der Meinung, dass man das Ganze etwas simpler stricken kann und habe hierzu bereits in einem Linuxforum einen Thread eröffnet.

      Wenn da was bei rum kommt, werde ich das hier kundtun. ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von b0mb ()

    • Viel einfacher kann man das nicht stricken. Funktioniert das Script nur manchmal nicht oder immer nicht? Wenn nur manchmal nicht, könnte es daran liegen, dass die timers.xml erst beim beenden der GUI weggeschrieben wird und bei der Cron Abfrage deswegen nicht aktuell ist.

      Ansonsten wirst du das Script mal debuggen müssen und per Cron mit "sh -x" aufrufen.

      Eine andere Möglichkeit wäre ein kleines Plugin, welches im Grunde dasselbe macht aber in der Enigma Session läuft und deshalb genauer über die Timer Bescheid weiß.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • dass die timers.xml erst beim beenden der GUI weggeschrieben wird und bei der Cron Abfrage deswegen nicht aktuell ist.
      Habs von der Ultimo4k auf die Duo2 manuell mit gerade gesetztem Timer probiert - funktioniert .
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Habs jetzt auch mal als Cronjob probiert - funktioniert ebenfalls - Duo2 wird geweckt .
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Gib in der Schleife zur Kontrolle noch irgendwas aus - z.B. Text in eine Datei .

      Quellcode

      1. echo "OK" >> /tmp/test.txt
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • So, hier ist dann mal das Python Skript, dass der User seahawk1986 in einem anderen Board in 10 Minuten fertig hatte.


      Quellcode

      1. #!/usr/bin/env python
      2. from __future__ import print_function
      3. import socket
      4. import struct
      5. import time
      6. import xml.etree.ElementTree as ET
      7. MAC_ADDRESS = "70:85:C2:30:DE:65"
      8. wake_ahead = 600 # 10 minutes
      9. # from http://code.activestate.com/recipes/358449/
      10. def wake_on_lan(macaddress):
      11. """ Switches on remote computers using WOL. """
      12. # Check macaddress format and try to compensate.
      13. if len(macaddress) == 12:
      14. pass
      15. elif len(macaddress) == 12 + 5:
      16. sep = macaddress[2]
      17. macaddress = macaddress.replace(sep, '')
      18. else:
      19. raise ValueError('Incorrect MAC address format')
      20. # Pad the synchronization stream.
      21. data = b'FFFFFFFFFFFF' + (macaddress * 20).encode()
      22. send_data = b''
      23. # Split up the hex values and pack.
      24. for i in range(0, len(data), 2):
      25. send_data += struct.pack('B', int(data[i: i + 2], 16))
      26. # Broadcast it to the LAN.
      27. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
      28. sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
      29. sock.sendto(send_data, ('<broadcast>', 7))
      30. with open('/etc/enigma2/timers.xml') as f:
      31. xml = ET.parse(f)
      32. if any([
      33. True for t in xml.findall('timer') if (
      34. (int(t.attrib.get('disabled', 1)) == 0 and int(t.attrib.get('justplay', 1)) == 0)
      35. and (abs(int(t.attrib.get('begin')) - time.time()) <= wake_ahead))
      36. ]):
      37. print("wakup for timer in near future")
      38. wake_on_lan(MAC_ADDRESS)
      Alles anzeigen
      Dieses funktioniert auch bei mir einwandfrei, eingebunden als Cronjob.

      Vielleicht sollte man das mal irgendwo anpinnen, denn dieses Thema mit NAS vor der Aufnahme starten kommt ja regelmässig in allen E2 Foren dieses Planeten wieder auf. :D