Shelly Pro 4PM Digest Auth funktioniert nicht mit PHP-CURL

  • Ich versuche mit PHP CURL die Digest Authentication hinzukriegen.

    Wenn ich CURLOPT_HTTPAUTH => DIGEST und CURLOPT_USERPWD => "admin:pw" setze funktioniert es nicht. Habe auch die Optionen CURLOPT_SSL_VERIFYPEER und CURLOPT_UNRESTRICTED_AUTH getestet, ebenfalls keine Besserung. Habe auch Username und Passwort mittels der Optionen CURLOPT_USERNAME und CURLOPT_PASSWORD.

    Wenn ich mir die Authentifierung mittels der Anleitung auf https://shelly-api-docs.shelly.cloud/gen2/Overview/CommonDeviceTraits selber zusammenstelle und die hashes selbst berechne und abschicke stürzt das Shelly Gerät einfach ab :cursing:

    Laut der Anleitung und anderer Userberichte scheint es in der Konsole ganz normale mit curl --digest --user "admin:pw" zu funktionieren, wieso ist das bei PHP Curl nicht der Fall?

    Gibt es bald ein Update sonst muss ich mir leider eine andere Steuerung suchen.

  • TCasanova 30. November 2021 um 17:22

    Hat das Label von Shelly 4Pro auf Shelly PRO 4PM geändert.
  • Da ich die letzten Tage erfolglos damit verbracht habe, mein erstes Plus 1PM mit curl einzubinden und ich vermutlich nicht der letzte und einzige bin der damit Probleme hat, hier meine Erkenntnis:

    Der identische Aufruf auf der Kommandozeile: curl -s --digest -u admin:xxxx http://192.168.xxx.xxx/rpc/Shelly.GetStatus führt im ersten Fall zu einer HTTP/1.1 401 Unauthorized Fehlermeldung, im zweiten Fall zur erwarteten Ausgabe des Status.

    Nicht funktionierendes Setup: curl Version 7.29.0 auf einem CentOS 7

    Funktionierendes Setup: curl 7.61.1 auf einem CentOS Stream 8

    Es liegt wohl an der alten curl-Version.