UNPKG

homebridge-ratgdo

Version:

HomeKit integration using Ratgdo and Konnected devices for LiftMaster and Chamberlain garage door openers, without requiring myQ.

134 lines (117 loc) 6.59 kB
<p class="text-center"> <img src="https://raw.githubusercontent.com/hjdhjd/homebridge-ratgdo/main/images/homebridge-ratgdo.svg" alt="homebridge-ratgdo logo" class="w-50" /> </p> <div id="pageFirstRun" style="display: none;"> <div class="text-left"> <p>Welcome to <strong>homebridge-ratgdo</strong>. To get started: <ol> <li>Ensure you're running the latest <a href="https://ratgdo.github.io/esphome-ratgdo/">Ratgdo ESPHome firmware</a>.</li> </ol> </p> </div> <div class="text-center"> <br> <button type="button" class="btn btn-primary" id="firstRun">Configure homebridge-ratgdo &rarr;</button> <br> To optimize performance and responsiveness, please make this plugin a <a target="_blank" href="https://github.com/homebridge/homebridge/wiki/Child-Bridges">child bridge</a> once you've completed configuration. </div> </div> <div id="menuWrapper" class="btn-group w-100 mb-0" role="group" aria-label="UI Menu" style="display: none;"> <button type="button" class="btn btn-primary" id="menuSettings">Settings</button> <button type="button" class="btn btn-primary" id="menuFeatureOptions">Feature Options</button> <button type="button" class="btn btn-primary mr-0" id="menuHome">Support</button> </div> <div id="pageFeatureOptions" class="mt-2" style="display: none;" tabindex="0"> <!-- Header information bar --> <div id="headerInfo" class="alert alert-info bg-transparent py-2 px-3 mb-2"></div> <!-- Main content area --> <div class="feature-main-content"> <!-- Sidebar --> <aside id="sidebar" class="me-3"> <div class="sidebar-content"> <nav id="controllersContainer" class="p-2"></nav> <nav id="devicesContainer" class="p-2"></nav> </div> </aside> <!-- Main content --> <main class="feature-content"> <!-- Device stats using CSS Grid --> <div id="deviceStatsContainer"></div> <!-- Search panel --> <div id="search" class="mb-3"></div> <!-- Options content area --> <div id="optionsContainer" class="options-content border rounded p-3"> <div id="configTable"></div> </div> </main> </div> </div> <div id="pageSupport" class="mt-4" style="display: none;"> <h5>Introduction</h5> <p class="px-4">I hope you enjoy this plugin as much as I enjoy developing it. All my projects are labors of love. If you'd like to show your appreciation - <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo">star this project on GitHub</A> and do some good in your community, either financially or with your time: a food bank, an animal shelter (two of my passions), or whatever resonates with you that can give something back to the world around you. If you're looking for a couple of my faves: <a target="_blank" href="https://wck.org/donate">World Central Kitchen</a> and <a target="_blank" href="https://bestfriends.org/donate">Best Friends</a>.</p> <div class="px-4"> Plugins by <a target="_blank" href="https://github.com/hjdhjd">HJD</a>: <ul dir="auto"> <li><a target="_blank" href="https://github.com/hjdhjd/homebridge-comed-hourlypricing">homebridge-comed-hourlypricing: HomeKit integration for ComEd Hourly Pricing customers.</a></li> <li><a target="_blank" href="https://github.com/hjdhjd/homebridge-hunter-hydrawise">homebridge-hunter-hydrawise: Hunter Hydrawise integration for HomeKit.</a></li> <li><a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo">homebridge-ratgdo: Ratgdo (non-myQ Liftmaster and Chamberlain) garage door and gate opener support for HomeKit</a></li> <li><a target="_blank" href="https://github.com/hjdhjd/homebridge-unifi-access">homebridge-unifi-access: HomeKit integration for the UniFi Access ecosystem</a></li> <li><a target="_blank" href="https://github.com/hjdhjd/homebridge-unifi-protect">homebridge-unifi-protect: Complete HomeKit integration for the entire UniFi Protect ecosystem</a></li> </ul> </div> <h5>Getting Started</h5> <ul dir="auto"> <li> <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo#installation">Installation</a>: installing this plugin, including system requirements. </li> <li> <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo#notes">Additional Notes</a>: some things you should be aware of, including Ratgdo-specific quirks. </li> </ul> <h5>Advanced Topics</h5> <ul dir="auto"> <li> <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo/blob/main/docs/FeatureOptions.md">Feature Options</a>: granular options to allow you to show or hide specific garage door and gate openers, and more. </li> <li> <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo/blob/main/docs/MQTT.md">MQTT</a>: how to configure MQTT support. </li> </ul> <h5>Support</h5> <ul> <li> <a target="_blank" href="https://discord.gg/QXqfHEW">Discord Support Channel</a> </li> <li> <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo/issues/new/choose">Create a Developer Support Request</a> </li> <li> <a target="_blank" href="https://github.com/hjdhjd/homebridge-ratgdo/blob/main/docs/Changelog.md">Changelog and Release Notes</a> </li> </ul> </div> <script type="module"> /* Copyright(C) 2017-2025, HJD (https://github.com/hjdhjd). All rights reserved. * * Plugin webUI script loader. */ "use strict"; // Compute a timestamp for cache-busting so each URL appears unique. const timestamp = Date.now(); // Next, set up an import map that will append a cache-busting query string to our modules. const importMap = { imports: { "./ui.mjs": new URL("./ui.mjs", import.meta.url).href + "?cb=" + timestamp, "./lib/featureOptions.js": new URL("./lib/featureOptions.js", import.meta.url).href + "?cb=" + timestamp, "./lib/webUi.mjs": new URL("./lib/webUi.mjs", import.meta.url).href + "?cb=" + timestamp, "./lib/webUi-featureOptions.mjs": new URL("./lib/webUi-featureOptions.mjs", import.meta.url).href + "?cb=" + timestamp } }; // Append the import map script to the document head so the browser applies it. const mapScript = document.createElement("script"); mapScript.type = "importmap"; mapScript.textContent = JSON.stringify(importMap); document.head.appendChild(mapScript); // Finally, import the UI entry point so we always load a fresh copy. await import("./ui.mjs"); </script>