{"id":27154734,"url":"https://github.com/mariusbreivik/netatmo","last_synced_at":"2026-02-01T15:00:48.682Z","repository":{"id":37459349,"uuid":"322062387","full_name":"mariusbreivik/netatmo","owner":"mariusbreivik","description":"A tiny CLI written in go-lang used to retrieve data from Netatmo Weather API. The CLI is based on the cobra framework","archived":false,"fork":false,"pushed_at":"2025-08-21T08:14:26.000Z","size":225,"stargazers_count":5,"open_issues_count":5,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-21T10:32:48.076Z","etag":null,"topics":["cli","cli-app","climate","cmd","cobra","cobra-viper","command-line","go","golang","google-golang","gopher","meteorological-data","netatmo","netatmo-api","netatmo-weather-station","shell","weather-data","weatherstation","yrno"],"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/mariusbreivik.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-16T18:02:05.000Z","updated_at":"2025-08-21T08:13:36.000Z","dependencies_parsed_at":"2023-02-12T02:18:12.198Z","dependency_job_id":"ead818cb-aa7b-4545-9c9c-a82671ed3c5c","html_url":"https://github.com/mariusbreivik/netatmo","commit_stats":{"total_commits":34,"total_committers":4,"mean_commits":8.5,"dds":"0.32352941176470584","last_synced_commit":"9ed4255683ce9971f80035f1f5394b6343498808"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/mariusbreivik/netatmo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariusbreivik%2Fnetatmo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariusbreivik%2Fnetatmo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariusbreivik%2Fnetatmo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariusbreivik%2Fnetatmo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariusbreivik","download_url":"https://codeload.github.com/mariusbreivik/netatmo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariusbreivik%2Fnetatmo/sbom","scorecard":{"id":619460,"data":{"date":"2025-08-11","repo":{"name":"github.com/mariusbreivik/netatmo","commit":"7d3d7eb849911e4d88df1be7b40121581c5ae165"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/19 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"24 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":7,"reason":"dependency not pinned by hash detected -- score normalized to 7","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/conventional-commits.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/mariusbreivik/netatmo/conventional-commits.yml/main?enable=pin","Info:   7 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   2 out of   3 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'packages' permission set to 'read': .github/workflows/codeql.yml:36","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:39","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:40","Warn: topLevel 'contents' permission set to 'write': .github/workflows/build.yml:4","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/conventional-commits.yml:4","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release.yml:4","Warn: topLevel 'packages' permission set to 'write': .github/workflows/release.yml:5","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.2.34 not signed: https://api.github.com/repos/mariusbreivik/netatmo/releases/239788400","Warn: release artifact v0.2.33 not signed: https://api.github.com/repos/mariusbreivik/netatmo/releases/234934742","Warn: release artifact v0.2.32 not signed: https://api.github.com/repos/mariusbreivik/netatmo/releases/234932582","Warn: release artifact v0.2.31 not signed: https://api.github.com/repos/mariusbreivik/netatmo/releases/234903880","Warn: release artifact v0.2.30 not signed: https://api.github.com/repos/mariusbreivik/netatmo/releases/229483060","Warn: release artifact v0.2.34 does not have provenance: https://api.github.com/repos/mariusbreivik/netatmo/releases/239788400","Warn: release artifact v0.2.33 does not have provenance: https://api.github.com/repos/mariusbreivik/netatmo/releases/234934742","Warn: release artifact v0.2.32 does not have provenance: https://api.github.com/repos/mariusbreivik/netatmo/releases/234932582","Warn: release artifact v0.2.31 does not have provenance: https://api.github.com/repos/mariusbreivik/netatmo/releases/234903880","Warn: release artifact v0.2.30 does not have provenance: https://api.github.com/repos/mariusbreivik/netatmo/releases/229483060"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:14"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 27 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T04:52:20.066Z","repository_id":37459349,"created_at":"2025-08-21T04:52:20.066Z","updated_at":"2025-08-21T04:52:20.066Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28980855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T13:38:33.235Z","status":"ssl_error","status_checked_at":"2026-02-01T13:38:32.912Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["cli","cli-app","climate","cmd","cobra","cobra-viper","command-line","go","golang","google-golang","gopher","meteorological-data","netatmo","netatmo-api","netatmo-weather-station","shell","weather-data","weatherstation","yrno"],"created_at":"2025-04-08T18:32:23.525Z","updated_at":"2026-02-01T15:00:48.644Z","avatar_url":"https://github.com/mariusbreivik.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# netatmo \n\n\u003c/br\u003e\n\n  - [📖 describe()](#-describe)\n  - [🧑‍💻 use()](#-use)\n    - [🌡 temp](#-temp)\n    - [🎧 noise](#-noise)\n    - [🌫 co2](#-co2)\n    - [💦 humidity](#-humidity)\n    - [⚙️ firmware](#️-firmware)\n    - [📶 wifi](#-wifi)\n    - [🕐 lastupgrade](#-lastupgrade)\n    - [📈 pressure](#-pressure)\n  - [📜 develop()](#-develop)\n  - [💾 install()](#-install)\n\n## 📖 describe()\n`netatmo` is a tiny CLI based on the [cobra](https://github.com/spf13/cobra)\n framework written in [go-lang](https://golang.org/). Its mostly just for fun, but the purpose is retrieving and displaying data in the command line from netatmo weather api.\n\n \u003c/br\u003e\n\n## 🧑‍💻 use()\n`netatmo` has several subcommands which can be used to get different data from your Netatmo Weather Station. There is still some work remaining to get all commands working.\n\n### 🌡 temp\n ```shell\n$ netatmo temp -o, --outdoor | -i , --indoor\n ```\n\n### 🎧 noise\n ```shell\n$ netatmo noise\n ```\n\n### 🌫 co2\n ```shell\n$ netatmo co2\n ```\n\n### 💦 humidity\n ```shell\n$ netatmo humidity\n ```\n\n### ⚙️ firmware\n ```shell\n$ netatmo firmware\n\n ```\n### 📶 wifi\n  ```shell\n$ netatmo wifi\n ```\n\n### 🕐 lastupgrade\n  ```shell\n$ netatmo lastupgrade\n ```\n\n ### 📈 pressure\n  ```shell\n$ netatmo pressure\n ```\n\n\n\u003c/br\u003e\n\n## 📜 develop()\n * You need to have your own [Netatmo Weather Station](https://www.netatmo.com/en-eu/weather/weatherstation) in order to use this CLI\n * Sign up at [netatmo](https://dev.netatmo.com/apps/) and create an app to get `clientId` and `clientSecret` in order to retrieve data from your Netatmo Weateher Station through the API.\n  \n\u003c/br\u003e\n\n ## 💾 install()\n  * Make sure [go](https://golang.org/) is installed\n  * Clone this repo\n  * install dependencies and build:\n```shell\n$ go install \u0026\u0026 go build\n```\n* create a config file called `$HOME/.netatmo.yaml` with this content:\n  \n```yaml\nnetatmo:\n  clientID: YOUR_CLIENT_ID\n  clientSecret: YOUR_CLIENT_SECRET\n  username: YOUR_NETATMO_USERNAME\n  password: YOUR_NETATMO_PASSWORD\n```\n* If everything is correct you should be able to run:\n```\n$ netatmo\n\nUses the Netatmo Weatherstation API to get your indoor/outdoor\ntemperature, co2 level, nois level, humidity, firmware data, wifi signal strength,\nand more\n\nUsage:\n  netatmo [flags]\n  netatmo [command]\n\nExamples:\nnetatmo temp --indoor\n\nAvailable Commands:\n  co2         read co2 data from netatmo station\n  firmware    read firmware data from netatmo station\n  help        Help about any command\n  humidity    read humidity data from netatmo station\n  noise       read noise data from netatmo station\n  temp        read temperature data from netatmo station\n  wifi        read wifi data from netatmo station\n  pressure    read pressure data from netatmo station\n\nFlags:\n      --config string   config file (default is $HOME/.netatmo.yaml)\n  -d, --debug           debug logging\n  -h, --help            help for netatmo\n\nUse \"netatmo [command] --help\" for more information about a command.\n```\n\n\u003c/br\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariusbreivik%2Fnetatmo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariusbreivik%2Fnetatmo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariusbreivik%2Fnetatmo/lists"}