98 lines
3.2 KiB
Markdown
98 lines
3.2 KiB
Markdown
This project integrates UniFi Access with Airbnb reservations, automating the process of creating and managing visitor access for your Airbnb guests.
|
|
|
|
## Features
|
|
- Fetch reservations from Hostex API or Airbnb ICS feed
|
|
- Create UniFi Access visitor accounts for upcoming guests
|
|
- Assign PIN codes to visitors based on their phone number
|
|
- Automatically delete past or completed visitor accounts
|
|
- Send notifications via Simplepush for updates and failures
|
|
- Cross-verify reservations between Hostex and ICS calendar
|
|
- Monitor and report discrepancies in booking data
|
|
- Detailed logging of all visitor management operations
|
|
|
|
## Prerequisites
|
|
- Python 3.7+
|
|
- UniFi Access system
|
|
- Airbnb account with ICS feed URL or Hostex API access
|
|
- [Optional] Simplepush account for notifications
|
|
|
|
## Installation
|
|
1. Clone the repository:
|
|
|
|
git clone https://github.com/keithah/unifi-access-airbnb.git
|
|
|
|
cd unifi-access-airbnb
|
|
|
|
2. Install the required packages:
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
3. Copy the example configuration file and edit it with your settings:
|
|
|
|
cp unifi.conf.example unifi.conf
|
|
|
|
nano unifi.conf
|
|
|
|
## Usage
|
|
Run the script using:
|
|
|
|
python3 main.py
|
|
|
|
Optional arguments:
|
|
- `-v` or `--verbose`: Increase output verbosity
|
|
- `-l [LOG_FILE]` or `--log [LOG_FILE]`: Specify a log file (default: unifi_access.log)
|
|
- `--list-door-groups`: List available door groups
|
|
|
|
## Configuration
|
|
Edit the `unifi.conf` file with your specific settings. Key sections include:
|
|
- `[UniFi]`: UniFi Access API settings
|
|
- api_host: UniFi Access controller URL
|
|
- api_token: Authentication token
|
|
- `[Hostex]`: Hostex API settings (if used)
|
|
- api_url: Hostex API endpoint
|
|
- api_key: Authentication key
|
|
- `[Airbnb]`: Airbnb ICS feed URL (if used)
|
|
- ics_url: Calendar feed URL
|
|
- `[Door]`: Door access settings
|
|
- default_group_id: Default door group ID for visitor access
|
|
- `[Visitor]`: Visit timing settings
|
|
- check_in_time: Default check-in time (e.g., "14:30")
|
|
- check_out_time: Default check-out time (e.g., "11:30")
|
|
- `[General]`: General settings
|
|
- log_file: Path to log file
|
|
- pin_code_digits: Number of digits for PIN codes
|
|
- `[Simplepush]`: Notification settings
|
|
- enabled: Enable/disable notifications
|
|
- key: Simplepush key
|
|
- url: Simplepush API URL
|
|
|
|
## Logging and Monitoring
|
|
The script provides detailed logging of all operations:
|
|
- Reservation processing from Hostex and ICS
|
|
- Visitor creation and deletion in UniFi Access
|
|
- PIN code assignments and updates
|
|
- Cross-system verification results
|
|
- Errors and warnings
|
|
|
|
Logs can be viewed in real-time using the `-v` flag or reviewed in the log file.
|
|
|
|
## System Verification
|
|
The script performs several verification checks:
|
|
- Matches Hostex reservations with ICS calendar entries
|
|
- Verifies phone numbers and PIN codes across systems
|
|
- Reports discrepancies in dates or guest information
|
|
- Monitors UniFi Access visitor status
|
|
|
|
## Contributing
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
## License
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
|
|
## Support
|
|
If you encounter any issues or have questions:
|
|
1. Check the logs using verbose mode
|
|
2. Review your configuration file
|
|
3. Open an issue on GitHub with relevant logs and details```
|