Package: jvc-projector-remote
JVC Projector Remote⚠️ This project is looking for (co-)maintainers.Times change, I might end up with a different projector brand, JVC might change the command interface for a newer model that I don't have. Enough people use this library now that I think it's important to think about think about its future. I would be grateful to have people who are competent in python and have access to a JVC projector on board. If you're willing to help, submit a pull request implementing new features, fixing bugs or tidying up my terrible programming and documentation!If you'd like to make a donation to sponsor work on this project, you candonate on ko-fi, orgithub sponsorsThis is a package to control JVC Projectors over IP.ReferencesThis library is used by following software:JVC projector remote for Homeassistant(add-on forHome Assistant).homebridge-jvc-projector(plugin forHomebridge)It can also be used standalone or in a Python script.Command FormatRead StateTo get a status a specific command is sent with theJVCProjector.command(<command>)method.Examples:To read power state, send commandpowerand receivestandby,lamp_on,cooling,reservedoremergencyTo read signal state, send commandsignaland receiveno_signaloractive_signalWrite StateTo control the projector, a command together with a certain state is sent with theJVCProjector.command(<command>-<state>)method.Examples:PowerON:power-onChange picture mode tofilm:picture_mode-filmSwitch lamp tohigh:lamp-highSupported CommandsDescriptionCommandStatePowerpowerRead:standby,lamp_on,cooling,reserved,emergencyWrite:on,offLens MemorymemoryRead/Write:1,2,3,4,5,6,7,8,9,10InputinputRead/Write:hdmi1,hdmi2Picture Modepicture_modefilm,cinema,natural,hdr10,thx,user1,user2,user3,user4,user5,user6,hlg,frame_adapt_hdr,hdr10p,pana_pqLow Latency Modelow_latencyRead/Write:on,offMaskmaskRead/Write:off,custom1,custom2,custom3Lamp Settinglamphigh,low,midMenu ButtonsmenuWrite:menu,down,left,right,up,ok,backLens ApertureapertureRead/Write:off,auto1,auto2Anamorphic ModeanamorphicRead/Write:off,a,b,c,dSignal StatussignalRead:no_signal,active_signalGet Mac AddressmacaddrRead: returns mac address stringModel InfomodelinfoRead: returns the model info stringTest ConnectionnullWrite: no write payload, used for testing connectionNOTE:Not all commands or states are supported by all models. You can easily tell by testing them on your JVC projector.Installation$python3-mpipinstalljvc_projector_remoteUsageFor usage with Home Assistant,see here.Below is an example for using this module standalone (seecommand formatsection for command strings):>>>fromjvc_projector_remoteimportJVCProjector# replace with your projector's local IP>>>host="192.168.1.12"# initialise (for models older than the NZ series)>>>projector=JVCProjector(host,port=20554,delay_ms=600,connect_timeout=10,max_retries=10)# initialise (alternate, with network password)>>>projector=JVCProjector(host,password="MYPASSWORD",port=20554,delay_ms=600,connect_timeout=10,max_retries=10)# power on, power off>>>projector.power_on()# check status once it's on>>>projector.is_on()True>>>projector.power_off()# check if it's off>>>projector.is_on()False# Send arbitrary command# see the command format section above>>>projector.command("input-hdmi2")Confirmed ModelsDLA-X5900NX5NZ8/RS3100DLA-RS440Let me know if it works with your
projector and I will add it to the list above.ErrorConnectionRefusedErrorThe main issue one might face is receiving ConnectionRefusedError when making a
request too soon after another. If this is the case, we will retry up tomax_retries. It is important to setdelay_msto a reasonable value. For example, my X5900 will hang for 0.8-1 second after the power-off command is sent.Adding New CommandsIf you are not familiar with Python at all, raise an issue with a request to add a new command. Otherwise, follow thedocumentationfor theCommandbase class and be sure to look at theexamplesin theCommandsclass.