Dokumentation
ReceiveData
Benötigt: IP-Symcon >= 4.0
string ReceiveData (string $JSONString)
Parameterliste
JSONString | Datenpaket im JSON Format |
Rückgabewert
optionale Antwort an die übergordnete Instanz
Beschreibung
Diese Funktion wird von IP-Symcon aufgerufen und verarbeitet zugesendete Daten und schickt diese gegenenfalls an alle untergeordneten Instanzen weiter.
Daten können über die Funktion SendDataToChildren versendet werden.
Weitere Informationen zur Datenweiterleitung können unter Datenfluss gefunden werden.
Die ReceiveData Funktion wird von IP-Symcon aufgerufen. Sie muss somit von der Basisklasse überschrieben werden, um eigene Erweiterungen hinzuzufügen
Bis IP-Symcon 5.3 hatte diese Funktion keinen Rückgabewert.
Beispiel
// Beispiel innerhalb einer Gateway/Splitter Instanz
public function ReceiveData($JSONString) {
// Empfangene Daten vom I/O
$data = json_decode($JSONString);
IPS_LogMessage("ReceiveData", utf8_decode($data->Buffer));
// Hier werden die Daten verarbeitet
// Weiterleitung zu allen Gerät-/Device-Instanzen
$resultate = $this->SendDataToChildren(json_encode(Array("DataID" => "{66164EB8-3439-4599-B937-A365D7A68567}", "Buffer" => $data->Buffer)));
//Wenn eine untergeordnete Instanz ein Resultat liefert, kann dieses genutzt werden.
foreach($resultate as $resultat) {
IPS_LogMessage("IOSplitter RECV-RES", $resultat);
}
}
// Beispiel innerhalb einer Geräte/Device Instanz
public function ReceiveData($JSONString) {
// Empfangene Daten vom Gateway/Splitter
$data = json_decode($JSONString);
IPS_LogMessage("ReceiveData", utf8_decode($data->Buffer));
// Datenverarbeitung und schreiben der Werte in die Statusvariablen
SetValue($this->GetIDForIdent("Value"), $data->Buffer);
// Sende Resultat zurück an das/den Gateway/Splitter
return "OK von " . $this->InstanceID;
}