Skip to content

latest <- beta #3670

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 47 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
071c286
beta ciao
donavanbecker Jun 20, 2024
8279de6
Updated dependencies, fix `typedoc` generation
bwp91 Jun 24, 2024
fd34c5c
Updated build workflow: added `lint-docs`
bwp91 Jun 24, 2024
5cdf6da
Merge branch 'latest' into beta-1.8.4
bwp91 Jun 24, 2024
6d61cbd
update changelog
bwp91 Jun 24, 2024
dd73b1f
Detect config interface on registerPlatform (#3609)
duddu Jun 25, 2024
1368a82
hap-nodejs: beta
donavanbecker Jun 25, 2024
79b8078
regenerate docs, bump `hap-nodejs` beta
bwp91 Jun 29, 2024
e591b2a
Merge branch 'latest' into beta-1.8.4
donavanbecker Jul 6, 2024
6c7c9cc
hap-nodejs: beta
donavanbecker Jul 6, 2024
8e3a391
Merge branch 'latest' into beta-1.8.4
donavanbecker Jul 6, 2024
12f285d
hap-nodejs: v1
donavanbecker Jul 6, 2024
a0492ac
Address all open deprecations and HAP-NodeJS deprecations. (#3648)
hjdhjd Jul 10, 2024
90e47cc
Complete deprecation of multiple configurations for a dynamic platfor…
hjdhjd Jul 11, 2024
cd021c2
Update CHANGELOG.md
donavanbecker Jul 11, 2024
852cc4d
update dev dependencies
bwp91 Jul 12, 2024
5f20d1e
add alpha version badge to README
bwp91 Jul 12, 2024
ce629fa
fix readme typos
bwp91 Jul 12, 2024
0499b18
Detect config interface on registerPlatform (#3609)
duddu Jun 25, 2024
dd7144c
Updated dependencies, fix `typedoc` generation
bwp91 Jul 14, 2024
c2a33ee
Merge branch 'beta-1.8.4' into alpha-2.0.0
bwp91 Jul 14, 2024
e18643b
Updated dependencies, fix `typedoc` generation
bwp91 Jul 14, 2024
112a346
Merge branch 'beta-1.8.4' into alpha-2.0.0
bwp91 Jul 14, 2024
4c3b998
Update CHANGELOG.md
bwp91 Jul 14, 2024
9ec7e16
v1.8.4
donavanbecker Jul 19, 2024
9f70add
Merge branch 'latest' into alpha-2.0.0
donavanbecker Jul 19, 2024
3728d06
docs
donavanbecker Jul 19, 2024
c2c8207
remove deprecated `--remove-orphans` flag
bwp91 Jul 21, 2024
f7eed55
Update `typedoc` and refresh documentation
bwp91 Jul 21, 2024
59fbc25
remove the log from v1.8.4 release
donavanbecker Jul 20, 2024
10d0a6b
hap-nodejs: 1.1.0
donavanbecker Jul 21, 2024
dd9ed83
Update dependencies + lint
bwp91 Aug 3, 2024
184f39c
Merge branch 'latest' into beta-2.0.0
bwp91 Aug 3, 2024
7499023
remove dependency override
bwp91 Aug 4, 2024
76d8cf3
general code modernisation (#3681)
bwp91 Aug 29, 2024
b7cc9dd
try to fix import issue on windows
bwp91 Aug 30, 2024
c5bd93e
try to fix err file extension issue
bwp91 Aug 31, 2024
503cf2d
Merge branch 'latest' into beta-2.0.0
bwp91 Sep 1, 2024
90389e3
hap-nodejs beta
bwp91 Sep 2, 2024
fce4945
update dependencies and lint
bwp91 Sep 13, 2024
4e8c418
set debug -D setting per child bridge
bwp91 Sep 13, 2024
1b05cdb
update `hap-nodejs` to latest beta
bwp91 Sep 27, 2024
d167956
Merge branch 'latest' into beta-2.0.0
bwp91 Oct 25, 2024
9ad1a1b
Fixed method handleUpdatePlatformAccessories() (#3765)
justjam2013 Jan 18, 2025
6abc42f
Added method updateDisplayName() (#3764)
justjam2013 Jan 18, 2025
8ef74a5
Make it possible to set Characteristic.SerialNumber via config.json (…
Vvorcun Jan 18, 2025
7f117d1
update dependencies
bwp91 Oct 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 0 additions & 38 deletions .eslintrc

This file was deleted.

6 changes: 3 additions & 3 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Add 'beta' label to any PR where the head branch name starts with `beta` or has a `beta` section in the name
beta:
- base-branch: ['^beta', 'beta', 'beta*']
- base-branch: [^beta, beta, 'beta*']

# Add 'alpha' label to any PR where the head branch name starts with `alpha` or has an `alpha` section in the name
alpha:
- base-branch: ['^alpha', 'alpha', 'alpha*']
- base-branch: [^alpha, alpha, 'alpha*']

# Add 'latest' label to any PR where the head branch name starts with `latest` or has a `latest` section in the name
latest:
- base-branch: ['^latest', 'latest', 'latest*']
- base-branch: [^latest, latest, 'latest*']
12 changes: 6 additions & 6 deletions .github/workflows/alpha-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ on:
jobs:
publish:
if: ${{ github.repository == 'homebridge/homebridge' }}
uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
with:
tag: 'alpha'
tag: alpha
dynamically_adjust_version: true
npm_version_command: 'pre'
pre_id: 'alpha'
npm_version_command: pre
pre_id: alpha
secrets:
npm_auth_token: ${{ secrets.npm_token }}

Expand All @@ -22,9 +22,9 @@ jobs:
needs: [publish]
uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
with:
title: "Homebridge Alpha Release"
title: Homebridge Alpha Release
description: |
Version `v${{ needs.publish.outputs.NPM_VERSION }}`
url: "https://github.com/homebridge/homebridge/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
url: 'https://github.com/homebridge/homebridge/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}'
secrets:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_BETA }}
14 changes: 7 additions & 7 deletions .github/workflows/beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,23 @@ jobs:

if: ${{ github.repository == 'homebridge/homebridge' }}

uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
with:
tag: 'beta'
tag: beta
dynamically_adjust_version: true
npm_version_command: 'pre'
pre_id: 'beta'
npm_version_command: pre
pre_id: beta
secrets:
npm_auth_token: ${{ secrets.npm_token }}

github-releases-to-discord:
name: Discord Webhooks
needs: [build_and_test,publish]
needs: [build_and_test, publish]
uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
with:
title: "Homebridge Beta Release"
title: Homebridge Beta Release
description: |
Version `v${{ needs.publish.outputs.NPM_VERSION }}`
url: "https://github.com/homebridge/homebridge/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
url: 'https://github.com/homebridge/homebridge/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}'
secrets:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_BETA }}
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: "CodeQL"
name: CodeQL

on:
push:
branches: [ latest, beta* ]
branches: [latest, beta*]
pull_request:
branches: [ latest, beta* ]
branches: [latest, beta*]
schedule:
- cron: '17 9 * * 2'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ jobs:
stale:
uses: homebridge/.github/.github/workflows/labeler.yml@latest
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.GITHUB_TOKEN }}
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ jobs:

if: ${{ github.repository == 'homebridge/homebridge' }}

uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
secrets:
npm_auth_token: ${{ secrets.npm_token }}

github-releases-to-discord:
name: Discord Webhooks
needs: [build_and_test,publish]
needs: [build_and_test, publish]
uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
with:
title: "Homebridge Release"
title: Homebridge Release
description: |
Version `v${{ needs.publish.outputs.NPM_VERSION }}`
url: "https://github.com/homebridge/homebridge/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
url: 'https://github.com/homebridge/homebridge/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}'
secrets:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_LATEST }}
2 changes: 1 addition & 1 deletion .github/workflows/wiki-change-notification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
notify:
runs-on: ubuntu-latest
steps:
- uses: 'oznu/gh-wiki-edit-discord-notification@main'
- uses: oznu/gh-wiki-edit-discord-notification@main
with:
discord-webhook-url: ${{ secrets.DISCORD_WEBHOOK_WIKI_EDIT }}
ignore-collaborators: true
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ coverage/
# Ignore any extra plugins in the example directory that aren't in Git already
# (this is a sandbox for the user)
example-plugins
lib
dist

.idea

Expand Down
4 changes: 2 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"codeQL.githubDatabase.download": "never"
}
"codeQL.githubDatabase.download": "never"
}
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,39 @@

All notable changes to `homebridge` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).

## BETA

### ⚠️ Breaking Changes

- **For Users:**
- Before upgrading, you will want to ensure that the plugin(s) you are using are compatible with this new version of Homebridge. If you are unsure, see the link below or open an issue with the developer of your plugin(s) in question.

- **For Plugin Developers:**
- The new version of Homebridge includes a major version update to HAP-Nodejs. Some old deprecated functions have been removed. See the link below for a list of changes that you may need to make to your plugin(s).

- Please visit the following link to learn more about the changes and how to prepare:
- [Updating-To-Homebridge-v2.0](https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0)

### Changed

- Complete deprecation of multiple configurations for a dynamic platform plugin in config.json. (#3649) (@hjdhjd)
- Address legacy deprecation cleanup (#3648) (@hjdhjd)
- Added method updateDisplayName() (#3764) (@justjam2013)
- Fixed method handleUpdatePlatformAccessories() (#3765) (@justjam2013)
- Make it possible to set Characteristic.SerialNumber via config.json (#3761) (@vvorcun)
- Update `hap-nodejs` to v1.0.0
- remove deprecated `--remove-orphans` flag
- Update `typedoc` and refresh documentation
- Update dependencies + lint
- general code modernisation:
- move from `commonjs` to `esm` modules
- use lint rules from `@antfu/eslint-config`
- migrate from `jest` to `vitest` for testing

### Homebridge Dependencies

- `hap-nodejs` @ `v1.1.1-beta.7`

## v1.8.5 (2024-10-25)

### Changed
Expand Down
33 changes: 16 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@

<img src="https://media.giphy.com/media/10l79ICohTu4iQ/giphy.gif" align="right" alt="Unlocking Door">

**Homebridge** is a lightweight Node.js server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.
**Homebridge** is a lightweight Node.js server you can run on your home network to emulate the HomeKit Accessory Protocol (HAP). It supports plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.

Since Siri supports devices added through HomeKit, this means that with Homebridge you can ask Siri to control devices that don't have any support for HomeKit at all. For instance, using just some of the available plugins, you can say:

* _Siri, unlock the back door._ [pictured to the right]
* _Siri, open the garage door._
* _Siri, turn on the coffee maker._
* _Siri, turn on the living room lights._
* _Siri, good morning!_
- _Siri, unlock the back door._ [pictured to the right]
- _Siri, open the garage door._
- _Siri, turn on the coffee maker._
- _Siri, turn on the living room lights._
- _Siri, good morning!_

You can explore all available plugins at the NPM website by [searching for the keyword `homebridge-plugin`](https://www.npmjs.com/search?q=homebridge-plugin).

## Community
## Community

The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.

Expand Down Expand Up @@ -79,7 +79,7 @@ HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7f

### Docker

[Install Homebridge on Docker](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) <br> [Synology](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Synology) | [Unraid](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Unraid) | [QNAP](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-QNAP) | [TrueNAS Scale](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-TrueNAS-Scale)
[Install Homebridge on Docker](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) <br> [Synology](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Synology) | [Unraid](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Unraid) | [QNAP](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-QNAP) | [TrueNAS Scale](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-TrueNAS-Scale)

---

Expand All @@ -97,9 +97,9 @@ HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7f

1. Open the Home <img src="https://user-images.githubusercontent.com/3979615/78010622-4ea1d380-738e-11ea-8a17-e6a465eeec35.png" height="16.42px"> app on your device.
2. Tap the Home tab, then tap <img src="https://user-images.githubusercontent.com/3979615/78010869-9aed1380-738e-11ea-9644-9f46b3633026.png" height="16.42px">.
3. Tap *Add Accessory*, then scan the QR code shown in the Homebridge UI or your Homebridge logs.
3. Tap _Add Accessory_, then scan the QR code shown in the Homebridge UI or your Homebridge logs.

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).
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](https://github.com/homebridge/homebridge/wiki/Connecting-Homebridge-To-HomeKit#how-to-add-homebridge-cameras--tvs) for instructions.

Expand All @@ -113,18 +113,17 @@ One final thing to remember is that Siri will almost always prefer its default p

The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.

The [Homebridge Plugin Template](https://github.com/homebridge/homebridge-plugin-template) project provides a base you can use to create your own *platform* plugin.
The [Homebridge Plugin Template](https://github.com/homebridge/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](https://github.com/homebridge/homebridge-examples) 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:


```shell
npm link
```

*You can undo this using the `npm unlink` command.*
_You can undo this using the `npm unlink` command._

Then start Homebridge in debug mode:

Expand All @@ -150,13 +149,13 @@ To fix this, [Reset Homebridge](https://github.com/homebridge/homebridge/wiki/Co

Try the following:

1. Swap between the `Bonjour HAP` and `Ciao` mDNS Advertiser options. See [the wiki](https://github.com/homebridge/homebridge/wiki/mDNS-Options) for more details.
2. iOS DNS cache has gone stale or gotten misconfigured. To fix this, turn airplane mode on and back off to flush the DNS cache.
1. Swap between the `Bonjour HAP` and `Ciao` mDNS Advertiser options. See [the wiki](https://github.com/homebridge/homebridge/wiki/mDNS-Options) for more details.
2. iOS DNS cache has gone stale or gotten misconfigured. To fix this, turn airplane mode on and back off to flush the DNS cache.

### Limitations

* One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command#multiple-instances) to get around this limitation.
* Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.
- One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command#multiple-instances) to get around this limitation.
- Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.

## Why Homebridge?

Expand Down
17 changes: 0 additions & 17 deletions bin/homebridge

This file was deleted.

22 changes: 22 additions & 0 deletions bin/homebridge.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env node

//
// This executable sets up the environment and runs the Homebridge CLI.
//

import { realpathSync } from 'node:fs'
import { dirname, join } from 'node:path'
import process from 'node:process'
import { fileURLToPath, pathToFileURL } from 'node:url'

process.title = 'homebridge'

// Find the Homebridge lib
const __filename = fileURLToPath(import.meta.url)
const lib = join(dirname(realpathSync(__filename)), '../dist')

// Convert the path to a file URL
const libUrl = pathToFileURL(join(lib, 'cli.js')).href

// Run Homebridge
import(libUrl).then(({ default: run }) => run())
6 changes: 3 additions & 3 deletions config-sample.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"port": 51826,
"pin": "031-45-154"
},

"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
"ports": {
"start": 52100,
Expand All @@ -23,8 +23,8 @@

"platforms": [
{
"platform" : "PhilipsHue",
"name" : "Hue"
"platform": "PhilipsHue",
"name": "Hue"
}
]
}
Loading
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy