uhh, das geht viel einfacher 
du baust eine Funktion in PHP, die das erledigt.. die fügst du am Ende deines Scripts einfach ein.. ich hab der Funktion mal default-Werte für die 3 Variablen verpasst, damit du sie nicht zwangsweise übergeben musst.
function ShellyControlRelay($ip = '192.168.178.73', $relay = 0, $mode = 'toggle') {
$url = 'http://' .$ip . '/relay/' . $relay . '?turn=' . $mode;
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'curl');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$result = json_decode(curl_exec ($ch), true);
if ($result['ison'] == true)
return true;
else
return false;
}
Alles anzeigen
statt dem
echo "<script type='text/javascript'> ToggleShelly('relay', 0, '192.168.178.73'); </script>";
echo("<br> hier");
machst du dann einfach das hier:
$rel = ShellyControlRelay();
oder wahlweise mit Übergabe der Parameter zu expliziten Schalten der IP, der Nummer des Relays und einem on/off oder toggle als Parameter
$rel = ShellyControlRelay('192.168.178.72', 0, 'on');
$rel ist als Variable anschließend true (für an) oder false (für aus), je nach Zustand des Relays.. falls du das gern weiterverarbeiten willst 
Achtung: für die Verarbeitung der Rückgabe nutze ich php-json, also im Zweifelsfall mit sudo apt-get install php-json bzw. php5-json nachinstallieren..