{"id":23383348,"url":"https://github.com/CyberScoper/ecowittweatherbot","last_synced_at":"2025-08-24T04:31:00.274Z","repository":{"id":258034629,"uuid":"873304535","full_name":"CyberScopeToday/ecowittweatherbot","owner":"CyberScopeToday","description":"☀️This bot helps you access your Ecowitt weather station data effortlessly through Telegram. It provides a user-friendly way to view temperature, humidity, wind speed, and more, using simple commands.","archived":false,"fork":false,"pushed_at":"2024-11-30T14:55:39.000Z","size":35,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-30T15:36:54.644Z","etag":null,"topics":["lstm-neural-networks","python3","telegram-bot","weather-forecast","weather-station"],"latest_commit_sha":null,"homepage":"https://t.me/ecowittweather_bot","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CyberScopeToday.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-16T00:08:32.000Z","updated_at":"2024-11-30T14:57:53.000Z","dependencies_parsed_at":"2024-10-18T04:01:38.680Z","dependency_job_id":null,"html_url":"https://github.com/CyberScopeToday/ecowittweatherbot","commit_stats":null,"previous_names":["cyberscopetoday/ecowittweatherbot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberScopeToday%2Fecowittweatherbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberScopeToday%2Fecowittweatherbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberScopeToday%2Fecowittweatherbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberScopeToday%2Fecowittweatherbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CyberScopeToday","download_url":"https://codeload.github.com/CyberScopeToday/ecowittweatherbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230773648,"owners_count":18278133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lstm-neural-networks","python3","telegram-bot","weather-forecast","weather-station"],"created_at":"2024-12-21T22:20:06.956Z","updated_at":"2025-08-24T04:31:00.269Z","avatar_url":"https://github.com/CyberScopeToday.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌦️ Telegram Weather Station Bot\n\nThis is a Telegram bot that interfaces with a weather station to provide users with real-time weather data, historical weather trends, forecasts using LSTM neural networks, and personalized weather-related notifications and recommendations.\n\n## Features\n\n- **🌤️ Real-Time Weather Data**: Get the latest weather information including temperature, humidity, wind speed, pressure, and more.\n- **📈 Historical Data Visualization**: View historical weather data in the form of interactive graphs.\n- **🔮 Weather Forecasts**: Receive forecasts for temperature, humidity, and pressure based on LSTM neural network models trained on collected data.\n- **⏰ Scheduled Notifications**: Set daily notifications to receive weather updates at a specified time.\n- **⚠️ Alerts and Recommendations**:\n  - **🌧️ Pressure Alerts**: Subscribe to receive alerts about significant drops in atmospheric pressure, indicating possible rain.\n  - **🔥 Comfort Alerts**: Receive notifications when conditions like heat index or wind chill reach extreme levels.\n  - **💡 Recommendations**: Get personalized advice on clothing and outdoor activities based on current weather conditions.\n- **🤖 Interactive Commands**: Use inline buttons to interact with the bot and access its features easily.\n\n## Setup Instructions\n\n### Prerequisites\n\n- 🐍 Python 3.7 or higher\n- 📱 A Telegram account\n- 🤖 A registered Telegram bot with a valid **Bot Token**\n- ☁️ Weather API access with necessary **API Keys**\n\n## Demo 🔥🔥🔥\n\n🌐 **Try it out**: You can test the bot's features and see it in action by visiting [this Telegram bot](https://t.me/ecowittweather_bot). \n\n---\n\n### Installation\n\n1. **📥 Clone the Repository**:\n\n   ```bash\n   git clone https://github.com/CyberScoper/ecowittweatherbot.git\n   cd ecowittweatherbot\n   ```\n\n2. **📦 Install Required Packages**:\n\n   Install the required Python packages using `pip`:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. **⚙️ Configuration**:\n\n   - **🔑 Telegram Bot Token**:\n\n     Obtain a bot token from [BotFather](https://core.telegram.org/bots#6-botfather). Replace the placeholder in the code with your bot's API token:\n\n     ```python\n     API_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'\n     ```\n\n   - **🔑 Weather API Keys**:\n\n     Obtain the necessary API keys from your weather data provider. Replace the placeholders in the code with your API keys:\n\n     ```python\n     # Replace these values with your actual API keys and parameters\n     application_key = 'YOUR_APPLICATION_KEY'\n     api_key = 'YOUR_API_KEY'\n     mac = 'YOUR_DEVICE_MAC_ADDRESS'\n     ```\n\n     **Note**: Be sure to keep your API keys secure and do not share them publicly.\n\n4. **💾 Set Up Data Storage**:\n\n   Ensure that the script has write permissions to the directory where it is running, as it will create and update the following files:\n\n   - `user_data.json`: Stores user preferences and settings.\n   - `weather_data.csv`: Logs weather data periodically for training the model.\n\n## Usage Instructions\n\n### 🚀 Running the Bot\n\nRun the bot script using the following command:\n\n```bash\npython bot_script.py\n```\n\nReplace `bot_script.py` with the actual name of your bot script file.\n\n### 💬 Interacting with the Bot\n\nStart a conversation with your bot on Telegram by searching for its username.\n\n#### Available Commands and Features\n\n- **/start**: Initialize the bot and display the main menu.\n\n- **Main Menu Options**:\n\n  - **🌤️ Погода**: Get the current weather data.\n\n  - **📈 История**: View historical weather data in graphical form.\n\n  - **💡 Получить рекомендацию**: Receive personalized recommendations based on current weather conditions.\n\n  - **⏰ Установить время**: Set a daily notification time to receive weather updates.\n\n  - **🌧️ Подписаться на предупреждения о давлении / Отписаться от предупреждений о давлении**: Subscribe or unsubscribe from pressure alerts indicating possible rain.\n\n  - **🔥 Подписаться на предупреждения о комфорте / Отписаться от предупреждений о комфорте**: Subscribe or unsubscribe from comfort alerts for extreme heat index or wind chill conditions.\n\n  - **💡 Подписаться на рекомендации / Отписаться от рекомендаций**: Subscribe or unsubscribe from hourly recommendations on clothing and activities.\n\n  - **🌡️ Прогноз температуры**: View the temperature forecast for the next two hours.\n\n  - **💧 Прогноз влажности**: View the humidity forecast for the next two hours.\n\n  - **🌪️ Прогноз давления**: View the pressure forecast for the next two hours.\n\n### Features in Detail\n\n#### 🌤️ Real-Time Weather Data\n\nSelect **Погода** from the main menu to receive the latest weather data from your weather station, including:\n\n- 🌡️ **Outdoor Temperature**: Current temperature and feels-like temperature.\n- 💧 **Outdoor Humidity**: Current humidity and dew point.\n- 🏠 **Indoor Conditions**: Indoor temperature and humidity.\n- 💨 **Wind**: Wind speed, gusts, and direction.\n- 🌧️ **Rainfall**: Rainfall rates and totals.\n- ☀️ **Solar Radiation and UV Index**: Solar radiation levels and UV index.\n- 🌪️ **Pressure**: Relative and absolute atmospheric pressure.\n\n#### 📈 Historical Data Visualization\n\nSelect **История** to receive graphs displaying historical data for temperature, humidity, and pressure collected throughout the current day.\n\n#### 🔮 Weather Forecasts\n\nUse the **Прогноз температуры**, **Прогноз влажности**, and **Прогноз давления** options to receive forecasts for the next two hours, generated by an LSTM neural network model trained on collected data.\n\n#### ⏰ Scheduled Notifications\n\nSet daily notifications by selecting **Установить время** and entering the desired time in HH:MM format. You will receive daily weather updates at this time.\n\nTo cancel daily notifications, select **Отменить уведомления** from the main menu.\n\n#### ⚠️ Alerts and Recommendations\n\n- **🌧️ Pressure Alerts**: Subscribe to pressure alerts to be notified of significant drops in atmospheric pressure, which may indicate impending rain.\n\n- **🔥 Comfort Alerts**: Receive alerts when the heat index or wind chill reaches extreme levels, advising you to take appropriate precautions.\n\n- **💡 Recommendations**: Get hourly recommendations on clothing and outdoor activities based on the current weather. To subscribe or unsubscribe, use the respective options in the main menu.\n\n### Data Logging and Model Training\n\nThe bot collects weather data every 5 minutes and saves it to `weather_data.csv`. The LSTM model is trained hourly using the collected data. The model and scaler parameters are saved as `lstm_model.keras`, `scaler.npy`, and `scaler_min.npy`.\n\n## Configuration\n\n### 🔑 API Keys and Tokens\n\nEnsure that you have replaced the placeholder values in the script with your actual API keys and tokens.\n\n- **🤖 Telegram Bot Token**: Replace `'YOUR_TELEGRAM_BOT_TOKEN'` with your bot's token obtained from BotFather.\n\n- **☁️ Weather API Keys**: Replace `'YOUR_APPLICATION_KEY'`, `'YOUR_API_KEY'`, and `'YOUR_DEVICE_MAC_ADDRESS'` with your weather station's API keys and MAC address.\n\n### 📝 Logging\n\nThe bot logs its activities to the console and to a file named `training_logs.log`. You can monitor this file to see the bot's activities and any errors that may occur.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request or open an Issue if you have any suggestions or find any bugs.\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCyberScoper%2Fecowittweatherbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCyberScoper%2Fecowittweatherbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCyberScoper%2Fecowittweatherbot/lists"}