Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:ems:json-zugriff

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

wiki:ems:json-zugriff [2014/03/17 14:50]
juergens
wiki:ems:json-zugriff [2015/12/30 21:00]
Zeile 1: Zeile 1:
-===== Zugriff über JSON ===== 
- 
-==== Auswahl des Telegramtyps über die URL ==== 
- 
-Die JSON Schnittstelle ist eine spezielle Seite. Das gewünschte Telegramm wird über den Parameter t=xx ausgewählt, wobei xx der Telegrammtyp in dezimal ist. 
- 
-Beispiel: 
- 
-  http://192.168.0.2:8080/99?t=24 
-   
-Liefert das Telegramm mit dem Typ 24 (0x18), also UBAMonitorFast. 
- 
-Unterstützt werden: 
- 
-^ Telegrammtyp \ hex ^ Telegrammtyp \ dez ^ Name ^ 
-| 0x06 | 6 | RCTime | 
-| 0x14 | 20 | UBABetriebszeit | 
-| 0x18 | 24 | UBAMonitorFast | 
-| 0x19 | 25 | UBAMonitorSlow | 
-| 0x34 | 52 | UBAMonitorWW | 
-| 0x3e | 62 | HK1Monitor | 
-| 0xA3 | 163 | RCOutdoorTemp | 
- 
-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 ==== 
-=== RCTime (0x06) === 
-[[http://192.168.0.2:8080/99?t=6]] 
- 
-  { 
-    "h":6, 
-    "mi":13, 
-    "s":7, 
-    "j":2013, 
-    "m":11, 
-    "d":6, 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| h | Stunde | 
-| mi | Minute| 
-| s | Sekunde| 
-| j | Jahr | 
-| m | Monat| 
-| d | Tag| 
-   
-=== UBABetriebszeit (0x14) === 
-[[http://192.168.0.2:8080/99?t=20]] 
- 
-  { 
-    "BetrZt":2040577 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| BetrZt | Betriebszeit (min) | 
-   
-=== UBAMonitorFast (0x18) === 
-[[http://192.168.0.2:8080/99?t=24]] 
- 
-  { 
-    "VlTmpSoll":21, 
-    "VlTmp":25.2, 
-    "RlTmp":24.9, 
-    "KslLstMax":100, 
-    "KslLst":21, 
-    "WWTmp":51.2, 
-    "WDruck":1.2, 
-    "FlStr":14.1, 
-    "SC":"0Y", 
-    "FC":204, 
-    "Gs":0, 
-    "Gbl":0, 
-    "Znd":0, 
-    "PmpKsl":0, 
-    "PmpZrk":0, 
-    "DWgVnt":0 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| VlTmpSoll | Vorlauftemperatur Soll | 
-| VlTmp | Vorlauftemperatur Ist | 
-| RlTmp | Rücklauftemperatur Ist | 
-| KslLstMax | Kesselleistung Maximal | 
-| KslLst | Kesselleistung | 
-| WWTmp | Warmwassertemperatur | 
-| WDruck | Wasserdruck | 
-| FlStr | Flammenstrom | 
-| SC | Servicecode | 
-| FC | Fehlercode | 
-| Gs| Wasserdruck | 
-| Gbl| Wasserdruck | 
-| Znd | Wasserdruck | 
-| PmpKsl | Kesselpumpe | 
-| PmpZrk | Zirkulationspumpe | 
-| DWgVnt | Dreiwegeventil auf WW | 
- 
-=== UBAMonitorSlow (0x19) === 
-[[http://192.168.0.2:8080/99?t=25]] 
- 
-  { 
-    "AnzBrSt":27659, 
-    "BetrZtHz":1288200, 
-    "BetrZtKp":1405641, 
-    "PumpMod":100, 
-    "AusTmp":3.2, 
-    "KslTmp":21.0 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| AnzBrSt | Anzahl Brennerstarts| 
-| BetrZtHz | Betriebszeit Heizen (min) | 
-| BetrZtKp | Betriebszeit  Komplett (min)| 
-| PumpMod | Pumpenmodulation %| 
-| AusTmp | Aussentemperatur | 
-| KslTmp | Kesseltemperatur | 
- 
-=== UBAMonitorWW  (0x34) === 
-[[http://192.168.0.2:8080/99?t=52]] 
- 
-  { 
-    "AnzWWBer":10217, 
-    "BetrZtWW":117441, 
-    "WWTmpSoll":50, 
-    "WWTmp":51.2 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| AnzWWBer | Anzahl Warmwasserbereitungen | 
-| BetrZtWW | Betriebszeit Warmwasserbereitung (min)| 
-| WWTmpSoll | Temperatur Warmwasser Soll| 
-| WWTmp| Temperatur Warmwasser| 
- 
-=== HK1Monitor (0x3e) === 
-=== HK1Monitor (0x48) === 
-[[http://192.168.0.2:8080/99?t=62]] 
- 
-  { 
-    "RaumTmpSoll":20.0, 
-    "RaumTmp":24.5, 
-    "RaumTmpDelta":0.02 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| RaumTmpSoll | Raumtemperatur Soll | 
-| RaumTmp | Raumtemperatur | 
-| RaumTmpDelta | Raumtemperatur Änderung (K/min) | 
- 
-=== RCOutdoorTemp (0xa3) === 
-[[http://192.168.0.2:8080/99?t=163]] 
- 
-  { 
-    "AusTmpGed":11.2 
-  } 
- 
-^ Feld ^ Bedeutung ^ 
-| AusTmpGed| Aussentemperatur gedämpft | 
- 
-==== Spezielle Werte ==== 
- 
-Auf dem EMS Bus werden spezielle Werte genutzt, wenn ein Meßwert fehlt. Für vorzeichenbehaftete 2-Byte Werte (Temperatur) ist das die 0x8000, die dann als -3276.8 erscheint. Für vorzeichenlose 1-Byte Werte (Druck) ist das 0xff, welches zu 25.5 wird. 
- 
- 
-==== 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 ^ Telegram ^ 
-| HK1RaumTag | Raumtemperatur HK1 Tag | 0b 10 3d 02 xx | 
-| HK1RaumNacht | Raumtemperatur HK1 Nacht | 
-| HK1BetrArt| Betriebsart HK1 | 
-| | |  
-| HK2RaumTag | Raumtemperatur HK2 Tag | 
-| HK2RaumNacht | Raumtemperatur HK2 Nacht | 
-| HK2BetrArt| Betriebsart HK2 | 
-| | | 
-| WWTmp | Temperatur WW |  
-| WWBetrArt | Betriebsart WW |  
  
wiki/ems/json-zugriff.txt · Zuletzt geändert: 2015/12/30 21:00 (Externe Bearbeitung)