6.4 KiB
6.4 KiB
UniFi Access Airbnb Integration
Automated guest access management for Airbnb properties using UniFi Access
🏠 Project Overview
This project automates the entire guest access lifecycle for Airbnb properties by integrating UniFi Access with Airbnb booking data. When guests book your property, the system automatically creates visitor access with PIN codes and cleans up expired accounts.
✨ Key Features
🔐 Automated Access Management
- Visitor Creation: Automatically creates UniFi Access accounts for upcoming guests
- PIN Code Assignment: Uses last 4 digits of guest phone numbers as door codes
- Access Scheduling: Configures access from check-in (4:00 PM) to check-out (11:00 AM)
- Automatic Cleanup: Removes expired visitor accounts after checkout
📅 Booking Integration
- Airbnb Calendar: Pulls reservations from Airbnb ICS calendar feed
- Multi-Day Stays: Seamlessly handles stays of any length with single visitor account
- Future Planning: Processes bookings up to 30 days in advance
- Cross-Verification: Validates booking data consistency
🐳 Docker Deployment
- Containerized: Runs anywhere with Docker support
- Multi-Architecture: Supports x86, ARM64, and ARM32 (Raspberry Pi)
- Automated Scheduling: Configurable check intervals (default: every 6 hours)
- Persistent Logging: Maintains operation history
🛠 Technology Stack
- Python 3.11: Core application runtime
- UniFi Access API: Door access and visitor management
- Airbnb ICS: Calendar feed integration for bookings
- Docker: Containerization and deployment
- Configparser: Configuration management
🏗 Architecture
Airbnb Calendar (ICS) ──► Python Application ──► UniFi Access Controller
│ │
▼ ▼
Logging System Door Device
│ (847848a02017)
▼
Notification System
(Simplepush)
🚀 Quick Start
Prerequisites
- UniFi Access Controller with API access
- Airbnb property with calendar feed
- Docker installed on deployment system
Deployment
# Clone repository
git clone https://git.cybertek.systems/cnicholas/unifi-access-airbnb.git
cd unifi-access-airbnb
# Configure settings
cp unifi.conf.example unifi.conf
# Edit unifi.conf with your credentials
# Deploy with Docker
docker-compose up -d
# View logs
docker-compose logs -f
📦 Production Configuration
UniFi Access Setup
- Controller:
10.0.1.20:12445 - API Token:
bNILUGf8zWZE6PVv926xAA(Access API key with full permissions) - Target Device:
847848a02017(Front door reader) - Device Type: Individual door device (not door group)
- API Access: Full visitor management permissions
Airbnb Integration
- Calendar URL:
https://www.airbnb.com/calendar/ical/1554481759780111413.ics?s=19f2a0faa64e47fd28a9879954c9a5c2 - Check-in Time:
16:00:00(4:00 PM) - Check-out Time:
11:00:00(11:00 AM) - PIN Generation: Last 4 digits of guest phone number
- PIN Length: 4 digits
Repository Configuration
- Production Repository:
https://git.cybertek.systems/cnicholas/unifi-access-airbnb.git - Upstream Source:
https://github.com/keithah/unifi-access-airbnb.git - Log Storage:
logs/unifi_access_airbnb.log
Automation Schedule
- Frequency: Every 6 hours (configurable in docker-compose.yml)
- Processing Window: Next 30 days of bookings
- Cleanup: Automatic removal of expired visitors
- Deployment: Docker containerized with persistent logging
🏁 Current Status
✅ Completed Features
- UniFi Access API integration
- Airbnb calendar parsing
- Visitor lifecycle management
- PIN code automation
- Docker containerization
- Raspberry Pi support
- Comprehensive logging
- Multi-day stay handling
🔄 Ready for Testing
- Hardware Status: Awaiting new UniFi reader installation
- API Testing: UniFi Access connection verified (401 → 200 response progression)
- Configuration: Complete production config validated
- Docker Deployment: Multi-architecture container tested and working
- Calendar Integration: Airbnb ICS parsing successful
- Repository: Migrated to git.cybertek.systems with all customizations
🛠 Key Setup Achievements
- API Token Resolution: Switched from Console API to Access API for proper permissions
- Door Configuration: Implemented individual door device support vs door groups
- Calendar Testing: Successfully connected and parsed Airbnb booking data
- Cleanup Testing: Verified automatic removal of test visitor accounts
- Multi-day Support: Confirmed seamless handling of extended guest stays
🔮 Future Roadmap
📹 UniFi Protect Integration (Planned)
- Automated Recording: Start/stop recording based on guest stays
- Check-in/Check-out Documentation: Capture arrival and departure
- Incident Archiving: Maintain recordings for property protection
- Privacy Controls: Automated recording management with guest notifications
Required Hardware Expansion
- UniFi Gateway Max (UDM-Pro Max) with built-in NVR
- OR UniFi Cloud Key Gen2+ with Protect license
📚 Documentation
- README.md: Complete setup and usage guide
- README-DOCKER.md: Docker deployment instructions
- CLAUDE.md: Developer reference and architecture notes
🎯 Business Value
Property Owner Benefits
- Zero Manual Access Management: Fully automated guest access
- Enhanced Security: Temporary, time-limited access codes
- Operational Efficiency: Eliminates manual door code coordination
- Guest Experience: Seamless check-in with provided PIN codes
Technical Benefits
- Reliability: Docker containerization ensures consistent operation
- Scalability: Easily deployed across multiple properties
- Maintainability: Comprehensive logging and monitoring
- Flexibility: Configurable for different property management workflows
🏗 Built for Cybertek Property Automation
Streamlining Airbnb operations with intelligent access control