WOL mit der SymBox per PHP Modul möglich?

Hallo,

ich hatte früher IPS auf einem Raspberry betrieben. Für WOL meiner Windows-PCs habe ich Etherwake mit dem Befehl exec(„sudo etherwake MAC-Adresse“); verwendet, was super geklappt hat.

Dieser Befehl funktioniert nicht mehr, da ich nun eine Symbox habe. Wie kann ich WOL mit der Symbox nutzen?

Ich habe hier im Forum schon ein Skript getestet, leider ohne Erfolg

Grüße

Dann frag doch in Thema?
Vielleicht hat dort jemand die Lösung für dich?
Michael
PS: die Kategorie PHP Module war ja total falsch :wink:

Habe das über ein Script mit UDP-Socket gelöst.
Kann den Code morgen mal raus suchen. Vielleicht kann ich auch schnell ein Modul draus bauen :wink:

@firebuster: das wäre super:)

Das Skript, welches ich hier aus dem Forum getestet habe, und leider nicht funktioniert:

$mac = "00E04C603126"; //MAC Adresse des einzuschaltenden Gerätes
 $ip = "255.255.255.255"; // Broadcast adresse

wake($ip,$mac,15);//Port kann irgendwas sein

function wake($ip, $mac, $port)
{
  $nic = fsockopen("udp://" . $ip, $port);
  if($nic)
  {
    $packet = "";
    for($i = 0; $i < 6; $i++)
       $packet .= chr(0xFF);
    for($j = 0; $j < 16; $j++)
    {
      for($k = 0; $k < 6; $k++)
      {
        $str = substr($mac, $k * 2, 2);
        $dec = hexdec($str);
        $packet .= chr($dec);
      }
    }
    $ret = fwrite($nic, $packet);
    fclose($nic);
    if($ret)
      return true;
  }
  return false;
}

Ja das hatte ich auch genutzt, aber das ging ab einer bestimmten Version nicht mehr.

Ich hatte es glaube ich dann mit einem UDP-Socket gelöst :wink:

Ah OK.
Hast du da ein Skript für oder wie hast du es lösen können?

Ja ich schau später mal, bin noch unterwegs

1 „Gefällt mir“
<?php
// Konfigbereich :

$mac = "AABBCCDDEE"; //MAC Adresse des Gerätes
$socketId = 12345;  // Wird nach der ersten Ausführung ausgegeben



/*
###Socket wird automatisch erstellt ###

Socket Einstellungen: 

Sende-Host: 255.255.255.255
Sende-Port: 9
Empfangs-Host: Auto 
Empfangs-Port: Egal

*/

if(!IPS_InstanceExists($socketId))
{
 
$InsID = IPS_CreateInstance("{82347F20-F541-41E1-AC5B-A636FD3AE2D8}");
IPS_SetName($InsID, "UDP-Socket (WOL)"); 

IPS_SetProperty($InsID, "Open", true); 
IPS_SetProperty($InsID, "BindPort", 9); 
IPS_SetProperty($InsID, "Host", "255.255.255.255"); 
IPS_SetProperty($InsID, "Port", 9); 
IPS_ApplyChanges($InsID);
echo "Neues Socked-ID: "+ $InsID;
}




// Ab hier nichts mehr ändern
################################################################################

$packet = "";
for($i = 0; $i < 6; $i++)
{
    $packet .= chr(0xFF);
}
for($j = 0; $j < 16; $j++)
{
    for($k = 0; $k < 6; $k++)
    {
        $str = substr($mac, $k * 2, 2);
        $dec = hexdec($str);
        $packet .= chr($dec);
      }
}
if(USCK_SendText($socketId, $packet))
	return true;
else 
    die; // Fehler im Script anzeigen
	

Besten Dank:)
Ich habe die MAC Adresse eingegeben und beim Ausführen kommen folgende Meldungen:

Warning: Address already in use in /mnt/data/symcon/scripts/44559.ips.php on line 31
Warning: A non-numeric value encountered in /mnt/data/symcon/scripts/44559.ips.php on line 32
29700
Warning: Instanz #12345 existiert nicht in /mnt/data/symcon/scripts/44559.ips.php on line 55

Zeile 31: IPS_ApplyChanges($InsID);
Zeile 32: echo "Neues Socked-ID: "+ $InsID;
Zeile 55: if(USCK_SendText($socketId, $packet))

Wo könnte der Fehler sein?

Grüße

Bzw. der Port scheint schon belegt zu sein?

Nach der ersten Ausführung musst du 12345 natürlich mit der ID des Sockets überschreiben

Ich habe die ID des Sockets eingetragen., es passiert aber nichts.
Fehlermeldung:
Warning: Socket ist nicht verbunden in /mnt/data/symcon/scripts/44559.ips.php on line 55

Habe bei mir das Modul DeviceMonitor im Einsatz, das kann auch WOL, vielleicht ist das ja etwas für dich?

Ist der Socket denn aktiv?
Da UDP Verbindungslos ist kann es eigentlich nur daran liegen :thinking:

Scheint offen zu sein

Setzt den Haken bei ‚Aktiviere Broadcast‘.
Michael

hat leider auch nicht geholfen:(

habe es gerade noch mal ausprobiert. Es scheint mittlerweile nicht mehr zu funktionieren :frowning:

Schade! Also WOL mit Symbox ist wohl nicht:(
Aber danke für deine Mühe:)

Eigentlich müsste das bequem gehen. Hast du die richtige Zieladress passend zu deinem Netz verwendet? Siehst du ein (kaputtes) Paket mittels Wireshark auf einem anderen Rechner oder mit TCPDUMP (oder einem ähnlichen Tool) direkt auf der Symbox?