Saeco Wake on LAN

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Paz
    LoxBus Spammer
    • 24.02.2022
    • 203

    Saeco Wake on LAN

    Griass eich!

    Vielleicht kann es ja der eine oder andere brauchen: ich habe unsere neue Saeco (GranAroma Deluxe) mit WLAN Verbindung über Loxberry XL in die Loxone eingebunden. Einerseits kann man die Kaffeemaschine über die App einschalten (von Saeco gibt es ja nix), andererseits wecke ich sie beim "Guten Morgen" Kommando auf.

    Dazu habe ich das wol_saeco.php script im \\loxberry\XL\user erstellt:
    (allerdings muss man das user Verzeichnis erst erstellen und dem Loxberry User RWX Rechte geben.)

    PHP-Code:
    <?php
    
    function wakeOnLan($ip, $mac, $port = 9) {
        $mac = str_replace(':', '', $mac);
        $macHex = hex2bin($mac);
    
        if ($macHex === false) {
            throw new Exception("Mac address invalid. Please enter a valid mac address.");
        }
    
        // Create Magic Packet
        $packet = str_repeat(chr(255), 6).str_repeat($macHex, 16);
    
        if (!$fp = fsockopen('udp://' . $ip, $port)) {
            throw new Exception("Cannot open socket to $ip:$port");
        }
    
        $options = socket_set_option($fp, 1, 6, true);
    
        if ($options < 0) {
            throw new Exception("setsockopt error");
        }
    
        // Send magic packet
        $fwrite = fwrite($fp, $packet);
    
        if (!$fwrite) {
            throw new Exception("Cannot send magic packet");
        }
    
        fclose($fp);
    
        return true;
    }
    
    try {
        wakeOnLan('<IP oder DNS der Saeco>', '<MAC Adresse der Saeco>');  // use your target IP and MAC address here
        echo "Magic packet sent successfully!";
    } catch (Exception $e) {
        echo "Failed to send magic packet: " . $e->getMessage();
    }
    
    ?>
    
    In der Vorvorvorvorvorvorvorletzten Zeile () noch die IP oder den DNS der Saeco sowie deren MAC eintragen:
    <IP oder DNS der Saeco>
    <MAC Adresse der Saeco>

    In der Loxone Config habe ich mir einen Virtuellen Ausgang erstellt:
    Bezeichnung: Loxberry XL
    Adresse: http://<loxberryuser>:<loxberrypasswort>@loxberry

    Und dort dann einen Virtuellen Ausgang Befehl:
    Bezeichnung: Saeco WoL
    Befehl bei EIN: /XL/user/wol_saeco.php

    Der Loxberry muss natürlich im selben Subnet wie die Saeco sein, sonst wird es nix mit dem Broadcast.

    Ciao,
    Patrick

    Side note: da ich kein PHP'ler bin, habe ich mir das Script oben von ChatGPT erstellen lassen. Error handling braucht es da vermutlich nicht wirklich, stört mich aber nicht. Wenn es ein Code'ler optimieren möchte, kann er das natürlich gern machen ;-)
Lädt...