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
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();
}
?>
<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 ;-)