« Back to Product

Documentation

PHP

IP-Symcon uses PHP as its script language. As PHP is fully integrated, all of its advantages can be made use of. Among others, this means that multiple scripts can run at the same time.

Version History

IP-Symcon Version Integrated PHP Version
from 1.0 5.1.x (x86 thread safe)
from 2.2 5.3.x (x86 thread safe)
from 2.5 5.4.x (x86 thread safe)
from 4.0 5.6.x (x86 thread safe)
from 5.0 7.2.x (x64 thread safe)
from 5.1 7.3.x (x64 thread safe)
from 5.5 7.4.x (x64 Thread Safe)
from 7.0 8.2.x (x64 Thread Safe)

In addition to the standard PHP functions, special IP-Symcon functions are available, through which IP-Symcon-specific settings (see Command Reference) or devices configured in IP-Symcon, can be accessed (see Module Reference).

The "php.ini" known from PHP ( php.net/manual/de/ini.php ) is equally available in IP-Symcon. IP-Symcon configures "extension" entries automatically, based on the available extensions that were placed in the "IP-Symcon/ext" folder.

Global include

In order to make functions, constants, etc. available globally across all scripts, these must be defined in the file "__autoload.php". These must be present in the "IP-Symcon/scripts" folder.

Multiple files can be read in within the "__autoload.php".

Warning

Inputting commands or files via "__autoinclude.inc.php" is possible, but the file is overwritten during each new update or new installation.

Warning

The PHP function "auto_prepend_file" cannot be used, as it is already called and used by IP-Symcon. This should/can only be used once throughout the system.

Example

__autoload.php
require_once(IPS_GetKernelDir() . "/scripts/globalfunction.ips.php");

Configure

All possible configuration parameters can be taken from the PHP handbook. A useful setting for the case that some scripts (e.g. ShutterControl) eventually require it, is the extension of the maximum script runtime. When adjusting this setting, one must make sure that only a limited number of PHP scripts are run in IP-Symcon at the same time. Should all slots be occupied, due to a script having a long runtime, other scripts will be placed into a queue and only run with a delay. "Sleep" commands should therefore always be avoided and exchanged for "timer" commands.

Warning

IP-Symcon must be restarted after any changes are made to "php.ini"!

Example

Increase maximum script runtime to 5 minutes.

[PHP]
max_execution_time=300
Any questions?