Jump to: navigation, search


1,165 bytes removed, 13:10, 22 August 2019
Getting CQM Graphs
'''CHAOS''' is our API - it's still work in progress, and further features will be added. We'll add to this section of the wiki with examples.
==CHAOS Version 1==
Version 1 is no longer available for use. Use version 2 instead.
Other (3rd party) uses of CHAOS:
==CHAOS Version 2.x==
CHAOS is an application interface (API) for machine to machine interaction with our control and ordering systems. It provides a means to perform the following key operations:-
==Getting CQM Graphs==
*Access information about an existing service, eg your remaining quota
*Adjust settings on an existing service
*Obtain usage data relating to an existing service
*Obtain sync rates of a DSL line
*Obtain VoIP call rate card
*Order a cease of an existing service
*Order a change to an existing service
*Check availability of new services
*Order a new service, including creating a new account
The control systems cover a wide range of services, including broadband, ethernet, telephony, domains, email, mobile SIMs, and so on.
This is a quick example of getting cqm graphs from CHAOS.
Whilst CHAOS may initially not provide access to all of these services, it is intended to be a general platform that can be extended over time to provide a comprehensive machine to machine interface to all of our services.
In short, the Info command is used to get the graph URLs. The HTML provides a form to enter the credentials or you can edit the javascript to hardcode these.
===Further Information===
CHAOS is currently limited to only showing DSL graphs (eg, not SIMs) and only for lines on the login, ie a 'Manager' or 'Group' login.
Here are some projects that are using the CHAOS API:
<source lang=html5>
*'''Munin Plugin by Nat Morris'''
<!DOCTYPE html>
**[ Code on Github], [ Example]
<head lang='en'>
**Just need to provide one account & password, it will automatically graph multiple lines and produce combined graphs etc.
*'''MQTT Service by Nat Morris'''
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
**[ Code on Github]
<script src='chaosgraphs.js'></script>
** Publish circuit statistics to an [ MQTT] broker, makes it very easy to integrate with home automation projects such as [ Home Assistant] and [ openHAB].
<form id='login'>
<input type='text' name='username' placeholder='username' autofocus />
<input type='password' name='password' placeholder='password' />
<input type='submit' value='Login' />
<hr />
<div id='results'></div>
Javascript (chaosgraphs.js), you'll also need jquery:
[[Category:Control Pages]]
<source lang=javascript>
//Function to get service data from chaos using the "info" command
function getgraphs(username,password)
$("#results").html("<p><img src='images/loading-small.gif' alt='Loading' /></p>"); //Show a loading image while wai
ting for chaos
if(!username) { var username = $("input[type='text'][name='username']").val(); }
if(!password) { var password = $("input[type='password'][name='password']").val(); }
//AJAX request for "info" command
type: "POST",
url: "",
xhrFields: { withCredentials: true },
contentType: 'application/json',
data: JSON.stringify({username:username,password:password}),
success: function(data) {
var chaos = data;
var html = "";
if(chaos.error != undefined) {
//If there is an error display it
html+="<p class='error'>"+chaos.error+"</p>";
else {
//If there is no error, loop through the response and create graphs
for(var i = 0; i < chaos.login.length; i++) {
if(chaos.login[i].broadband_count != 0) {
for(var j = 0; j < chaos.login[i].broadband.length; j++) {
var bb = chaos.login[i].broadband[j];
html+=bb.circuit+"<br />";
html+="<img src='"+bb.cqm_png.replace(/http:/g,"https:")+"' alt='CQM graph "+j+"' /><hr />";
else { html+="No lines"; }
//Put the results into a div
$(document).ready(function() {
//Run the getgraphs() function when the form is submitted
$("#login").submit(function(e) {
//Or you could run getgraphs with a static username and password e.g.

Navigation menu