# inberlin-monitor Monitors [inberlinwohnen.de](https://www.inberlinwohnen.de/wohnungsfinder/) for new apartment listings and sends Telegram notifications. Supports automatic application submission via autopilot mode. ## Features - 🔐 Logs in to your personal Wohnungsfinder for filtered results - ⏰ Checks every 5 minutes (configurable) - 📱 Sends Telegram notifications for new listings with clickable links - 🤖 **Autopilot mode**: Automatically applies to new listings - 📊 **/plot command**: Visualize when listings appear throughout the week - 🏢 Supports multiple housing companies: HOWOGE, Gewobag, Degewo, Gesobau, Stadt und Land, WBM - 💾 Persists state to detect only truly new listings - 📈 Logs listing times for pattern analysis ## Setup ### 1. Create Telegram Bot 1. Message [@BotFather](https://t.me/botfather) on Telegram 2. Send `/newbot` and follow the prompts 3. Copy the bot token ### 2. Get Your Chat ID 1. Message your new bot (send anything) 2. Visit: `https://api.telegram.org/bot/getUpdates` 3. Find `"chat":{"id":123456789}` - that's your chat ID ### 3. Configure ```bash cp .env.example .env # Edit .env with your credentials ``` ### 4. Run ```bash docker compose up -d ``` ### 5. Check Logs ```bash docker compose logs -f # or cat data/monitor.log ``` ## Telegram Commands | Command | Description | |---------|-------------| | `/autopilot on` | Enable automatic applications | | `/autopilot off` | Disable automatic applications | | `/status` | Show current status and application stats | | `/plot` | Generate weekly listing pattern visualization | | `/help` | Show available commands | ## Configuration ### Required | Variable | Description | |----------|-------------| | `TELEGRAM_BOT_TOKEN` | Telegram bot token from BotFather | | `TELEGRAM_CHAT_ID` | Your Telegram chat ID | ### Optional - Login | Variable | Description | Default | |----------|-------------|---------| | `INBERLIN_EMAIL` | inberlinwohnen.de login email | - | | `INBERLIN_PASSWORD` | inberlinwohnen.de password | - | | `CHECK_INTERVAL` | Seconds between checks | 300 | ### Optional - Form Data (for Autopilot) | Variable | Description | Default | |----------|-------------|---------| | `FORM_ANREDE` | Salutation (Herr/Frau) | Herr | | `FORM_VORNAME` | First name | Aron | | `FORM_NACHNAME` | Last name | Petau | | `FORM_EMAIL` | Contact email | `aron@petau.net` | | `FORM_PHONE` | Phone number | 017695773688 | | `FORM_PERSONS` | Number of persons moving in | 1 | | `FORM_CHILDREN` | Number of children | 0 | | `FORM_INCOME` | Monthly household net income (€) | 1600 | ## Without Login If you don't provide login credentials, the monitor will use the public Wohnungsfinder (shows all listings instead of your personalized filtered results). ## Data Files All data is stored in the `./data` directory: | File | Description | |------|-------------| | `listings.json` | Known listings (for duplicate detection) | | `state.json` | Monitor state (autopilot on/off) | | `applications.json` | Record of submitted applications | | `listing_times.csv` | Timing data for pattern analysis | | `monitor.log` | Application logs | | `weekly_plot.png` | Generated plot from /plot command | | `*.png` | Screenshots from application attempts |