-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GarageMate Bluetooth accessory - How to configure? #9
Comments
Hello @keith721, Your "name": "GarageMate",
"address": "01:23:45:67:89:AB",
"services": [ {
"name": "Garage Door",
"type": "Switch",
"UUID": "00001815-0000-1000-8000-00805f9b34fb",
"characteristics": [ {
"type": "On",
"UUID": "00002a57-0000-1000-8000-00805f9b34fb"
} ]
} ] You can find more details about these by reading the defintion of Try if this works and get back here. To be honest the plugin was never intended to be this general and allow BLE service to map onto a HomeKit service with some form of a translation happening in between. I like to push the boundaries and the change to the codebase of this plugin in order to incorporate this kind of general mapping is substantial, but it's definitely doable. If you take a look at the examples, all of them have access to the source code running on the BLE peripheral and make the BLE services/characteristics match HomeKit. In this case I doubt GarageMate will release and open-source their firmware, so that's not an option. |
After reviewing Service.Switch and Characteristic.On, it appears the GarageMate device should be configured as Service.StatelessProgrammableSwitch instead of Service.Switch. Hopefully, this would avoid "a lot of opening". I'll work with this when I return home this evening and have access to the GarageMate device. If all else fails, I can always attempt to implement similar behavior using an Arduino. Thank you! |
Yeah. You're right. The Good luck and have fun in the evening! |
Thank you SO VERY MUCH for your help today. I sincerely appreciate it.
If I can get the existing GarageMate device working tonight, it's because of your assistance.
If not, then I'll program an Arduino sketch using your very generous examples to get started.
Either way, your assistance has been extremely inspirational.
Thanks!!
|
😊 |
I got it configured and the config parsed and loaded successfully, but it's "not supported" in the Home app on my iPhone. :(
Here's the relevant portion of my config.json:
|
First, HomeKit is still being actively developed on all fronts and you're right that the current iOS (10.2) doesn't support the Second, even if iOS would support the switch I don't think it would work with the GarageMate. I tried googling to fill my knowledge gap about switches. Third, there's a very weird sequence of rapid BLE connect-disconnect events in your log. This shouldn't happen. Normally the plugin should connect only once and stay connected to the peripheral. I'm not sure why is this happening and the disconnect happens after reading the manufacturer string, which is quite innocent operation. Can you try running Homebridge in debug mode and posting the log here, please? DEBUG=* homebridge It's a shame the GarageMate doesn't work. Make this puzzle piece fit the rest of the HomeKit ecosystem is much harder nut to crack than I expected. So maybe going for the DIY solution and using the Arduino 101 or a similar board will get the door working for you faster... |
I also noticed the GarageMate did not provide the Device Information service 0x180A or its characteristics of Manufacturer Name 0x2A29, Model Number 0x2A24, and Serial Number 0x2A25. Because of this, I ordered an Arduino UNO, HM-10 BLE Bluetooth 4.0 module, and switch/relay board. I've already developed the Arduino sketch to emulate the GarageMate device. My hope is that using the more up-to-date CurieBLE library may resolve the disconnect/reconnect issues. |
Those services are not mandatory and the plugin can work fine without them. But anyway, I'll be happy to merge a pull request with a new example if you want to make it. |
It will be some weeks before my parts arrive. When I've had some opportunity to test the script and work out any bugs, I'll be happy to submit it here. Meanwhile, I believe I can close this question. Thanks again for your generous assistance! |
I have a GarageMate (https://www.bluemate.com/) Bluetooth device that triggers my garage door opener, and I've been able to successfully pair it with my Raspberry Pi running homebridge. Using the gatttool utility, I was able to obtain the primary services and characteristics of the GarageMate device. Now, I'm attempting to update my config.json configuration file with the proper information. Unfortunately, it's not going well. The homebridge-bluetooth platform aborts.
GarageMate explained that reading Core Characteristic 0x2A57 from Core Service 0x1815 would activate the device. These are the UUID values I was able to obtain from gatttool:
The GarageMate implements a momentary contact closure via two wires to the garage door opener. It doesn't understand in any manner whether the door is open or closed or blocked. In my understanding, it's a simple button-press. I'd expect to configure it as follows:
Thank you for your assistance!
The text was updated successfully, but these errors were encountered: