# Virtual I/O > Symcon documentation · English · generated on 2026-09-26 > Index: https://www.symcon.de/en/llms.txt Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/ _Requires Symcon >= 3.3_ The virtual I/O opens an interface that is used for communication between the gateway/splitter instance and the connected device. It does not use a specific protocol, but is used for test purposes to ensure correct behavior of the connected entities. The virtual I/O is able to send data packets of the type [Simple](../developer/sdk-tools/sdk-php.md) and [Extended (Socket)](../developer/sdk-tools/sdk-php.md). The rule is that functions with "text" use such simple data packets. Connect, Disconnect and Functions with "Packet" use the extended data packet (Socket). ### Integration in IP-Symcon A new virtual I/O instance can be created via "+" in the object tree. The following settings can be made on the configuration page. | Option | Description | | ------ | ----------------------------------------------- | | Active | Whether the interface should be open or closed. | Only a click on "Apply" saves the settings and then an attempt is made to establish the connection. ![Configuration page](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/io/virtualio/c763a2b341-1790424939/io-virtualio.png) For a better understanding, the graphic shows which direction and data packet types are used by the individual commands. ![Graphic for commands](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/io/virtualio/a51f070b9a-1790424939/io-virtualio-graph.png) ## VIO_Connect Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-connect/ `bool VIO_Connect(int $InstanceID, string $ClientIP, int $ClientPort)` _Requires Symcon >= 5.1_ sends a Connect Data-Packet **Parameters** - `$InstanceID` (int): ID of the Virtual I/O to be updated - `$ClientIP` (string): The ClientIP to be connected - `$ClientPort` (int): The port to be connected **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. The port to be connected **Example** ```php // Sends a data packet to the virtual I/O instance with the ID 12345 with the IP-address 192.168.0.8 and port 502 VIO_Connect(12345, "192.168.0.8", 502); ``` ## VIO_Disconnect Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-disconnect/ `bool VIO_Disconnect(int $InstanceID, string $ClientIP, int $ClientPort)` _Requires Symcon >= 5.1_ sends a Disconnect Data-Packet **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$ClientIP` (string): The ClientIP to be connected - `$ClientPort` (int): The port to be connected **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. The port to be connected **Example** ```php // Sends a data packet to the virtual I/O instance with the ID 12345 with the IP-address 192.168.0.8 and port 502 VIO_Disconnect(12345, "192.168.0.8", 502); ``` ## VIO_GetPacketList Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-getpacketlist/ `array VIO_GetPacketList(int $InstanceID)` _Requires Symcon >= 5.1_ supplies an array of extended Data-Packets **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated **Returns** (array): Supplies an array of extended Data-Packets ID of the virtual I/O to be updated **Example** ```php // Returns an array of all extended data packets of the virtual I/O instance with the ID 12345 $allPackets = VIO_GetPacketList(12345); print_r($allPackages); /* returns, for example: Array ( [0] => Array ( [Type] => 0 [Buffer] => Hello world [ClientIP] => 192.168.0.8 [ClientPort] => 502 ) [1] => Array ( [Type] => 0 [Buffer] => IP-Symcon [ClientIP] => 192.168.0.4 [ClientPort] => 3777 ) ... ) */ ``` ## VIO_GetTextList Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-gettextlist/ `array VIO_GetTextList(int $InstanceID)` _Requires Symcon >= 5.1_ returns an array of simple Data-Packets **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated **Returns** (array): Returns an array of simple Data-Packets ID of the virtual I/O to be updated **Example** ```php // Returns an array of all simple data packages of the virtual I/O instance with the ID 12345 $allTexts = VIO_GetTextList(12345); print_r($allTexts); /* returns, for example: Array ( [0] => Hello world [1] => IP-Symcon ... ) */ ``` ## VIO_PushPacket Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-pushpacket/ `bool VIO_PushPacket(int $InstanceID, string $Text, string $ClientIP, int $ClientPort)` _Requires Symcon >= 5.1_ sends an extended Data-Packet **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$Text` (string): The string to be sent - `$ClientIP` (string): On the ClientIP to be sent - `$ClientPort` (int): On the port to be sent **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. On the port to be sent **Example** ```php // Sends the text "Hello World" to the virtual I/O instance with the ID 12345, and with the IP address 192.168.0.8 and port 502 VIO_PushPacket(12345, "Hello World", "192.168.0.8", 502); ``` ## VIO_PushPacketHEX Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-pushpackethex/ `bool VIO_PushPacketHEX(int $InstanceID, string $Text, string $ClientIP, int $ClientPort)` _Requires Symcon >= 5.1_ sends an extended Data-Packet **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$Text` (string): The string to be sent in HEX - `$ClientIP` (string): On the ClientIP to be sent - `$ClientPort` (int): On the port to be sent **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. On the port to be sent **Example** ```php // Sends the hex string "1a2fee" with the IP address 192.168.0.8 and port 502 to the virtual I/O instance with the ID 12345 VIO_PushPacketHEX(12345, "1A 2F EE", "192.168.0.8", 502); ``` ## VIO_PushText Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-pushtext/ `bool VIO_PushText(int $InstanceID, string $Text)` _Requires Symcon >= 3.3_ sends a simple Data-Packet **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$Text` (string): The string to be sent **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. The string to be sent **Example** ```php // Sends the text "Hello world" to the virtual I/O instance with the ID 12345 VIO_PushText(12345, "Hello World"); ``` ## VIO_PushTextHEX Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-pushtexthex/ `bool VIO_PushTextHEX(int $InstanceID, string $Text)` _Requires Symcon >= 3.3_ sends a simple Data-Packet **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$Text` (string): The string to be sent in HEX **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. The string to be sent in HEX **Example** ```php // Sends the hex string "1a2fee" to the virtual I/O instance with ID 12345 VIO_PushTextHEX(12345, "1A 2F EE"); ``` ## VIO_SendPacket Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-sendpacket/ `bool VIO_SendPacket(int $InstanceID, string $Text, string $ClientIP, int $ClientPort)` _Requires Symcon >= 5.1_ sends an extended Data-Packet to itself **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$Text` (string): The string to be sent - `$ClientIP` (string): On the ClientIP to be sent - `$ClientPort` (int): On the port to be sent **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. On the port to be sent **Example** ```php // Sends the text "Hello world" with the IP address 192.168.0.8 and the port 502 to the Virtual I/O instance with the ID 12345 VIO_PushPacket(12345, "Hello World", "192.168.0.8", 502); ``` ## VIO_SendText Source: https://www.symcon.de/en/service/documentation/module-reference/i-o-instances/virtualio/vio-sendtext/ `bool VIO_SendText(int $InstanceID, string $Text)` _Requires Symcon >= 3.3_ sends a simple Data-Packet to itself **Parameters** - `$InstanceID` (int): ID of the virtual I/O to be updated - `$Text` (string): The string to be sent **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. The string to be sent **Example** ```php // Sends the text "Hello world" to the virtual I/O instance with ID 12345 VIO_SendText(12345, "Hello World"); ```