2.0.0 • Published 7 years ago

homebridge-switcheroo v2.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

npm version

homebridge-switcheroo

User defined switches for http requests. Simple on/off or multiswitch radio buttons. Useful for lights, A/V systems, home automation, whatever

Switch Types

Switch (standard on/off)

Meant to be used as a simple on/off switch. ==> light, projector, fan, garage door, car ignition (bad idea)

{
        "accessory": "Switcheroo",   // remember this *must* be 'Switcheroo'
        "type": "switch",
        "name": "Kitchen Light",
        "host": "192.168.0.XXX/kitchen",
        "on"  : "/light/on",
        "off" : "/light/off"
}

Multiswitch (radio buttons)

Works like a switcher - only one input can ever be on at one time. ==> A/V input switcher, KVM control, temperature settings, really bad piano

Define your multiswitch with whatever name you want to appear as the input title on Homekit controls. Then, the appropriate endpoint path to call. Complete http endpoints are constructed as host + path. Currently only built to support one http method per switch service, meaning, all endpoint calls will be either GET (default) or POST etc.

{
    "accessory": "Switcheroo",
    "type": "multiswitch",
    "name": "My HDMI Switcher",
    "host": "192.168.0.10X:8080",   // don't forget to specify a port, if necessary
    "multiswitch": [
       { "name" : "Apple TV"     , "path" : "/switcher/appletv" },
       { "name" : "HDMI"         , "path" : "/switcher/aux"     },
       { "name" : "Chromecast"   , "path" : "/switcher/chrome"  },
       { "name" : "PS4"          , "path" : "/switcher/ps4"     },
       { "name" : "Raspberry Pi" , "path" : "/switcher/pi"      }
    ]
}

Configuration Params

ParameterDescriptionRequired
namename of the accessory
typeswitch or multiswitch
hosturl for whatever is receiving these requests
on / off(only switch) endpoint paths for the on/off states
on_body / off_body(only switch) bodies for on/off state requests
multiswitch(only multiswitch) list of inputs for the multiswitch - name and endpoint path
http_methodGET (default), POST, PUT, DELETE
usernameusername for request
passwordpassword for request
send_immediatelyoption for request
manufacturerwill show in Home app description of this Homekit accessory, ex. 'LG'
modelwill show in Home app description of this Homekit accessory, ex. 'HD 2000'

Debug logging

Running homebridge manually will allow you to see the Switcheroo console logs.

Switcheroo logging

Tips

  • Run Homebridge on startup and have it restart if crashed, read my notes
  • Make sure specify a port in the if necessary. (i.e. "base_url" : "http://192.168.0.XXX:2000")
  • Verify the correct http_method is begin used. Switcheroo defaults to GET

Installation

Read about an example Raspberry Pi + Homebridge setup guide with this package here

  1. Install homebridge using: npm install -g homebridge
  2. Install homebridge-http using: npm install -g homebridge-switcheroo
  3. Update your config file

Changes from 1.X.X

New

  • define unique paths for each multiswitch item
  • manufacturer, model params

Renamed

  • 'switch_type' -> 'type'
  • 'Switch' -> 'switch'
  • 'Multiswitch' -> 'multiswitch'
  • 'base_url' -> 'host'
  • 'on_url' -> 'on'
  • 'off_url' -> 'off'