PJLink — ReadMe

ÜBERSICHT   —   FREISCHALTUNG  —   SCREENSHOTS

 

  1. Funk­tion­sum­fang
  2. Sys­te­man­forderun­gen
  3. Instal­la­tion
  4. Befehlsref­erenz

 

1. Funktionsumfang

Mit diesem Mod­ul kann man Geräte, welche mit PJLink kom­pat­i­bel sind, steuern und abfragen.
Außer­dem kann man in einem beliebi­gen Inter­vall den Sta­tus (Device-Sta­tus/In­put/Lam­p­en­stun­den/Er­rors/…)
vom Gerät abfra­gen und diesen in die zuge­höri­gen Vari­ablen schreiben lassen. Alter­na­tiv kann
man sich natür­lich jed­erzeit eigene Skripte schreiben und auf die in Punkt 4 aufgelisteten
Funk­tio­nen zurück­greifen, um z.B. ein Gerät durch Skript­start ein-/auss­chal­ten zu lassen.

Lei­der gibt es nicht sooo tolle Infos zu PJLink und das meiste nur auf Japanisch. Auch kann ich selbst
nicht testen — man­gels passender Hard­ware. Aber die wichtig­sten Befehle habe ich direkt einge­baut und
für alles weit­ere kön­nt ihr ein­fach die Funk­tion "Send­Cus­tom­Com­mand" verwenden.

In der Mod­ul-Instanz kön­nen die fol­gen­den Ein­stel­lun­gen vorgenom­men werden:

  • IP Adresse vom Gerät
  • Port (default ist 4352)
  • Pass­wort (wenn der PJLink "Zugang" mit einem Pass­wort geschützt ist)
  • Map­ping der Inputs (dies kann sich von Gerät zu Gerät unter­schei­den — ein­fach ausprobieren)
  • Inter­vall zum Aktu­al­isieren der Dat­en (0 = keine automa­tis­che Aktualisierung)

Fol­gende Möglichkeit­en ste­hen über dieses Mod­ul zur Verfügung:

  • Abfrage der ver­füg­baren Inputs
  • Abfrage des aktuell aktivierten Input
  • Gerät auf einen bes­timmten Input schalten
  • Pow­er/De­vice-Sta­tus vom Gerät abfragen
  • Gerät ein­schal­ten
  • Gerät auss­chal­ten
  • Lam­p­en­laufzeit in Stun­den (bei Projektoren)
  • Net­zw­erk­name vom Gerät abfragen
  • Her­steller vom Gerät abfragen
  • Mod­ell­beze­ich­nung vom Gerät abfragen
  • Error-Sta­tus abfragen
  • Cus­tom Com­mands an das Gerät schicken

Wenn ihr die Inputs ver­wen­den wollt, dann soll­tet ihr als erstes fol­gen­des Skript ausführen:
$InstanzID = 12345; // Hier die ID der PJLink-Mod­ul-Instanz eintragen
$result = PJLink_Control($InstanzID, "Show­In­puts");
print_r($result);
…und danach dann in der Mod­ul-Instanz die Zuweisung vornehmen. Diese sind je nach Gerät etwas
unter­schiedlich, deshalb habe ich einge­tra­gen was mir aktuell bekan­nt ist, aber es für jeden einfach
anpass­bar gemacht. Am ein­fach­sten kann der Input ermit­telt wer­den, indem man am Gerät einen Input
aktiviert und dann mit "Show­In­put" sich die Num­mer des Inputs anzeigen lässt. Am Ende die Mappings
in der Mod­ul-Instanz anpassen und fertig.

Hin­weis — 11 bis 19 sind analoge Sig­nale, 21 bis 29 sind composite/component Sig­nale, 31 bis 39
sind dig­i­tale Sig­nale, 41 bis 49 sind Spe­icher­me­di­en, 51 bis 59 sind Netwerksignale

 

2. Systemanforderungen

  • IP-Sym­con ab Ver­sion 4.x

 

3. Installation

Über die Kern-Instanz "Mod­ule Con­trol" fol­gende URL hinzufügen:

https://GITLAB-BENUTZERNAME:GITLAB-PASSWORT@gitlab.com/BY-IPS-Module/PJLink.git
Die neue Instanz find­et ihr dort, wo ihr sie angelegt habt.

 

4. Befehlsreferenz

PJLink_Update(int $InstanzID);
Aktu­al­isiert die Werte (Input, Device-Sta­tus, Lam­p­en­stun­den, Error-Sta­tus) in den Variablen.

$result = PJLink_SetInput1(int $InstanzID, int $Input­Nr);
Mit dieser Funk­tion kann das Gerät auf einen bes­timmten Input/Eingang geschal­tet wer­den. Will
man z.B. auf "HDMI1" schal­ten, sendet man "PJLink_SetInput($InstanzID, 32)" an die Modul-Instanz.
Die Num­mer hän­gen davon ab, welche Inputs ihr zur Ver­fü­gung habt und welche Num­mer diese haben.
Achtung — es gibt den Befehl "%1INPT XX" und den Befehl "%2INPT XX" — da müsst ihr ein­fach testen.

$result = PJLink_SetInput2(int $InstanzID, int $Input­Nr);
Mit dieser Funk­tion kann das Gerät auf einen bes­timmten Input/Eingang geschal­tet wer­den. Will
man z.B. auf "HDMI1" schal­ten, sendet man "PJLink_SetInput($InstanzID, 32)" an die Modul-Instanz.
Die Num­mer hän­gen davon ab, welche Inputs ihr zur Ver­fü­gung habt und welche Num­mer diese haben.
Achtung — es gibt den Befehl "%1INPT XX" und den Befehl "%2INPT XX" — da müsst ihr ein­fach testen.

$result = PJLink_Control(int $InstanzID, string $Com­mand);
Schickt den jew­eili­gen Befehl über PJLink an das Gerät und gibt ein Array mit Infor­ma­tio­nen zurück.
Bei Werten mit zuge­höri­gen Vari­ablen wer­den diese auch direkt in die Vari­ablen geschrieben.
Gültige Werte für $Com­mand sind:

  • "Show­In­puts" >> Lis­tet alle ver­füg­baren INPUTS auf
  • "Show­In­put" >> Gibt den aktuell gewählten INPUT aus
  • "ShowDe­viceS­ta­tus" >> Pow­er-Sta­tus vom Gerät
  • "PowerOff" >> Gerät ausschalten
  • "PowerOn" >> Gerät einschalten
  • "ShowLam­pHours" >> Lam­p­en­laufzeit in Stunden
  • "ShowNet­work­name" >> Net­zw­erk­name vom Gerät
  • "Show­Man­u­fac­tur­er" >> Hersteller
  • "Show­Mod­el­type" >> Modellbezeichnung
  • "Show­Er­rorStats" >> Error Status

$result = PJLink_SendCustomCommand(int $InstanzID, string $Cus­tom­Com­mand);
Mit dieser Funk­tion kön­nt ihr alle Befehle an das Gerät senden, die nicht schon fest in diesem
Mod­ul einge­baut sind. Welche Befehle es gibt hängt vom ange­bun­de­nen Gerät ab. Deshalb habe ich
nur die "üblichen" und wichti­gen Befehle fest einge­baut. Alle weit­eren Befehle kön­nt ihr über
diese Funk­tion absenden.
So kön­nte man z.B. den Schalt­be­fehl für den Input "HDMI1" direkt als Befehl an das Gerät schicken:
PJLink_CustomCommand($InstanzID, "%1INPT 32");
Weit­ere Befehle kön­nt ihr z.B. hier find­en: http://pjlink.jbmia.or.jp/english/dl.html
Alter­na­tiv direkt in dieser PDF ab Seite 11: http://pjlink.jbmia.or.jp/data_cl2/PJLink_5‑4.pdf