npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-benq-projector

v2.1.1

Published

Homebridge plugin for BenQ projectors

Downloads

10

Readme

homebridge-benq-projector v2.1.1

Homebridge plugin for BenQ projectors via serial RS232 as HomeKit TVs. Requires iOS >=12.2 and homebridge >=0.4.46.

Description

This plugin connects to a BenQ projector via serial RS232. Developed and tested using a Raspberry Pi and a USB to serial RS232 cable to connect to a BenQ W1070.

Installation instructions

  1. Install homebridge
  2. Connect to projector via RS232
  3. Install this plugin:
npm install -g homebridge-benq-projector
  1. Update your config.json, following the example below

Example configuration

{
   "bridge": {
     ...
   },
   "accessories": [
     ...
   ],
   "platforms": [{
       "platform": "BenQ-Projector",
       "devices": [
           {
               "name": "BenQ w1070",
               "model": "W1070",
               "adapter": "/dev/ttyUSB0",
               "inputs": [
                   { "input": "hdmi", "label": "Apple TV" },
                   { "input": "RGB", "label": "Computer" },
                   { "input": "ypbr", "label": "Component" },
                   { "input": "hdmi2", "label": "Raspberry Pi" },
                   { "input": "vid", "label": "Composite" },
                   { "input": "svid", "label": "S-Video" }
               ],
               "baudrate": 9600
           }
       ]
     }]
}

Configuration

General configuration

| Attributes | Required | Usage | |------------|----------|-------| | platform | Yes | Name of homebridge accessory plugin. Must be BenQ-Projector. | | devices | Yes | Array of BenQ projectors. Each of them must be added manually to the Home app! |

Device configuration

| Attributes | Required | Usage | |------------|----------|-------| | name | Yes | Name of the projector, how you want it to appear in HomeKit. | | adapter | Yes | Path to serial RS232 adapter. | | model | No | Projector model. Only displayed in accessory details in HomeKit. | | pollingInterval | No | Polling interval in milliseconds (Default: 6000) | | inputs | No | List of inputs to populate in the TV interface in HomeKit. Must be input and label pair, where input is input according to the projector and label is how it will be listed in HomeKit. Label changes made in the Home app or elsewhere are not saved and must be defined here. If no list is provided, a default list is used of inputs supported by W1070. | | baudrate | No | baudrate for your device. Default is 115200.

List of known possible inputs

| Input | Default Label/Interface | |-----------|-----------------------------| | hdmi | HDMI 1 | | RGB | COMPUTER/YPbPr | | ypbr | Component | | hdmi2 | HDMI 2 | | vid | Composite | | svid | S-Video | | RGB2 | COMPUTER 2/YPbPr2 | | dviA | DVI-A | | dvid | DVI-D | | network | Network | | usbdisplay | USB Display | | usbreader | USB Reader |

Convert to v2.0.0

If you want to update to v2.0.0 or higher you'll need to adjust your configuration. The reason for that is the conversion from an accessory plugin to a platform plugin.

Example config before v2.0.0:

{
    "accessory": "BenQ-Projector",
    "name": "BenQ w1070",
    "model": "W1070",
    "adapter": "/dev/ttyUSB0",
    "inputs": [
        { "input": "hdmi", "label": "Apple TV" },
        { "input": "RGB", "label": "Computer" },
        { "input": "ypbr", "label": "Component" },
        { "input": "hdmi2", "label": "Raspberry Pi" },
        { "input": "vid", "label": "Composite" },
        { "input": "svid", "label": "S-Video" }
    ],
    "baudrate": 9600
}

The same config, that works with the v2.0.0:

{
    "platform": "BenQ-Projector",
    "devices": [
        {
            "name": "BenQ w1070",
            "model": "W1070",
            "adapter": "/dev/ttyUSB0",
            "inputs": [
                { "input": "hdmi", "label": "Apple TV" },
                { "input": "RGB", "label": "Computer" },
                { "input": "ypbr", "label": "Component" },
                { "input": "hdmi2", "label": "Raspberry Pi" },
                { "input": "vid", "label": "Composite" },
                { "input": "svid", "label": "S-Video" }
            ],
            "baudrate": 9600
        }
    ]
}

In addition to the config changes, you'll need to move the plugin config from the "accessories": [...] to "platforms": [...] section of your HomeBridge instance.

Known issues

  • None.

Changelog

v2.1.1

  • Fix reference to current serial-io package version.

v2.1.0

  • Add Picture Mode characteristic. Fix serial port conflicts, callback issues, and possible volume polling issues. Thanks @mlaurijsse!

v2.0.1

  • Update serial-io dependency.

v2.0.0 BREAKING CHANGE

  • Converted plugin to a HomeBridge Platform due to HomeKit limitations. In order to use multiple TVs in HomeKit, they need to be exposed as spearate external accessories. This feature is only available to platform plugins.

v1.1.0

  • Switch from the borrowed Transport.js to serial-io package for serial communication. Should increase long term speed and stability.

v1.0.6

  • Upgrade dependencies (thanks @alehaa)
  • Add ability to configure baudrate (thanks @sir-bedevere)
  • Add config schema for homebridge-config-ui-x support

v1.0.5:

  • Stability improvements and iOS 13 fix by adding services in the correct order (thanks @AlexanderBabel).

v1.0.4:

  • Fixed typo in debug logging that could cause accessory to become unresponsive.

v1.0.3:

  • Fixed stability issues by reintroducing some things originally removed from Transport.js. Partially fix and partially hide performance issues by doing callbacks sooner and freeing up HomeKit sooner.

v1.0.2:

  • Fixed user defined input list.

v1.0.1:

  • Fixed a bug referencing package version as accessory firmware version.

v1.0:

  • Initial release.

Contributing

You can contribute to this homebridge plugin in following ways:

  • Report issues and help verify fixes as they are checked in.
  • Contribute bug fixes.
  • Contribute changes to extend the capabilities

Pull requests may be accepted.