« Back to Product

Documentation

ReceiveData

Require: IP-Symcon >= 4.0

 string ReceiveData (string $JSONString) 

Parameters

JSONString

Data package in JSON format

Returns

Optional response to the parent instance

Description

This function is called by IP-Symcon and processes sent data and, if necessary, forwards it to all child instances.
Data can be sent using the SendDataToChildren function.
Further information on data forwarding can be found under Dataflow.

Warning

The ReceiveData function is called by IP-Symcon. It must therefore be overwritten by the base class in order to add individual extensions

Warning

Up to IP-Symcon 5.3 this function had no return value.

Example

// Example within a gateway/splitter instance 
public function ReceiveData($JSONString) {

    // Received data from I/O
    $data = json_decode($JSONString);
    IPS_LogMessage("ReceiveData", utf8_decode($data->Buffer));

    // This is where the data is processed
    
    // Forwarding to all device-/device-instances
    $results = $this->SendDataToChildren(json_encode(Array("DataID" => "{66164EB8-3439-4599-B937-A365D7A68567}", "Buffer" => $data->Buffer)));
    
    // If a child instance delivers a result, this can be used.
    foreach($results as $result) {
        IPS_LogMessage("IOSplitter RECV-RES", $result);
    }
}

// Example within a device-/device-instance
public function ReceiveData($JSONString) {

    // Received data from the gateway/splitter
    $data = json_decode($JSONString);
    IPS_LogMessage("ReceiveData", utf8_decode($data->Buffer));

    // Data processing and writing of the values in the status variables
    SetValue($this->GetIDForIdent("Value"), $data->Buffer);

    // Send result back to the gateway/splitter
    return "OK from " . $this->InstanceID;
}
Any questions?