A Telegram bot that monitors and tracks radiosondes (weather balloons) in real-time using data from SondeHub. The bot sends alerts when radiosondes enter a specified monitoring area and provides detailed information about their position, altitude, and movement.
- Real-time Monitoring: Connects to SondeHub's live data stream to track radiosondes worldwide
- Geofenced Alerts: Notifies users when radiosondes enter a defined geographical area
- Multi-language Support: Available in both English and Romanian versions
- Smart Notification System: Configurable alerts for initial detection, position updates, and landing events
- Historical Data Tracking: Saves complete history of all detected radiosondes
- User Management: Subscription system for multiple users with admin controls
- Interactive Commands: Full Telegram bot interface with various commands for status and information
The bot continuously monitors the SondeHub data stream for radiosonde transmissions. When a radiosonde is detected within the configured geographical area and altitude range, it:
- Sends an initial detection alert to subscribed users
- Periodically sends position updates (configurable interval)
- Sends a landing alert when the radiosonde descends below 100 meters
- Logs all data to local history files for future reference
- Python 3.7 or higher
- Telegram Bot Token (obtain from @BotFather)
- Your Telegram Chat ID (use @userinfobot to find it)
-
Clone or download the project files
-
Install required dependencies:
pip install aiohttp sondehub -
Configure the bot by editing
config.json:{ "telegram": { "bot_token": "YOUR_BOT_TOKEN_HERE", "admin_chat_id": "YOUR_CHAT_ID_HERE" }, "monitoring": { "target_latitude": 44.4268, "target_longitude": 26.1025, "radius_km": 15.0, "check_interval_seconds": 60, "min_altitude_m": 0, "max_altitude_m": 30000 }, "notification_settings": { "send_initial_detection": true, "send_position_updates": true, "send_landing_alert": true, "update_interval_minutes": 5 } } -
Choose your preferred language version:
- Use
notifier_EN.pyfor English - Use
notifier_RO.pyfor Romanian
- Use
-
Run the bot:
python notifier_EN.pyor
python notifier_RO.py
- target_latitude/target_longitude: The center point of your monitoring area
- radius_km: The radius (in kilometers) from the center point to monitor
- min_altitude_m/max_altitude_m: Altitude range filter (in meters)
- update_interval_minutes: How frequently to send position update notifications
/start- Subscribe to radiosonde notifications/stop- Unsubscribe from notifications/status- Show current monitoring status/list- List all currently tracked sondes/history <serial>- Show history for a specific sonde/help- Show help message with all commands/subscribers- (Admin only) List all subscribed users
radiosonde-notifier/
├── notifier_EN.py # English version of the bot
├── notifier_RO.py # Romanian version of the bot
├── config.json # Configuration file
├── subscriptions.json # User subscriptions (auto-generated)
└── history/ # Data directory (auto-generated)
├── bot/
│ └── radiosonde_notifier.log # Bot operation log
└── sondes/
└── [serial].log # Individual sonde history files
- The bot only stores necessary user data (chat ID and name) for notification purposes
- Users can unsubscribe at any time using the
/stopcommand - All data is stored locally and not shared with third parties
- Bot doesn't start: Check that your bot token and chat ID are correctly configured
- No notifications: Verify your monitoring area covers active radiosonde launch sites
- Encoding issues: Use the Romanian version if you need special character support
Feel free to fork this project and submit pull requests for any improvements. The bot is designed to be extensible with additional features and language support.
This project is open source and available under the GNU General Public License.