{"id":18127189,"url":"https://github.com/homebridge-plugins/homebridge-virtual-device","last_synced_at":"2025-10-27T18:31:45.493Z","repository":{"id":241865035,"uuid":"808057902","full_name":"homebridge-plugins/homebridge-virtual-device","owner":"homebridge-plugins","description":"Homebridge plugin which provides HomeKit support for virtual devices.","archived":false,"fork":false,"pushed_at":"2025-01-13T23:33:46.000Z","size":596,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-04T04:14:53.641Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/homebridge-plugins.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":"2024-05-30T09:48:56.000Z","updated_at":"2025-01-03T00:45:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"bed130a1-7c74-4520-a1d8-a91c25a9bd61","html_url":"https://github.com/homebridge-plugins/homebridge-virtual-device","commit_stats":null,"previous_names":["mkz212/homebridge-virtual-device","homebridge-plugins/homebridge-virtual-device"],"tags_count":0,"template":false,"template_full_name":"homebridge/homebridge-plugin-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge-plugins%2Fhomebridge-virtual-device","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge-plugins%2Fhomebridge-virtual-device/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge-plugins%2Fhomebridge-virtual-device/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge-plugins%2Fhomebridge-virtual-device/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/homebridge-plugins","download_url":"https://codeload.github.com/homebridge-plugins/homebridge-virtual-device/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238542290,"owners_count":19489559,"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":[],"created_at":"2024-11-01T09:15:31.077Z","updated_at":"2025-10-27T18:31:45.155Z","avatar_url":"https://github.com/homebridge-plugins.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/mkz212/homebridge-virtual-device/blob/master/logo.png\" width=\"100px\"\u003e\u003c/img\u003e\n\n# Homebridge Virtual Device\n\n[![Downloads](https://img.shields.io/npm/dt/homebridge-virtual-device)](https://www.npmjs.com/package/homebridge-virtual-device)\n[![GitHub version](https://img.shields.io/github/package-json/v/mkz212/homebridge-virtual-device?label=GitHub)](https://github.com/mkz212/homebridge-virtual-device/releases)\n[![npm version](https://img.shields.io/npm/v/homebridge-virtual-device?color=%23cb3837\u0026label=npm)](https://www.npmjs.com/package/homebridge-virtual-device)\n\n`homebridge-virtual-device` is a dynamic platform plugin for [Homebridge](https://homebridge.io) which provides HomeKit support for virtual devices.\n\n## How it works\n- Create virtual device (like switch, dimmer, blind, garage, leak, security, thermostat, etc.).\n- For each device you can add timer to automatically turn off or turn on device after setted time.\n- For dimmer and blind you can add dynamic timer - time depends of value setted in HomeKit. \n- For each device you can add sensor (motion, contact, occupancy, leak) to activate for 3 sec. when main device is turned on or turned off (you can choose) - useful for notifications.\n- All of that is useful in HomeKit / Apple Home automations.\n\n## Install plugin\n\nThis plugin can be easily installed through Homebridge UI or via [NPM](https://www.npmjs.com/package/homebridge-virtual-device) \"globally\" by typing:\n\n    npm install -g homebridge-virtual-device\n\n## Configure plugin\nConfigure the plugin through the settings UI or directly in the JSON editor.\n\nExample config.json:\n\n```json\n{\n  \"platforms\": [\n    {\n      \"platform\": \"Homebridge Virtual Plugin\",\n      \"devices\": [\n        {\n          \"name\": \"Device 1\",\n          \"type\": \"switch\",\n          \"timerType\": \"whenOn\"\n          \"timerTime\": 60,\n          \"sensor\": \"whenOff\",\n          \"sensorType\": \"motion\"\n        },\n        {\n          \"name\": \"Device 2\",\n          \"type\": \"dimmer\",\n          \"timerType\": \"disabled\",\n          \"sensor\": \"disabled\"\n        }\n      ]\n    }\n  ]\n}\n```\n\n- `platform` (string): Tells Homebridge which platform this config belongs to. Leave as is.\n- `name` (string): Name of device, as it will display in HomeKit.\n- `type` (string): Type of the device: switch, dimmer, blind, lock, security, thermostat, etc.\n- `startupValue` (string): Select device state after startup / restart.\n- `timerType` (string): Timer type: disabled, activated when device is on, activated when device is off.\n- `timerTime` (integer): Set time for timer.\n- `timerUnit` (string): Timer unit: miliseconds, seconds, minutes, hours, days.\n- `timerReset` (boolean): Reset timer on each activity. When this option is enabled, each activity of the device will reset the timer (e.g. re-enabling the device even though it is already turned on).\n- `timerDynamic` (booleand): Only for dimmer and blind. When this option is enabled, the timer will change the device value by 1, up to 0 or 100 (depending on the option selected in Timer). Example: if you set 5 minutes in Timer Time and the device is set to 3, then after the timer will be 15 minutes.\n- `timerStartup` (integer): Set different time for timer on startup.\n- `sensor` (string): Add additional sensor to device. It will actvate for 3 seconds. This is useful for automations.\n- `sensorType` (string): Sensor type: motion, contact, occupancy, leak.\n\n\n## Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003eGeneral issues\u003c/summary\u003e\n\nTry:\n- restart Homebridge / plugin bridge\n- restart Apple hub\n- remove device from cache (in Homebridge settings)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eChild bridge\u003c/summary\u003e\n    \n- It's recommended you run this plugin as a [child bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges).\n\n\u003c/details\u003e\n\n## Contributing and support\n\n- Test/use the plugin and [report issues and share feedback](https://github.com/mkz212/homebridge-virtual-device/issues).\n- Contribute with your own bug fixes, code clean-ups, or additional features - [Pull Request](https://github.com/mkz212/homebridge-virtual-device/pulls).\n\n## Acknowledgements\nThanks to the team behind Homebridge, your efforts do not go unnoticed.\n\n## Disclaimer\nDespite the efforts made, the operation of the plugin is without any guarantees and at your own risk.\n\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomebridge-plugins%2Fhomebridge-virtual-device","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhomebridge-plugins%2Fhomebridge-virtual-device","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomebridge-plugins%2Fhomebridge-virtual-device/lists"}