You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed bugs logging in, detecting existing Applets, and archiving Applets because of changes on IFTTT’s website.
Fixed possible issue when loading pages on Chrome if a “leave page” confirmation prompt appeared before loading the new page.
Changed terms to match IFTTT, such as “archive” instead of “delete” and “log in” instead of “sign in”.
Removed support for automating Safari on macOS since it was not performing reliably when automated with the latest version of the IFTTT website and was not proving to be worth the extra development and testing effort.
Copy file name to clipboardExpand all lines: README.md
+10-14Lines changed: 10 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,9 +28,7 @@ The `broadlink-webhooks` package is published through [npm](https://www.npmjs.co
28
28
29
29
*Please note, if you do not install "globally" (using the "-g" flag) as shown in the installation command above, the `broadlink-webhooks` command will not be available to run in your Terminal or Command window because of `npm`'s installation behavior.*
30
30
31
-
After you've installed `broadlink-webhooks`, you'll also need to install a WebDriver executable for your web browser of choice. `broadlink-webhooks` has been tested with and has menu options for Firefox, Chrome, and Safari. I have not bothered testing or adding menu options for any other web browsers, such as Edge. As of Late July 2020, I've tested `broadlink-webhooks` on macOS 10.15.6, Windows 10 (May 2020 Update), and Linux Mint 20 using the latest versions of Firefox and Chrome on all OSes as well as Safari on macOS.
32
-
33
-
Safari is only listed when running on macOS. For Safari, WebDriver is built-in and can be enabled by first turning on the "Show Develop menu in menubar" checkbox option in Safari's Advanced Preferences. Then, in the "Develop" menu in the Safari's menubar, turn on the "Allow Remote Automation" menu item option.
31
+
After you've installed `broadlink-webhooks`, you'll also need to install a WebDriver executable for your web browser of choice. `broadlink-webhooks` has been tested with and has menu options for Firefox, Chrome. I have not bothered testing or adding menu options for any other web browsers, such as Edge. Safari was previously supported on macOS, but support was removed for Safari in version 1.0.5 since it was not performing reliably when automated with the latest version of the IFTTT website and was not proving to be worth the extra development and testing effort. As of August 2021, I've tested `broadlink-webhooks` on macOS 11 Big Sur, Windows 10 (May 2021 Update, 21H1), and Linux Mint 20.2 Uma using the latest versions of Firefox and Chrome on all OSes.
34
32
35
33
For Firefox and/or Chrome, you will need to download and install their WebDriver executables manually:
36
34
@@ -63,32 +61,30 @@ After "global" installation via `npm` as shown above, run `broadlink-webhooks` w
63
61
* –
64
62
* Chrome (Hidden Window / Headless)
65
63
* Chrome (Visible Window)
66
-
* –
67
-
* Safari (Visible Window) *- Listed only when running on on macOS.*
68
64
69
65
### Next you can choose the task you want to perform:
70
66
71
67
* Create Webhooks Applets *(No duplicates will be created for identical Webhooks Applets already created by `broadlink-webhooks`.)*
72
-
*Delete Webhooks Applets for Renamed or Deleted Devices/Scenes in BroadLink *(For renamed devices/scenes, you can re-run the "Create Webhooks Applets" task after this task is finished.)*
73
-
*Delete All Webhooks Applets Created by `broadlink-webhooks`*(If you ever want the Webhooks Applets back after removing them, you can re-run the "Create Webhooks Applets" task at any time.)*
68
+
*Archive Webhooks Applets for Renamed or Archived Devices/Scenes in BroadLink *(For renamed devices/scenes, you can re-run the "Create Webhooks Applets" task after this task is finished.)*
69
+
*Archive All Webhooks Applets Created by `broadlink-webhooks`*(If you ever want the Webhooks Applets back after removing them, you can re-run the "Create Webhooks Applets" task at any time.)*
74
70
* –
75
71
* Output Summary of Webhooks Applets Created by `broadlink-webhooks` and Devices/Scenes in BroadLink
76
72
* Generate "[homebridge-ifttt](https://www.npmjs.com/package/homebridge-ifttt)" Configuration for Webhooks Applets Created by `broadlink-webhooks`*(Useful only if you use Homebridge. Visit [homebridge.io](https://homebridge.io) to learn more.)*
77
73
* Generate "[homebridge-http-switch](https://www.npmjs.com/package/homebridge-http-switch)" Configuration for Webhooks Applets Created by `broadlink-webhooks`*(Useful only if you use Homebridge and want more customization options than `homebridge-ifttt`. Visit [homebridge.io](https://homebridge.io) to learn more.)*
78
74
* Generate JSON Details of Webhooks Applets Created by `broadlink-webhooks`*(Useful for your own custom scripts.)*
79
-
* Open All IFTTT Edit URLs for Webhooks Applets Created by `broadlink-webhooks`*(Edit Applet URLs will open in your default web browser. You should be signed in to IFTTT in your default web browser before running this task.)*
75
+
* Open All IFTTT Edit URLs for Webhooks Applets Created by `broadlink-webhooks`*(Edit Applet URLs will open in your default web browser. You should be logged in to IFTTT in your default web browser before running this task.)*
80
76
* Open `broadlink-webhooks` on GitHub *(To learn more, ask questions, make suggestions, and report issues.)*
81
77
82
78
### Finally, you can choose whether you want to run the selected task for both BroadLink devices and scenes, or just one or the other.
83
79
84
-
**Actually finally, you'll be prompted to sign in to IFTTT.** You will have the choice of signing in via command line or signing in manually via web browser. When signing in via command line, you will be prompted for your IFTTT username and password which will be entered into the IFTTT website for you. If you have Two-Step Verification enabled in IFTTT, you will be prompted via command line for a two-step verification code (which will also be entered into the IFTTT website for you) before being able to sign in. *Signing in via command line is supported by all web browser options (including with hidden windows), but only supports signing in with a regular IFTTT account (including Two-Step Verification).* **To sign in to IFTTT using a linked Apple, Google, or Facebook account, you must choose to sign in manually via web browser.** *Signing in manually via web browser is only supported when automating Firefox or Chrome with a visible window.* Since Safari doesn't allow any user interaction while it's being automated, it cannot support signing in manually via web browser. Firefox and Chrome with hidden windows cannot support signing in manually via web browser because there would be no visible window for you to manually sign in to. If you choose to sign in manually via web browser and previously chose an unsupported web browser option (such as Firefox or Chrome with a hidden window or Safari), you will be prompted to change your web browser selection or sign in via command line instead (which only supports regular IFTTT accounts).
80
+
**Actually finally, you'll be prompted to log in to IFTTT.** You will have the choice of logging in via command line or logging in manually via web browser. When logging in via command line, you will be prompted for your IFTTT username and password which will be entered into the IFTTT website for you. If you have Two-Step Verification enabled in IFTTT, you will be prompted via command line for a two-step verification code (which will also be entered into the IFTTT website for you) before being able to log in. *Logging in via command line is supported by all web browser options (including with hidden windows), but only supports logging in with a regular IFTTT account (including Two-Step Verification).* **To log in to IFTTT using a linked Apple, Google, or Facebook account, you must choose to log in manually via web browser.** *Logging in manually via web browser is only supported when automating Firefox or Chrome with a visible window.* Firefox and Chrome with hidden windows cannot support logging in manually via web browser because there would be no visible window for you to manually log in to. If you choose to log in manually via web browser and previously chose an unsupported web browser option (such as Firefox or Chrome with a hidden window), you will be prompted to change your web browser selection or log in via command line instead (which only supports regular IFTTT accounts).
85
81
86
-
After the selected task has finished, you will be presented with this same series of prompts again to do another task until you choose to quit `broadlink-webhooks` (a *Quit* option is available in each prompt). If you keep using the same web browser option (and do not disturb the web browser window if you chose it to be visible), you will not need to sign in again for subsequent tasks.
82
+
After the selected task has finished, you will be presented with this same series of prompts again to do another task until you choose to quit `broadlink-webhooks` (a *Quit* option is available in each prompt). If you keep using the same web browser option (and do not disturb the web browser window if you chose it to be visible), you will not need to log in again for subsequent tasks.
87
83
88
-
As you can see, these tasks are made to help you keep your Webhooks Applets up-to-date with what is currently in the BroadLink app, as things may change over time. If you add any new devices or scenes, you can just re-run the *"Create Webhooks Applets"* task and any Webhooks Applets that already exist will be skipped (no duplicate will be created). If you rename or delete anything in the BroadLink app, you can run the *"Delete Webhooks Applets for Renamed or Deleted Devices/Scenes in BroadLink"* task to remove the old Webhooks Applets while keeping all your other Webhooks Applets intact. If you've just renamed something in the BroadLink app and not completely deleted it, you can re-run the *"Create Webhooks Applets"* task to create the new Webhooks Applets for the renamed devices or scenes.
84
+
As you can see, these tasks are made to help you keep your Webhooks Applets up-to-date with what is currently in the BroadLink app, as things may change over time. If you add any new devices or scenes, you can just re-run the *"Create Webhooks Applets"* task and any Webhooks Applets that already exist will be skipped (no duplicate will be created). If you rename or delete anything in the BroadLink app, you can run the *"Archive Webhooks Applets for Renamed or Deleted Devices/Scenes in BroadLink"* task to remove the old Webhooks Applets while keeping all your other Webhooks Applets intact. If you've just renamed something in the BroadLink app and not completely deleted it, you can re-run the *"Create Webhooks Applets"* task to create the new Webhooks Applets for the renamed devices or scenes.
89
85
90
86
## About *[IFTTT Pro](https://ifttt.com/plans)*
91
-
Since the purpose of `broadlink-webhooks` is to create lots of Webhooks Applets, *[IFTTT Pro](https://ifttt.com/plans)* is essentially required to fully utilize `broadlink-webhooks`. If you **DO NOT** have *[IFTTT Pro](https://ifttt.com/plans)*, will receive an error from `broadlink-webhooks` when you've hit the maximum number of allowed Applets created and `broadlink-webhooks` will no longer be able to create any more Applets or detect devices and scenes in BroadLink (because it needs to go through most of the Applet creation process to detect BroadLink devices and scenes). For `broadlink-webhooks` to be able to create more Applets and detect BroadLink devices and scenes, you will need to sign up for*[IFTTT Pro](https://ifttt.com/plans)*. **This is not an endorsement of *[IFTTT Pro](https://ifttt.com/plans)*, just the facts in regards to `broadlink-webhooks` functionality.**
87
+
Since the purpose of `broadlink-webhooks` is to create lots of Webhooks Applets, *[IFTTT Pro](https://ifttt.com/plans)* is essentially required to fully utilize `broadlink-webhooks`. If you **DO NOT** have *[IFTTT Pro](https://ifttt.com/plans)*, will receive an error from `broadlink-webhooks` when you've hit the maximum number of allowed Applets created and `broadlink-webhooks` will no longer be able to create any more Applets or detect devices and scenes in BroadLink (because it needs to go through most of the Applet creation process to detect BroadLink devices and scenes). For `broadlink-webhooks` to be able to create more Applets and detect BroadLink devices and scenes, you will need to purchase*[IFTTT Pro](https://ifttt.com/plans)*. **This is not an endorsement of *[IFTTT Pro](https://ifttt.com/plans)*, just the facts in regards to `broadlink-webhooks` functionality.**
92
88
93
89
## Creating Lots of Webhooks Applets Is Not Exactly Fast
94
90
Because `broadlink-webhooks` is automating the IFTTT website, it's outrageously faster than a human could ever do, but not at all fast in terms of what you may expect from a normal command line tool. For my setup of 94 Webhooks Applets (40 turn device on Applets + 40 turn device off Applets + 14 scene Applets), it takes about 30 minutes to create all the Webhooks Applets. Deleting all 94 Webhooks Applets takes about 5 minutes. This timing was roughly consistent between all OSes and all web browsers tested. **If you have a lot of BroadLink devices and scenes to create Webhooks Applets for, I recommend preventing your computer from sleeping during the creation process so that it is not interrupted.***If the creation process is interrupted, you can just start over and any Webhooks Applets already created will be skipped.*
@@ -97,15 +93,15 @@ On macOS 10.11 or later, I can recommend using the [Amphetamine](https://apps.ap
97
93
98
94
On Windows 10, I briefly used the [Caffeine](https://www.zhornsoftware.co.uk/caffeine/) app, but better options may be available.
99
95
100
-
On Linux Mint 20, I briefly used a different [Caffeine](https://launchpad.net/caffeine) app, but better options may be available.
96
+
On Linux Mint, I briefly used a different [Caffeine](https://launchpad.net/caffeine) app, but better options may be available.
101
97
102
98
## About BroadLink Devices and Scenes Detected by `broadlink-webhooks`
103
99
104
100
`broadlink-webhooks` can only create Webhooks Applets for BroadLink devices and scenes which are listed within the *"Turn device on or off"* and *"Scene control"* actions of the BroadLink Service in IFTTT. Any device types that are not made available by BroadLink in the *"Turn device on or off"* action of the BroadLink Service in IFTTT will not be detected by `broadlink-webhooks`. None of the other actions available through the BroadLink Service in IFTTT are supported by `broadlink-webhooks` (only the *"Turn device on or off"* and *"Scene control"* actions are supported). If you use Alexa or Google Assistant and your BroadLink devices are available to turn on and off through there, they should be available in IFTTT as well. Personally, all of my RF outlets are setup as a "Bulb" in the BroadLink app, which works perfectly. All BroadLink scenes should be available to IFTTT, as far as I know. It is also worth noting that BroadLink has had a few other apps throughout the years, such as IHC and e-Control. Personally, I have only ever used the latest app which is just called BroadLink, if you use an older app, I'm uncertain whether or not devices and scenes will be available through the BroadLink Service in IFTTT.
105
101
106
102
## Important Information About How `broadlink-webhooks` Names IFTTT Applets
107
103
108
-
The specific Applet naming like `Webhooks Event: BroadLink-State+Some_Device_or_Scene_Name` that `broadlink-webhooks` uses is how `broadlink-webhooks` knows that it originally created that Applet. Since `broadlink-webhooks` can also delete Applets in IFTTT, only Webhooks Applets for BroadLink named exactly like this can be deleted by `broadlink-webhooks`. If you manually change the name of an Applet what was created by `broadlink-webhooks`, then `broadlink-webhooks` may no longer know it exists and may not be able to delete it. `broadlink-webhooks` may also make a duplicate of the manually renamed Applet the next time the *"Create Webhooks Applets"* task is run. Conversely, if you name your own manually created Webhooks Applets for BroadLink exactly like this, they may be deleted by `broadlink-webhooks` when running a delete task. This only applies to Applets which use Webhooks as the Trigger Service and BroadLink as the Action Service, if you name any other Applets in this style which use different a Trigger Service and/or different Action Service, such as `Webhooks Event: Wemo-On+This_Smart_Plug`, that is just fine (I name Webhooks Applets for other services this way myself). What `broadlink-webhooks` checks for exactly is any Applet using Webhooks as the Trigger Service and BroadLink as the Action Service whose name starts with `Webhooks Event: BroadLink-On+` or `Webhooks Event: BroadLink-Off+` or `Webhooks Event: BroadLink-Scene+` and also doesn't have any spaces in the rest of the name.
104
+
The specific Applet naming like `Webhooks Event: BroadLink-State+Some_Device_or_Scene_Name` that `broadlink-webhooks` uses is how `broadlink-webhooks` knows that it originally created that Applet. Since `broadlink-webhooks` can also archive Applets in IFTTT, only Webhooks Applets for BroadLink named exactly like this can be archived by `broadlink-webhooks`. If you manually change the name of an Applet what was created by `broadlink-webhooks`, then `broadlink-webhooks` may no longer know it exists and may not be able to archive it. `broadlink-webhooks` may also make a duplicate of the manually renamed Applet the next time the *"Create Webhooks Applets"* task is run. Conversely, if you name your own manually created Webhooks Applets for BroadLink exactly like this, they may be archived by `broadlink-webhooks` when running a archive task. This only applies to Applets which use Webhooks as the Trigger Service and BroadLink as the Action Service, if you name any other Applets in this style which use different a Trigger Service and/or different Action Service, such as `Webhooks Event: Wemo-On+This_Smart_Plug`, that is just fine (I name Webhooks Applets for other services this way myself). What `broadlink-webhooks` checks for exactly is any Applet using Webhooks as the Trigger Service and BroadLink as the Action Service whose name starts with `Webhooks Event: BroadLink-On+` or `Webhooks Event: BroadLink-Off+` or `Webhooks Event: BroadLink-Scene+` and also doesn't have any spaces in the rest of the name.
109
105
110
106
## BroadLink Takes a Few Seconds to Respond to IFTTT Webhooks Applets
0 commit comments