[RELEASE] Homebridge Hubitat v2.0

@tonesto7 - I’m experiencing the same issue. Added filter to remove cooling but it remains even after remove, wait and re-add process. Also tried putting them into the heat-only thermostats, but the cooling mode continues to show also when they are added as heat-only thermostats.

If only the Capability is being filtered out and not the attribute that might be the problem. I ran into that problem with a RGB bulb and I was trying to filter out the color stuff but the plugin was still sending the attributes so Homebridge was picking it up. I believe I coded a fix for those filters and the dev added it a while back.

If you use the View Device Debug Data section in the plugin, you can see what is getting filtered and what is being sent to Homebridge. Maybe post that for the problematic device after adding the filters?

@tonesto7

Here's the debug log for the stat as per @jtp10181's recommendation. It does despite cooling, modes and fan being filtered out, only the fan has gone - lots of information about the cooling and modes remain. Also toggling "remove modes" doesn't to add anything else to the filtered list (it's on here for instance)

commands references a lot of cooling in auto, cool, cooldown, coolup, setcoolingsetpoint - also commands processed and attributes all contain references to cooling.

{
    "name": "Advanced vThermostat Test",
    "basename": "Advanced vThermostat Test",
    "deviceid": "120",
    "status": "ACTIVE",
    "manufacturer": "Unknown",
    "model": "Advanced vThermostat Device",
    "deviceNetworkId": "avt36601",
    "lastActivity": "2023-01-23T09:30:01+0000",
    "capabilities": [
        "Configuration",
        "Refresh",
        "Sensor",
        "TemperatureMeasurement",
        "Thermostat"
    ],
    "capabilities_processed": {
        "Refresh": 1,
        "Sensor": 1,
        "TemperatureMeasurement": 1,
        "Thermostat": 1,
        "ThermostatOperatingState": 1
    },
    "capabilities_filtered": [
        "ThermostatFanMode",
        "ThermostatCoolingSetpoint"
    ],
    "commands": [
        "auto",
        "configure",
        "cool",
        "coolDown",
        "coolUp",
        "emergencyHeat",
        "fanAuto",
        "fanCirculate",
        "fanOn",
        "heat",
        "heatDown",
        "heatUp",
        "off",
        "refresh",
        "setCoolingSetpoint",
        "setHeatingSetpoint",
        "setMaxUpdateInterval",
        "setThermostatFanMode",
        "setThermostatMode"
    ],
    "commands_processed": {
        "coolDown": 1,
        "coolUp": 1,
        "heatDown": 1,
        "heatUp": 1,
        "off": 1,
        "setHeatingSetpoint": 1,
        "setMaxUpdateInterval": 1
    },
    "customflags": {
        
    },
    "attributes": {
        "coolingSetpoint": 19.0,
        "heatingSetpoint": 16.0,
        "lastTempUpdate": "Mon Jan 23 09:30:01 GMT 2023",
        "maxCoolTemp": 35.0,
        "maxCoolingSetpoint": 35.0,
        "maxHeatTemp": 26.5,
        "maxHeatingSetpoint": 26.5,
        "maxUpdateInterval": 65,
        "minCoolTemp": 15.5,
        "minCoolingSetpoint": 15.5,
        "minHeatTemp": 1.5,
        "minHeatingSetpoint": 1.5,
        "preEmergencyMode": null,
        "supportedThermostatFanModes": null,
        "supportedThermostatModes": "[heat, cool, auto, off]",
        "temperature": 23.06,
        "thermostatFanMode": null,
        "thermostatMode": "heat",
        "thermostatOperatingState": "idle",
        "thermostatSetpoint": 16.0,
        "thermostatTemperatureSetpoint": null,
        "thermostatThreshold": 0.5
    },
    "attributes_processed": {
        "heatingSetpoint": 16.0,
        "lastTempUpdate": "Mon Jan 23 09:30:01 GMT 2023",
        "maxCoolTemp": 35.0,
        "maxCoolingSetpoint": 35.0,
        "maxHeatTemp": 26.5,
        "maxHeatingSetpoint": 26.5,
        "maxUpdateInterval": 65,
        "minCoolTemp": 15.5,
        "minCoolingSetpoint": 15.5,
        "minHeatTemp": 1.5,
        "minHeatingSetpoint": 1.5,
        "preEmergencyMode": null,
        "temperature": 23.06,
        "thermostatOperatingState": "idle",
        "thermostatSetpoint": 16.0,
        "thermostatTemperatureSetpoint": null,
        "thermostatThreshold": 0.5
    },
    "eventHistory": [
        "2023-01-23 09:30:01.172 | [lastTempUpdate] | (Mon Jan 23 09:30:01 GMT 2023)",
        "2023-01-23 09:30:01.171 | [temperature] | (23.06 C)",
        "2023-01-23 09:25:01.131 | [lastTempUpdate] | (Mon Jan 23 09:25:01 GMT 2023)",
        "2023-01-23 09:25:01.13 | [temperature] | (23.00 C)",
        "2023-01-23 09:20:01.187 | [lastTempUpdate] | (Mon Jan 23 09:20:01 GMT 2023)",
        "2023-01-23 09:20:01.186 | [temperature] | (23.03 C)",
        "2023-01-23 09:15:01.197 | [lastTempUpdate] | (Mon Jan 23 09:15:01 GMT 2023)",
        "2023-01-23 09:15:01.196 | [temperature] | (23.07 C)",
        "2023-01-23 09:05:01.161 | [lastTempUpdate] | (Mon Jan 23 09:05:01 GMT 2023)",
        "2023-01-23 09:05:01.16 | [temperature] | (23.06 C)",
        "2023-01-23 09:00:01.196 | [lastTempUpdate] | (Mon Jan 23 09:00:01 GMT 2023)",
        "2023-01-23 09:00:01.195 | [temperature] | (23.05 C)",
        "2023-01-23 08:55:01.163 | [lastTempUpdate] | (Mon Jan 23 08:55:01 GMT 2023)",
        "2023-01-23 08:55:01.162 | [temperature] | (23.03 C)",
        "2023-01-23 08:50:01.334 | [lastTempUpdate] | (Mon Jan 23 08:50:01 GMT 2023)",
        "2023-01-23 08:50:01.333 | [temperature] | (23.08 C)",
        "2023-01-23 08:45:01.179 | [lastTempUpdate] | (Mon Jan 23 08:45:01 GMT 2023)",
        "2023-01-23 08:45:01.178 | [temperature] | (23.04 C)",
        "2023-01-23 08:40:01.171 | [lastTempUpdate] | (Mon Jan 23 08:40:01 GMT 2023)",
        "2023-01-23 08:40:01.17 | [temperature] | (23.06 C)"
    ]
}

And here are some new errors from the Homebridge logs:

[1/23/2023, 7:58:01 AM] [homebridge-hubitat-tonesto7] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: null! Home App will reject null for Apple defined characteristics. See https://homebridge.io/w/JtMGR for more info.
heatingSetpoint:  10
coolingSetpoint:  undefined
[1/23/2023, 7:58:01 AM] [homebridge-hubitat-tonesto7] This plugin generated a warning from the characteristic 'Cooling Threshold Temperature': characteristic value expected valid finite number and received "NaN" (number). See https://homebridge.io/w/JtMGR for more info.

And if I set mode to cool in HE, it sends to Homebridge:

[1/23/2023, 7:42:37 AM] [Hubitat-v2] [Device Event]: (Beige Room Thermostat) [THERMOSTATMODE] is cool
1 Like

Is there a way to blanket disable adaptive lighting? I recently rebuilt HomeBridge and I think I took a bad turn somewhere. My color capable lights keep getting set to around 5000K which we hate. And per logs the command is definitely coming from HomeKit. Thanks!

Have you tried:
"adaptive_lighting": false,

Otherwise you could just change them in Apple Home directly which should do the trick.
Just select anything but the pretty multicolored circle

Ugh! So easy. I was completely blind to that. Thanks.

1 Like

In the Homebridge UI plugin settings for Hubitat v2, there’s a setting to disable support for adaptive lighting.

1 Like

Thanks. Did that too for good measure. :grinning:

Took me a while to notice, but it seems that the events are only working in one direction. If you control a device on HomeKit, it is very quickly executed on Hubitat. BUT, Hubitat device events are not making it to HomeKit. I see the event on the the HE HomeBridge v2 logs as sent, but the HomeBridge doesn't get the event. I don't even see where this could be. Any pointers for me as to where to look? I moved HomeBridge from one Pi to another and only really tested it in one direction...

Are these the logs in Homebridge or HE? I had this happen intermittently before with the ciao mDNS advertiser. I changed it and the problem went away. I’m using Avahi now since I have my Homebridge running on Ubuntu to avoid problems.

I can see them on the HE HomeBridge Plug-in side like this:


But they never arrive on the HB side like this:

If you click on the “generate plugin config for Homebridge” and scroll to the bottom, there is a “test plugin for Homebridge” tab. Did you try hitting that?

1 Like

Yes, it doesn't work. But, I don't know where it's even getting this port.

Its been a while but I think once you setup the HB plugin it tells the app on Hubitat how to talk to it. When I click the test link it is hitting port 8000 on the same IP as my HB server. Do you have that port being blocked? Or if you are running docker on a bridge you may need to forward that port. Not seeing anywhere that you can change that port.

Update, found the setting in the HB plugin settings UI

In my case they seem to both be set to 8080. The Test throws a 404 error. ARGH.

Everything "just worked" for a couple of years. Then a week or two ago, I moved HomeBridge to a different Pi and boom. Homekit events get to HE, but HE events don't get to HomeBridge. It used to be snappy and reliable.

Here is a config example from the docs: GitHub - tonesto7/homebridge-hubitat-tonesto7: Hubitat Homebridge Plugin

I would try changing that direct port to something else that is available on your server. Make sure it is allowed on the firewall or forwarded if using docker. Also must be a different port than what HB itself is running on. Restart HB and it should tell the Hubitat app the updated info.

It should show the correct IP/Port here in the HE app, same as what is set on the HB plugin.
image

1 Like

I'm not using docker. Running HB native on Pi. No firewalls inside my network.

The HE has a web server on port 8080. But /pluginTest doesn't work there. I tried changing to port 8000 but HE isn't listening on port 8000. No port shows up in the "Generated Config"

There's so much "Magic" configuration going on here. I wish there was a straight forward configuration guide.
There is no /pluginTest on port 8080. Or port 80 for that matter.

OK. I'm a complete idiot.

The Direct IP and Direct Port on the Plugin configuration page of HB are the IP/Port of the HomeBridge instance, not the HomeBridge App on HE. Everything is working now. Geez. Thanks @jtp10181 and @Ken_Fraleigh.

1 Like