This repo's intended purpose has been met by homebridge-plex-sensors. I recommend it in place of this package. The code here is still a decent starting point if you want to map a plex webhook to some other form of web request, but it is not super useful in its current state.
In order to run this app:
- Install node.js.
- Clone the repository.
- Install dependencies using
npm install
. - Add the webhook
http://localhost:12000/
to your plex server (the port is configurable) - You should be using
homebridge
andhomebridge-http-webhooks
npm install -g homebridge homebridge-http-webhooks
In ~/.homebridge/config.json
:
"platforms": [
{
"platform": "HttpWebHooks",
"webhook_port": "51828",
"sensors": [
{
"id": "plexContact",
"name": "Plex Webhook Contact Sensor",
"type": "contact"
}
]
}
]
This script filters for a specific player before hitting the homebridge webhook. To determine the player:
- Run the app
DEBUG=plex*\
ACCESSORY=plexContact\
PLEX_WEBHOOK_PORT=12000\
HB_WEBHOOK_URL=http://localhost:51828/\
node index.js
- Play a video on the device you want to trigger the webhook
- You will see the event logged to the console when the webhook is hit. Copy the
uuid
for the player - Replace
<PLAYER_UUID>
with the copied playeruuid
in the command in the Run section.p
Now run the script with the PLAYER
argument:
DEBUG=plex*\
ACCESSORY=plexContact\
PLEX_WEBHOOK_PORT=12000\
HB_WEBHOOK_URL=http://localhost:51828/\
PLAYER=<PLAYER_UUID>\
node index.js
From now on, when you toggle the plex play state from the PLAYER
, you should see the contact sensor state update in the iOS 10 Home app. Using the Home app, you can create Automation rules based on these changes.
Thanks to plexinc/webhooks-home-automation.