2025-12-08 14:44:59 +01:00
# inberlin-monitor
2025-12-09 11:30:17 +01:00
Monitors [inberlinwohnen.de ](https://www.inberlinwohnen.de/wohnungsfinder/ ) and [wgcompany.de ](http://www.wgcompany.de ) for new apartment/WG listings and sends Telegram notifications. Supports automatic application submission via autopilot mode.
2025-12-08 14:44:59 +01:00
## 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
2025-12-09 11:30:17 +01:00
- 🏢 Supports 6 housing companies: HOWOGE, Gewobag, Degewo, Gesobau, Stadt und Land, WBM
- 🏠 **WGcompany.de** : Also monitors WG room listings with configurable search filters
2025-12-08 14:44:59 +01:00
- 💾 Persists state to detect only truly new listings
- 📈 Logs listing times for pattern analysis
2025-12-09 11:30:17 +01:00
## Supported Housing Companies
| Company | Auto-Apply | Notes |
|---------|------------|-------|
| HOWOGE | ✅ | Direct form submission |
| Gewobag | ✅ | Direct form submission |
| Degewo | ✅ | Via Wohnungshelden portal |
| Gesobau | ✅ | Direct form submission |
| Stadt und Land | ✅ | Direct form submission |
| WBM | ✅ | Direct form submission |
2025-12-08 14:44:59 +01:00
## 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<YOUR_TOKEN>/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 |
2025-12-09 11:30:17 +01:00
| `FORM_VORNAME` | First name | - |
| `FORM_NACHNAME` | Last name | - |
| `FORM_EMAIL` | Contact email | - |
| `FORM_PHONE` | Phone number | - |
| `FORM_STRASSE` | Street name | - |
| `FORM_HAUSNUMMER` | House number | - |
| `FORM_PLZ` | Postal code | - |
| `FORM_ORT` | City | Berlin |
2025-12-08 14:44:59 +01:00
| `FORM_PERSONS` | Number of persons moving in | 1 |
| `FORM_CHILDREN` | Number of children | 0 |
2025-12-09 11:30:17 +01:00
| `FORM_INCOME` | Monthly household net income (€) | - |
### Optional - WGcompany.de Search Filters
| Variable | Description | Default |
|----------|-------------|---------|
| `WGCOMPANY_ENABLED` | Enable WGcompany monitoring | true |
| `WGCOMPANY_MIN_SIZE` | Minimum room size (m²) | - |
| `WGCOMPANY_MAX_SIZE` | Maximum room size (m²) | - |
| `WGCOMPANY_MIN_PRICE` | Minimum rent (€) | - |
| `WGCOMPANY_MAX_PRICE` | Maximum rent (€) | - |
| `WGCOMPANY_BEZIRK` | District code (0=all) | 0 |
2025-12-08 14:44:59 +01:00
## 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 |
|------|-------------|
2025-12-09 11:30:17 +01:00
| `listings.json` | Known inberlinwohnen listings |
| `wgcompany_listings.json` | Known WGcompany listings |
2025-12-08 14:44:59 +01:00
| `state.json` | Monitor state (autopilot on/off) |
| `applications.json` | Record of submitted applications |
2025-12-09 11:30:17 +01:00
| `listing_times.csv` | InBerlin timing data for pattern analysis |
| `wgcompany_times.csv` | WGcompany timing data |
2025-12-08 14:44:59 +01:00
| `monitor.log` | Application logs |
| `weekly_plot.png` | Generated plot from /plot command |
2025-12-09 11:30:17 +01:00
| `wgcompany_debug.html` | Debug HTML from WGcompany |
2025-12-08 14:44:59 +01:00
| `*.png` | Screenshots from application attempts |