Zwei lokale Netzwerke, an unterschiedlichen Orten, Geräte können sich sehen, 192.168.150.xx, an einem Ort Fritzbox am anderen Sonicwall Firewall. Jeweils lokaler Webserver und die Shellys jeweils im gleichen IP-Range. Unterschiedliche Shellys - Gen.2/Gen.3
An ersten Ort werden die zwei cURLs ohne Fehler hintereinander ausgeführt und liefern die Daten.
Am anderen erhalte ich nur für die erste cURL Abfrage ein Ergebnis, für die zweite erhalte ich seltsamerweise den 401 Fehler.
//zur Fehlersuche zzgl. error, errno und http
$url_info = 'http://<Shelly-IP>/rpc/Shelly.GetDeviceInfo';
$url_webhook = 'http://<Shelly-IP>/rpc/Webhook.List';
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch1, CURLOPT_USERPWD,"username:passwort");
curl_setopt($ch1, CURLOPT_URL,$url_info);
curl_setopt($ch1, CURLOPT_HEADER, 1);
curl_setopt($ch1, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch1, CURLOPT_TIMEOUT, 5);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
$ch1_ergebnis = curl_exec($ch1);
$ch1_http = curl_getinfo($ch1, CURLINFO_HTTP_CODE);
$ch1_curlerror = curl_error($ch1);
$ch1_curlerrno = curl_errno($ch1);
curl_close($ch1);
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch2, CURLOPT_USERPWD,"username:passwort");
curl_setopt($ch2, CURLOPT_URL,$url_webhook);
curl_setopt($ch2, CURLOPT_HEADER, 1);
curl_setopt($ch2, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch2, CURLOPT_TIMEOUT, 5);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
$ch2_ergebnis = curl_exec($ch2);
$ch2_http = curl_getinfo($ch2, CURLINFO_HTTP_CODE);
$ch2_curlerror = curl_error($ch2);
$ch2_curlerrno = curl_errno($ch2);
curl_close($ch2);
Alles anzeigen