unifi-access-airbnb/README.md

3.2 KiB

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