npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ronniepettersson/homebridge-hubspace

v2.1.4

Published

Homebridge plugin for controlling Hubspace accessories.

Downloads

135

Readme

Homebridge Hubspace

About plugin

Hubspace is a platform for range of devices sold at HomeDepot. This plugin tries to integrate as many of these devices so that you can control them from HomeKit.

Disclaimer

I do not own any rights to Hubspace. Any work published here is solely for my own convenience. I am not making any guarantees about the code or products referenced here.

Tested products

Below you can find a table of products that have been tested with this plugin. Some products share similarities among one another (e.g. lights), however, that does not guarantee that they will all work.

Not all features for all products are implemented. Please see the functions below of what is implemented. If you need a feature that is not implemented create an issue for it.

| Product | Functions supported | | --- | --- | | Universal Smart Wi-Fi 4-Speed Ceiling Fan | Light on/offFan on/offLight brightnessFan speed | | Universal Smart Wi-Fi 9-Speed Reversible Ceiling Fan | Fan on/offFan speedReverse directionComfort-Breeze ™ | | Defiant Smart Plug | Power on/off |

Development

There is no official documentation for Hubspace products. Under the hood they use Afero cloud as the mechanism that controls the products. Any functionality here is gained by experimenting with various functions of the devices. Afero provides simple explanation of their APIs, however, this is in no way comprehensive.

If you find that a product does not work as intended, or you want to request a new product, please create a ticket for it in the issues section. You are always more than welcome to create a PR with any fixes or additions to the plugin.

Guidelines

Any code you submit must be readable, be properly commented where necessary, and follow some common sense code quality.

This is a TypeScript project, therefore, TypeScript naming conventions must be followed, unless otherwise specified. Some basic naming conventions are below.

  1. Use PascalCase for type names.
  2. Do not use I as a prefix for interface names.
  3. Use PascalCase for enum values.
  4. Use camelCase for function names.
  5. Use camelCase for property names and local variables.
  6. Use _ as a prefix for private fields.
  7. Use whole words in names when possible. Only use abbreviations where their use is common and obvious.

Any ESLint issues need to be resolved before code can be merged. To check for production build linter issues you can run npm run prepublishOnly.

Adding new features

To add new features to the do the following:

  1. Create an issue for the feature (unless there is an issue already)
  2. Assign the issue to yourself
  3. Create a new branch for the issue and name is as {issue number}-{issue description} (e.g. 6-add-laser-support)
  4. Once ready issue a PR that is linked to the issue

Development authentication

Hubspace platform uses Keycloak for authentication. To develop new features you will need to request JWT from Keycloak to authenticate your requests against the platform.

To get the token send HTTP request with x-www-form-urlencoded body to the URL below.

POST https://accounts.hubspaceconnect.com/auth/realms/thd/protocol/openid-connect/token

Your payload should include the following fields.

| Key | Value | | --- | --- | | grant_type | password | | client_id | hubspace_android | | username | YOUR_USERNAME | | password | YOUR_PASSWORD |

Once you receive the token you can make request to Afero with it to investigate the devices and commands.