Thanks to visit codestin.com
Credit goes to github.com

Skip to content

neerpatel/Hubitat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Hubitat Development Hub πŸ”§

Custom Drivers, Apps, and Integrations for Hubitat

Groovy Node.js Express Raspberry Pi Hubitat License: AGPL-3.0

GitHub Stars GitHub Issues PRs Welcome

🌟 A comprehensive collection of Hubitat drivers, apps, and bridge integrations!
Extend your Hubitat hub's capabilities with custom drivers for various smart home devices and cloud service integrations.


πŸ“‹ Projects & Integrations

Project Description Status Documentation
🏠 HubSpace Integration Bridge for HubSpace/Afero cloud devices βœ… Production docs/Hubspace.md
πŸ”Œ Generic Device Drivers Collection of custom device drivers 🚧 Development Coming Soon
πŸ€– Automation Apps Smart home automation applications πŸ“… Planned Coming Soon
🌐 Cloud Bridges Additional cloud service integrations πŸ’­ Ideas Coming Soon

πŸš€ Quick Start

🎯 Choose your integration:

HubSpace Integration

Connect HubSpace/Afero cloud devices to your Hubitat hub through a secure bridge server.

# Clone repository
git clone https://github.com/neerpatel/Hubitat.git

# Setup HubSpace bridge
cd Hubitat/bridge-node
npm install
npm start

πŸ“– Full Setup Guide: docs/Hubspace.md

Generic Device Drivers

Install custom drivers for specific device types directly in Hubitat.

  1. Navigate to Drivers Code in Hubitat admin
  2. Click New Driver
  3. Copy/paste driver code from Hubitat/drivers/
  4. Save and create virtual device

πŸ—οΈ Repository Structure

Hubitat/
β”œβ”€β”€ πŸ“ bridge-node/              # Node.js bridge servers
β”‚   β”œβ”€β”€ hubspace-server.js       # HubSpace OAuth bridge
β”‚   β”œβ”€β”€ package.json             # Node.js dependencies
β”‚   └── ecosystem.config.js      # PM2 configuration
β”œβ”€β”€ πŸ“ Hubitat/                 # Hubitat Groovy files
β”‚   β”œβ”€β”€ πŸ“ drivers/              # Device drivers
β”‚   β”œβ”€β”€ πŸ“ apps/                 # Automation apps  
β”‚   └── πŸ“ Hubspace/             # HubSpace integration
β”œβ”€β”€ πŸ“ docs/                    # Documentation
β”‚   └── Hubspace.md             # HubSpace setup guide
β”œβ”€β”€ πŸ“ .github/                 # GitHub workflows & templates
└── πŸ“„ README.md                # This file

✨ Featured Integrations

🏠 HubSpace Bridge

Status: βœ… Production Ready

Connect your Hubitat hub to HubSpace cloud devices including:

  • Smart lights with dimming and color control
  • Ceiling fans with speed and direction control
  • Smart switches and outlets
  • Motion and contact sensors (coming soon)

Key Features:

  • πŸ” Secure OAuth proxy with PKCE authentication
  • ⚑ Real-time device state synchronization
  • πŸš€ Easy deployment with PM2 process management
  • πŸ“Š Full Hubitat dashboard compatibility

Get Started: docs/Hubspace.md

πŸ”Œ Device Drivers Collection

Status: 🚧 In Development

Custom Groovy drivers for various smart home devices:

  • Generic Z-Wave/Zigbee device support
  • Custom protocol implementations
  • Enhanced capabilities for existing devices
  • Community-contributed drivers

πŸ€– Automation Apps

Status: πŸ“… Planned

Smart home automation applications:

  • Advanced scheduling and triggers
  • Multi-device coordination
  • Custom notification systems
  • Integration helpers

�️ Development

Contributing to Existing Projects

Each project has its own development guidelines:

Project Language Setup Testing
HubSpace Bridge TypeScript/Node.js npm install npm test
Groovy Drivers Groovy Import to Hubitat Test with devices
Apps Groovy Import to Hubitat Integration testing

Adding New Projects

  1. Create project directory under appropriate folder
  2. Add documentation in docs/ProjectName.md
  3. Update this README with project entry
  4. Follow coding standards for the platform
  5. Include setup instructions and examples

Development Guidelines

  • Groovy Code: Follow Hubitat conventions and best practices
  • TypeScript/Node.js: Use modern ES features and proper typing
  • Documentation: Include comprehensive setup and usage guides
  • Testing: Test thoroughly with actual devices when possible
  • Version Control: Use meaningful commit messages and branch names

πŸ“š Documentation

Resource Description
docs/Hubspace.md Complete HubSpace integration guide
.github/instructions/ Development guidelines and standards
Hubitat Documentation Official Hubitat developer docs
GitHub Wiki Community guides and examples

🀝 Contributing

🌟 We welcome contributions to all projects! 🌟

Type Description How to Help
πŸ› Bug Reports Found an issue? Open an issue
✨ New Features Have an idea? Request a feature
πŸ”§ Code Contributions Want to code? Fork, develop, and submit a PR
πŸ“– Documentation Improve guides Help make setup even easier
πŸ§ͺ Device Testing Have compatible devices? Test and report compatibility

Project-Specific Contributing

  • HubSpace: Test with HubSpace devices, improve OAuth flow
  • Drivers: Submit drivers for new device types
  • Apps: Create automation apps for common use cases
  • Documentation: Improve setup guides and troubleshooting

πŸ’‘ Why Choose This Repository?

Benefit Description
🏠 Local Control Focus Keep automation local while integrating cloud services
οΏ½ Security First Secure authentication patterns and best practices
⚑ Performance Optimized Efficient code with minimal resource usage
πŸ”§ Extensible Architecture Easy to modify and extend for new use cases
🌟 Community Driven Open source with active development
πŸ“– Well Documented Comprehensive guides and examples

πŸ“¬ Support & Community

GitHub Issues GitHub Discussions

Questions? Ideas? Need help?
We'd love to hear from you!

  • πŸ› Bug reports: GitHub Issues
  • πŸ’¬ General discussion: GitHub Discussions
  • πŸ“– Documentation: Check our Wiki
  • πŸ”§ Project-specific: Tag issues with project name (e.g., hubspace, drivers)

🌟 Star this repo if it helped you! 🌟


Made with ❀️ for the Hubitat and Home Automation community

Empowering local smart home control with seamless cloud integrations.


πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Hubitat Hub   │◄──►│   Bridge Server │◄──►│  HubSpace Cloud β”‚
β”‚                 β”‚    β”‚   (Node.js)     β”‚    β”‚   (OAuth API)   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚  β”‚   Device    β”‚β”‚    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚  Manager    β”‚β”‚    β”‚  β”‚   Express   β”‚β”‚    β”‚  β”‚   Devices   β”‚β”‚
β”‚  β”‚             β”‚β”‚    β”‚  β”‚   Server    β”‚β”‚    β”‚  β”‚  & State    β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow:

  1. Hubitat Device Manager authenticates with Bridge Server
  2. Bridge Server handles OAuth flow with HubSpace Cloud
  3. Real-time device state synchronization
  4. Secure command relay for device control

✨ Features

Feature Description
πŸ” Secure OAuth Proxy PKCE-enabled authentication with HubSpace cloud
🌐 RESTful API Clean endpoints for authentication and device control
⚑ Real-time Sync Live device state updates and command relay
🏠 Native Hubitat Integration Groovy drivers with full Hubitat ecosystem support
πŸ”„ Session Management Automatic token refresh and session persistence
πŸš€ Easy Deployment One-command setup with PM2 process management
πŸ›‘οΈ Security First No credential storage, secure token handling
πŸ“± Multi-Device Support Lights, fans, switches, and more device types
πŸ”§ Extensible Architecture Easy to add new device types and providers
πŸ“Š Dashboard Ready Full compatibility with Hubitat dashboards

πŸš€ Quick Start

🎯 Get your bridge running in minutes!

Step Action Command/Description
1️⃣ Clone Repository git clone https://github.com/neerpatel/Hubitat.git
2️⃣ Install Dependencies cd Hubitat/bridge-node && npm install
3️⃣ Start Bridge Server npm start (dev) or pm2 start ecosystem.config.js (prod)
4️⃣ Install Hubitat Driver Import Hubitat/Hubspace/HubspaceDeviceManager.groovy
5️⃣ Configure Bridge URL Set bridge URL in device manager preferences

πŸŽ‰ That's it! Your HubSpace devices are now accessible in Hubitat!


βš™οΈ Configuration

Bridge Server Configuration

Environment Variable Description Default
PORT Server listening port 3000
NODE_ENV Environment mode development

Hubitat Device Manager Settings

Setting Description
HubSpace Username Your HubSpace account email
HubSpace Password Your HubSpace account password
Bridge Server URL URL of your running bridge server
Polling Interval Device state refresh frequency

πŸ› οΈ Development

Local Development Setup

# Clone and setup
git clone https://github.com/neerpatel/Hubitat.git
cd Hubitat/bridge-node

# Install dependencies
npm install

# Development mode (with auto-reload)
npm run dev

# TypeScript compilation
npm run build

# Type checking
npm run type-check

Project Structure

Hubitat/
β”œβ”€β”€ bridge-node/          # Node.js TypeScript bridge server
β”‚   β”œβ”€β”€ src/             # TypeScript source files
β”‚   β”œβ”€β”€ package.json     # Node.js dependencies
β”‚   └── ecosystem.config.js  # PM2 configuration
β”œβ”€β”€ Hubitat/             # Hubitat Groovy files
β”‚   └── Hubspace/        # HubSpace device drivers
β”‚       └── HubspaceDeviceManager.groovy
└── setup.sh            # Automated deployment script

🏠 Hubitat Integration

Device Manager Features

  • Automatic Device Discovery - Scans HubSpace account for available devices
  • Real-time State Updates - Keeps Hubitat in sync with cloud device states
  • Secure Authentication - OAuth flow handled securely through bridge
  • Dashboard Integration - Full compatibility with Hubitat dashboards
  • Multi-Device Support - Supports lights, fans, switches, and more

Supported Device Types

Device Type Capabilities Status
Smart Lights On/Off, Dimming, Color βœ… Supported
Ceiling Fans Speed Control, Direction βœ… Supported
Smart Switches On/Off Control βœ… Supported
Plugs/Outlets On/Off Control βœ… Supported

🀝 Contributing

🌟 We welcome your contributions! 🌟

Type Description How to Help
πŸ› Bug Reports Found an issue? Open an issue
✨ Feature Requests Have an idea? Request a feature
πŸ”§ Code Contributions Want to code? Fork, develop, and submit a PR
πŸ“– Documentation Improve docs Help us make setup even easier

Development Guidelines

  • Follow TypeScript best practices for bridge server
  • Use Groovy conventions for Hubitat drivers
  • Test thoroughly with actual HubSpace devices
  • Document any new features or device support

πŸ’‘ Why Choose Hubitat HubSpace Bridge?

Benefit Description
🏠 Local Control Keep your home automation local while accessing cloud devices
πŸ” Security First OAuth proxy ensures your credentials stay secure
⚑ Performance Efficient bridge with minimal latency
πŸ”§ Flexibility Extensible architecture for future device types
🌟 Community Open source with active development
πŸš€ Reliable Production-ready with PM2 process management

πŸ“¬ Support & Community

GitHub Issues GitHub Discussions

Questions? Ideas? Need help?
We'd love to hear from you!

🌟 Star this repo if it helped you! 🌟


Made with ❀️ for the Hubitat and Home Automation community

Bringing cloud devices to your local smart home hub, securely and efficiently.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published