{"id":21929190,"url":"https://github.com/achetronic/wizgo","last_synced_at":"2025-08-21T12:41:01.472Z","repository":{"id":195782037,"uuid":"693277012","full_name":"achetronic/wizgo","owner":"achetronic","description":"Control your WiZ lights with Go","archived":false,"fork":false,"pushed_at":"2023-11-10T15:04:50.000Z","size":244,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-31T07:03:57.993Z","etag":null,"topics":["golang","library","wiz","wiz-light-bulb","wiz-lights"],"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/achetronic.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-09-18T17:46:43.000Z","updated_at":"2025-01-24T15:43:36.000Z","dependencies_parsed_at":"2024-11-28T22:40:12.832Z","dependency_job_id":null,"html_url":"https://github.com/achetronic/wizgo","commit_stats":null,"previous_names":["achetronic/wizgo"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/achetronic/wizgo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achetronic%2Fwizgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achetronic%2Fwizgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achetronic%2Fwizgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achetronic%2Fwizgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/achetronic","download_url":"https://codeload.github.com/achetronic/wizgo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achetronic%2Fwizgo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266807200,"owners_count":23987427,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["golang","library","wiz","wiz-light-bulb","wiz-lights"],"created_at":"2024-11-28T22:29:59.168Z","updated_at":"2025-07-24T07:09:03.121Z","avatar_url":"https://github.com/achetronic.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wizgo\n\n\u003cimg src=\"https://raw.githubusercontent.com/achetronic/wizgo/master/docs/img/logo.png\" alt=\"Wizgo Logo (Main) logo.\" width=\"150\"\u003e\n\n![GitHub go.mod Go version (subdirectory of monorepo)](https://img.shields.io/github/go-mod/go-version/achetronic/wizgo)\n![GitHub](https://img.shields.io/github/license/achetronic/wizgo)\n[![Go Reference](https://pkg.go.dev/badge/github.com/achetronic/wizgo.svg)](https://pkg.go.dev/github.com/achetronic/wizgo)\n[![Go Report Card](https://goreportcard.com/badge/github.com/achetronic/wizgo)](https://goreportcard.com/report/github.com/achetronic/wizgo)\n\n![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCeSb3yfsPNNVr13YsYNvCAw?label=achetronic\u0026link=http%3A%2F%2Fyoutube.com%2Fachetronic)\n![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/achetronic?style=flat\u0026logo=twitter\u0026link=https%3A%2F%2Ftwitter.com%2Fachetronic)\n\nA golang library to control your WiZ lights\n\n\u003e At this moment, the library is not covering the whole API as it is discovered by reverse engineering \n\u003e If you want to cover more things, consider [contributing](#how-to-contribute)\n\n## Motivation\n\nDomotic devices are cool, but they will be cooler when [Matter](https://csa-iot.org/all-solutions/matter/) \nprotocol lands, finally, into the industry.\n\nAs a fact, before Matter, only some protocols such as Zigbee had some standardization mercy.\n\nBut there are a lot of devices out there connected by Wi-Fi, and they are completely non-standard. \nManufacturers decided to design them without thinking about potential integration between different stuff.\n\nThe big question is: what are you doing with your legacy WiZ devices that are not going to be updated by the company,\nonce when Matter has landed? Are you thinking about throwing them to the trash?\n\nWith this library you can make your own automations with them. \nAnd now it's as easy as you should forgive about throwing... what?\n\n## Methods\n\nJust read these wonderful lines:\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\n\t// Include the library in your code\n\t\"github.com/achetronic/wizgo/pkg/wizgo\"\n)\n\nfunc main() {\n\n\t// The first step is to start a client to interact with your devices\n\twizClient, err := wizgo.CreateWizClient(\"192.168.2.107\", 38899)\n\n\t// Devices can be turned on/off with single commands\n\t_, err = wizClient.TurnOn()\n\tif err != nil {\n\t\tlog.Fatalf(\"error turning on the light: %s\", err)\n\t}\n\n\t// Lights can be visually found sending a pulse\n\t_, err = wizClient.Pulse()\n\tif err != nil {\n\t\tlog.Fatalf(\"error sending a pulse: %s\", err)\n\t}\n\n\t// Scenes are supported too. Just set the ID you want\n\t_, err = wizClient.SetScene(35)\n\tif err != nil {\n\t\tlog.Fatalf(\"error setting the scene: %s\", err)\n\t}\n\n\t// May be you want to set the speed for a party?\n\t_, err = wizClient.SetSpeed(200)\n\tif err != nil {\n\t\tlog.Fatalf(\"error setting the speed: %s\", err)\n\t}\n\n\t// Oh, some romantic moment. Understood.\n\t_, err = wizClient.SetTemperature(2000)\n\tif err != nil {\n\t\tlog.Fatalf(\"error setting temperature: %s\", err)\n\t}\n\n\t// Studying is better with bright light\n\t_, err = wizClient.SetColdWhite(255)\n\tif err != nil {\n\t\tlog.Fatalf(\"error setting cold white level: %s\", err)\n\t}\n\n\t// But if it's too much, brightness can be set\n\t_, err = wizClient.SetBrightness(100)\n\tif err != nil {\n\t\tlog.Fatalf(\"error setting the brightness level: %s\", err)\n\t}\n\n\t// Feel like Grinch-y today?\n\t_, err = wizClient.SetRgb(0, 255, 0)\n\tif err != nil {\n\t\tlog.Fatalf(\"error setting the color: %s\", err)\n\t}\n\n\t// Let me sleep, uh?\n\t_, err = wizClient.TurnOff()\n\tif err != nil {\n\t\tlog.Fatalf(\"error turning off the device: %s\", err)\n\t}\n\n\t// There are a lot of more things implemented\n\t_, err = wizClient.GetPilot()\n\t_, err = wizClient.GetModelConfig()\n\t_, err = wizClient.GetDevInfo()\n\t_, err = wizClient.GetSystemConfig()\n\t_, err = wizClient.SetRatio(100)\n\t_, err = wizClient.SetWarmWhite(100)\n\t_, err = wizClient.IsDw()\n\t_, err = wizClient.IsTw()\n\t_, err = wizClient.IsRgb()\n\t_, err = wizClient.IsSceneAvailable(32)\n\t_, err = wizClient.Registration(\"192.168.2.173\", \"704F7C84524A\", true)\n}\n\n\n```\n\n## How to contribute\n\nOf course, we are open to external collaborations for this project. For doing it you must:\n\n* Open an issue to discuss what is needed and the reason\n* Fork the repository\n* Make your changes to the code \n* Open a PR. The code will be reviewed and tested (always)\n\n\u003e We are developers and hate bad code. For that reason we ask you the highest quality on each line of code to improve\n\u003e this project on each iteration.\n\n## License\n\nCopyright 2022.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n## Special mention\n\nThis project was done using IDEs from JetBrains. They helped us to develop faster, so we recommend them a lot! 🤓\n\n\u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png\" alt=\"JetBrains Logo (Main) logo.\" width=\"150\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachetronic%2Fwizgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fachetronic%2Fwizgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachetronic%2Fwizgo/lists"}