Homebridge Plug-in

The reason I ask about any updates is because I still cannot ‘Close’ my curtains using Homebridge.

When I run close the curtains I receive this log...

[dev:12](http://192.168.7.201/logs#dev12)2018-12-30 09:37:39.504 am [error](http://192.168.7.201/device/edit/12)groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#minus. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class java.lang.Character] [class java.lang.Number] (setPosition)

It's been on the back burner.

I haven't touched code in over a week. I will try to get it finished after the new year...

3 Likes

Do you think my log relates to Homebridge? Because I can only duplicate the log when running ‘Close the Curtains’ from Homebridge.

I'm still seeing the issue of the new(ish) Night Mode of HSM doesn't seem to be working with homebridge.

I haven't had a chance to even look into this yet.

Looks like someone did a pull request earlier today with a fix.

sweet i'll check it out

1 Like

I seen this also. I tried the changes and will test tonight.

Looks like that fixed it.

thanks for confirming... I will merge in the changes tonight

1 Like

Does this require us to update anything in terms of Hubitat or homebridge code?

I just made the changes to the file outlined in the comit post and saved. Then restarted homebridge. Everything worked great.

I’m not sure how to do that.

His Github shows he's done the merge so you should be able to just do the npm

npm i -g homebridge-hubitat-tonesto7

to get the latest.

1 Like

So I need help. I don't think its Hubitat (support has been great), but rather Homebridge. It's not home bridge per se but rather how I have it setup I suppose.

I have Homebridge running on a Synology Diskstation 918+ using the oznu/homebridge GUI docker container. This thing is great and made the docker installation process and editing the config.json file seamless.

Below is my config.json including and excluding many items (with nest and mpeg plugin configs redacted for privacy)

{
    "bridge": {
        "name": "Homebridge",
        "username": "0E:09:ddd:55:C9:47",
        "port": 51821,
        "pin": "585-xx-087"
    },
    "platforms": [
        {
                    }
                }
            ]
        },
        {
            "name": "Config",
            "port": 8080,
            "auth": "form",
            "theme": "blue",
            "tempUnits": "c",
            "log": {
                "method": "file",
                "path": "/"
            },
            "platform": "config"
        },
        {
            "platform": "Hubitat",
            "name": "Hubitat",
            "app_url": "http://xxxx/apps/api/1479/",
            "polling_seconds": 10,
            "update_method": "direct",
            "access_token": "8237xxxxxb4c27d6",
            "excluded_capabilities": {
                "9": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "36": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "37": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "38": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "40": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "41": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "42": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "45": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "132": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "257": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor",
                    "TemperatureMeasurement"
                ],
                "454": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "897": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "898": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "1025": [
                    "RelativeHumidityMeasurement",
                    "TemperatureMeasurement"
                ],
                "1441": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1442": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1443": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1444": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1445": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1827": [
                    "ContactSensor",
                    "Sensor"
                ],
                "1857": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1858": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1859": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ],
                "1860": [
                    "RelativeHumidityMeasurement",
                    "IlluminanceMeasurement",
                    "MotionSensor",
                    "Sensor"
                ]
            }
        },
        {
            "platform": "Roomba",
            "name": "Roomba",
            "robots": [
                {
                    "name": "Downstairs Vacuum",
                    "blid": "xxx",
                    "password": ":1:xxxx:TowyTGROMO3I8XuN",
                    "address": "192.168.7.xxx"
                }
            ]
        }
    ],
    "accessories": []
}

I have 83 devices on the homebridge altogether (I have a lot of lights and doors) and I removed many capabilities to avoid having dozens of unwanted temperature sensors.

To save the effort of listing every device connected with the HE hub through Homebridge they are mostly GE Z-Wave Switches/Dimemrs and Iris contacts and Motion sensors.

I have a virtual switch for goodnight which turns the entire house off and I have my intermatic pool device. I also have a netatmo device to measure outdoor temperature.

The issue seems to be that whenever homebridge runs, my hub slows to a crawl until the point that it crashes.

Please tell me how I can help fix the issue as I believe this issue is a bit singular to me and my setup as many of you do not seem to have issues with homebridge.

__

I would try removing polling_seconds in your config file. I’m not using polling and not having any problems. But I only about 50 devices.

Are you attempting to use IOS Home.app as a dashboard?

I have a hypothesis...

I'm concerned there's too many items subscribed to. You're asking that Hubitat, on every subscribed event, do it's job AND tell Homebridge. And it has to do that before it can process the next Event. The more events you have the longer the queue of events to be processed == slow response. Once the queue gets full, events get dropped.

Ahh.. but you say you are excluding many elements.. true, ON HOMEBRIDGE :smiley: Hubitat had to process them in their entirety just so half the message can be discarded on the Homebridge side.

Homebridge must subscribe to every device's events.. how many other apps are doing that too? Are you using Link to Hub or OtherHub or the process monitoring?

I've used Homebridge on ST and of course was eager to use it on Hubitat. I initially saw IOS Home.app as a dashboard, I should really send everything. Why not, right? :smiley:

As rumors of Apps that could slow the hub arose, 10-11 months ago, I removed Homebridge and didn't see much difference... that's not to say no diff, just not WOW, that homebridge has an issue. The next time I put it back, I got lazy because of the effort to put everything back into Home.app rooms, and instead of almost everything, I selected only 5-10 physical devices. Switches really, some plugs because they were used for lights. Then added more and more. Rinse, repeat. Total of 3 times of removing and then adding Homebridge with at least a dozen "vanishing Home.app db" of room assignments.

Today I've limited myself to only switches. The only exception is the presence virtual switch that IOS Home.app sets via Automations. 25 Lights, 3 fans, 12 switches plus the two virtual presence.

I am NOT saying this is the cure.. just that it was MY cure. :smiley: Or partial cure, because I can't say that my event queue is healthy or congested. As you know, we can't see that. /hypothesis

update_method: direct
and
polling_seconds: 10
are, as far as I know opposites. If you're using direct, then there's nothing to poll. Which is the long way to say, I agree with @JBrown :sunglasses:

1 Like

Yea I only put what's absolutely necessary in Homebridge.
Hopefully official Homekit support will come someday...
Until then @tonesto7 's Homebridge App is awesome, but i think like many apps it causes some slowdowns if you go overboard...

Maybe instead of all of those devices. just some trigger devices?

I would love to get @tonesto7 thoughts on this.

If am reading correctly there is some disagreement how polling and update work.

Perhaps polling is the issue?

Also, it seems most people don't use contacts and temperature sensors at all in home bridge?

I used to have everything in Homebridge.
In my effort to eliminate hub strain I've curtailed it to the essentials.
I'm sure as life moves on the hub software will get better at handling apps that use a lot of resources and the "hey you can do that in SmartThings but you probably shouldn't do that with Hubitat. Here this is better here.";s will come to the surface.