DMX-Gateway als Parent meines Modules

Hallo Leute,

das mit dem Datenfluss ist ja für mich nicht immer so ganz einfach…:wink:

Ich möchte ein Device-Modul mit Parent des DMX-Gateway erstellen.

In meiner module.json habe ich die GUID des DMX-Gateway bei „PR“ eingetragen:

{
  "id": "{772E101B-3EA6-4A86-AC84-A94DA41DB20A}",
  "name": "IPS2DMX_24ChRGB",
  "type": 3,
  "vendor": "JP-IPS-Modules",
  "aliases":
  [
    "IPS2DMX_24ChRGB"
  ],
  "parentRequirements": ["{B1E43BF6-770A-4FD7-B4FE-6D265F93746B}"],
  "childRequirements": [],
  "implemented": ["{F57A380D-7CAC-4E9F-88C2-3BA505426BA4}"],
  "prefix": "I2D24ChRGB"
}

…das haut so leider nicht hin…

Wenn ich mir die Daten des DMX-Gateway anschaue:

Array
(
    [ParentRequirements] => Array
        (
            [0] => {79827379-F36E-4ADA-8A95-5F8D1DC92FA9}
        )

    [ChildRequirements] => Array
        (
            [0] => {311686E9-E1C5-4247-931B-EB8FF396638F}
        )

    [Implemented] => Array
        (
            [0] => {018EF6B5-AB94-40C6-AA53-46943E824ACF}
            [1] => {F241DA6A-A8BD-484B-A4EA-CC2FA8D83031}
        )

    [Vendor] => 
    [Aliases] => Array
        (
        )

    [LibraryID] => {0945206A-47AA-4FDD-9093-99051E410E82}
    [ModuleID] => {B1E43BF6-770A-4FD7-B4FE-6D265F93746B}
    [ModuleName] => DMX Gateway
    [ModuleType] => 2
)

…dann vermute ich mal das das Problem drin liegt, dass meine „implemented“ nicht beim DMX-Gateway eingetragen ist??
Darf einfach eine von den „implemented“ des DMX-Gateway bei mir eintragen??

Joachim

Zuerst hast du die ModulID GUID in deinem parentRequirements eingetragen. Das ist ganz falsch, da muss die GUID aus implemented des Gatways rein:
{F241DA6A-A8BD-484B-A4EA-CC2FA8D83031}
Und dein implemented muss dem childrequirements des Gateway entsprechen:
{311686E9-E1C5-4247-931B-EB8FF396638F}
Michael

…kaum macht man es richtig, funktioniert es!

Vielen Dank!!

Joachim

…doch noch mal eine Frage:

Woher weiß ich, welche Parameter ich aus meinem Modul im SendDataToParent übergeben muss?
Welche im ReceiveData eventuell ankommen könnten?

Joachim

Das würde ich so ausprobieren, ansonsten sollte IPS einen Fehler werfen wenn ein Feld fehlt.
Michael

…das könnte aber mühsam werden…:frowning:

Habe jetzt mal folgendes probiert:

$Result = $this->SendDataToParent(json_encode(Array("DataID"=> "{F241DA6A-A8BD-484B-A4EA-CC2FA8D83031}", "InstanceID" => $this->InstanceID, "Channel" => $Channel, "Value" => $Value)));

Kommt eine Fehlermeldung:
„Warning: Cannot find required field Size in…(Verweis auf den Pfad meines Moduls und die Zeile des „SendToParent“)“

Kann das IPS-Team da unterstützen??

Joachim

Kannst auch tricksen.
Selber einen Splitter schreiben und schauen was andere Instanzen dir in ForwardData schreiben.
Michael

…wenn man denn diesen Weg gehen muss…

Habe dann wieder Probleme mit dem Datenfluss…:o
Das sind die Daten des IPS-DMX Output:

Array
(
    [ParentRequirements] => Array
        (
            [0] => {F241DA6A-A8BD-484B-A4EA-CC2FA8D83031}
        )

    [ChildRequirements] => Array
        (
        )

    [Implemented] => Array
        (
            [0] => {311686E9-E1C5-4247-931B-EB8FF396638F}
        )

    [Vendor] => DMX
    [Aliases] => Array
        (
            [0] => DMX Output
        )

    [LibraryID] => {0945206A-47AA-4FDD-9093-99051E410E82}
    [ModuleID] => {E19C2E41-7347-4A3B-B7D9-A9A88E0D133E}
    [ModuleName] => DMX Output
    [ModuleType] => 3
)

Das müsste ja irgendwie hier rein damit der FakeSplitter als Parent anerkannt wird?:confused:

{
  "id": "{E49903E1-2D0A-495F-81A2-A13F19B05E07}",
  "name": "IPS2DMX_FakeSplitter",
  "type": 2,
  "vendor": "JP-IPS-Modules",
  "aliases":
  [
    "IPS2DMX_FakeSplitter"
  ],
  "parentRequirements": [],
  "childRequirements": [],
  "implemented": [],
  "prefix": "I2DFS"
}

PR kann m.E. hier leer bleiben, in CR müsste dann {311686E9-E1C5-4247-931B-EB8FF396638F} rein? In I dann {F241DA6A-A8BD-484B-A4EA-CC2FA8D83031}?

Joachim

Genau.
Michael

…wieder einen Schritt weiter - vielen Dank!

Joachim