Rest
...parameters: any[]Static
forceStatic
setTurns on debug level logging. Off by default.
+Logger class
+Optional
prefix: stringStatic
forceForces color in logging output, even if it seems like color is unsupported.
+Static
setStatic
setTurns on inclusion of timestamps in log messages. On by default.
{boolean}
-Static
withCreates a new Logging device with a specified prefix.
+Static
withCreates a new Logging device with a specified prefix.
{string} - the prefix of the logger
-Optional
category: CategoriesOptional
_associatedOptional
_associatedThis is a way for Plugin developers to store custom data with their accessory
-Configures a new controller for the given accessory. +
Optional
category: CategoriesOptional
_associatedOptional
_associatedThis is a way for Plugin developers to store custom data with their accessory
+Configures a new controller for the given accessory. See Accessory.configureController.
-use getServiceById directly
-use getServiceById directly
+Removes a configured controller from the given accessory. See Accessory.removeController.
-Static
deserializeStatic
serializeStatic
deserializeStatic
serializeConst
Event is fired once homebridge has finished with booting up and initializing all components and plugins. +
Const
Event is fired once homebridge has finished with booting up and initializing all components and plugins. When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs to wait for some {@see StaticPlatformPlugin | StaticPlatformPlugins} to finish accessory creation.
-This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash. +
This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash. At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
-Const
Log levels to indicate importance of the logged message. +
Const
Log levels to indicate importance of the logged message. Every level corresponds to a certain color.
Messages with DEBUG level are only displayed if explicitly enabled.
-Const
Const
+
You can explore all available plugins at the NPM website by searching for the keyword homebridge-plugin
.
The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.
+You can explore all available plugins at the NPM website by searching for the keyword homebridge-plugin
.
The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.
- + -HomeKit communities can also be found on both Discord and Reddit.
-Official Homebridge Raspberry Pi Image
Install Homebridge on Raspbian
HomeKit communities can also be found on both Discord and Reddit.
+Official Homebridge Raspberry Pi Image
Install Homebridge on Raspbian
Debian or Ubuntu Linux |
-Red Hat, CentOS or Fedora Linux | Arch / Manjaro Linux|Install Homebridge on Arch Linux
Debian or Ubuntu Linux |
+Red Hat, CentOS or Fedora Linux | Arch / Manjaro Linux|Install Homebridge on Arch Linux
Install Homebridge on Windows 10 / 11 Using Hyper V
+Install Homebridge on Windows 10 / 11 Using Hyper V
Install Homebridge on Docker
Synology | Unraid | QNAP | TrueNAS Scale
Install Homebridge on Docker
Synology | Unraid | QNAP | TrueNAS Scale
Install Homebridge on Synology DSM 7
-Install Homebridge on Synology DSM 7
+If the bridge does not have any accessories yet, you may receive a message saying Additional Set-up Required, this is ok, as you add plugins they will show up in the Home app without the need to pair again (except for Cameras and TVs).
-Cameras and most TV devices are exposed as separate accessories and each needs to be paired separately. See this wiki article for instructions.
-Once your device has been added to HomeKit, you should be able to tell Siri to control your devices. However, realize that Siri is a cloud service, and iOS may need some time to synchronize your device information with iCloud.
+Cameras and most TV devices are exposed as separate accessories and each needs to be paired separately. See this wiki article for instructions.
+Once your device has been added to HomeKit, you should be able to tell Siri to control your devices. However, realize that Siri is a cloud service, and iOS may need some time to synchronize your device information with iCloud.
One final thing to remember is that Siri will almost always prefer its default phrase handling over HomeKit devices. For instance, if you name your Sonos device "Radio" and try saying "Siri, turn on the Radio" then Siri will probably start playing an iTunes Radio station on your phone. Even if you name it "Sonos" and say "Siri, turn on the Sonos", Siri will probably just launch the Sonos app instead. This is why, for instance, the suggested name
for the Sonos accessory is "Speakers".
The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.
-The Homebridge Plugin Template project provides a base you can use to create your own platform plugin.
-There are many existing plugins you can study; you might start with the Homebridge Example Plugins or a plugin that already implements the device type you need.
+The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.
+The Homebridge Plugin Template project provides a base you can use to create your own platform plugin.
+There are many existing plugins you can study; you might start with the Homebridge Example Plugins or a plugin that already implements the device type you need.
When writing your plugin, you'll want Homebridge to load it from your development directory instead of publishing it to npm
each time. Run this command inside your plugin project folder so your global installation of Homebridge can discover it:
npm link
@@ -69,17 +69,17 @@
This is very useful when you are already using your development machine to host a "real" Homebridge instance (with all your accessories) that you don't want to disturb.
-To fix this, Reset Homebridge.
-Try the following:
+To fix this, Reset Homebridge.
+Try the following:
Bonjour HAP
and Ciao
mDNS Advertiser options. See the wiki for more details.Bonjour HAP
and Ciao
mDNS Advertiser options. See the wiki for more details.Technically, the device manufacturers should be the ones implementing the HomeKit API. And I'm sure they will - eventually. When they do, this project will be obsolete, and I hope that happens soon. In the meantime, Homebridge is a fun way to get a taste of the future, for those who just can't bear to wait until "real" HomeKit devices are on the market.
-Homebridge was originally created by Nick Farina.
-The original HomeKit API work was done by Khaos Tian in his HAP-NodeJS project.
-Technically, the device manufacturers should be the ones implementing the HomeKit API. And I'm sure they will - eventually. When they do, this project will be obsolete, and I hope that happens soon. In the meantime, Homebridge is a fun way to get a taste of the future, for those who just can't bear to wait until "real" HomeKit devices are on the market.
+Homebridge was originally created by Nick Farina.
+The original HomeKit API work was done by Khaos Tian in his HAP-NodeJS project.
+Readonly
hapReadonly
hapReadonly
platformReadonly
serverThe current homebridge semver version.
-Readonly
userReadonly
versionThe homebridge API version as a floating point number.
-use publishExternalAccessories directly to publish a standalone Accessory
-Returns true if the current running homebridge version is greater or equal to the +
Readonly
hapReadonly
hapReadonly
platformReadonly
serverThe current homebridge semver version.
+Readonly
userReadonly
versionThe homebridge API version as a floating point number.
+use publishExternalAccessories directly to publish a standalone Accessory
+Returns true if the current running homebridge version is greater or equal to the passed version string.
Example:
-We assume the homebridge version 1.3.0-beta.12 (serverVersion) and the following example calls below
+We assume the homebridge version 1.3.0-beta.12 (serverVersion) and the following example calls below
versionGreaterOrEqual("1.2.0"); // will return true
versionGreaterOrEqual("1.3.0"); // will return false (the RELEASE version 1.3.0 is bigger than the BETA version 1.3.0-beta.12)
versionGreaterOrEqual("1.3.0-beta.8); // will return true
-Optional
getThis method will be called once on startup, to query all controllers to be exposed by the Accessory. +
Optional
getThis method will be called once on startup, to query all controllers to be exposed by the Accessory. It is optional to implement.
This includes controllers like the RemoteController or the CameraController. Any necessary controller specific setup should have been done when returning the array. In most cases the plugin will only return an array of the size 1.
-In the case that the Plugin does not add any additional services (returned by getServices) the -method getServices must be defined in any way and should just return an empty array.
+In the case that the Plugin does not add any additional services (returned by getServices) the +method getServices must be defined in any way and should just return an empty array.
controllers - returned controllers will be configured for the Accessory
-Optional
identifyOptional method which will be called if a 'identify' of an Accessory is requested by HomeKit.
+Optional
advertiserOptional
bindOptional
disableOptional
envOptional
firmwareOptional
manufacturerOptional
modelOptional
portOptional
setupIDOptional
advertiserOptional
bindOptional
disableOptional
envOptional
firmwareOptional
manufacturerOptional
modelOptional
portOptional
serialOptional
setupIDPlatform that is able to dynamically add or remove accessories. +
Platform that is able to dynamically add or remove accessories. All configured accessories are stored to disk and recreated on startup. -Accessories can be added or removed by using API.registerPlatformAccessories or API.unregisterPlatformAccessories.
-This method is called for every PlatformAccessory, which is recreated from disk on startup. +Accessories can be added or removed by using API.registerPlatformAccessories or API.unregisterPlatformAccessories.
+This method is called for every PlatformAccessory, which is recreated from disk on startup. It should be used to properly initialize the Accessory and setup all event handlers for all services and their characteristics.
-which needs to be configured
-which needs to be configured
+Optional
disabledArray of disabled plugins. +
Optional
disabledArray of disabled plugins. Unlike the plugins[] config which prevents plugins from being initialised at all, disabled plugins still have their alias loaded, so we can match config blocks of disabled plugins and show an appropriate message in the logs.
-Optional
mdnsOptional
pluginsOptional
portsOptional
mdnsOptional
pluginsOptional
portsOptional
customOptional
customOptional
debugOptional
forceOptional
hideQRCodeOptional
insecureOptional
keepOptional
noOptional
strictOptional
customOptional
customOptional
debugOptional
forceOptional
hideQRCodeOptional
insecureOptional
keepOptional
noOptional
strictPlatform that does not aim to add any accessories to the main bridge accessory. +
Platform that does not aim to add any accessories to the main bridge accessory. This platform should be used if for example a plugin aims to only expose external accessories. It should also be used when the platform doesn't intend to expose any accessories at all, like plugins providing a UI for homebridge.
-Represents a logging device which can be used directly as a function (for INFO logging) +
Represents a logging device which can be used directly as a function (for INFO logging) but also has dedicated logging functions for respective logging levels.
-Rest
...parameters: any[]The {PluginInitializer} is a method which must be the default export for every homebridge plugin. +
The {PluginInitializer} is a method which must be the default export for every homebridge plugin. It is called once the plugin is loaded from disk.
-When the initializer is called the plugin must use the provided api instance and call the appropriate -register methods - API.registerAccessory or API.registerPlatform - in order to +
When the initializer is called the plugin must use the provided api instance and call the appropriate +register methods - API.registerAccessory or API.registerPlatform - in order to correctly register for the following startup sequence.
-Platform that exposes all available characteristics at the start of the plugin. +
Platform that exposes all available characteristics at the start of the plugin. The set of accessories can not change at runtime. The bridge waits for all callbacks to return before it is published and accessible by HomeKit controllers.
-This method is called once at startup. The Platform should pass all accessories which need to be created to the callback in form of a AccessoryPlugin. The Platform must respond in a timely manner as otherwise the startup of the bridge would be unnecessarily delayed.
-Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Logger class
-