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 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-globalcache-gc100-kiro

v0.3.5

Published

Homebridge plugin for controlling the Systemline S6.2 multi-room audio system via a Global Cache iTach IP2SL RS232 interface. Exposes zones as HomeKit switches and volume sliders. Built with Kiro AI.

Downloads

92

Readme

homebridge-globalcache-gc100-kiro

A Homebridge plugin for controlling the Systemline S6.2 multi-room audio system via a Global Cache iTach IP2SL RS232 interface.

npm Homebridge v2


Overview

The Systemline S6.2 is an 8-zone multi-room audio matrix amplifier. It exposes a serial (RS232) control interface, but has no native IP connectivity.

This plugin bridges that gap using a Global Cache iTach IP2SL — a network-to-serial adapter — to expose each S6.2 zone as a HomeKit accessory. You can then control your whole-home audio from the Apple Home app, Siri, or any HomeKit automation.

What you can do from HomeKit:

  • Turn individual zones on or off (source selection)
  • Control volume per zone via a brightness slider
  • Include zones in automations and scenes

Requirements

  • Homebridge v1 or v2
  • Global Cache iTach IP2SL (network-to-serial adapter)
  • Systemline S6.2 multi-room amplifier
  • iTach IP2SL connected to the S6.2 RS232 port and reachable on your local network

Installation

Install via the Homebridge UI, or manually:

npm install -g homebridge-globalcache-gc100-kiro

Configuration

Add the platform to your Homebridge config.json. The plugin is best configured via the Homebridge UI which provides a form-based editor.

Minimal example

{
  "platform": "GC100KiroPlatform",
  "name": "gc100kiro",
  "host": "192.168.1.100",
  "rs232_devices": [
    {
      "name": "Kitchen",
      "port": "4999",
      "base64_encoded": true,
      "commands": {
        "on": "JHMyc3JjMgo=",
        "off": "JHMyc3Jjb2ZmCg=="
      },
      "success_messages": {
        "on": "JHMyc3JjMgo=",
        "off": "JHMyc3Jjb2ZmCg=="
      }
    }
  ],
  "volume_devices": [
    {
      "name": "Kitchen Volume",
      "port": "4999",
      "zone": "2"
    }
  ]
}

Configuration options

| Option | Type | Required | Description | |--------|------|----------|-------------| | platform | string | ✅ | Must be GC100KiroPlatform | | name | string | ✅ | Platform name shown in logs | | host | string | ✅ | IP address of the iTach IP2SL on your network | | ir_port | string | | IR port (default: 4998) | | rs232_devices | array | | Zone switch accessories (see below) | | volume_devices | array | | Volume control accessories (see below) |

Zone switches (rs232_devices)

Each entry creates a HomeKit Switch accessory that controls a zone's source input. Turning it on selects the source; turning it off mutes the zone.

| Option | Type | Description | |--------|------|-------------| | name | string | Accessory name shown in HomeKit | | port | string | iTach IP2SL RS232 port (default: 4999) | | base64_encoded | boolean | Set true if commands are Base64 encoded | | commands.on | string | RS232 command to turn zone on | | commands.off | string | RS232 command to turn zone off | | success_messages.on | string | Expected response for on command | | success_messages.off | string | Expected response for off command |

Volume zones (volume_devices)

Each entry creates a HomeKit Lightbulb accessory where the brightness slider controls zone volume. The S6.2 volume range (0–30) is mapped to HomeKit's 0–100% scale.

| Option | Type | Description | |--------|------|-------------| | name | string | Accessory name shown in HomeKit | | zone | string | S6.2 zone number (1–8) | | port | string | iTach IP2SL RS232 port (default: 4999) |


RS232 Commands

The S6.2 uses a simple ASCII command protocol over RS232. Commands must be terminated with \r. If using base64_encoded: true, encode the raw command string in Base64.

Common commands

| Action | Raw command | Base64 | |--------|-------------|--------| | Zone 2 on (source 2) | $s2src2\r | JHMyc3JjMgo= | | Zone 2 off | $s2srcoff\r | JHMyc3Jjb2ZmCg== | | Zone 8 on (source 2) | $s8src2\r | JHM4c3JjMgo= | | Zone 8 off | $s8srcoff\r | JHM4c3Jjb2ZmCg== |

The command format is: $s<zone>src<source>\r to select a source, or $s<zone>srcoff\r to turn a zone off.

Use base64encode.org to encode your own commands.


Zone reference (Systemline S6.2)

| Zone | Description | |------|-------------| | 1 | Zone 1 | | 2 | Zone 2 | | 3 | Zone 3 | | 4 | Zone 4 | | 5 | Zone 5 | | 6 | Zone 6 | | 7 | Zone 7 | | 8 | Zone 8 |


How it works

The iTach IP2SL exposes its RS232 port over TCP on port 4999. This plugin opens a TCP socket to the iTach and sends raw RS232 commands directly to the S6.2.

Zone switches send a source-select or source-off command and read back the S6.2 response to determine state. State is cached after the first query to avoid unnecessary polling.

Volume accessories use a shared serial queue so only one socket is open on port 4999 at a time — this prevents response collisions when multiple zones are queried simultaneously. Volume changes are debounced (400ms) so dragging the slider doesn't flood the amplifier with commands. Startup queries are staggered per zone to allow each to complete before the next begins.


Homebridge v2

This plugin is fully compatible with Homebridge v2 and HAP-NodeJS v1.


Credits

Based on the original homebridge-globalcache-itach by Paul Wieland.

Enhanced for Systemline S6.2 RS232 control, volume slider support, state caching, and Homebridge v2 compatibility. Built with Kiro AI.


License

MIT