Skip to content

This project integrates UniFi Access with Airbnb reservations using ICS file or Hostex API, automating the process of creating and managing visitor access for your Airbnb guests.

License

Notifications You must be signed in to change notification settings

keithah/unifi-access-airbnb

Repository files navigation

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

  1. Install the required packages:

pip install -r requirements.txt

  1. 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 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```

About

This project integrates UniFi Access with Airbnb reservations using ICS file or Hostex API, automating the process of creating and managing visitor access for your Airbnb guests.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages