Nachrichtenaustausch zwischen zwei Modulen

Hallo zusammen,

ich möchte eine „spezielle“ Nachricht vom Child (Device) zum Parent (Splitter) senden und habe dafür eine eigene Funktion geschrieben:


    private function SendForceRefresh()
    {
        $result = parent::SendDataToParent(json_encode(Array(
            "DataID" => "{D608631B-BABA-4D08-ADB0-5364DD6A2526}",
            "Buffer" => utf8_encode("ForceRefresh")
        )));

        IPS_LogMessage("DuoFernDevice", "SendForceRefresh()");

        return $result;
    }

Die DataID wird vom Parent korrekt implementiert, funktioniert bei der Methode SendDataToParent() welche ich für den „normalen Nachrichtenaustausch“ überschreibe ja auch.

Es wird aber irgendwie nichts gesendet bzw. es kommt beim Parent (Splitter) nichts an.

Im Parent (Splitter) versuche ich es so abzufangen:


    public function ReceiveData($JSONString)
    {
        // decode data
        $data = json_decode($JSONString);

        IPS_LogMessage("DuoFernGateway", "ReceiveData()");
        if (utf8_decode($data->Buffer) == "ForceRefresh") {
            IPS_LogMessage("DuoFernGateway", "Got ForceRefresh from a child");
            $this->ForceRefresh();
            return;
        }

        // ... (Hier gehts für den "normalen Nachrichtenaustausch" weiter)
}

Es wird weder „ReceiveData()“ noch „Got ForceRefresh from a child“ ausgegeben.

Vielen Dank!

Gruß baba

Der Parent bekommt die Daten der Childs in der Methode ForwardData !
Du bist also im Parent aktuell auf dem Holzweg, da ReceiveData nur vom dessen Parent Daten empfängt.
Siehe hier die Linke Seite in der Grafik:
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/datenfluss/

Auẞerdem musst du nicht Buffer nutzen, du darfst auch eigene Objekte austauschen.
Michael

Oh man, ein paar Monate Pause und schon so daneben, trotz Kommentaren. Vielleicht sollte ich die Doku doch erneut durchgehen, bevor ich mich an solchen Sachen aufhänge. Ja das mit eigenen Objekten hatte ich noch im Kopf, habe es in meiner Verzweiflung dann beim Buffer belassen.

Danke für den Hinweis!

Gruss baba