Ankündigung

Einklappen
Keine Ankündigung bisher.

curl -X POST

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • curl -X POST

    Hallo zusammen,

    ich versuche verzweifelt seit einigen Tagen den folgenden Befehl aus einer API von Openhab per PHP abzusenden, um per Button einen Status zu ändern.
    Bekomme es aber leider nicht hin.

    Code:
     
     curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "ON" "http://192.168.178.35:8080/rest/items/licht_flur"
    Dieser Code schaltet z.b eine Lampe ein oder aus......

    Kann mir jemand helfen, wie ich dies umsetzten kann?

    Vielen Dank.

    Lieben Gruß, littlekenny

  • #2
    Was heißt "bekomme es nicht hin"? Ich sehe hier keine Fehlerbeschreibung.

    Kommentar


    • #3
      Hallo,

      ja sorry.

      Ehrlich weiß ich garnicht, wie ich diesen Teil umsetzen kann, damit ich es per PHP ausführen kann.

      lieben Gruß, littlekenny


      Hiermal noch was ich gerade eben mal ausprobiert habe....Hier ändert er mir aber leider den Status nicht, sonder gibt mir die einzelnen Werte des Items zurück.

      PHP-Code:
      <form name="send" action="curl.php" method="post">
      <p>Status ändern</p>
      <p><input name="aktion" value="gesendet" type="submit" /></p>
      </form>
      <?php
      if ($_POST['send'])
      sendCommand("licht_flur""OFF");
      else
      {
      echo
      "zum Ausführen den Button drücken";
      }
      //Funktion zum absetzten des ausschaltbefehls
      function sendCommand($item$data) {
      $url "http://192.168.178.35:8080/rest/items/" $item;
      $options = array(
      'http' => array(
      'header' => "Content-type: text/plain\r\n",
      'method' => 'POST',
      'content' => $data //http_build_query($data),
      ),
      );
      $context stream_context_create($options);
      $result file_get_contents($urlfalse$context);
      return 
      $result;
      }
      ?>
      Und das erhalte ich als Ausgabe dann:

      Code:
      array(9) { ["link"]=> string(48) "http://192.168.178.35:8080/rest/items/licht_flur" ["state"]=> string(2) "ON" ["editable"]=> bool(false) ["type"]=> string(6) "Switch" ["name"]=> string(10) "licht_flur" ["label"]=> string(11) "Steckdose 1" ["category"]=> string(11) "poweroutlet" ["tags"]=> array(0) { } ["groupNames"]=> array(0) { } }

      Kommentar


      • #4
        Probier mal das hier:
        PHP-Code:
        <?php
        // Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
        $ch curl_init();

        curl_setopt($chCURLOPT_URL'http://192.168.178.35:8080/rest/items/licht_flur');
        curl_setopt($chCURLOPT_RETURNTRANSFER1);
        curl_setopt($chCURLOPT_POSTFIELDS"ON");
        curl_setopt($chCURLOPT_POST1);

        $headers = array();
        $headers[] = 'Content-Type: text/plain';
        $headers[] = 'Accept: application/json';
        curl_setopt($chCURLOPT_HTTPHEADER$headers);

        $result curl_exec($ch);
        if (
        curl_errno($ch)) {
            echo 
        'Error:' curl_error($ch);
        }
        curl_close ($ch);
        Wenn es funktioniert hast du eine Basis.
        Quelle: s. Code

        Kommentar


        • #5
          Perfekt, vielen Dank.
          damit hast du mir sehr viel weitergeholfen.

          Kommentar

          Lädt...
          X