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"
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"
Habe jetzt nicht nachgesehen. Aber vielleicht SelectInstance ?
Edit: Ja war richtig
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“…
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…