{"id":22944580,"url":"https://github.com/mannkind/mysensorsbootloader2mqtt","last_synced_at":"2025-08-12T22:32:31.439Z","repository":{"id":46179939,"uuid":"61997912","full_name":"mannkind/mysensorsbootloader2mqtt","owner":"mannkind","description":"A mysensors bootloader to mqtt bridge process","archived":false,"fork":false,"pushed_at":"2022-08-16T05:10:34.000Z","size":4555,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-01T12:03:37.863Z","etag":null,"topics":["arduino","docker","firmware-uploading","home-automation","iot","mqtt","mysensors","rf24"],"latest_commit_sha":null,"homepage":"","language":"C#","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/mannkind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-26T16:26:56.000Z","updated_at":"2021-11-17T01:36:09.000Z","dependencies_parsed_at":"2022-09-08T11:30:51.550Z","dependency_job_id":null,"html_url":"https://github.com/mannkind/mysensorsbootloader2mqtt","commit_stats":null,"previous_names":["mannkind/mysb"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/mannkind/mysensorsbootloader2mqtt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mannkind%2Fmysensorsbootloader2mqtt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mannkind%2Fmysensorsbootloader2mqtt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mannkind%2Fmysensorsbootloader2mqtt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mannkind%2Fmysensorsbootloader2mqtt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mannkind","download_url":"https://codeload.github.com/mannkind/mysensorsbootloader2mqtt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mannkind%2Fmysensorsbootloader2mqtt/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270147820,"owners_count":24535684,"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-08-12T02:00:09.011Z","response_time":80,"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":["arduino","docker","firmware-uploading","home-automation","iot","mqtt","mysensors","rf24"],"created_at":"2024-12-14T14:19:17.569Z","updated_at":"2025-08-12T22:32:31.140Z","avatar_url":"https://github.com/mannkind.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mysensorsbootloader2mqtt\n\n[![Software\nLicense](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/mannkind/mysensorsbootloader2mqtt/blob/main/LICENSE.md)\n[![Build Status](https://github.com/mannkind/mysensorsbootloader2mqtt/workflows/Main%20Workflow/badge.svg)](https://github.com/mannkind/mysensorsbootloader2mqtt/actions)\n[![Coverage Status](https://img.shields.io/codecov/c/github/mannkind/mysensorsbootloader2mqtt/main.svg)](http://codecov.io/github/mannkind/mysensorsbootloader2mqtt?branch=main)\n\nA Firmware Uploading Tool for the MySensors Bootloader via MQTT\n\n## Use\n\nThe application can be locally built using `dotnet build` or you can utilize the multi-architecture Docker image(s).\n\n### Example\n\n```bash\ndocker run \\\n-e MYSB__AUTOIDENABLED=\"true\" \\\n-e MYSB__NEXTID=\"12\" \\\n-e MYSB__RESOURCES__0__NodeID=\"default\" \\\n-e MYSB__RESOURCES__0__Type=\"1\" \\\n-e MYSB__RESOURCES__0__Version=\"1\" \\\n-e MYSB__RESOURCES__1__NodeID=\"1\" \\\n-e MYSB__RESOURCES__1__Type=\"4\" \\\n-e MYSB__RESOURCES__1__Version=\"2\" \\\n-e MYSB__MQTT__BROKER=\"localhost\" \\\nmannkind/litterrobot2mqtt:latest\n```\n\nOR\n\n```bash\nMYSB__AUTOIDENABLED=\"true\" \\\nMYSB__NEXTID=\"12\" \\\nMYSB__RESOURCES__0__NodeID=\"default\" \\\nMYSB__RESOURCES__0__Type=\"1\" \\\nMYSB__RESOURCES__0__Version=\"1\" \\\nMYSB__RESOURCES__1__NodeID=\"1\" \\\nMYSB__RESOURCES__1__Type=\"4\" \\\nMYSB__RESOURCES__1__Version=\"2\" \\\nMYSB__MQTT__BROKER=\"localhost\" \\\n./litterrobot2mqtt \n```\n\n\n## Configuration\n\nConfiguration happens via environmental variables\n\n```bash\nMYSB__AUTOIDENABLED                      - [OPTIONAL] The flag that indicates MySensorsBootloader should handle ID requests, defaults to false\nMYSB__NEXTID                             - [OPTIONAL] The number on which to base the next id, defaults to 1\nMYSB__FIRMWAREBASEPATH                   - [OPTIONAL] The path to the firmware files, defaults to \"/config/firmware\"\nMYSB__RESOURCES__#__NodeId               - [OPTIONAL] The nodes configuration NodeId\nMYSB__RESOURCES__#__Type                 - [OPTIONAL] The nodes configuration Type\nMYSB__RESOURCES__#__Version              - [OPTIONAL] The nodes configuration Version\nMYSB__SUBTOPIC                           - [OPTIONAL] The MQTT topic on which to subscribe, defaults to \"mysensors_rx\"\nMYSB__PUBTOPIC                           - [OPTIONAL] The MQTT topic on which to publish, defaults to \"mysensors_tx\"\nMYSB__MQTT__BROKER                       - [OPTIONAL] The MQTT broker, defaults to \"test.mosquitto.org\"\nMYSB__MQTT__USERNAME                     - [OPTIONAL] The MQTT username, default to \"\"\nMYSB__MQTT__PASSWORD                     - [OPTIONAL] The MQTT password, default to \"\"\n```\n\n`MYSB__RESOURCES` is a list of objects that have a NodeId, Type, and Version.\n\n```bash\nMYSB__RESOURCES__0__NodeID=\"default\"\nMYSB__RESOURCES__0__Type=\"1\"\nMYSB__RESOURCES__0__Version=\"1\"\nMYSB__RESOURCES__1__NodeID=\"1\"\nMYSB__RESOURCES__1__Type=\"1\"\nMYSB__RESOURCES__1__Version=\"1\"\nMYSB__RESOURCES__2__NodeID=\"2\"\nMYSB__RESOURCES__2__Type=\"3\"\nMYSB__RESOURCES__2__Version=\"1\"\nMYSB__RESOURCES__3__NodeID=\"3\"\nMYSB__RESOURCES__3__Type=\"1\"\nMYSB__RESOURCES__3__Version=\"2\"\n```\n\nThe firmware a node is using is a combination of a `type` and a `version`. The priority of the firmware used is based on the following:\n\n* Load the user-defined firmware \n* Load the node-defined firmware\n* Load the user-defined default firmware\n\n\nE.g. /path/to/config\\_folder/firmware/`type`/`version`/firmware.hex\n\n```bash\n$ find /path/to/config_folder/firmware\n/path/to/config_folder/firmware/3\n/path/to/config_folder/firmware/3/1\n/path/to/config_folder/firmware/3/1/firmware.hex\n/path/to/config_folder/firmware/2\n/path/to/config_folder/firmware/2/1\n/path/to/config_folder/firmware/2/1/firmware.hex\n/path/to/config_folder/firmware/2/2\n/path/to/config_folder/firmware/2/2/firmware.hex\n/path/to/config_folder/firmware/2/3\n/path/to/config_folder/firmware/2/3/firmware.hex\n/path/to/config_folder/firmware/1\n/path/to/config_folder/firmware/1/1\n/path/to/config_folder/firmware/1/1/firmware.hex\n/path/to/config_folder/firmware/1/2\n/path/to/config_folder/firmware/1/2/firmware.hex\n```\n\n\n## Prior Implementations\n\n### Golang\n* Last Commit: [f355111de6e05882906d962da9efb4c3b8e4e09c](https://github.com/mannkind/mysensorsbootloader2mqtt/commit/f355111de6e05882906d962da9efb4c3b8e4e09c)\n* Last Docker Image: [mannkind/mysensorsbootloader2mqtt:v0.15.20061.0203](https://hub.docker.com/layers/mannkind/mysensorsbootloader2mqtt/v0.15.20061.0203/images/sha256-8acd24a1447d211d7953f362e38579b16919bbfabf78967b2f9bb77555e9fdcf?context=repo)\n\n### Python (never actually released)\n* Last Commit: [24810b04ea4236b7c59bae5f5d818eb2cca3ba6a](https://github.com/mannkind/mysensorsbootloader2mqtt/tree/python)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmannkind%2Fmysensorsbootloader2mqtt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmannkind%2Fmysensorsbootloader2mqtt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmannkind%2Fmysensorsbootloader2mqtt/lists"}