|
|
(One intermediate revision by one other user not shown) |
Line 1: |
Line 1: |
− | =Overview=
| + | <big>'''We're moving!''' Please visit http://docs2.hubitat.com for the latest documentation.</big> |
− | Hubitat allows for opening and maintaining a connection to a tcp socket endpoint from the hub. All code needs to be contained in a driver, there is no option to open a socket connection from an app. Hubitat provides methods to connect and disconnect to the endpoint, in addition it is required to create a method in the driver that accepts incoming messages (parse) and another method that will be called with any status updates for the endpoint (socketStatus).
| |
| | | |
− | =Methods=
| + | <big> |
− | | + | This document is available at: http://docs2.hubitat.com/en/developer/interfaces/raw-socket-interface |
− | ==Hubitat Provided Methods (Since 2.1.2)==
| + | </big> |
− | | |
− | ===<code>connect</code>===
| |
− | | |
− | :;Signature
| |
− | :: <code>void connect(String ip, int port)</code>
| |
− | :: <code>void connect(String ip, int port, [options (name/value pairs)])</code> | |
− | | |
− | :;Parameters
| |
− | :: ip - The ip address to connect to.
| |
− | :: port - The port to connect to.
| |
− | :: options - Optional parameters to configure the web socket connection. Possible values:
| |
− | :::''byteInterface'' - defaults to 'false'. If set to true, messages are handled as byte arrays and will be hex string encoded.
| |
− | :::''readDelay'' - Optional. The amount of time in milliseconds between reads from the socket, defaults to 150. (Cannot be used with eol)
| |
− | :::''eol'' - Optional. A character that denotes the end of a line. (Cannot be used with readDelay)
| |
− | | |
− | :;Examples
| |
− | | |
− | // Connect with basic settings
| |
− | interfaces.rawSocket.connect("192.168.1.15", 8064)
| |
− | | |
− | ===<code>close</code>===
| |
− | | |
− | :;Signature
| |
− | :: <code>void close()</code>
| |
− | | |
− | :;Examples
| |
− | | |
− | // Close connection
| |
− | interfaces.rawSocket.close()
| |
− | | |
− | ===<code>sendMessage</code>===
| |
− | | |
− | :;Signature
| |
− | :: <code>void sendMessage(String message)</code>
| |
− | | |
− | :;Parameters
| |
− | :: message - The message to send. If this connection is a byte interface, then this must be a hex encoded String.
| |
− | | |
− | :;Examples
| |
− | | |
− | // Send string message
| |
− | interfaces.rawSocket.sendMessage("My message")
| |
− | | |
− | | |
− | ==Hubitat Provided Methods (Deprecated)==
| |
− | | |
− | ===<code>webSocketConnect</code>===
| |
− | | |
− | :;Signature
| |
− | :: <code>void hubitat.helper.InterfaceUtils.webSocketConnect(DeviceWrapper device, String ip, int port)</code>
| |
− | :: <code>void hubitat.helper.InterfaceUtils.webSocketConnect(DeviceWrapper device, String ip, int port, [options (name/value pairs)])</code>
| |
− | | |
− | :;Parameters
| |
− | :: device - The current device that is calling the method.
| |
− | :: ip - The ip address to connect to.
| |
− | :: port - The port to connect to.
| |
− | :: options - Optional parameters to configure the web socket connection. Possible values:
| |
− | :::''byteInterface'' - defaults to 'false'. If set to true, messages are handled as byte arrays and will be hex string encoded.
| |
− | :::''readDelay'' - Optional. The amount of time in milliseconds between reads from the socket, defaults to 150. (Cannot be used with eol)
| |
− | :::''eol'' - Optional. A character that denotes the end of a line. (Cannot be used with readDelay)
| |
− | | |
− | ===<code>webSocketClose</code>===
| |
− | | |
− | :;Signature
| |
− | :: <code>void webSocketClose(DeviceWrapper device)</code>
| |
− | | |
− | :;Parameters
| |
− | :: device - The current device that is calling the method.
| |
− | | |
− | ===<code>sendWebSocketMessage</code>===
| |
− | | |
− | :;Signature
| |
− | :: <code>void sendWebSocketMessage(DeviceWrapper device, String message)</code>
| |
− | | |
− | :;Parameters
| |
− | :: device - The current device that is calling the method.
| |
− | :: message - The message to send. If this connection is a byte interface, then this must be a hex encoded String.
| |
− | | |
− | ==User defined methods==
| |
− | | |
− | : '''<code>parse(String message)</code>''' - This method is called with any incoming messages from the socket server. This is a standard method for drivers.
| |
− | | |
− | : '''<code>socketStatus(String message)</code>''' - This method is called with any status messages from the socket client connection (disconnections, errors during connect, etc)
| |