{"id":15678098,"url":"https://github.com/alexxit/updater","last_synced_at":"2025-07-30T00:33:24.210Z","repository":{"id":104871832,"uuid":"413073136","full_name":"AlexxIT/Updater","owner":"AlexxIT","description":null,"archived":false,"fork":false,"pushed_at":"2021-12-07T20:22:40.000Z","size":9,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T02:25:26.492Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/AlexxIT.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}},"created_at":"2021-10-03T12:36:37.000Z","updated_at":"2025-04-01T04:10:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6eba486-43b5-4a70-98d4-75cbbabe6f57","html_url":"https://github.com/AlexxIT/Updater","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlexxIT/Updater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexxIT%2FUpdater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexxIT%2FUpdater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexxIT%2FUpdater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexxIT%2FUpdater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexxIT","download_url":"https://codeload.github.com/AlexxIT/Updater/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexxIT%2FUpdater/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267785735,"owners_count":24144120,"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-29T02:00:12.549Z","response_time":2574,"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":[],"created_at":"2024-10-03T16:16:36.980Z","updated_at":"2025-07-30T00:33:24.151Z","avatar_url":"https://github.com/AlexxIT.png","language":"Python","funding_links":["https://www.buymeacoffee.com/AlexxIT"],"categories":[],"sub_categories":[],"readme":"# Updater for Home Assistant\n\n[![Donate](https://img.shields.io/badge/donate-Coffee-yellow.svg)](https://www.buymeacoffee.com/AlexxIT)\n[![Donate](https://img.shields.io/badge/donate-Yandex-red.svg)](https://money.yandex.ru/to/41001428278477)\n\nThis is a lightweight script for updating custom components for [Home Assistant](https://www.home-assistant.io/). If for some reason you do not want to use [HACS](https://hacs.xyz/) or cannot install it.\n\nPros:\n\n- Instant ready to use, no need to install or Hass reboot\n- No need GitHub account and token\n- Support update to latest release or latest defaul branch, even if it's not a \"master\"\n- Support update to specific branch or tag (version), even if the tag is not a release\n\nCons:\n\n- There is no GUI\n- Frontend integrations are not supported\n\n## Setup\n\n1. Add to your `configuration.yaml`:\n\n```yaml\nswitch:\n  - platform: command_line\n    switches:\n      updater:\n        friendly_name: Updater\n        command_on: python updater.py update  # run updates process\n        command_off: python updater.py        # force reload witout timeout\n        command_state: |\n          python -B -c \"exec('''try: import updater\\nexcept ModuleNotFoundError: from urllib.request import urlretrieve; urlretrieve('https://raw.github.com/AlexxIT/Updater/master/updater.py', 'updater.py'); import updater'''); updater.run(interval=3600)\"\n        command_timeout: 60  # this is timeout, not update interval!\n```\n\n2. Go to Configuration \u003e Server Controls \u003e Reload: Command line entities\n\n3. Wait 30 seconds (default delay from the moment the switch is added)\n\n4. Edit file `updater.txt` in your config folder:\n\nBy default, updates to the latest release version or default branch. But you can point to any branch or any tag (version), even if the tag is not a release. Remember, some developers use the letter `v` in version name, some don't.\n\n```\nhttps://github.com/AlexxIT/SonoffLAN             # latest release or default branch\nhttps://github.com/AlexxIT/Dataplicity mater     # master branch\nhttps://github.com/AlexxIT/XiaomiGateway3 async  # custom branch\nhttps://github.com/AlexxIT/WebRTC v2.0.1         # custom tag (version)\n# https://github.com/hacs/integration            # any comments\n```\n\n## Using\n\nYou should wait 30 seconds after Home Assistant starts for first update check.\n\nIf switch is ON - all componenst is up-to-date. You can turn it OFF to force an update check.\n\nIf switch OFF - you have an update. Turn it ON for the update.\n\nYou can delete `custom_components/NAME/version.txt` to force update on same version.\n\nYou can delete `updater.py` to update this script when the new version comes out.\n\nYou can delete `updater.json` to force an update check. The command line switch updates the data once an hour and caches the response in this file. To minimize the number of requests to the Internet.\n\nYou can comment line in `updater.txt` file to disable component update.\n\nYou can use script from command line:\n\n```shell\npython updater.py update AlexxIT/SonoffLAN AlexxIT/Dataplicity@mater AlexxIT/WebRTC@v2.0.1\npython updater.py -i 3600 json AlexxIT/SonoffLAN\n```\n\nAlso, you can create sensor if you want. The sensor value can be updated with a delay up to 60 seconds.\n\n```yaml\nsensor:\n  - platform: command_line\n    name: Updater\n    command: python updater.py -i 3600 json\n    value_template: '{{ value_json.repositories|length }}'\n    unit_of_measurement: updates\n    json_attributes:\n      - repositories\n```\n\nPS: working directory should point to the Hass configuration folder. This works by default for most users.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexxit%2Fupdater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexxit%2Fupdater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexxit%2Fupdater/lists"}