Added event observer

This commit is contained in:
Daniel Perna 2018-04-22 21:06:01 +02:00
parent afad5545d3
commit 6843eb4202
2 changed files with 117 additions and 1 deletions

View file

@ -561,6 +561,7 @@
<li><a class="modal-trigger" href="#modal_about">About HASS-Configurator</a></li>
<li class="divider"></li>
<!--<li><a href="#modal_check_config">Check HASS Configuration</a></li>-->
<li><a class="modal-trigger" href="#modal_events">Observe events</a></li>
<li><a class="modal-trigger" href="#modal_reload_automations">Reload automations</a></li>
<li><a class="modal-trigger" href="#modal_reload_scripts">Reload scripts</a></li>
<li><a class="modal-trigger" href="#modal_reload_groups">Reload groups</a></li>
@ -580,6 +581,7 @@
<li><a class="modal-trigger" href="#modal_about">About HASS-Configurator</a></li>
<li class="divider"></li>
<!--<li><a href="#modal_check_config">Check HASS Configuration</a></li>-->
<li><a class="modal-trigger" href="#modal_events">Observe events</a></li>
<li><a class="modal-trigger" href="#modal_reload_automations">Reload automations</a></li>
<li><a class="modal-trigger" href="#modal_reload_scripts">Reload scripts</a></li>
<li><a class="modal-trigger" href="#modal_reload_groups">Reload groups</a></li>
@ -1124,6 +1126,18 @@
<a class="modal-action modal-close waves-effect btn-flat light-blue-text">Close</a>
</div>
</div>
<div id="modal_events" class="modal">
<div class="modal-content">
<label for="ws_uri">Websocket URI</label><input type="text" id="ws_uri" placeholder="ws://127.0.0.1:8123/api/websocket" value="$hass_ws_address"/>
<label for="ws_password">API password</label><input type="password" id="ws_password" value="$api_password"/><br />
<textarea id="ws_events"></textarea>
</div>
<div class="modal-footer">
<a onclick="ws_connect()" class=" modal-action waves-effect waves-green btn-flat light-blue-text">Connect</a>
<a onclick="ws_disconnect()" class=" modal-action waves-effect waves-green btn-flat light-blue-text">Disconnect</a>
<a onclick="ws_disconnect()" class=" modal-action modal-close waves-effect waves-red btn-flat light-blue-text">Close</a>
</div>
</div>
<div id="modal_save" class="modal">
<div class="modal-content">
<h4 class="grey-text text-darken-3">Save<i class="grey-text text-darken-3 material-icons right" style="font-size: 2rem;">save</i></h4>
@ -1990,6 +2004,46 @@
<!-- Scripts -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
<script>
function ws_connect() {
function msg(str) {
document.getElementById("ws_events").value = str + "\n\n" + document.getElementById("ws_events").value;
}
try {
ws = new WebSocket(document.getElementById("ws_uri").value);
ws.addEventListener("open", function(event) {
var auth = {
type: "auth",
api_password: document.getElementById("ws_password").value
};
var data = {
id: 1,
type: "subscribe_events"
};
ws.send(JSON.stringify(auth));
ws.send(JSON.stringify(data));
});
ws.onmessage = function(event) {
msg(event.data);
}
ws.onclose = function() {msg('Socket closed');};
ws.onopen = function() {msg('Socket connected');};
}
catch(err) {
console.log("Error: " + err.message);
}
}
function ws_disconnect() {
try {
ws.close();
}
catch(err) {
console.log("Error: " + err.message);
}
}
</script>
<script type="text/javascript">
var global_current_filepath = null;
var global_current_filename = null;