Home Homebridge - HK for some non-HK devices

Discussion in 'HomeKit, HomePod, CarPlay, Home & Auto Technology' started by aristobrat, Jan 16, 2016.

  1. aristobrat macrumors G4

    Joined:
    Oct 14, 2005
    #1
    Was curious if anyone else here besides @Peepo has any experience with this open-source project? It requires a fair amount of software tinkering to get installed and configured (so I know it's not for many), but thought it might be fun for some folks who have non-HK devices installed and like to tinker...

    Homebridge provides a software bridge that allows some not-HomeKit compatible "smart home" devices to be seen/controlled by HomeKit apps (and Siri).

    I have two devices that are not HomeKit compatible:
    1 - a Belkin WeMo power outlet
    2 - an ISY 994i controller that I use to automate a few Insteon SwitchLincs (wall switches) + a motion detector

    I knew going in that neither of those devices were HomeKit compatible, and I was fine with using their native apps to control them. After reading about Homebridge (and seeing @Peepo's post where he got it to work), I decided to give it a shot.

    And it's working! So far, anyway. Been an hour or two, so we'll see how it does long-term.

    I'm able to send the devices Siri commands to turn them on/off (or ask their status), and all of the devices show up in the free Elgato Eve HomeKit app that I've started to play around with. I don't have any Elgato products, but their app can see/control my Ecobee thermostats, as well as the WeMo power outlet and the ISY. Seems like a good base app for a lot of different HomeKit products.

    I'm running Homebridge on a Raspberry Pi that I bought to play around with. Looks like Homebridge will run easy enough on most Linux distributions, and there are some guides for getting it going on Windows boxes, but they look a bit hairy.
     
  2. Peepo macrumors 6502a

    Joined:
    Jun 18, 2009
    #2
    Good to hear. Mine has been running pretty solid and I'm surprised how fast and responsive it is updating to the ISY!

    I bought the Home app and although it is more simplistic looking it is much faster and is my preferred app. You may also want to try idevices app which is also free and has different look altogether.

    I'm surprised it even controls my fanlinc and I can tell Siri speeds like low medium and high.

    Can't control my garage door yet since the garage door name seems to be special case in HomeKit and since I made my own using an IOLinc it does know it's a garage door.

    Do you have any virtual 3-ways setup eg. two switchlincs in an insteon scene that control one light like in a hallway ? I made programs on isy that syncs the LEDs on switchlincs including solving keypadlinc issue if using buttons in scenes.

    I have a couple motion detectors also and can use Home app to make triggers but more powerful to do on isy.
     
  3. m11rphy macrumors 6502

    Joined:
    Dec 26, 2009
    #3
    Is there a how to guide for a guy like me, who has never used a raspberry PI and has no idea how to code ?
     
  4. aristobrat, Jan 17, 2016
    Last edited: Jan 17, 2016

    aristobrat thread starter macrumors G4

    Joined:
    Oct 14, 2005
    #4
    Before you start, I'd recommend that you check that any device you want to use with has a Homebridge plug-in already written for it. You should be able to check here. Just add the brand of device in the search bar, like "homebridge wemo" or "homebridge nest". Also see if you get a feel that the plugin does what you want it to.

    I used the install guide from the Homebridge install page here. If you scroll down that page to the README area, you'll see the installation area. The first part of the installation area links to a Wiki that gives some help for installing on a Raspberry Pi.

    I liked the Wiki for the Raspberry PI. The name for my Raspberry Pi was "raspberrypi.local", not "pi.local" as per that guide. No biggie. The setup part of my Pi installed Raspian Jessie (which I think is the latest release), so I skipped the "Install C++14 (Raspbian Wheezy Only)" section. I did install the latest stable version of Node (4.2.4) instead of the 4.0.0 mentioned in the Wiki. The only change for that was to edit the commands they give and replace 4.0.0 with 4.2.4.

    For the Raspberry Pi, I ordered the CanaKit bundle (with the 32GB card) from Amazon. Not sure if I'll need 32GB vs the 8GB that comes in the normal kit, but for only a few dollars more, I didn't want to run into issues down the road. The CanaKit was a complete kit (for my needs) with good reviews. Used one of my HDMI TVs as a temporary monitor. Took awhile to find a USB keyboard and mouse -- haven't used them in years. After the initial setup, I've been running it without the TV/keyboard/mouse. It sits on a bookcase in a spare bedroom. Probably going to have to put a piece of black electrical tape over the blue light in the CanaKit USB Wi-Fi dongle though, that thing is bright at night!
    --- Post Merged, Jan 17, 2016 ---
    Same here. With all of those hops (iPhone -> network -> Homebridge -> network -> ISY -> Insteon PLM -> device), I'm impressed that it's only about a second (if that) most times!

    I'll have to check out Home. Looks like it does scenes (like "Good Morning", etc). I've never messed with scenes before, either in HomeKit or with the ISY. I do see in my Ecobee's native iOS app how to add them to HomeKit "Good Morning", "Good Night", etc scenes. I have no idea how to add the ISY-controlled devices to those kind of scenes though.

    Not yet. The one hallway light I'd sort-of-want to do that with is actually a 4-way setup, which makes it about $160 in Insteon switches to do, so it's towards the bottom of my list at the moment.

    My ISY only controls a few switches for outside lights (so far), and I've only ever used ISY programs for that. I haven't set the Insteon devices up as controllers/responders (mostly because the programs do exactly what I want, so I'm not sure these would add any value). I'll have to read up on how Home does triggers. I'm confused as to "what" actually processes the conditions to set off a trigger (outside of the ISY).

    I'm glad it's winter. I'm not neglecting too many things around the house while I spend the majority of my free time geeking out with this stuff. :)
     
  5. ipedro macrumors 68040

    ipedro

    Joined:
    Nov 30, 2004
    Location:
    Toronto, ON
    #5
    I installed homebridge on my Mac tonight to enable Nest on HomeKit and it's glorious! Nest shows up as a native HomeKit device and Siri seems to recognize all of its functions perfectly!

    I added my Nest to Good night and Good morning scenes so when I go to bed, I say "Hey Siri, Good night" turning off my lights and setting my Nest to cool my bedroom to my favourite sleeping temperature. In the morning, I say "Hey Siri, good morning" and the lights come on, and my Nest starts heating my home. It's incredible and I don't know that I could go back to not having it. I hope it continues working this well or I'll have to buy an Ecobee.

    I would like it if my DropCam could be added in too. Turning on my security camera when I go to bed and turning it off when I wake up could be useful. I'm a little wary of hacking something like my camera with my Nest login credentials openly available in a text file.

    How sure can I be that Homebridge isn't sending my Nest login information and access to my DropCam to the developer?
     
  6. aristobrat thread starter macrumors G4

    Joined:
    Oct 14, 2005
    #6
    I don't think any of the code for Homebridge (or the individual plugins for the types of devices that it can control) is compiled code.

    That gives you (and others) the ability to look directly at what the code does.
     
  7. ipedro macrumors 68040

    ipedro

    Joined:
    Nov 30, 2004
    Location:
    Toronto, ON
    #7
    I don't understand the code but I guess that being open, there would have been coders who would have flagged any malware. Good to know.

    Do I need to keep Terminal running on my Mac to have Homebridge work or does it work in the background regardless of any opened apps?
     
  8. aristobrat thread starter macrumors G4

    Joined:
    Oct 14, 2005
    #8
    Not sure. On the Raspberry Pi, there was a section for how to make it autostart and run in the background. Did the Mac version have that option too?
     
  9. ipedro macrumors 68040

    ipedro

    Joined:
    Nov 30, 2004
    Location:
    Toronto, ON
    #9
    It's not working right now. Not sure if it's because the iMac went to sleep. I'll eventually get a Raspberry Pi to work as a hub unless Nest comes out with its own HomeKit enabled hub.
     
  10. Peepo macrumors 6502a

    Joined:
    Jun 18, 2009
    #10
    It is a command line script so if you run it from terminal then terminal needs to stay one unless you do something specific to make it run in background.

    I prefer to use screen and I do this in my raspberry Pi to run homebridge in the background. Should also work on OSX.

    http://www.kinnetica.com/2011/05/29/using-screen-on-mac-os-x/
     
  11. Perevers macrumors newbie

    Joined:
    Nov 5, 2015
    #11
    Hi I'm trying to install homebridge on my rPI and keep getting the same error when trying to install node.
    Here is what I'm writing and what the rPI is returning.
    pi@raspberrypi:~ $ wget https://nodejs.org/dist/v5.5.0/node-v5.5.0-linux-armv61.tar.gz
    --2016-02-09 15:16:46-- https://nodejs.org/dist/v5.5.0/node-v5.5.0-linux-armv61.tar.gz
    Resolving nodejs.org (nodejs.org)... 104.20.23.46, 104.20.22.46, 2400:cb00:2048:1::6814:162e, ...
    Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443... connected.
    HTTP request sent, awaiting response... 404 Not Found
    2016-02-09 15:16:47 ERROR 404: Not Found.

    Anyone here that knows what I'm doing wrong
     
  12. aristobrat, Feb 9, 2016
    Last edited: Feb 9, 2016

    aristobrat thread starter macrumors G4

    Joined:
    Oct 14, 2005
    #12
  13. Perevers macrumors newbie

    Joined:
    Nov 5, 2015
    #13
  14. Perevers, Feb 9, 2016
    Last edited: Feb 9, 2016

    Perevers macrumors newbie

    Joined:
    Nov 5, 2015
    #14
    Now I'm getting a new error
    I'm trying to install npm by typing: sudo npm install -g homebridge

    It's returning:
    Sudo: npm: command not found.

    What am I doing wrong now?

    Per

    Edit:

    Did

    sudo apt-get install npm

    First and it looks like it solved the problem
     
  15. Perevers macrumors newbie

    Joined:
    Nov 5, 2015
    #15
    Now i have another problem.
    Im trying to start homebridge but am getting a error:

    pi@raspberrypi:~ $ homebridge
    *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
    *** WARNING *** Please fix your application to use the native API of Avahi!
    *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
    *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
    *** WARNING *** Please fix your application to use the native API of Avahi!
    *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
    module.js:341
    throw err;
    ^

    Error: Cannot find module './build/Release/bignum'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at new require (internal/module.js:16:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/bignum/index.js:4:14)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    pi@raspberrypi:~ $

    I know the first WARNINGs dosn't matter.
    Node is the latest version btw.

    Hope that someone can help me

    Per
     
  16. aristobrat thread starter macrumors G4

    Joined:
    Oct 14, 2005
    #16
    I did some quick googling around yesterday afternoon and didn't come up with anything helpful.

    On the page where you download the Homebridge package, there is an area where you can ask questions. Might try there. Or maybe trying an older version of the jsnode package? I'm not sure how to uninstall the one you have, though.
     
  17. Perevers macrumors newbie

    Joined:
    Nov 5, 2015
    #17
    Thx a lot. Will try asking on the the homebridge homepage
     
  18. Recognition, Feb 11, 2016
    Last edited: Feb 21, 2016

    Recognition macrumors 6502

    Recognition

    Joined:
    Jun 27, 2013
    #18
    Thought I'd chime in with my Homebridge/Raspberry Pi setup.

    Raspberry Pi 2 running Homebridge.
    2x Belkin Wemo switches
    Nest Thermostat
    6x RF sockets (433mhz type) RF transmitter connected to the Rpi GPIO.
    Also have Philips hue lights with the new bridge but they're already HomeKit enabled.

    I'm a total noob to coding and Raspberry Pi but found loads of helpful guides on the net.

    Just recently found you can turn a PlayStation on with some code from the Rpi, so I then got Homebridge to run the code as an accessory so I can now wake my PS4 from sleep (and put it back to sleep) with Siri!

    Just trying to think of more things to add to it!

    Edit:
    Found my old RedEye Infrared wifi base station in a draw and have got it working with Homebridge too using the CMD plugin.
    This means I can now turn on my Tv, Amp and Sky Box just using Siri!
    Also means they can be included in my scenes such as "Goodnight" where everything turns off or "watch a movie" where the AV equipment switches on and to the correct inputs whilst dimming lights etc.
    Very pleased a nearly 4 year old, discontinued and unsupported device is working with HomeKit!
     
  19. aristobrat, Feb 25, 2016
    Last edited: Feb 26, 2016

    aristobrat thread starter macrumors G4

    Joined:
    Oct 14, 2005
    #19
    Just a heads up that Homebridge needs an update to work with iOS 9.3 Beta 4. I'm assuming that when iOS 9.3 comes out, the same will be required.

    https://github.com/nfarina/homebridge/issues/541

    I followed the suggestion in this post and everything started working again:
     
  20. Zcott macrumors 68020

    Joined:
    Oct 18, 2009
    Location:
    Belfast, Ireland
    #20
    I've a homebridge setup with the homebridge-wemo plugin, but some folks are suggesting moving to homebridge-platform-wemo.

    What's the difference between the two?
     
  21. tekuonline macrumors newbie

    tekuonline

    Joined:
    Oct 1, 2014
    Location:
    Rochester, New York
    #21
    homebridge-wemo is for individual wemo devices, and platform is for all wemo devices that are within the network.
    i would recommend that you migrate to homebridge-platform-wemo because its updated more often more reliable and its currently being maintained. homebridge-wemo plugin is no longer maintained and updated.
     
  22. Zcott macrumors 68020

    Joined:
    Oct 18, 2009
    Location:
    Belfast, Ireland
    #22
    I had a go and couldn't get my config.json updated to work due to lack of programming skills. If I post it could you help out with updating it?
     
  23. tekuonline macrumors newbie

    tekuonline

    Joined:
    Oct 1, 2014
    Location:
    Rochester, New York
  24. Recognition macrumors 6502

    Recognition

    Joined:
    Jun 27, 2013
    #24
    If you're having trouble with your config file, you can paste it into this website which will check it for you and tell you where the errors are!

    http://jsonlint.com

    I found it very useful seeing as I have zero coding experience!
     
  25. Zcott macrumors 68020

    Joined:
    Oct 18, 2009
    Location:
    Belfast, Ireland
    #25
    Thanks for taking the time to have a look at this. Config.json is as follows:

    Code:
    {
        "bridge": {
            "name": "Homebridge",
            "username": "CC:22:3D:E3:CE:30",
            "port": 51826,
            "pin": "031-45-154"
        },
    
        "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
    
        "accessories": [
               {
                   "accessory": "WeMo",
                   "name": "Owly Lamp",
                   "description": "Owly Lamp",
                   "wemo_name": "Owly Lamp"
               },
               {
                   "accessory": "WeMo",
                   "name": "Sofa Lamps",
                   "description": "Lamps behind the sofa",
                   "wemo_name": "Sofa Lamps"
               },
               {
                   "accessory": "WeMo",
                   "name": "Tall Lamp",
                   "description": "The tall lamp",
                   "wemo_name": "Tall Lamp"
               },
               {
                   "accessory": "WeMo",
                   "name": "Piano Lamps",
                   "description": "The lamps above the pianos",
                   "wemo_name": "Pianos"
               },
               {
                   "accessory": "WeMo",
                   "name": "Piano Room Desk",
                   "description": "Piano Room Desk",
                   "wemo_name": "Piano Room Desk"
               },
               {
                   "accessory": "WeMo",
                   "name": "Bookcase",
                   "description": "The bookcase in the piano room",
                   "wemo_name": "Bookcase"
               },
               {
                   "accessory": "WeMo",
                   "name": "Office",
                   "description": "PhD Room",
                   "wemo_name": "Office"
               },
               {
                   "accessory": "WeMo",
                   "name": "Globe",
                   "description": "The globe lamp",
                   "wemo_name": "Globe"
               }
           ]
         }
    
    I know I need to add the following, but where?

    Code:
    "platforms": [
           {
             "platform": "BelkinWeMo",
             "name": "WeMo Platform",
             "expected_accessories" : "0",
             "timeout" : "25",
             "no_motion_timer": "60",
             "homekit_safe" : "1"
           }   
       ]
    Thanks for any advice folks!
     

Share This Page