Curl liefert keine Rückgabe

Hallo,

ich möchte über ein API einen Befehl absetzen. Den Code dazu hab ich mir mit Postman generiert.
Der API-Befehl funktioniert in der curl-Variante in der Shell einwandfrei, nur als php-Script aus Symcon nicht. Es kommt kein Output aus der $response-Variable.

Das hier ist der Code (mit einigen Namensänderungen aus Sicherheitsgründen):

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://192.168.1.110/api/v3/as/applications/APP/devices/DEVICE/down/push',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_SSL_VERIFYHOST => false,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
	"downlinks": [{
		"frm_payload": "AQABLA==",
		"f_port": 1
	}]
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/js',
    'User-Agent: my-integration/my-integration-version',
    'Authorization: BearerSCHLÜSSEL' ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Kann mir jemand sagen, was das Problem sein könnte?

Viele Grüße

Dirk

Vor dem Close kannst du mit curl_error($curl) versuchen die Fehlermeldung auszugeben.
Eventuell hilft das bei der Fehlersuche.
Du hast auch nur den Check des Hostnamen mit CURLOPT_SSL_VERIFYHOST abgeschaltet, aber die Prüfung des Zertifikats ist noch an.
Eventuell wird dem Zertifikat nicht vertraut (selbst signiert?).
Dann auch CURLOPT_SSL_VERIFYPEER auf false setzen.
Michael
PS: wenn du gleich in der Scripte Kategorie schreibst, kannst du das PHP im Titel weg lassen und hast mehr Platz für einen aussagekräftigen Titel.

Danke, das war das Problem. Ich wollte tatsächlich die Verifizierung des Zertifikats ausschalten und hab anscheinend die Doku nicht richtig gelesen.

Die payload landet jetzt in der Api vom Things Stack, alles gut.

Vielleicht zur Ergänzung:

Mit dem Stack lese ich einen Lorawan-Temperatursensor aus, der am Abgasrohr meines Kaminofens hängt. Beim Unterschreiten einer Grenztemperatur bekomme ich über meinen Lautsprecher die Nachricht Holz nachzulegen.
Am Anfang lief das Ganze mit einer minütlichen Datenaktualisierung aus dem Sensor, das geht natürlich auf die Batterie. Wenn der Ofen also aus ist, setze ich die Aktualisierungsrate auf einen längeren Zeitraum. Wenn der Ofen wieder heizt, wird wieder auf kürzere Aktualisierung umgeschaltet. Das geht über ein Post in die API für den Sensor-Downlink.

Dirk