No description
Find a file
Aron ce66fc1933 Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production
- Fix Degewo handler to work with Wohnungshelden iframe portal
- Update playwright to >=1.57.0
- Add proper form field selectors for Wohnungshelden
- Fix success status bug (was marking failed submissions as success)
- Clean up .env.example (remove real credentials)
- Update README with housing company support table
- Add BOTFATHER_COMMANDS.txt for easy bot setup
- Add copilot-instructions.md for development context
2025-12-09 11:30:17 +01:00
.github Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
.env.example Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
.gitignore Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
.python-version Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
bot_logo.png Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
BOTFATHER_COMMANDS.txt Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
docker-compose.yml Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
Dockerfile Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
monitor.py Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
README.md Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
requirements.txt Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00

inberlin-monitor

Monitors inberlinwohnen.de and wgcompany.de for new apartment/WG 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 6 housing companies: HOWOGE, Gewobag, Degewo, Gesobau, Stadt und Land, WBM
  • 🏠 WGcompany.de: Also monitors WG room listings with configurable search filters
  • 💾 Persists state to detect only truly new listings
  • 📈 Logs listing times for pattern analysis

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

Setup

1. Create Telegram Bot

  1. Message @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

cp .env.example .env
# Edit .env with your credentials

4. Run

docker compose up -d

5. Check Logs

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 -
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
FORM_PERSONS Number of persons moving in 1
FORM_CHILDREN Number of children 0
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

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 inberlinwohnen listings
wgcompany_listings.json Known WGcompany listings
state.json Monitor state (autopilot on/off)
applications.json Record of submitted applications
listing_times.csv InBerlin timing data for pattern analysis
wgcompany_times.csv WGcompany timing data
monitor.log Application logs
weekly_plot.png Generated plot from /plot command
wgcompany_debug.html Debug HTML from WGcompany
*.png Screenshots from application attempts