{"id":48093496,"url":"https://github.com/aserper/wunderscraper","last_synced_at":"2026-04-04T15:33:35.500Z","repository":{"id":317536740,"uuid":"1059646830","full_name":"aserper/wunderscraper","owner":"aserper","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-24T03:23:17.000Z","size":107,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T14:43:11.536Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/aserper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-18T18:24:47.000Z","updated_at":"2025-11-24T03:23:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"41c15c4f-d751-4785-b48b-f92ee0d25619","html_url":"https://github.com/aserper/wunderscraper","commit_stats":null,"previous_names":["aserper/wunderscraper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aserper/wunderscraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserper%2Fwunderscraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserper%2Fwunderscraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserper%2Fwunderscraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserper%2Fwunderscraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aserper","download_url":"https://codeload.github.com/aserper/wunderscraper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserper%2Fwunderscraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31403959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-04-04T15:33:30.983Z","updated_at":"2026-04-04T15:33:35.472Z","avatar_url":"https://github.com/aserper.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wunderground PWS - Home Assistant Integration\n\nA Home Assistant integration for fetching weather data from Wunderground Personal Weather Stations.\n\n## Installation\n\n1. Copy the `wunderground_scraper` directory to your Home Assistant `custom_components` directory\n2. Restart Home Assistant\n3. Go to Settings \u003e Devices \u0026 Services\n4. Click Add Integration and search for \"Wunderground Scraper\"\n5. Enter a station URL (e.g., `https://www.wunderground.com/dashboard/pws/KTXHOUST4430`) or just the station ID (`KTXHOUST4430`)\n\n## 📊 Available Sensors\n\nThe integration creates sensors for weather data available from your station:\n\n### Temperature \u0026 Humidity\n*   🌡️ **Temperature** - Current temperature (°F and °C)\n*   🌡️ **Feels Like** - Apparent temperature (accounts for wind chill/heat index)\n*   💧 **Dew Point** - Dew point temperature (°F and °C)\n*   💧 **Humidity** - Relative humidity percentage\n\n### Wind\n*   💨 **Wind Speed** - Current wind speed (mph)\n*   💨 **Wind Gust** - Wind gust speed (mph)\n*   💨 **Wind Direction** - Wind direction (degrees 0-360)\n\n### Pressure \u0026 Precipitation\n*   🎈 **Pressure** - Barometric pressure (inHg)\n*   🌧️ **Precipitation Rate** - Current rain rate (in/hr)\n*   🌧️ **Precipitation Accumulation** - Total daily rainfall (in)\n\n### Solar \u0026 UV\n*   ☀️ **Solar Radiation** - Solar radiation intensity (W/m²)\n*   ☀️ **UV Index** - UV index\n\n**Note:** Not all stations report all sensors. The integration automatically creates only the sensors that have data available. UV and Solar are typically 0 at night.\n\n## 🧪 Testing \u0026 Debugging\n\nBefore adding to Home Assistant, test your station with the debug script:\n\n```bash\ncd debug\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n\n# Test with station ID\npython test_sensors.py KTXHOUST4430\n\n# Or with full URL\npython test_sensors.py https://www.wunderground.com/dashboard/pws/KTXHOUST4430\n```\n\nThe debug script will show:\n- ✅ All available sensors for your station\n- 🕐 Last update time\n- 📍 Station location\n- 📊 Success rate and data completeness\n\nSee [debug/README.md](debug/README.md) for detailed debugging instructions.\n\n## ❓ FAQ\n\n**Q: Do I need to create an API key?**\nA: No! The integration uses the public Weather.com PWS API with a key found in Wunderground's source code.\n\n**Q: Can I monitor a station I don't own?**\nA: Yes! You can monitor any public PWS on Wunderground.\n\n**Q: Why are some sensors showing \"0\" or \"unavailable\"?**\nA: This depends on your station:\n- UV Index \u0026 Solar Radiation are 0 at night (normal)\n- Some stations don't have all sensors installed\n- Check the debug script output to see what's available\n\n**Q: Is my data sent to anyone?**\nA: The integration only fetches data from Weather.com (same source Wunderground uses)\n\n## 🔄 Version History\n\n### v0.2.0 (2025-11-23)\n- **Complete rewrite** to use Weather.com PWS API instead of HTML scraping\n- ✅ 100% sensor success rate (vs ~50% with HTML scraping)\n- Faster and more reliable data fetching\n- Removed BeautifulSoup4 dependency\n- Better error handling and logging\n- Automatic station ID extraction from URLs\n\n### v0.1.0\n- Initial release with HTML scraping\n\n## 📝 License\n\nThis integration is provided as-is for personal use.\n\n---\n\n*Author: Amit Serper* 👋  \n*Repository: [github.com/aserper/wunderscraper](https://github.com/aserper/wunderscraper)* 🔗  \n*Last Updated: 2025-11-23*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faserper%2Fwunderscraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faserper%2Fwunderscraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faserper%2Fwunderscraper/lists"}