(string) $response = mshttp_send_mem($msno, (string) $input, (string) $value);
(array) $response = mshttp_send_mem($msno, (array) $inputsAndValues);
Sends a value to a Loxone Miniserver input, or sends multiple values to multiple inputs. The function automatically saves the last state and only sends values that have changed.
This feature first is available with LoxBerry 1.2.5. Set your LB_MINIMUM version in your plugin.cfg accordingly.
Please see the documentation of mshttp_send for parameters. Parameters and return values are fully compatible to this function.
The difference to the mshttp_send function is that it remembers recently sent values, and does not re-send non-changed values.
That memory is kept on RAM disk - therefore the memory works not also during a single runtime, but also over several calls that init new processes every time (e.g. calls from the webinterface, or calls from a cronjob).
The function uses different mechanisms to check, if it should exceptionally send all values, not only the diff:
- After a LoxBerry reboot, the memory file on the RAM disk is empty → Every new incoming parameter and value is sent
- loxberry_io.php defines a variable
$mem_sendall_sec that defaults to 3600 seconds (1 hour). A call after 1 hour will clear the cache and all values will be re-sent.
- loxberry_io.php checks the Miniserver after at least 5 minutes if it possibly was rebooted. If so, the cache is cleared to and every value is sent again.
These parameters are shared for mshttp_send_mem and msudp_send_mem.
// Set this variable directly before the function call to override the cache and exceptionally submit ALL values.
// After every function call, the function resets the value to 0.
$mem_sendall = 1;
// Change the setting after what time (seconds) the cache should be cleared and all values should be sent.
// Default value is 3600.
$mem_sendall_sec = 7200;
// If you use this variables in functions, don't forget to define them as globals (e.g. global $mem_sendall;)