Problem mit Splitter Auswahl

Hallo,
habe da eine form.fson mit:
{ „name“: „LCNDisplayId“, „type“: „SelectVariable“, „caption“: „LCNDisplayId“},

Da müsste ich ein LCN-Modul im Splitter auswählen, diese geht leider nicht," Ausgewähltes Objekt ist nicht erlaubt" :confused:

Habe jetzt nicht nachgesehen. Aber vielleicht SelectInstance ?
Edit: Ja war richtig :smiley:
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/konfigurationsformulare/selectinstance/

Was möchtest du den machen ?
Eventuell vielleicht sinnvoller das mit einer übergeordneten Instanz zu lösen ?
Michael

Danke Michael,
werde das probieren.

Machen will ich :
LCN_SendCommand($DisplayId, „GT“, „DT“ . $DisplayZeile . „1“ . (substr($nowPlaying, 0, 12)));

Da brauche ich die ID aus den „Splitter Instanzen“.
Mit „NumberSpinner“ geht das, war aber nicht „klickbar“…:smiley:

Ist vermutlich der einfachste Weg.

Kannst es aber bestimmt auch über eine eine Client-Parent Anbindung im Modul machen.
Ist aber etwas aufwändiger, zumal du dann auch Daten empfangen kannst (must).

Wie das überhaupt umgesetzt wird, ist hier ‚beschrieben‘:
paresy/SymconTest · GitHub

Wichtig ist das man die ganzen GUIDs in der module.json richtig einträgt.

Die ganzen GUIDs sind aber glaube ich noch nicht dokumentiert; aber in den ‚alten‘ Delphi-SDK nachzulesen. (Die Dateien kann man auch mit einem Texteditor öffnen, Delphi braucht es dafür nicht.)
Dort kann man auch die verwendeten Daten nachsehen.

Hier zu Beispiel LCN:


 IIPSReceiveInternalLCN = interface(IInvokable)
  ['{00E11183-CDAF-4AFB-9B13-D41A8B6D05ED}']
  procedure ReceiveLCNData(_Type: TLCNMessage; _Function, Data: String); stdcall;
 end;

 IIPSSendInternalLCN = interface(IInvokable)
  ['{40C6F645-4A0C-40D7-9100-38EABB73B1EB}']
  procedure SendLCNData(_Function, Data: String); stdcall;
 end;

Könnte in PHP dann so aussehen (ohne Gewähr, da ich es nicht testen kann):


    public function ReceiveData($JSONString)
    {
        $data = json_decode($JSONString);
        IPS_LogMessage("ReceiveLCNData", print_r($data, 1));
        // Sollte dann das enthalten:
        #    $data->Type;
        #    $data->Function;
        #    $data->Data;
    }

    public function Send($Function, $Data)
    {
        $LCNData = Array(
            "DataID" => "{40C6F645-4A0C-40D7-9100-38EABB73B1EB}", // an das SendInternalLCN-Interface
            "Function" => $Function,
            "Data" => $Data
        );
        $this->SendDataToParent(json_encode($LCNData));
    }

    public function Machwas()
    {
        $this->Send('A1', 'DI000000'); // Ausgang 1 sofort auf 0% dimmen
    }

    public function DisplayData($DisplayZeile, $nowPlaying)
    {
        $this->Send('GT', 'DT' . $DisplayZeile . '1' . (substr($nowPlaying, 0, 12)));
    }


Michael

Danke,

aber ich nehme "SelectInstance ", kommt dann halt einText da vor, was wie wo…