homebridge-xfinityhome
Version:
A homebridge plugin to control your Xfinity Home security system.
155 lines (154 loc) • 8.29 kB
HTML
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.slim.min.js"></script>
<!--<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>-->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
<p class="text-center">
<img src="https://user-images.githubusercontent.com/75853497/164517422-300169c1-fb15-4742-a1ee-f524b9d10fe6.png"
alt="homebridge-XfinityHome logo" style="width: 60%;" />
</p>
<div id="pageIntro" class="text-center" style="display: none;">
<p class="lead">Thank you for installing <strong>homebridge-XfinityHome</strong></p>
<p> You can configure your refresh token on the next page </p>
<button type="button" class="btn btn-primary" id="introContinue"> Continue → </button>
</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 ml-0" id="menuSettings"> Settings </button>
<button type="button" class="btn btn-primary" id="menuConfigTool"> Proxy Tool </button>
<button type="button" class="btn btn-primary mr-0" id="menuLogs"> Logs </button>
</div>
<div id="pageConfigTool" class="mt-4" style="display: none;">
<div id="part1" style="display: none;">
<h4>Part 1: Profile & Proxy Configuration</h4>
<dl>
<dt>1. Download The Profile</dt>
<dd><span id="qrcode-alt">Open <a id="certificate" href="" target="_blank">Loading...</a> On Your iPhone To Download The
Profile</span>
<span id="qrcode" style="display: none;">Scan The QR Code Below To Download The Profile<br><svg id="qrcode-svg"
style="height: 25vh;"></svg><br>If You Don't Know How Just Say "Hey Siri, Scan A QR Code"</span>
<br>
<small>Note: Make Sure You Have Safari Configured As Your Default Browser While Downloading The Profile</small>
</dd>
<dt>2. Install & Trust The Profile</dt>
<dd>
<ol>
<li>Launch the <strong>Settings</strong> app on your phone. Just below your name, you will find <strong>Profile
Downloaded</strong>; tap it. <br>
<small>If you are using an older iOS, you won't see that. Go to <strong>General</strong>, scroll down, and tap on
<strong>Profiles & Device Management</strong>; then tap on <strong>NodeMITMProxyCA</strong>.</small>
</li>
<li> Hit <strong>Install</strong> on the top-right of the screen. If your phone has a password, you would be asked to enter it. A
confirmation dialog will pop up; hit <strong>Install</strong> again. Finally hit <strong>Done</strong> to </li>
<li>On your iPhone, go to <strong>Settings</strong>, open <strong>General</strong>, and tap on <strong>About.</strong> Towards the
bottom, locate and open <strong>Certificate Trust Settings</strong>. </li>
<li>Enable full trust for <strong>NodeMITMProxyCA</strong> by flicking its switch. You will be prompted with a warning; just hit
<strong>Continue</strong>. </li>
</ol>
</dd>
<dt>3. Configure The Proxy</dt>
<dd>
<ol>
<li> On your iPhone, go to <strong>Settings</strong> and open <strong>Wi-Fi</strong>. Hit the info button <strong
class="text-info">(i)</strong>, for the WiFi connection you are using. This will open the configuration for your connection.
</li>
<li>On your WiFi connection screen, scroll to the bottom and hit <strong>Configure Proxy</strong>. This will open the proxy
configuration screen. </li>
<li>On the proxy configuration screen, tap on <strong>Manual</strong> to reveal additional settings. Then set the server to <span
id="ip" class="text-info">Loading...</span> and the port to <span id="port" class="text-info">Loading...</span>
<br>
<strong class="text-danger">Leave the Authentication switch off.</strong>
</li>
</ol>
</dd>
<dt>4. Open <strong>Xfinity Home</strong></dt>
</dl>
</div>
<div id="part2" style="display: none;">
<h4>Part 2: Token Configuration</h4>
<dl>
<dt>1. Open <strong>Xfinity Home</strong> If You Haven't Already</dt>
<dt>If You Still See This Page Then Follow The Steps Below</dt>
<dd>
<ol>
<li>Go to the <strong>more</strong> tab in the app</li>
<li>Scroll To The Bottom</li>
<li>Click <strong>Sign Out</strong></li>
<li>Re-Login</li>
<li>If nothing happens open an <a href="https://www.github.com/bloomkd46/homebridge-XfinityHome/issues/new/choose">Issue</a> to
receive further assistance</li>
</ol>
</dd>
</dl>
</div>
<div id="part3" style="display: none;">
<h4>Part 3: Cleanup</h4>
<dl>
<dt>1. Uninstall Xfinity Home</dt>
<dd><span class="text-danger">Do Not Click <strong>Logout</strong>, It Will Void Your Refresh-Token</span>
</dd>
<dt>2. Disable The Proxy</dt>
<dd>
<ol>
<li> On your iPhone, go to Settings and open Wi-Fi. Hit the info button <strong class="text-info">(i)</strong>, for the WiFi
connection you are using. This will open the configuration for your connection. </li>
<li>On your WiFi connection screen, scroll to the bottom and hit <strong>Configure Proxy</strong>. This will open the proxy
configuration screen. </li>
<li>On the proxy configuration screen, tap on <strong>Off</strong>. </li>
</ol>
</dd>
<dt>Uninstall The Profile</dt>
<dd>
<ol>
<li> On your iPhone, go to <strong>Settings > General > About > Certificate Trust Settings</strong> and switch off full trust for
<strong>NodeMITMProxyCA</strong>. </li>
<li> On your iPhone, go to <strong>Settings > General > Profiles & Device Management > NodeMITMProxyCA</strong> and tap
<strong>Remove Profile</strong>. If one is set, you will be asked to enter your password. You would also be asked to confirm
that you want to remove the profile; hit Remove. </li>
</ol>
</dd>
<dt> Click <span class="text-warning">Exit Setup</span> Below When You Are Done</dt>
<dd>Note: Your Config Will Automatically Update</dd>
</dl>
</div>
<button id="exitSetup" type="button" class="btn btn-outline-warning ml-0">Exit Setup</button>
</div>
<div id="pageLogs" class="mt-4" style="display: none;">
<form>
<div class="form-group">
<select class="form-control" id="deviceSelect"></select>
</div>
</form>
<div class="clearfix">
<button id="logDelete" class="float-right btn btn-danger"><i class="fas fa-trash-alt"></i></button>
<a id="logDownload" download="" href=""><button class="float-right btn btn-primary"><i class="fas fa-download"></i></button></a>
<button id="deviceInfo" class="float-right btn btn-info" style="display:none"><i class="fas fa-info-circle"></i></button>
</div>
<pre class="card text-nowrap" style="height: 55vh; overflow: scroll" id="logZone"></pre>
<!-- The Modal -->
<div class="modal fade" id="deviceDetails">
<div class="modal-dialog modal-dialog-scrollable">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title" id="deviceName"></h4>
<button type="button" class="close" onclick="$('#deviceDetails').modal('hide')">×</button>
</div>
<!-- Modal body -->
<div class="modal-body">
<table class="table w-100">
<thead>
<tr class="table-active">
<th scope="col" style="width: 40%;">Field</th>
<th scope="col" style="width: 60%;" id="displayName">Value</th>
</tr>
</thead>
<tbody id="deviceDetailsTable">
</tbody>
</table>
</div>
<!-- Modal footer -->
<div class="modal-footer">
<button type="button" class="btn btn-danger" onclick="$('#deviceDetails').modal('hide')">Close</button>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="bundle.js"></script>