RPC Method Reference

List of Functions

CategoryMethodDescription

List of Event Server Functions

A client can implement an event server to receive events from Homegear. To register an event server with Homegear, call init() (not necessary for WebSockets, MQTT or Unix Domain Sockets).
  • For JSON-RPC, XML-RPC and Binary RPC Homegear checks which methods are implemented by calling system.listMethods(). That means not all methods need to be implemented.
  • The method event() is always wrapped in system.multicall even when only one event is broadcast. The reason for this is that some clients do not support event() without it.
CategoryMethodDescription
 

Overview

General

Homegear supports different communication protocols:

  • XML-RPC: Easy to use and implemented in most programming languages.
  • Binary-RPC: Fast en- and decoding
  • JSON-RPC: Also easy to use.
  • WebSockets: For communication between Homegear and web browser (see HomegearWS)
  • MQTT: Popular protocol specialized for the Internet of Things.
  • IPC / Unix Domain Sockets: For communication between Homegear and other programs running on the same system.

Each supported protocol supports all RPC methods in this reference. Additionally all RPC methods can be called in Homegear's script engine.

The RPC methods are based on and compatible to the methods defined in the specification of the HomeMatic XML-RPC Interface. For more information and for implementation examples see the Homegear Documentation.

 

XML-RPC Types

These types defined by the XML-RPC Specification are supported by Homegear:

Tag Type Example / Notes
<i4> or <int> Four-byte signed integer -12
<i8> Eight-byte signed integer 55247185375
<boolean> 0 (false) or 1 (true) 1
<string> String. > and & need to be escaped. Hello world &gt; &amp;
<double> Double-precision signed floating point number -12.214
<base64> base64-encoded binary data eW91IGNhbid0IHJlYWQgdGhpcyE=
<struct> Associative array
<struct>
  <member>
    <name>lowerBound</name>
    <value><i4>18</i4></value>
  </member>
  <member>
    <name>upperBound</name>
    <value><i4>139</i4></value>
  </member>
</struct>
<array> Non-associative array
<array>
  <data>
    <value><i4>12</i4></value>
    <value><string>Egypt</string></value>
    <value><boolean>0</boolean></value>
    <value><i4>-31</i4></value>
  </data>
</array>
<nil> or <ex:nil> Void Homegear accepts or but does not send them!
 

Homegear-specific Types

In addition to the basic types, Homegear defines the following structures:

DeviceDescription

The struct DeviceDescription describes one HomeMatic device. One HomeMatic device has multiple device descriptions:

  • One for the parent device
  • and one for each channel (0, 1, ...)

Enumerations used in DeviceDescription

Name Values Description
Flags 1 Visible: Device should be visible to the user
2 Internal: Device is only used internally
8 Dontdelete: Device can't (or shouldn't) be deleted
Direction 0 DIRECTION_NONE (no links are supported)
1 DIRECTION_SENDER
2 DIRECTION_RECEIVER
RXMode 1 RX_ALWAYS: Device is always in RX mode
2 RX_BURST: Device is in "wake on radio" mode and can be woken up with "wake on radio" packets
4 RX_CONFIG: Device can be reached by enabling the pairing mode
8 RX_WAKEUP: Device sends cyclic "wake me up" packets and is only reachable every 2 to 3 minutes
16 RX_LAZY_CONFIG: Device accepts config packets after normal packets (e. g. a packet from a remote)

Members

DeviceDescription of Parent Device
Name Type Description
FAMILY Integer The ID of the family the device belongs to (e. g. 0 for HomeMatic BidCoS, 1 for HomeMatic Wired, 2 for Insteon, ...)
TYPE String Type of the device
TYPE_ID Integer The type ID of the device
DESCRIPTION String A short description of the device
LONG_DESCRIPTION String A description of the device
ID Integer The id of the device (e. g. 131)
ADDRESS String Serialnumber of the device (e. g. JEQ0123456)
CHILDREN Array<String> For compatibility. Addresses of the channels (e. g. JEQ0123456:1)
CHANNELS Array<Integer> Indexes of all available channels
PARENT String Empty for parent device
PARAMSETS Array<String> Names of the available parameter sets (MASTER, VALUES and/or LINK)
FIRMWARE String Optional. Firmware version (e. g. "2.1"). "?" for teams.
AVAILABLE_FIRMWARE String Optional. Firmware version available for update (e. g. "2.2"). Only set when a newer firmware version is available.
VERSION Integer Version of the XML file
FLAGS Flags or-linked flags for the GUI
RF_ADDRESS Integer For compatability. Physical address of the device.
PHYSICAL_ADDRESS Integer Physical address of the device
RX_MODE RXMode The supported RX modes of the device.
INTERFACE String Only for compatibility. Serial number of the central.
ROOM Integer The ID of the room assigned to this device. Only returned if set and if specified in parameter fields.
CATEGORIES Array<Integer> The IDs of the categories assigned to this device. Only returned if at least one category is set and if specified in parameter fields.
DeviceDescription of Channel
Name Type Description
TYPE String Type of the channel
FAMILY Integer The ID of the family the device belongs to (e. g. 0 for HomeMatic BidCoS, 1 for HomeMatic Wired, 2 for Insteon, ...)
ID Integer The id of the device (e. g. 131)
CHANNEL Integer The channel number (e. g. 2)
ADDRESS String Serialnumber and index of the channel (e. g. JEQ0123456:1)
PARENT String Serialnumber of parent device (e. g. JEQ0123456)
PARENT_TYPE String Type of the parent device
INDEX Integer Channel number
AES_ACTIVE Integer "1" when AES handshakes are enabled for the channel otherwise "0". This variable is of type Integer for compatibility.
PARAMSETS Array<String> Names of the available parameter sets (MASTER, VALUES and/or LINK)
VERSION Integer Version of the XML file
FLAGS Flags or-linked flags for the GUI
LINK_SOURCE_ROLES String Source roles defined for this channel in the XML file seperated by space
LINK_TARGET_ROLES String Target roles defined for this channel in the XML file seperated by space
DIRECTION Direction Direction of the channel (sender or receiver)
GROUP String Optional. Only when device has grouped channels. Serial number and index of the grouped channel (e. g. JEQ0123456:3)
TEAM String Optional. Only when channel supports teams. Serial number of the team (e. g. *JEQ0123456 - note the "*")
TEAM_TAG String Optional. Only when channel supports teams or for teams. Type of the team ("team_tag" attribute of the team's XML file).
TEAM_CHANNELS Array<String> Optional. Only for teams. Array of peers (serialnumber and channel) paired to this team (e. g. JEQ0234567:1)
ROOM Integer The ID of the room assigned to this channel. Only returned if set and if specified in parameter fields.
CATEGORIES Array<Integer> The IDs of the categories assigned to this channel. Only returned if at least one category is set and if specified in parameter fields.

Examples

HM-CC-TC - Parent Device
(Struct length=10)
{
  [FAMILY]
  {
    (Integer) 0
  }
  [ID]
  {
    (Integer) 37
  }
  [ADDRESS]
  {
    (String) JEQ0550760
  }
  [CHILDREN]
  {
    (Array length=4)
    {
      (String) JEQ0550760:0
      (String) JEQ0550760:1
      (String) JEQ0550760:2
      (String) JEQ0550760:3
    }
  }
  [CHANNELS]
  {
    (Array length=4)
    {
      (Integer) 0
      (Integer) 1
      (Integer) 2
      (Integer) 3
    }
  }
  [FIRMWARE]
  {
    (String) 2.1
  }
  [FLAGS]
  {
    (Integer) 1
  }
  [PARAMSETS]
  {
    (Array length=1)
    {
      (String) MASTER
    }
  }
  [PARENT]
  {
    (String)
  }
  [RF_ADDRESS]
  {
    (String) 1936689
  }
  [TYPE]
  {
    (String) HM-CC-TC
  }
  [VERSION]
  {
    (Integer) 14
  }
}
HM-CC-TC - Channel 1
(Struct length=12)
{
  [FAMILY]
  {
    (Integer) 0
  }
  [ID]
  {
    (Integer) 37
  }
  [CHANNEL]
  {
    (Integer) 1
  }
  [ADDRESS]
  {
    (String) JEQ0550760:1
  }
  [AES_ACTIVE]
  {
    (Integer) 0
  }
  [DIRECTION]
  {
    (Integer) 1
  }
  [FLAGS]
  {
    (Integer) 1
  }
  [INDEX]
  {
    (Integer) 1
  }
  [LINK_SOURCE_ROLES]
  {
    (String) WEATHER_TH
  }
  [LINK_TARGET_ROLES]
  {
    (String)
  }
  [PARAMSETS]
  {
    (Array length=3)
    {
      (String) MASTER
      (String) VALUES
      (String) LINK
    }
  }
  [PARENT]
  {
    (String) JEQ0550760
  }
  [PARENT_TYPE]
  {
    (String) HM-CC-TC
  }
  [TYPE]
  {
    (String) WEATHER
  }
  [VERSION]
  {
    (Integer) 14
  }
}
 

DynamicResetTime

The struct DynamicResetTime defines how many seconds to wait before executing the reset method after an event was raised (in short: the "reset time"). This is useful for example when you want to increase the time light stays switched on with each motion detector event.

Enumerations Used in DynamicResetTime

Name Values Description
Operation 1 Addition
2 Subtraction
3 Multiplication
4 Division

Members

Name Type Description
INITIALTIME Integer The initial reset time in seconds.
RESETAFTER Integer The time in seconds to wait before the reset time is reset to "INITIALTIME".
OPERATION Operation The mathematical operation to use on the current value of reset time.
FACTOR Float The factor to apply to the current reset time with the operation defined in "OPERATION".
LIMIT Integer The upper (addition, multiplication) or lower (subtraction, division) limit of the reset time (in seconds).
CURRENTTIME Integer Not writeable. Shows the current reset time in seconds when listing events.

Example: When "INITIALTIME" is 30, "FACTOR" is 2.0 and OPERATION is "Multiplication" then with the first event the reset time is 30, with the second 60, with the third 120 and so on until no event occurs for the time defined with "RESETAFTER".

When "LIMIT" is defined, the reset time will be capped at that limit. Let's say for the example above "LIMIT" is 300. Then the fourth event will increase the reset time to 240. The fifth event would increase the reset time to 480 which is greater than "LIMIT" so the reset time is set to 300.

Example

(Struct length=5)
{
  [INITIALTIME]
  {
    (Integer) 30
  }
  [RESETAFTER]
  {
    (Integer) 300
  }
  [OPERATION]
  {
    (Integer) 3
  }
  [FACTOR]
  {
    (Float) 2.0
  }
  [LIMIT]
  {
    (Integer) 300
  }
}
 

EventDescription

The struct EventDescription defines either a triggered or timed Homegear event.

  • Triggered events are checked when Homegear receives a packet from a device. They are raised e. g. when a device's parameter is changed.
  • Timed events can be triggered at a certain time point or recurrently (e. g. every two minutes).

Enumerations Used in EventDescription

Name Values Description
Type 0 Triggered
1 Timed
Trigger 1 Unchanged: The parameter is unchanged compared to the previous value.
2 Changed: The parameter has changed compared to the previous value.
3 Greater: The parameter is now greater than the previous value.
4 Less: The parameter is now smaller than the previous value.
5 GreaterOrUnchanged: The parameter is now greater than the previous value or unchanged.
6 LessOrUnchanged: The parameter is now smaller than the previous value or unchanged.
7 Updated: The parameter was updated. This trigger is always true when a packet with the specified parameter is received. You have to use this trigger for parameters of type "Action".
8 Value: The parameter value equals "TRIGGERVALUE".
9 NotValue: The parameter does not equal "TRIGGERVALUE".
10 GreaterThanValue: The parameter is greater than "TRIGGERVALUE".
11 LessThanValue: The parameter is smaller than "TRIGGERVALUE".
12 GreaterOrEqualValue: The parameter is greater than or equal "TRIGGERVALUE".
13 LessOrEqualValue: The parameter is less than or equal "TRIGGERVALUE"

Members

EventDescription for Triggered Event
Name Type Description
TYPE Type (Integer) Type of the event ("timed" or "triggered")
ID String Arbitrary ID to identify the event
ENABLED Boolean Defines whether the event is enabled.
REPLACE Boolean If true an existing event with the same ID is replaced without RPC error.
PEERID Integer ID of the peer for which the event should be executed (e. g. 131). To create an event for system variable changes, leave it out or set it to "0", for metadata variable changes it needs to be set.
PEERCHANNEL Integer Optional. CHANNEL of the peer for which the event should be executed (e. g. 1). To create an event for system variable or metadata variable changes, leave it out or set it to "-1".
VARIABLE String The name of the device's variable to check (e. g. "STATE")
TRIGGER Trigger (Integer) Which trigger to use
TRIGGERVALUE Variant Only needed for triggers 8 to 13. The value to compare the parameter value to.
EVENTMETHOD String The name of the XML-RPC method to execute when event is raised.
EVENTMETHODPARAMS Array<Variant> The parameters to pass to "EVENTMETHOD".
RESETAFTER Integer or DynamicResetTime Optional. Time in seconds after which "RESETMETHOD" will be executed.
RESETMETHOD String Optional. Mandatory when "RESETAFTER" is specified. The XML-RPC method to execute after waiting the amount of seconds defined with "RESETAFTER".
RESETMETHODPARAMS Array<Variant> The parameters to pass to "RESETMETHOD".
LASTVALUE Variant Not writeable. The last value of "VARIABLE" received by the event handler.
LASTRAISED Integer Not writeable. Unix time stamp of the last time the event was raised.
LASTRESET Integer Not writeable. Unix time stamp of the last time the event was reset.
EventDescription for Timed Event
Name Type Description
TYPE Type Type of the event ("timed" or "triggered")
ID String Arbitrary ID to identify the event
ENABLED Boolean Defines whether the event is enabled.
REPLACE Boolean If true an existing event with the same ID is replaced without RPC error.
EVENTTIME Integer The unix timestamp of either a time point at which to execute a single event. Or the start time point of a recurrent event. Will be set to the current time when undefined or 0.
RECUREVERY Integer Optional. The time in seconds after which to recur the event (e. g. 120 (= 2 minutes) or 604800 (= 1 week).
ENDTIME Integer Optional. The time point when a recurrent event should be deleted.
EVENTMETHOD String The name of the XML-RPC method to execute when event is raised.
EVENTMETHODPARAMS Array<Variant> The parameters to pass to "EVENTMETHOD".

Examples

Example 1 - Triggered Event with Dynamic Reset Time
(Struct length=11)
{
  [TYPE]
  {
    (Integer) 0
  }
  [ID]
  {
    (String) MyThirdCustomEvent
  }
  [PEERID]
  {
    (Integer) 32
  }
  [PEERCHANNEL]
  {
    (Integer) 1
  }
  [VARIABLE]
  {
    (String) MOTION
  }
  [TRIGGER]
  {
    (Integer) 8
  }
  [TRIGGERVALUE]
  {
    (Boolean) 1
  }
  [EVENTMETHOD]
  {
    (String) setValue
  }
  [EVENTMETHODPARAMS]
  {
    (Array length=3)
    {
      (Integer) 12
      (Integer) 1
      (String) STATE
      (Boolean) 1
    }
  }
  [RESETAFTER]
  {
    (Struct length=5)
    {
      [INITIALTIME]
      {
        (Integer) 30
      }
      [RESETAFTER]
      {
        (Integer) 300
      }
      [OPERATION]
      {
        (Integer) 3
      }
      [FACTOR]
      {
        (Float) 2.0
      }
      [LIMIT]
      {
        (Integer) 300
      }
    }
  }
  [RESETMETHOD]
  {
    (String) setValue
  }
  [RESETMETHODPARAMS]
  {
    (Array length=3)
    {
      (Integer) 12
      (Integer) 1
      (String) STATE
      (Boolean) 0
    }
  }
}
Example 2 - Timed Event (Recurrent with End Time)
(Struct length=7)
{
  [TYPE]
  {
    (Integer) 1
  }
  [ID]
  {
    (String) MyFifthCustomEvent
  }
  [EVENTTIME]
  {
    (Integer) 1379941325
  }
  [RECUREVERY]
  {
    (Integer) 120
  }
  [ENDTIME]
  {
    (Integer) 1380027725
  }
  [EVENTMETHOD]
  {
    (String) runScript
  }
  [EVENTMETHODPARAMS]
  {
    (Array length=3)
    {
      (String) myScript.sh
      (Boolean) 0
    }
  }
}
 

InterfaceDescription

The struct InterfaceDescription describes a physical interface used by Homegear.

Members

Name Type Description
FAMILYID Integer The id of the device family the physical device communicates with.
ID String Unique identifier for this interface.
CONNECTED Boolean State of the device. When "false" device is not working.
DEFAULT Boolean "True" when this interface is the default interface for this device family.
LASTPACKETRECEIVED Integer Unix time stamp of the last received packet.
LASTPACKETSENT Integer Unix time stamp of the last sent packet.
PHYSICALADDRESS Integer The physical address of the device.
TYPE String The type of the physical device.

Example

(Array length=2)
{
  (Struct length=7)
  {
    [ID]
    {
      (String) MyInterface
    }
    [CONNECTED]
    {
      (Boolean) 1
    }
    [DEFAULT]
    {
      (Boolean) 1
    }
    [FAMILYID]
    {
      (Integer) 0
    }
    [LASTPACKETRECEIVED]
    {
      (Integer) 1393069264
    }
    [LASTPACKETSENT]
    {
      (Integer) 1393069364
    }
    [PHYSICALADDRESS]
    {
      (Integer) 16581789
    }
    [TYPE]
    {
      (String) cc1100
    }
  }
  (Struct length=7)
  {
    [ID]
    {
      (String) MySecondInterface
    }
    [CONNECTED]
    {
      (Boolean) 1
    }
    [DEFAULT]
    {
      (Boolean) 1
    }
    [FAMILYID]
    {
      (Integer) 1
    }
    [LASTPACKETRECEIVED]
    {
      (Integer) 1393069243
    }
    [LASTPACKETSENT]
    {
      (Integer) 1393069243
    }
    [PHYSICALADDRESS]
    {
      (Integer) 1
    }
    [TYPE]
    {
      (String) rs485
    }
  }
}
 

LinkDescription

The struct LinkDescription describes a direct link between the channels of two devices (e. g. peer 12 channel 1 and peer 25 channel 3).

Special Types used in LinkDescription

Name Values Description
LinkFlags 1 Sender does not know receiver or is unknown
2 Receiver does not know sender or is unknown
4 Sender and receiver are two different channels of the same device. Used only when one of the channels is "virtual" and in combination with one of the broken flags.

Members

Name Type Description
SENDER_ID Integer The id of the sending device
SENDER_CHANNEL Integer The channel of the sending device
SENDER String For compatibility. The serial number and channel of the sending device separated by colon
RECEIVER_ID Integer The id of the receiving device
RECEIVER_CHANNEL Integer The channel of the receiving device
RECEIVER String For compatibility. The serial number and channel of the receiving device separated by colon
FLAGS LinkFlags or-linked LinkFlags
NAME String The name of the link as defined in addLink or setLinkInfo
SENDER_PARAMSET Paramset Optional (see getLinks). The link parameter set of the sending device.
RECEIVER_PARAMSET Paramset Optional (see getLinks). The link parameter set of the receiving device.
SENDER_DESCRIPTION DeviceDescription Optional (see getLinks). The device description of the sending channel.
RECEIVER_DESCRIPTION DeviceDescription Optional (see getLinks). The device description of the receiving channel.
 

ParameterDescription

The struct ParameterDescription describes one parameter of a parameter set.

Enumerations used in ParameterDescription

Name Values Description
Operations 1 Read
2 Write
4 Event (deprecated)
Flags 1 Visible: Parameter should be visible to the user
2 Internal: Parameter is only used internally
4 Transform: Changes to this parameter completely change the behavior of a channel. Changes are only allowed when the channel is not linked.
8 Service: This parameter should be processed as service message. Only Boolean and Integer are allowed. 0 or false means there is no message.
16 Sticky: Only for service messages. A sticky service message has to be manually reset by the user.

Structs used in ParameterDescription

Name Description Fields Field Description
Special Defines values with a special meaning outside the value range ID Name of the special value
VALUE The special value

Members

These are the possible values for TYPE.

Name Type Description
TYPE String Data type of the parameter
OPERATIONS Operations or-linked operations (Read: 1, Write: 2, Event: 3)
FLAGS Flags or-linked flags for the GUI
DEFAULT Same as parameter Default value
MAX Same as parameter Largest possible value
MIN Same as parameter Smallest possible value
UNIT String Unit of measurement
TAB_ORDER Integer Position of the parameter inside the parameter set
CONTROL String Optional. Tells the GUI which control to use for this parameter.
SPECIAL Array of type Special Only for types FLOAT and INTEGER. Defines special values outside the value range.
VALUE_LIST Array of type String Only for type ENUM. Defines names for the enumeration. The array index of the name is the associated value. If an array element is empty, the value is not defined.
LABEL String Optional. The human readable name of the parameter (e. g. "Setpoint temperature").
DESCRIPTION String Optional. A short description of the parameter (e. g. "Gets or sets the current setpoint temperature.")
FORM_FIELD_TYPE String Optional. The form field type to use in forms.
FORM_POSITION Integer Optional. The position of the parameter to use in forms.
ROOM Integer The ID of the room assigned to this variable. Only returned if set.
CATEGORIES Array<Integer> The IDs of the categories assigned to this variable. Only returned if at least one category is set.

Types

These are the possible values for TYPE.

Type Description
FLOAT
INTEGER
BOOL
ENUM Data type is Integer. The value as an index to one of the options defined in VALUE_LIST.
STRING
ACTION Data type is Boolean. Always false when reading and always true in events. When writing, the value must be "true".

Example

(Struct length=10)
    {
      [DEFAULT]
      {
        (Integer) 0
      }
      [FLAGS]
      {
        (Integer) 1
      }
      [ID]
      {
        (String) LCD_SYMBOL
      }
      [MAX]
      {
        (Integer) 8
      }
      [MIN]
      {
        (Integer) 0
      }
      [OPERATIONS]
      {
        (Integer) 3
      }
      [TAB_ORDER]
      {
        (Integer) 2
      }
      [TYPE]
      {
        (String) ENUM
      }
      [UNIT]
      {
        (String)
      }
      [VALUE_LIST]
      {
        (Array length=9)
        {
          (String) NONE
          (String) BULB
          (String) SWITCH
          (String) WINDOW
          (String) DOOR
          (String) BLIND
          (String) SCENE
          (String) PHONE
          (String) BELL
        }
      }
    }
 

Paramset

The struct Paramset contains all values of a parameter set. One element is one value. The name of the element is the name of the parameter as defined in the XML file.

Example

(Struct length=350)
{
  [DISPLAY_TEMPERATUR_INFORMATION]
  {
    (Integer) 0
  }
  [DISPLAY_TEMPERATUR_UNIT]
  {
    (Integer) 0
  }
  [MODE_TEMPERATUR_REGULATOR]
  {
    (Integer) 0
  }
  [MODE_TEMPERATUR_VALVE]
  {
    (Integer) 0
  }
  [DISPLAY_TEMPERATUR_HUMIDITY_CHANGE]
  {
    (Integer) 1
  }
  [TEMPERATUR_COMFORT_VALUE]
  {
    (Float) 21
  }
  .
  .
  .
}
 

ParamsetDescription

The struct ParamsetDescription has one element for each parameter. The key is the parameter name. Each element is of type ParameterDescription.

Example

(Struct length=4)
{
  [PEER_NEEDS_BURST]
  {
    (Struct length=9)
    {
      [DEFAULT]
      {
        (Boolean) 0
      }
      [FLAGS]
      {
        (Integer) 1
      }
      [ID]
      {
        (String) PEER_NEEDS_BURST
      }
      [MAX]
      {
        (Boolean) 1
      }
      [MIN]
      {
        (Boolean) 0
      }
      [OPERATIONS]
      {
        (Integer) 3
      }
      [TAB_ORDER]
      {
        (Integer) 0
      }
      [TYPE]
      {
        (String) BOOL
      }
      [UNIT]
      {
        (String)
      }
    }
  }
  [EXPECT_AES]
  {
    (Struct length=9)
    {
      [DEFAULT]
      {
        (Boolean) 0
      }
      [FLAGS]
      {
        (Integer) 1
      }
      [ID]
      {
        (String) EXPECT_AES
      }
      [MAX]
      {
        (Boolean) 1
      }
      [MIN]
      {
        (Boolean) 0
      }
      [OPERATIONS]
      {
        (Integer) 3
      }
      [TAB_ORDER]
      {
        (Integer) 1
      }
      [TYPE]
      {
        (String) BOOL
      }
      [UNIT]
      {
        (String)
      }
    }
  }
  [LCD_SYMBOL]
  {
    (Struct length=10)
    {
      [DEFAULT]
      {
        (Integer) 0
      }
      [FLAGS]
      {
        (Integer) 1
      }
      [ID]
      {
        (String) LCD_SYMBOL
      }
      [MAX]
      {
        (Integer) 8
      }
      [MIN]
      {
        (Integer) 0
      }
      [OPERATIONS]
      {
        (Integer) 3
      }
      [TAB_ORDER]
      {
        (Integer) 2
      }
      [TYPE]
      {
        (String) ENUM
      }
      [UNIT]
      {
        (String)
      }
      [VALUE_LIST]
      {
        (Array length=9)
        {
          (String) NONE
          (String) BULB
          (String) SWITCH
          (String) WINDOW
          (String) DOOR
          (String) BLIND
          (String) SCENE
          (String) PHONE
          (String) BELL
        }
      }
    }
  }
  [LCD_LEVEL_INTERP]
  {
    (Struct length=10)
    {
      [DEFAULT]
      {
        (Integer) 0
      }
      [FLAGS]
      {
        (Integer) 1
      }
      [ID]
      {
        (String) LCD_LEVEL_INTERP
      }
      [MAX]
      {
        (Integer) 5
      }
      [MIN]
      {
        (Integer) 0
      }
      [OPERATIONS]
      {
        (Integer) 3
      }
      [TAB_ORDER]
      {
        (Integer) 3
      }
      [TYPE]
      {
        (String) ENUM
      }
      [UNIT]
      {
        (String)
      }
      [VALUE_LIST]
      {
        (Array length=6)
        {
          (String) NONE
          (String) LIGHT
          (String) BLIND
          (String) MARQUEE
          (String) DOOR
          (String) WINDOW
        }
      }
    }
  }
}
 

ServerInfo

The struct ServerInfo describes a RPC client's RPC server (event server).

Enumerations Used in ServerInfo

Name Values Description
AuthType 0 none
1 basic

Members

Name Type Description
INTERFACE_ID String The interface ID as it was passed to init
HOSTNAME String The hostname or IP address of the RPC server used by Homegear. Might be different from the hostname/address passed to init.
PORT String The port of the RPC server
PATH String The path part of the URL (e. g. /RPC2).
LASTPACKETSENT Integer The time (unix time stamp) the last packet was sent successfully (no communication or RPC error) to the client's RPC server.
SSL Boolean "True" when "https" was passed to init
BINARY Boolean "True" when binary packets are used instead of XML-RPC
KEEP_ALIVE Boolean When "True", Homegear won't disconnect after receiving the response to a packet
USE_ID Boolean When "True", Homegear sends device's id instead of the serial number in broadcast packets
SUBSCRIBE_PEERS Boolean When "True", Homegear only sends events of peers subscribed with subscribePeers to the event server.

The following settings are defined in "rpcclients.conf".

Name Type Description
FORCESSL Boolean When "True", Homegear doesn't accept unencrypted connections from this client.
AUTH_TYPE AuthType The authentication type Homegear uses to connect to the RPC server.
VERIFICATION_HOSTNAME String When certificate verification is enabled, the hostname of the server certifacte has to match this hostname.
VERIFY_CERTIFICATE Boolean "True" when certificate verification is enabled

Example

(Array length=1)
{
  (Struct length=7)
  {
    [BINARY]
    {
      (Boolean) 0
    }
    [HOSTNAME]
    {
      (String) 127.0.0.1
    }
    [INTERFACE_ID]
    {
      (String) IPS
    }
    [KEEP_ALIVE]
    {
      (Boolean) 0
    }
    [LASTPACKETSENT]
    {
      (Integer) 1393069381
    }
    [PATH]
    {
      (String) /RPC2
    }
    [PORT]
    {
      (String) 5544
    }
    [SSL]
    {
      (Boolean) 0
    }
  }
}