{"id":23906823,"url":"https://github.com/hoegaarden/go-shellyrpc","last_synced_at":"2025-10-06T19:59:10.280Z","repository":{"id":270101043,"uuid":"909330747","full_name":"hoegaarden/go-shellyrpc","owner":"hoegaarden","description":"Do RPC calls to Shelly BLU devices","archived":false,"fork":false,"pushed_at":"2025-01-18T10:49:53.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T06:06:02.851Z","etag":null,"topics":["ble","bluetooth-low-energy","golang","iot","mongoose-os","mongoose-rpc","rpc-library","shelly"],"latest_commit_sha":null,"homepage":"","language":"Go","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/hoegaarden.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,"zenodo":null}},"created_at":"2024-12-28T11:34:38.000Z","updated_at":"2025-01-18T10:49:55.000Z","dependencies_parsed_at":"2024-12-28T13:18:49.717Z","dependency_job_id":"84568855-b589-46b4-bd38-a0b05785e63e","html_url":"https://github.com/hoegaarden/go-shellyrpc","commit_stats":null,"previous_names":["hoegaarden/go-shellyrpc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hoegaarden/go-shellyrpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoegaarden%2Fgo-shellyrpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoegaarden%2Fgo-shellyrpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoegaarden%2Fgo-shellyrpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoegaarden%2Fgo-shellyrpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hoegaarden","download_url":"https://codeload.github.com/hoegaarden/go-shellyrpc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoegaarden%2Fgo-shellyrpc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263480867,"owners_count":23473164,"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":["ble","bluetooth-low-energy","golang","iot","mongoose-os","mongoose-rpc","rpc-library","shelly"],"created_at":"2025-01-05T02:14:52.840Z","updated_at":"2025-10-06T19:59:05.238Z","avatar_url":"https://github.com/hoegaarden.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shelly RPC over BLE \u0026 golang\n\n## What\n\nAllows you to directly, without their gateway, communicate with Shelly BLU\ndevices, e.g. a [Shelly BLU TRV][trv], via their bluetooth RPC mechanism. It is\nimplemented according the documentation over\n[here](https://kb.shelly.cloud/knowledge-base/communicating-with-shelly-devices-via-bluetooth-lo).\n\nWhile it is tailored towards my use with Shelly devices, it might be useful to\ncommunicate with other Mongoose OS based devices, too. Some notes about RPC for\nMongoose OS can be found\n[here](https://mongoose-os.com/docs/mongoose-os/api/rpc/rpc-gatts.md).\n\nUnder the hood [TinyGo]'s [Bluetooth API][bt] is used.\n\nNote: You have to pair the device/sensor before you can use this module, you\ncan use e.g. `bluetoothctl` for that.\n\n[trv]: https://www.shelly.com/products/shelly-blu-trv-single-pack\n[TinyGo]: https://tinygo.org/\n[bt]: https://github.com/tinygo-org/bluetooth\n\n## Status\n\nExperimental. Seems to work for my Shelly BLU TRVs.\n\n## Example\n\nThere is an example application at\n[./cmd/shellyrpc/main.go](cmd/shellyrpc/main.go) which calls an RPC method\n(with optional parameters) and dumps the response on standard out:\n\n```terminal\n: go run ./cmd/shellyrpc/main.go --help\nUsage of /tmp/go-build4271337887/b001/exe/main:\n  -addr string\n        Shelly device address (default \"f8:44:77:21:12:55\")\n  -method string\n        RPC method to call (default \"Shelly.GetConfig\")\n  -params string\n        RPC method parameters as JSON blob (default \"null\")\n: go run ./cmd/shellyrpc/main.go\n{\n  \"sys\": {\n    \"ble\": {\n      \"beacon_count\": 5,\n      \"interval_ms\": 333\n    },\n    \"cfg_rev\": 6,\n    \"device\": {\n      \"name\": \"\"\n    },\n    \"location\": {\n      \"lat\": 0,\n      \"lon\": 0\n    },\n    \"ui\": {\n      \"brightness\": 7,\n      \"flip\": false,\n      \"lock\": false,\n      \"t_units\": \"C\"\n    }\n  },\n  \"temperature:0\": {\n    \"id\": 0,\n    \"offset_C\": 0\n  },\n  \"trv:0\": {\n    \"default_boost_duration\": 1800,\n    \"default_override_duration\": 2147483647,\n    \"default_override_target_C\": 8,\n    \"enable\": true,\n    \"flags\": [\n      \"auto_calibrate\",\n      \"anticlog\"\n    ],\n    \"id\": 0,\n    \"min_valve_position\": 0,\n    \"override_enable\": true\n  }\n}\n: \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoegaarden%2Fgo-shellyrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoegaarden%2Fgo-shellyrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoegaarden%2Fgo-shellyrpc/lists"}