{"id":15722940,"url":"https://github.com/soerenschneider/gobot-bme280","last_synced_at":"2026-02-14T02:33:37.055Z","repository":{"id":38105533,"uuid":"402183281","full_name":"soerenschneider/gobot-bme280","owner":"soerenschneider","description":"Versatile DIY weatherstation using a Raspberry Pi and a BME280 sensor","archived":false,"fork":false,"pushed_at":"2025-02-18T21:47:01.000Z","size":298,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-13T03:58:46.583Z","etag":null,"topics":["altitude","bme280","gobot","home-assistant","humidity","mqtt","pressure","raspberry","raspberry-pi","raspberrypi","sensor","sensors","temperature","weather-station","weatherstation"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soerenschneider.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-09-01T19:43:35.000Z","updated_at":"2024-06-10T08:19:57.000Z","dependencies_parsed_at":"2023-09-27T18:14:16.777Z","dependency_job_id":"ddfd4b3f-2623-42e9-836d-00551e5dcffd","html_url":"https://github.com/soerenschneider/gobot-bme280","commit_stats":{"total_commits":90,"total_committers":4,"mean_commits":22.5,"dds":0.4222222222222223,"last_synced_commit":"b639bf051b103b60263ee423df1a941d038d6c77"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soerenschneider%2Fgobot-bme280","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soerenschneider%2Fgobot-bme280/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soerenschneider%2Fgobot-bme280/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soerenschneider%2Fgobot-bme280/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soerenschneider","download_url":"https://codeload.github.com/soerenschneider/gobot-bme280/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253870858,"owners_count":21976612,"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":["altitude","bme280","gobot","home-assistant","humidity","mqtt","pressure","raspberry","raspberry-pi","raspberrypi","sensor","sensors","temperature","weather-station","weatherstation"],"created_at":"2024-10-03T22:09:45.141Z","updated_at":"2026-02-14T02:33:31.976Z","avatar_url":"https://github.com/soerenschneider.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gobot-bme280\n[![Go Report Card](https://goreportcard.com/badge/github.com/soerenschneider/gobot-bme280)](https://goreportcard.com/report/github.com/soerenschneider/gobot-bme280)\n![test-workflow](https://github.com/soerenschneider/gobot-bme280/actions/workflows/test.yaml/badge.svg)\n![release-workflow](https://github.com/soerenschneider/gobot-bme280/actions/workflows/release.yaml/badge.svg)\n![golangci-lint-workflow](https://github.com/soerenschneider/gobot-bme280/actions/workflows/golangci-lint.yaml/badge.svg)\n\nDetects and forwards temperature data using a [BME280 sensor](https://gobot.io/documentation/drivers/bme280/) and a Raspberry PI\n\n## Features\n\n🤖 Integrates with Home-Assistant\u003cbr/\u003e\n📊 Reads sensor data, accessible via MQTT and metrics\u003cbr/\u003e\n🔐 Allows connecting to secure MQTT brokers using TLS client certificates\u003cbr/\u003e\n🔭 Expose temperature data as metrics to enable alerting and Grafana dashboards\u003cbr/\u003e\n\n## Installation\n\n### Binaries\nDownload a prebuilt binary from the [releases section](https://github.com/soerenschneider/gobot-bme280/releases) for your system.\n\n### From Source\nAs a prerequisite, you need to have [Golang SDK](https://go.dev/dl/) installed. Then you can install gobot-bme280 from source by invoking:\n```shell\n$ go install github.com/soerenschneider/gobot-bme280@latest\n```\n\n## JSON Example Payload\n```json\n{\"alt\":99,\"humidity\":13,\"pressure\":13.37,\"temp\":22.25,\"timestamp\":1630563744}\n```\n\n## Configuration\n\ngobot-bme280 can be fully configured using either environment variables or a config file. To supply a config file, the `-config` parameter is used.\n\n### General Config Reference\n| Struct Field      | Description                                  | Environment Variable              | Default Value   | Validation                               |\n|-------------------|----------------------------------------------|-----------------------------------|-----------------|------------------------------------------|\n| Placement         | Specifies the placement.                     | GOBOT_BME280_PLACEMENT            | N/A (required)  | required                                 |\n| MetricConfig      | Metric server address.                       | GOBOT_BME280_METRICS_LISTEN_ADDR  | N/A (omitempty) | tcp_addr                                 |\n| IntervalSecs      | Interval in seconds for sensor readings.     | GOBOT_BME280_INTERVAL_S           | 30              | min=30,max=300                           |\n| StatIntervals     | Intervals for collecting statistics.         | GOBOT_BME280_STAT_INTERVALS       | N/A (dive)      | dive,min=10,max=3600                     |\n| LogSensor         | Whether to log sensor readings.              | GOBOT_BME280_LOG_SENSOR_READINGS  | false           | N/A                                      |\n\n### MQTT Config Reference\n| Struct Field      | Description                               | Environment Variable                  | Default Value                                 | Validation                              |\n|-------------------|-------------------------------------------|---------------------------------------|-----------------------------------------------|-----------------------------------------|\n| Disabled          | Indicates if MQTT is disabled.            | GOBOT_BME280_MQTT_DISABLED            | false                                         | N/A                                     |\n| Host              | MQTT broker host address.                 | GOBOT_BME280_MQTT_BROKER              | N/A (required_if=Disabled false, mqtt_broker) | required_if=Disabled false, mqtt_broker |\n| Topic             | MQTT topic for sensor readings.           | GOBOT_BME280_MQTT_TOPIC               | N/A (required_if=Disabled false, mqtt_topic)  | required_if=Disabled false, mqtt_topic  |\n| ClientKeyFile     | Client SSL key file for MQTT.             | GOBOT_BME280_MQTT_TLS_CLIENT_KEY_FILE | N/A (required_unless=ClientCertFile '', file) | required_unless=ClientCertFile '', file |\n| ClientCertFile    | Client SSL certificate file for MQTT.     | GOBOT_BME280_MQTT_TLS_CLIENT_CRT_FILE | N/A (required_unless=ClientKeyFile '', file)  | required_unless=ClientKeyFile '', file  |\n| ServerCaFile      | Server SSL CA certificate file for MQTT.  | GOBOT_BME280_MQTT_TLS_SERVER_CA_FILE  | N/A (omitempty, file)                         | required_unless=ClientKeyFile '', file  |\n\n### Sensor Config Reference\n| Struct Field      | Description               | Environment Variable          | Default Value | Validation      |\n|-------------------|---------------------------|-------------------------------|---------------|-----------------|\n| GpioBus           | GPIO bus for sensor.      | GOBOT_BME280_GPIO_BUS         | 1             | gte=0           |\n| GpioAddress       | GPIO address for sensor.  | GOBOT_BME280_GPIO_ADDRESS     | 0x76          | gte=1,lte=200   |\n\n\n## Metrics\n\nThis project exposes the following metrics in Open Metrics format using the `gobot_bme280` prefix.\n\n| Metric Name                  | Description                                                       | Labels          |\n|------------------------------|-------------------------------------------------------------------|-----------------|\n| version                      | Version information of this robot                                 | version, commit |\n| heartbeat_timestamp_seconds  | Heartbeat of this robot                                           | placement       |\n| reading_errors_total         | Total amount of errors while reading from the sensor              | placement       |\n| altitude_meters              | The measured altitude in meters                                   | placement       |\n| humidity_percent             | The measured humidity in percent                                  | placement       |\n| temperature_celsius          | The measured temperature in degrees celsius                       | placement       |\n| pressure_pa                  | The measured pressure in pascal                                   | placement       |\n| messages_published_total     | The amount of published MQTT messages                             | placement       |\n| message_publish_errors_total | Total amount of errors while trying to publish messages over MQTT | placement       |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoerenschneider%2Fgobot-bme280","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoerenschneider%2Fgobot-bme280","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoerenschneider%2Fgobot-bme280/lists"}