Virtueller HTTP PUT Ausgang mit JSON Parameter

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • sarnau
    Smart Home'r
    • 23.02.2018
    • 46

    #1

    Virtueller HTTP PUT Ausgang mit JSON Parameter

    Ich habe im Forum nach einer Lösung gesucht und es scheint, das viele damit ein Problem haben – man kann zwar PUT senden, aber nur konstante Daten - keine übergebene Variable – weiß der Geier warum. Dank WireShark habe ich eine Lösung gefunden!
    1. Eine "Virtuellen Ausgang" erstellen mit tcp://192.168.178.45:2001 um z.B. auf Port 2001 zu senden. Ein HTTP Server wird Port 80 nutzen, in meinem Fall ist es 2001 (HomeGear). Man beachte: "tcp", nicht "http"!
    2. Einen "Virtuellen Ausgang Befehl" erstellen. "HTTP Methode bei EIN/AUS" habe ich auf "PUT" gesetzt, aber das sollte unwichtig sein - ist für mich aber auch zur Dokumentation. Wichtig ist der "Befehl bei EIN":
    Code:
    PUT /api/v1/set/22/1/SET_TEMPERATURE HTTP/1.1\r\nContent-Type: application/json; charset=utf-8\r\nHost: GatewayHomegear:2001\r\nConnection: close\r\nContent-Length: 18\r\n\r\n{"value":"<v.1>"}
    Wie man sieht baue ich den gesamten HTTP Request direkt zusammen. In diesem Fall bei HomeGear setze ich den MAX! Thermostaten #22, Kanal 1 auf die Temperatur, die übergeben wurde.

    Achtung: Die Packetlänge ist als 18 Bytes angegeben – hinter der letzten "}" sind noch 2 Leerzeichen. Falls der MiniServer mehrr als 4 Zeichen für die Temperatur sendet (22.5 sind genau 4), dann hoffe ich werden die Extra-Bytes einfach ignoriert. Aber die Formatierung und der Temperaturbereich sollte immer genau 4 Zeichen sein.

    Ich hoffe, das hilft euch.
Lädt...