Mal eine gezielte Frage zum Datenaustausch zwischen Instanzen.
Wenn ein Parent mehrere Childs hat, welche unterschiedliche Interfaces besitzen, wählt IPS automatisch die ‚richtigen‘ aus, wenn ich IPS_SendDataToChildren aufrufe ?
Oder muss ich im Child, bei ReceiveData, noch auf die korrekte GUID prüfen ?
In der Gegenrichtung (Splitter) mache ich das schon, weil ich ja nur anhand der GUID ermitteln kann was mir der Child für Daten forwarded.
Prinzipiell prüfst du weniger auf die Verbindung, als auf die DataID, welche dir im Data Array mitgeliefert wird. Dadurch kannst du erkennen welche Daten gesendet werden, und ob du die verwenden kannst
Aber muss ich das auch im Child machen ?
Oder gibt IPS nur wirklich dann etwas an das Child wenn es in der module.json auch als implemetiert eingetragen wurde ?
Wenn das Gateway nun Daten per SendDataToChildren weitergibt, müssen dann die Child selbst prüfen ob es sich um Daten für einen Splitter oder ein Device handelt (anhand der DataID).
Oder sendet IPS automatisch nur an die Childs welche diese DataID in der module.json auch implementieren ?
In der module.json wird ja nicht unterschieden aus welcher Richtung die Daten kommen.
Eigentlich kannst du die Konstellation nur bauen, wenn die GUIDs gleich sind und somit auch die Daten. Ansonsten geht es doch mit den ParentRequirements nicht auf und du kannst dann in der Konsole nichts verbinden!?
Das habe ich doch schon gebaut
Einmal unter Delphi und jetzt unter PHP.
Die Verbindungen kann ich alle korrekt in der Console zuordnen.
Ich push das nachher mal auf GitHub.
Unter Delphi war es dahingehend einfacher da jedes Interface andere Methoden implementierte.
Jetzt hat der Child ja nur eine Empfangs-Methode. Darum Frage ich ja so blöd ob IPS stumpf an alle Childs weiterleitet oder nur an die wo die GUID der DataID zu einem passenden implements Eintrag existiert.
Mein Splitter setzt je nachdem was er weiterleitet eine andere GUID in der DataID.
Michael