Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:ems:json-zugriff

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
wiki:ems:json-zugriff [2013/11/21 15:03]
juergens
wiki:ems:json-zugriff [2015/12/30 21:00] (aktuell)
Zeile 23: Zeile 23:
  
 Es werden jeweils die Daten des zuletzt empfangenen Telegramms zurück geliefert. Das EMS-Gateway hat einen Datenpuffer pro Telegrammtyp. Es werden jeweils die Daten des zuletzt empfangenen Telegramms zurück geliefert. Das EMS-Gateway hat einen Datenpuffer pro Telegrammtyp.
 +
 +==== JSON vs. JSONP ====
 +Wenn man per Javascript im Browser das GW abfragen möchte, so geht das nicht per JSON, da es aus Sicherheitsgründen nicht möglich ist, per Ajax auf eine andere Domäne als die der Webseite zuzugreifen. Mit JSONP geht das. 
 +
 +Der Callback Name ist fest mit "cb" vorgegeben. Die Antwort sieht dann so aus:
 +
 +  cb(<<JSON-Payload>>);
 +==== Noch mehr Spaß mit Javascript/JSON/POST ====
 +Versucht man per Javascript JSON zu posten, so wird bei Cross-Domain-Request ein sogenannter "preflight" Request gesendet:
 +  OPTIONS /99?t=25 HTTP/1.1
 +  Origin: http://127.0.0.1
 +  Access-Control-Request-Method: POST
 +  Access-Control-Request-Headers: content-type
 +
 +Der Browser fragt damit den Server, ob er die POST-Methode aufrufen darf. Der Server (EMS-GW) muss darauf eine definierte Antwort geben, ansonsten wird der POST Aufruf nicht gesendet.
 +
 +Die Antwort sieht so aus (ab FW > 131211):
 +  HTTP/1.1 200 OK
 +  Access-Control-Allow-Origin:*
 +  Access-Control-Allow-Headers:Content-Type
 +  Access-Control-Allow-Methods:POST,GET
 +  Content-Length:0
  
 ==== Abfrage von Daten ==== ==== Abfrage von Daten ====
Zeile 132: Zeile 154:
  
 === HK1Monitor (0x3e) === === HK1Monitor (0x3e) ===
 +=== HK1Monitor (0x48) ===
 [[http://192.168.0.2:8080/99?t=62]] [[http://192.168.0.2:8080/99?t=62]]
  
Zeile 161: Zeile 184:
  
 ==== Posten von Daten ==== ==== Posten von Daten ====
 +[[http://192.168.0.2:8080/]]
 +
 +  {
 +    "HK1RaumTmp":"22"
 +  }
 +
 +Die Werte werden einzeln d.h. ein Wert pro POST-Request gesetzt. 
 +Der JSON-Parser ist stark vereinfacht. Es sind daher nur ganze Zahlen zulässig und die Anführungszeichen sind notwendig.
 +
 +^ Feld ^ Bedeutung ^ Telegramm ^
 +| HK1RaumTag | Raumtemperatur HK1 Tag | 0b 10 3d 02 xx |
 +| HK1RaumNacht | Raumtemperatur HK1 Nacht | 0b 10 3d 01 xx |
 +| HK1BetrArt| Betriebsart HK1 | 0b 10 3d 07 xx |
 +| | | 
 +| HK2RaumTag | Raumtemperatur HK2 Tag |
 +| HK2RaumNacht | Raumtemperatur HK2 Nacht |
 +| HK2BetrArt| Betriebsart HK2 |
 +| | |
 +| WWTmp | Temperatur WW | 
 +| WWBetrArt | Betriebsart WW | 
  
wiki/ems/json-zugriff.1385042596.txt.gz · Zuletzt geändert: 2015/12/30 21:00 (Externe Bearbeitung)