{"id":31835102,"url":"https://github.com/break-pointer/homebridge-tion","last_synced_at":"2025-10-12T00:56:22.497Z","repository":{"id":35102240,"uuid":"206972653","full_name":"break-pointer/homebridge-tion","owner":"break-pointer","description":"Homebridge plugin to control Tion breezers","archived":false,"fork":false,"pushed_at":"2024-06-18T09:37:27.000Z","size":4522,"stargazers_count":36,"open_issues_count":3,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-08-04T21:19:40.989Z","etag":null,"topics":["3s","airpurifier","breezer","co2","homebridge","homebridge-plugin","humidity","magicair","o2","sensor","smarthome","temperature","tion"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/break-pointer.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}},"created_at":"2019-09-07T13:33:08.000Z","updated_at":"2024-05-31T08:31:42.000Z","dependencies_parsed_at":"2024-01-11T23:22:45.449Z","dependency_job_id":"96f99754-3dd2-4f09-93aa-71ff718193ba","html_url":"https://github.com/break-pointer/homebridge-tion","commit_stats":{"total_commits":37,"total_committers":2,"mean_commits":18.5,"dds":"0.027027027027026973","last_synced_commit":"ff2bbbd4d3d718ff10b4b9ffcc06bb417a18a8b3"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/break-pointer/homebridge-tion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/break-pointer%2Fhomebridge-tion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/break-pointer%2Fhomebridge-tion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/break-pointer%2Fhomebridge-tion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/break-pointer%2Fhomebridge-tion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/break-pointer","download_url":"https://codeload.github.com/break-pointer/homebridge-tion/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/break-pointer%2Fhomebridge-tion/sbom","scorecard":{"id":251714,"data":{"date":"2025-08-11","repo":{"name":"github.com/break-pointer/homebridge-tion","commit":"ff2bbbd4d3d718ff10b4b9ffcc06bb417a18a8b3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/22 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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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":"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":"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":-1,"reason":"no dependencies found","details":null,"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":"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: MIT License: 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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 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"}},{"name":"Vulnerabilities","score":0,"reason":"15 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T08:38:22.439Z","repository_id":35102240,"created_at":"2025-08-17T08:38:22.439Z","updated_at":"2025-08-17T08:38:22.439Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279009509,"owners_count":26084609,"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-10-11T02:00:06.511Z","response_time":55,"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":["3s","airpurifier","breezer","co2","homebridge","homebridge-plugin","humidity","magicair","o2","sensor","smarthome","temperature","tion"],"created_at":"2025-10-12T00:56:20.971Z","updated_at":"2025-10-12T00:56:22.491Z","avatar_url":"https://github.com/break-pointer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# homebridge-tion\n\n[![NPM](https://nodei.co/npm/homebridge-tion.png?downloads=true\u0026downloadRank=true\u0026stars=true)](https://nodei.co/npm/homebridge-tion/)\n\n[![npm](https://img.shields.io/npm/dm/homebridge-tion.svg)](https://www.npmjs.com/package/homebridge-tion)\n[![npm](https://img.shields.io/npm/v/homebridge-tion.svg)](https://www.npmjs.com/package/homebridge-tion)\n\nПлагин для [Homebridge](https://github.com/nfarina/homebridge), позволяющий управлять климатической техникой [Tion](https://tion.ru/product/magicair/) (базовой станций MagicAir, бризерами 3S и O2).\n\n## Поддерживаемые устройства\n\n| Модель |\n|--------|\n| [Базовая станция MagicAir](https://tion.ru/product/magicair/) |\n| [Бризер Тион 4S](https://tion.ru/product/breezer-tion-4s/) |\n| [Бризер Тион 3S](https://tion.ru/product/breezer-tion-3s/) |\n| [Бризер Тион O2](https://tion.ru/product/breezer-tion-o2/) |\n| [Модуль CO2](https://tion.ru/product/co2plus/) |\n\nДля устройств, которых нет в списке, поддержка пока не реализована. Если вы хотите добавить поддержку новых устройства, свяжитесь со мной или предложите pull-request.\n\n## Функции\n\n- управление бризером (вкл/выкл, скорость, нагрев, температура, рециркуляция)\n- мониторинг состояния фильтра бризера\n- мониторинг качества воздуха (уровень CO2, температура, влажность)\n- управление подсветкой базовой станции\n- сигнализация превышения допустимого уровня CO2\n- мониторинг температуры уличного воздуха\n\n| ![Демо](docs/homekit-demo.png) | ![Демо](docs/homekit-demo1.png) | ![Демо](docs/homekit-demo2.png) |\n| ------------------------------------------- | ------------------------------------------- | -------------------------------------------- |\n| ![Демо](docs/homekit-demo3.png) | ![Демо](docs/homekit-demo4.png) |\n\n## Установка\n\n0. Настройте базовую станцию:\n\n   Из [веб-интерфейса](https://magicair.tion.ru) или из приложения для [iOS](https://apps.apple.com/ru/app/magicair/id1111104830) или [Android](https://play.google.com/store/apps/details?id=com.tion.magicair)\n\n1. Если у вас уже есть [Config UI X](https://github.com/oznu/homebridge-config-ui-x), рекомендую устанавливать и конфигурировать плагин с его помощью, а дальнейшие шаги можно пропустить.\n\n   ![Настройки](docs/homebridge-tion-page.png)\n\n2. Установите плагин:\n\n    ```shell\n    $ npm install -g homebridge-tion --production\n    ```\n\n3. Обновите конфигурацию Homebridge:\n\n   Добавьте в секцию `platforms` следующую запись (см. описание полей ниже):\n\n    ```json\n    \"platforms\": [\n        {\n            \"platform\": \"Tion\",\n            \"name\": \"Tion\",\n            \"homeName\": ИМЯ_ДОМА_В_MAGICAIR_В_ДВОЙНЫХ_КАВЫЧКАХ,\n            \"userName\": ИМЯ_ПОЛЬЗОВАТЕЛЯ_В_MAGICAIR_В_ДВОЙНЫХ_КАВЫЧКАХ,\n            \"password\": ПАРОЛЬ_В_MAGICAIR_В_ДВОЙНЫХ_КАВЫЧКАХ\n        }\n    ]\n    ```\n\n4. Перезапустите Homebridge\n\n   \n\n## Конфигурация\n\n| Поле | Тип | Описание | Обязательно поле | Значение по-умолчанию |\n|--------|------|-------------|----------|---------------|\n| `name` | `string` | Имя плагина в Homebridge | Да | `Tion` |\n| `homeName` | `string` | Имя дома в MagicAir. Если у вас один дом в MagicAir, оставьте это поле пустым. Если у вас несколько домов, укажите имя дома в MagicAir, приборами в котором вы хотите управлять. | Нет |  |\n| `userName` | `string` | Имя пользователя в MagicAir | Да |  |\n| `password` | `string` | Пароль в MagicAir | Да |  |\n| `co2Threshold` | `number` | Уровень CO2 (ppm), выше которого будет сигнализировать датчик CO2 в Homekit | Нет | `800` |\n| `percentSpeed` | `boolean` | Задаёт вид регулировки скорости бризера в процентах (0-100%, как принято в Homekit) или фиксированными значениями (1-4, 1-6, как принято в MagicAir) | Нет | `false` |\n| `apiRequestTimeout` | `number` | Таймаут (мс), по истечении которого запрос к серверу MagicAir принудительно завершается с ошибкой | Нет | `1500` |\n\n## Todo\n\n- [ ] связь с базовой станцией напрямую (локальный режим)\n\n## Disclaimer\n\n\u003e Плагин не является заменой официального приложения MagicAir. \n\n\u003e Я не имею никакого отношения к компании Tion.\n\n\u003e Мне просто нравится климатическая техника Tion и хочется качественного UX с моими устройствами Apple.\n\n## Автор\n\nИлья Рузаков\n\n[t.me/break-pointer](https://t.me/break-pointer)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreak-pointer%2Fhomebridge-tion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbreak-pointer%2Fhomebridge-tion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreak-pointer%2Fhomebridge-tion/lists"}