Json Kommunikation

Link

Vorheriges Thema Nächstes Thema Kein Verzeichnis für dieses Thema  

 

Ab Server Version 7.9

 

Der Xhome Server kann per Json Telegramme gesteuert und ausgelesen werden.

 

Der Server Socket wird unter "System" - "Netzwerk" - "Json Server aktivieren" aktiviert. Der Port kann unter "Json Server Port" geändert werden. Der Standard Port ist 2688.

 

Die Kommunikation erfolgt über einen TCP IP Socket.

 

Jedes Telegramm wird mit einem CR am Ende versendet. (Windows "\r\n" , Mac und Linux "\n" ).

 

 

 


 

Alle Apartments auslesen:

 

Json Befehl:

 

       {  "command":  {  "name": "get_apartments" } }

 

Json Antwort:

 

-apartments Array[  name , id  ]

 

 { "apartments": [   {"name":"Wohnung 1","id":1} ,  {"name":"Wohnung 2","id":2} ,  {"name":"Wohnung 3","id":3}  ]  }

 

 

Die Apartments (Wohnungen) werden unter "Konfiguration" - "Apartments" erstellt. Für jedes Apartment können Räume erstellt werden, als Untergruppen.

 

Die Datenpunkte werden den Apartments zugeordnet.  Wird ein zugeordneter Datenpunkt ausgewählt, so kann der Raum zugeordnet werden.

 


 

Einzelnes Apartment auslesen:

 

Json Befehl:

 

  {  "command":  {  "name": "get_apartment_config" , "id": "1" } }

 

Json Antwort:

 

- apartment_config

 - apartment   -  name , id

 - rooms  Array[ name , id]

 - datapoints Array[  apartment_id , room_id , datapoint_name , datapoint_id , commands Array[ command_type , command_name , command_parameter (optional bei Werte) ] , states Array[ state_unit , state_name , state_type , state_value]   ]

 

{

 "apartment_config":

 {

  "apartment":

         {

                 "name":"Wohnung 1",

                 "id":1

         },

 

 "rooms":

 [

         {

                 "name":"Wohnzimmer",

                 "id":1

         },

 

         {

                 "name":"Bad",

                 "id":2

         },

 

         {

                 "name":"Küche"

                 ,"id":3

         }

 ],

 

 "datapoints":

 [

         {

                 "apartment_id":1,

                  "room_id":1,

                 "datapoint_name":"Licht Wohnzimmer",

                 "datapoint_type":"SWITCH:LICHT",

                 "datapoint_id":10,

 

                  "commands":

                 [

                         {

                                 "command_type":"OnOffType",

                                 "command_name":"SWITCH_ON"

                         },

 

                         {

                                 "command_type":"OnOffType",

                                 "command_name":"SWITCH_OFF"

                         }

                 ]

                 ,"states":

                 [        

                         {

                                 "state_unit":"",

                                 "state_name":"STATE",

                                 "state_type":"OnOffType",

                                 "state_value":"true"

                         }

                 ]

         },

 

         {

                 "apartment_id":1,

                 "room_id":2,

                 "datapoint_name":"Licht Bad",

                 "datapoint_type":"SWITCH:LICHT",

                 "datapoint_id":11,

 

                 "commands":

                 [

                         {

                                 "command_type":"OnOffType",

                                 "command_name":"SWITCH_ON"

                         },

 

                         {

                                 "command_type":"OnOffType",

                                 "command_name":"SWITCH_OFF"

                         }

                 ]

 

                 ,"states":

                 [

                         {

                                 "state_unit":"",

                                 "state_name":"STATE",

                                 "state_type":"OnOffType",

                                 "state_value":"true"

                         }

                 ]

         }

 ]

    }

 

}

 

 

Kommando Typen ( command_typ )

 

 

StringType

PercentType

DecimalType

OnOffType

 

 

Status Typen ( state_typ )

 

 

StringType

PercentType

DecimalType

OnOffType

 

Datenpunkt Typen ( datapoint_type )

 

 


 

 

Alle Datenpunkt Typen auslesen:

 

Json Befehl:

 

       {  "command":  {  "name": "get_datapoint_types" } }

 

Json Antwort:

 

-datapoint_types Array[  type  ]

 

 { "datapoint_types": [   {"type":"SWITCH:LICHT"} ,  {"type":"TRACER_MANUAL:LICHT"} ,  {"type":"TRACER_AUTO:LICHT"}  ]  }

 

 

SWITCH:LICHT

TRACER_MANUAL:LICHT

TRACER_AUTO:LICHT

DIMMER

JALOUSIE_SIMPLE

KNX_JALOU_SIMPLE

KNX_JALOU_SIMPLE_POS

JALOUSIE

KNX_JALOU

KNX_AUTO_JALOU

CONTACT_STATUS:WINDOW

CONTACT:WINDOW

CONTACT_STATUS:DOOR

CONTACT:DOOR

TRICONT_STATUS:WINDOW

TRICONT:WINDOW

TRICONT_STATUS:DOOR

TRICONT:DOOR

CONTACT2BIT_STATUS:WINDOW

CONTACT2BIT_STATUS:DOOR

ANALOGUE_STATUS:LUX

ANALOGUE:LUX

ANALOGUE_STATUS:WIND

ANALOGUE:WIND

ANALOGUE_STATUS:REGEN

ANALOGUE:REGEN

ANALOGUE_STATUS:TEMP

ANALOGUE:TEMP

ANALOGUE_STATUS:WATT

ANALOGUE:WATT

TRACER_MANUAL:DEVICE

TRACER_AUTO:DEVICE

TRACER_MANUAL:DOORTRACER

RGB_LIGTH

RGB3BYTE

TADEVICE

AUDIOSWITCH

FIRESWITCH

ANALOGUE_STATUS:WATT

ANALOGUE:WATT

ANALOGUE_STATUS:WATT

ANALOGUE:WATT

RTR

KLIMA

ANALOGUE_STATUS:LEVEL

ANALOGUE:LEVEL

ANALOGUE_STATUS:FLOW

ANALOGUE:FLOW

ANALOGUE_STATUS:VOLTAGE

ANALOGUE:VOLTAGE

ANALOGUE_STATUS:GAS

ANALOGUE:GAS

ANALOGUE_STATUS:FREQ

ANALOGUE:FREQ

ANALOGUE_STATUS:HUMIDITY

ANALOGUE:HUMIDITY

ANALOGUE_STATUS:RAINFALL

ANALOGUE:RAINFALL

ANALOGUE_STATUS:AMP

ANALOGUE:AMP

ANALOGUE_STATUS:TARGET

ANALOGUE:TARGET

FAULT

STATESWITCH

TRACER_AUTO_MODE

TRACER_AUTO_MODE_LI

SNMP

ZENTRAL_ON_LICHT

ZENTRAL_OFF_LICHT

ZENTRAL_ON_GERAETE

ZENTRAL_OFF_GERAETE

ZENTRAL_ON_JALOUSIE

ZENTRAL_OFF_JALOUSIE

ZENTRAL_STOP_JALOUSIE

ANALOGUE_STATUS:CO2

ANALOGUE:CO2

ANALOGUE_STATUS:dB

ANALOGUE:dB

ANALOGUE_STATUS:MBAR

ANALOGUE:MBAR

ANALOGUE_STATUS:ANGLE

ANALOGUE:ANGLE

1BITSCENE

RTR2

ALERT

MOTION

WATERING

BELL

STRING

ANALOGUE_STATUS:KWH

ANALOGUE:KWH

ANALOGUE_STATUS:PROZENT

ANALOGUE:PROZENT

DUNST

DPDATE

VENTILATOR

EDIMAX_PLUG

GARAGE

KLIMA_KNX

ekey

RTR_BIT

BOOL_STATE

BOOL_ON

BOOL_OFF

BOOL_ON_OFF

BOOL_ON_OFF_STATE

NUMBER_STATE

NUMBER_SET

NUMBER_SET_STATE

STRING_STATE

STRING_SET

STRING_SET_STATE

BOOL_SET_NUMBER

BOOL_SET_STRING

BOOL_VALUE_STATE

BOOL_SET_DATE

 

 


 

  {  "command":  {  "name": "send_command" , "datapoint_id": "209", "command_name": "SWITCH_ON" } }

  {  "command":  {  "name": "send_command" , "datapoint_id": "209", "command_name": "SET_VALUE", "command_parameter": "60.0" } }

  {  "command":  {  "name": "send_command" , "datapoint_id": "209", "command_name": "set_attribute","attribute": "VALUE",  "command_parameter": "50" } }

 

 


 

 

  {  "command":  {  "name": "get_apartment_state_updates" , "id": "2" } }

 

 

{ "datapoint_update":  {"datapoint_id" : "1" , "state_name": "STATE" , "state_value":"true" }  }

 

 


 

 

  {  "command":  {  "name": "exit"  } }

         

 


 

         

         // Response

         

  {  "command_response":  {  "state": "error" , "value": "description of error" } }

    {  "command_response":  {  "state": "successful" , "value": "successful" } } } }