{"id":25194209,"url":"https://github.com/tris/weatherflow_exporter","last_synced_at":"2025-04-04T14:22:48.515Z","repository":{"id":163292337,"uuid":"638064776","full_name":"tris/weatherflow_exporter","owner":"tris","description":"Prometheus exporter for WeatherFlow Tempest weather stations","archived":false,"fork":false,"pushed_at":"2025-02-21T02:37:59.000Z","size":26,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T14:25:26.887Z","etag":null,"topics":["prometheus","prometheus-exporter","weatherflow"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-05-09T02:26:13.000Z","updated_at":"2025-02-27T16:06:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"45b36df9-996c-476d-849a-2b993fba513f","html_url":"https://github.com/tris/weatherflow_exporter","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tris%2Fweatherflow_exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tris%2Fweatherflow_exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tris%2Fweatherflow_exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tris%2Fweatherflow_exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tris","download_url":"https://codeload.github.com/tris/weatherflow_exporter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190793,"owners_count":20898823,"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":["prometheus","prometheus-exporter","weatherflow"],"created_at":"2025-02-09T23:53:00.597Z","updated_at":"2025-04-04T14:22:48.488Z","avatar_url":"https://github.com/tris.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# weatherflow_exporter\n\nweatherflow_exporter is a [Prometheus](https://prometheus.io) exporter for\n[WeatherFlow Tempest](https://weatherflow.com/tempest-home-weather-system/)\nweather stations.\n\nLong-lived WebSocket connections to the\n[WeatherFlow Tempest API](https://weatherflow.github.io/Tempest/) are used to\nexpose metrics from both `obs_st` messages (every 60 sec) and `rapid_wind`\nmessages (every 3 sec).\n\nMany stations may be monitored simultaneously.  Upon receiving a HTTP request\nto the `/scrape` endpoint, a WebSocket connection will be created dynamically\nto WeatherFlow, using the `token` and `device_id` passed in as query parameters.\nMultiple devices sharing the same token (i.e. same owner) will be multiplexed\nover the same connection.  The connection will automatically timeout after 30\nminutes of inactivity (i.e. no requests to `/scrape` for its metrics).\n\n## Install\n\nDownload from [releases](https://github.com/tris/weatherflow_exporter/releases)\nor run from Docker:\n\n```\ndocker run -d -p 6969:6969 ghcr.io/tris/weatherflow_exporter\n```\n\nAn alternate port may be defined using the `PORT` environment variable.  There\nare no other configuration options.\n\n## Grafana dashboard\n\nTBD.  You can get some inspiration from the\n[Mussel Rock Weather](https://mr.ethereal.net) dashboard, which is powered by\nthis exporter.\n\n[Dave Schmid](https://github.com/lux4rd0) has also built some excellent\ndashboards as part of his own\n[WeatherFlow Dashboards AIO](https://github.com/lux4rd0/weatherflow-dashboards-aio)\nproject.  Note that some metrics (e.g. RSSI) are only available via local UDP\nbroadcasts -- if you need those, consider using his\n[weatherflow-collector](https://github.com/lux4rd0/weatherflow-collector) (for\nInfluxDB) instead of this one.\n\n## Test\n\n```\ncurl -s http://localhost:6969/scrape?token=...\u0026device_id=...\n```\n\nThe first request will return an empty response, as it simply establishes the\nWebSocket connection.  Wait 3 seconds before trying again, and you should\nreceive the full set of metrics.\n\n## Example Prometheus config\n\n```yaml\nscrape_configs:\n\n- job_name: 'weatherflow'\n  scrape_interval: 3s\n  static_configs:\n  - targets:\n    - 123456\n    labels:\n      station_name: 'My Station'\n      __param_token: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'\n  - targets: \n    - 234567\n    labels:\n      station_name: 'Other Station'\n      __param_token: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'\n  metrics_path: /scrape\n  relabel_configs:\n  - source_labels: [__address__]\n    target_label: __param_device_id\n  - target_label: __address__\n    # IP of the exporter\n    replacement: localhost:6969\n\n- job_name: 'weatherflow_exporter'\n  static_configs:\n  - targets: ['localhost:6969']\n```\n\n## See also\n\n- [weatherflow](https://github.com/tris/weatherflow) Go module\n- [WeatherFlow Tempest API](https://weatherflow.github.io/Tempest/)\n- [WeatherFlow Tempest API WebSocket Reference](https://weatherflow.github.io/Tempest/api/ws.html)\n- [Tempest API Remote Data Access Policy](https://weatherflow.github.io/Tempest/api/remote-developer-policy.html)\n- [tempest-exporter](https://github.com/nalbury/tempest-exporter)\n- [weatherflow-collector](https://github.com/lux4rd0/weatherflow-collector)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftris%2Fweatherflow_exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftris%2Fweatherflow_exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftris%2Fweatherflow_exporter/lists"}