Update README.md

main
Keith Herrington 2024-12-11 12:26:11 -08:00 committed by GitHub
parent bf7c0fde39
commit c2adacf7d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 46 additions and 21 deletions

View File

@ -1,65 +1,90 @@
# UniFi Access Airbnb Integration
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
3. Install the required packages:
2. Install the required packages:
pip install -r requirements.txt
4. Copy the example configuration file and edit it with your settings:
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
- `-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)
- `[Door]`: Default door group ID for visitor access
- `[Visitor]`: Check-in and check-out times
- 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```