Hi Oliver,
ich gehe leider über die Cloud.
<?php
$debug = false; // Debug-Modus für zusätzliche Ausgaben
// Access Token und Device ID für SmartThings-API
$Access_Token = 'xxxxxxxxx'; // Authentifizierungstoken für die SmartThings-API
$Device_ID_1 = 'xxxxxxx'; // Gerät-ID für die LED im Bad
// Überprüfung des aktuellen Status und Festlegen des neuen Befehls
$status = GetValueBoolean(54752); // Abrufen des aktuellen Status des Geräts (true = ein, false = aus)
$status = $status ? "on" : "off"; // Wenn Status true ist, setze $status auf "on", andernfalls auf "off"
// Befehl für das Ein-/Ausschalten des Geräts basierend auf dem Status
$Message = '
{
"commands": [
{
"component": "main",
"capability": "switch",
"command": "'.$status.'"
}
]
}';
// Zusätzliche Befehle für die Steuerung des Dimmwerts und der Farbe (derzeit ungenutzt)
$Message0 = '
{
"commands": [
{
"component": "main",
"capability": "switchLevel",
"command": "setLevel",
"arguments": [100]
}
]
}';
$Message1 = '
{
"commands": [
{
"component": "main",
"capability": "colorControl",
"command": "setHex",
"arguments": []
}
]
}';
// URL zur SmartThings-API für den ersten Befehl aufbauen
$URL_1 = 'https://api.smartthings.com/v1/devices/'.$Device_ID_1.'/commands';
// Debug-Ausgabe der URL, falls aktiviert
if ($debug) echo $URL_1;
// HTTP-Header für die Anfrage vorbereiten
$Header = array(
'Authorization: Bearer ' . $Access_Token, // Authentifizierung
'Content-Type: application/json' // Inhaltstyp auf JSON setzen
);
// CURL-Setup und Ausführung des Befehls für das erste Gerät
$ch_1 = curl_init();
curl_setopt($ch_1, CURLOPT_URL, $URL_1);
curl_setopt($ch_1, CURLOPT_HTTPHEADER, $Header);
curl_setopt($ch_1, CURLOPT_POSTFIELDS, $Message); // Nachricht mit dem Ein-/Ausschaltbefehl übergeben
curl_setopt($ch_1, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch_1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_1, CURLOPT_HEADER, true);
$Response = curl_exec($ch_1); // Befehl ausführen und Antwort speichern
curl_close($ch_1); // CURL-Verbindung schließen
// Überprüfung, ob der Befehl erfolgreich gesendet wurde
if (preg_match("/200 OK/i", $Response)) {
$Notification = "Befehl ".$Message." erfolgreich gesendet"; // Erfolgsnachricht
if ($debug) echo $Notification; // Debug-Ausgabe, falls aktiviert
} else {
$Notification = "ERROR: Befehl nicht gesendet"; // Fehlernachricht
if ($debug) echo $Notification; // Debug-Ausgabe, falls aktiviert
}
// Zweites Gerät für die LED im Bad
$Device_ID_2 = 'xxxxxxxx'; // Gerät-ID für das zweite Gerät (LED im Bad Mama)
$URL_2 = 'https://api.smartthings.com/v1/devices/'.$Device_ID_2.'/commands';
// Debug-Ausgabe der URL, falls aktiviert
if ($debug) echo "\r\n\r\n".$URL_2;
// CURL-Setup und Ausführung des Befehls für das zweite Gerät
$ch_2 = curl_init();
curl_setopt($ch_2, CURLOPT_URL, $URL_2);
curl_setopt($ch_2, CURLOPT_HTTPHEADER, $Header);
curl_setopt($ch_2, CURLOPT_POSTFIELDS, $Message); // Gleicher Ein-/Ausschaltbefehl wie für das erste Gerät
curl_setopt($ch_2, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch_2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_2, CURLOPT_HEADER, true);
$Response = curl_exec($ch_2); // Befehl ausführen und Antwort speichern
curl_close($ch_2); // CURL-Verbindung schließen
// Überprüfung, ob der Befehl erfolgreich gesendet wurde
if (preg_match("/200 OK/i", $Response)) {
$Notification = "Befehl ".$Message." erfolgreich gesendet"; // Erfolgsnachricht
if ($debug) echo $Notification; // Debug-Ausgabe, falls aktiviert
} else {
$Notification = "ERROR: Befehl nicht gesendet"; // Fehlernachricht
if ($debug) echo $Notification; // Debug-Ausgabe, falls aktiviert
}
Viele Grüße
Oli