bitfocus / companion-module-requests

Repository for tracking module requests
101 stars 11 forks source link

LG Commercial Display #224

Open mixmastrbrock opened 4 years ago

mixmastrbrock commented 4 years ago

Looking to control LG displays. Already have figured out the control method, just would like some help getting this into Companion.

Displays are controlled with same Hex/ASCII characters as RS232. Just point a telnet or netcat command at the IP address and port 9761. Only different command is power on, but that's a simple WOL/Magic Packet. Currently controlling them using a script, but would love to have a tactile controller within my environment.

josephdadams commented 4 years ago

Are you looking to create this module yourself and you need help getting started? Or are you looking for someone else to write this for you? If that’s the case, consider posting the actual commands.

mixmastrbrock commented 4 years ago

Development is not in my wheelhouse, but I have enough know-how with terminal and ShellScript to figure out the control parameters. Here are the ASCII commands that can be sent.

https://support.justaddpower.com/kb/article/36-lg-rs232-control/

https://www.lg.com/us/business/download/resources/BT00001837/UV340C-U_Install_Manual_170825.pdf

Below are the commands that work in terminal for control: Power On wakeonlan -I <--ipaddress-->

Power Off echo -n -e "ka 01 00" | nc <--ipaddress--> 9761

Volume Up echo -n -e "mc 01 02" | nc <--ipaddress--> 9761

Volume Down echo -n -e "mc 01 03" | nc <--ipaddress--> 9761

Not sure if these commands are the best method for control, but this is how I accomplished it. Only other standing issue is to have a way to periodically poll the NIC with a status request to keep it awake. They tend to stop responding to WakeOnLAN after a few hours.

peternewman commented 1 month ago

I think this should be fairly possible by taking the work I've done for Samsung in https://github.com/bitfocus/companion-module-samsung-display/pull/8 and switching to use the equivalent NPM module for LG, which supports the commands listed in lgds.xml here: https://www.npmjs.com/package/lg-signage?activeTab=code

I've no easy ability to test it though, so that would have to be over to others, and I'll probably try and polish the Samsung version a bit more first so there doesn't have to be constant porting of improvements from one module to the other.

peternewman commented 1 month ago

Also does this module not work for you already? https://github.com/bitfocus/companion-module-lgtv-display

wejda21 commented 2 weeks ago

Hi everyone! It would be pretty awesome to have LG Signage TV module! Its a bit different from the lgtv-display module which is already there (connecting to an IP or via RS232 jack etc.)

I am not a developer, so I would really appreciate any help. The most crucial command we are now comming accros is brightness command: [Brightness] (Command: k h) Adjusts the screen brightness. Transmission (k)(h)( )(Set ID)( )(Data)(Cr) Data 00-64: Brightness 0-100 Acknowledgment (h)( )(Set ID)( )(OK/NG)(Data)(x)

or

Select Input (Command: x b) Selects an input signal. Transmission (x)(b)( )(Set ID)( )(Data)(Cr) Data 20: AV 40: COMPONENT 60: RGB 70: DVI-D (PC) 80: DVI-D (DTV) 90: HDMI1 (DTV) A0: HDMI1 (PC) 91: HDMI2 (DTV) A1: HDMI2 (PC) 92: OPS/HDMI3/DVI-D (DTV) A2: OPS/HDMI3/DVI-D (PC) 95: OPS/DVI-D (DTV) A5: OPS/DVI-D (PC) 96: HDMI3/DVI-D (DTV) A6: HDMI3/DVI-D (PC) 97: HDMI3/HDMI2/DVI-D (DTV) A7: HDMI3/HDMI2/DVI-D (PC) 98: OPS (DTV) A8: OPS (PC) 99: HDMI2/OPS (DTV) A9: HDMI2/OPS (PC) C0: DISPLAYPORT (DTV) D0: DISPLAYPORT (PC) C1: DISPLAYPORT/USB-C (DTV) D1: DISPLAYPORT/USB-C (PC) C2: HDMI3 (DTV) D2: HDMI3 (PC) C3: HDBaseT (DTV) D3: HDBaseT (PC) C5: USB-C (DTV) D5: USB-C (PC) E0: SuperSign webOS Player E1: Others E2: Multi Screen E3: Play via URL E8: SI App F0: SDI 1 F2: SDI 3 F3: SDI 4 F4: Dual Link (SDI 1&2) F5: Dual Link (SDI 3&4) F6: Qual Link: Auto F7: Qual Link: 2SI F8: Qual Link: Square F9: SDI Quad View Acknowledgment (b)( )(Set ID)( )(OK/NG)(Data)(x)

The whole Signage WebOS menu can be controlled via RS232 or Telnet. I will gladly rewrite all the commands from the documenation anywhere you point me if it would take us closer to the LG Signage modul:)

Btw, can the brightness ascii command be made a Rotary action and be controlled via ArtNet after through all the 00-100 scale? That would be magic!!

Thanks in advance

llamafilm commented 2 weeks ago

I'm not sure it's necessary to create a separate module. Brightness control can be added to the existing module. The protocol it's based on is here: https://github.com/WesSouza/lgtv-ip-control/blob/main/docs/LG_IP.pdf

Do you see anything missing from that document that you would need?

wejda21 commented 1 week ago

The thing is commercial TV has different WebOS structure and funcionality than the Signage displays and hardware with WebOS (eg. LED controllers, players). I have tried the 82888 password everywhere possible in the Signages webos but with no success. It has different structure of menu even… How hard would be to build the new module from scratch? If its too much, lets leave it, I will try the raw telnet command.

Matěj Vejdělek

+420777751570 @.***

st 30. 10. 2024 v 17:03 odesílatel Elliott Balsley @.***> napsal:

I'm not sure it's necessary to create a separate module. Brightness control can be added to the existing module. The protocol it's based on is here: https://github.com/WesSouza/lgtv-ip-control/blob/main/docs/LG_IP.pdf

Do you see anything missing from that document that you would need?

— Reply to this email directly, view it on GitHub https://github.com/bitfocus/companion-module-requests/issues/224#issuecomment-2447646122, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQLBGSXEZQBZD5HTS2X5YY3Z6D7L5AVCNFSM6AAAAABP5NXQJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBXGY2DMMJSGI . You are receiving this because you commented.Message ID: @.***>

peternewman commented 1 week ago

Hi everyone! It would be pretty awesome to have LG Signage TV module! Its a bit different from the lgtv-display module which is already there (connecting to an IP or via RS232 jack etc.)

I am not a developer, so I would really appreciate any help. The most crucial command we are now comming accros is brightness command: [Brightness] (Command: k h) Adjusts the screen brightness. Transmission (k)(h)( )(Set ID)( )(Data)(Cr) Data 00-64: Brightness 0-100 Acknowledgment (h)( )(Set ID)( )(OK/NG)(Data)(x)

From what you've said, it appears they match the commands here: https://github.com/WesSouza/lgtv-ip-control/blob/main/docs/LG_RS232_IP_legacy.pdf

Whereas the other module implements the newer protocol that @llamafilm referred to.

The whole Signage WebOS menu can be controlled via RS232 or Telnet. I will gladly rewrite all the commands from the documenation anywhere you point me if it would take us closer to the LG Signage modul:)

Adding the documentation would be most useful @wejda21 to whoever may end up implementing it.

But it looks like that protocol is the one implemented by the https://www.npmjs.com/package/lg-signage NPM module I mentioned before.

Btw, can the brightness ascii command be made a Rotary action and be controlled via ArtNet after through all the 00-100 scale? That would be magic!!

That's not a module question but a broader Companion question really. I think the former will probably be doable. The Generic Art-Net module ( https://github.com/bitfocus/companion-module-generic-artnet ) doesn't seem to support Art-Net input, so you could ask there for that. I think the Art-Net remote control of Companion itself just does button presses, but I don't actually know as there's no documentation just some fixture files for certain desks, but that would be a general Companion feature request (someone might want to do the same with a Samsung/Sony/JVC etc).

wejda21 commented 1 week ago

Hi!

Yes, you are right, I overlooked that link! The https://www.npmjs.com/package/lg-signage NPM module matches my inquiries. However, I cannot find it listed in Companion v3.4. Is it still under developement?

And yes, you are right, the ArtNet input does just the button press. It would be great to push the full scale.

čt 31. 10. 2024 v 16:31 odesílatel Peter Newman @.***> napsal:

Hi everyone! It would be pretty awesome to have LG Signage TV module! Its a bit different from the lgtv-display module which is already there (connecting to an IP or via RS232 jack etc.)

I am not a developer, so I would really appreciate any help. The most crucial command we are now comming accros is brightness command: [Brightness] (Command: k h) Adjusts the screen brightness. Transmission (k)(h)( )(Set ID)( )(Data)(Cr) Data 00-64: Brightness 0-100 Acknowledgment (h)( )(Set ID)( )(OK/NG)(Data)(x)

From what you've said, it appears they match the commands here:

https://github.com/WesSouza/lgtv-ip-control/blob/main/docs/LG_RS232_IP_legacy.pdf

Whereas the other module implements the newer protocol that @llamafilm https://github.com/llamafilm referred to.

The whole Signage WebOS menu can be controlled via RS232 or Telnet. I will gladly rewrite all the commands from the documenation anywhere you point me if it would take us closer to the LG Signage modul:)

Adding the documentation would be most useful @wejda21 https://github.com/wejda21 to whoever may end up implementing it.

But it looks like that protocol is the one implemented by the https://www.npmjs.com/package/lg-signage NPM module I mentioned before.

Btw, can the brightness ascii command be made a Rotary action and be controlled via ArtNet after through all the 00-100 scale? That would be magic!!

That's not a module question but a broader Companion question really. I think the former will probably be doable. The Generic Art-Net module ( https://github.com/bitfocus/companion-module-generic-artnet ) doesn't seem to support Art-Net input, so you could ask there for that. I think the Art-Net remote control of Companion itself just does button presses, but I don't actually know as there's no documentation just some fixture files for certain desks, but that would be a general Companion feature request (someone might want to do the same with a Samsung/Sony/JVC etc).

— Reply to this email directly, view it on GitHub https://github.com/bitfocus/companion-module-requests/issues/224#issuecomment-2450179339, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQLBGSXLPLWHRCBTVKUJBPLZ6JEORAVCNFSM6AAAAABP5NXQJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJQGE3TSMZTHE . You are receiving this because you were mentioned.Message ID: @.***>

wejda21 commented 1 week ago

@peternewman Can somehow test the https://www.npmjs.com/package/lg-signage module? Sorry for this dull questions, but I am really a newbie in Comanion intestins

thedist commented 1 week ago

Can somehow test the https://www.npmjs.com/package/lg-signage module? Sorry for this dull questions, but I am really a newbie in Comanion intestins

That's not a Companion module. It's just a NodeJS library for integrating with LG Signage. It would still need someone to develop an entire Companion module for anyone to be able to make use of it in Companion.

wejda21 commented 1 week ago

If there is noone who would like to build it, I could do so, but I would be glad for some initial guidance. Can someone kick that off with me,please?

thedist commented 1 week ago

The Wiki contains everything on how to make a module https://github.com/bitfocus/companion-module-base/wiki

peternewman commented 1 week ago

As mentioned, and the reason I made this comment originally was because I've done practically the same thing, using a module from the same family, for a different model of screen. So if you just fork the code in https://github.com/bitfocus/companion-module-samsung-display/pull/8 you only need to make it use the LG, rather than Samsung NodeJS library, and then change some of the functions in the library it uses to match what the LG one expects, rather than starting from scratch.

Although there were a few bits to tidy up in that implementation still, so it might make sense to wait a bit depending on how desperate you are for it...