mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-02-18 13:38:15 +00:00
197 lines
9.8 KiB
HTML
197 lines
9.8 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>AMS reader - MQTT configuration</title>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
|
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
|
</head>
|
|
<body class="bg-light">
|
|
<main role="main" class="container">
|
|
<header class="navbar navbar-expand navbar-dark flex-column flex-md-row bg-purple rounded mt-2 mb-4" style="background-color: var(--purple);">
|
|
<a href="/" class=""><h6 class="navbar-brand">AMS reader <small>${version}</small></h6></a>
|
|
<div class="navbar-nav-scroll">
|
|
<ul class="navbar-nav bd-navbar-nav flex-row">
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="/config-meter">Meter</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="/config-wifi">WiFi</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link active" href="/config-mqtt">MQTT</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="/config-web">Web</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="/config-system">System</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<ul class="navbar-nav flex-row ml-md-auto d-none d-md-flex">
|
|
<li class="nav-item">
|
|
<a class="nav-link p-2" href="https://github.com/gskjold/AmsToMqttBridge" target="_blank" rel="noopener" aria-label="GitHub">
|
|
<img class="d-inline-block align-text-top" style="width: 2rem; height: 2rem;" src="github.svg"/>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</header>
|
|
<form method="post" action="/save">
|
|
<input type="hidden" name="mqttConfig" value="true"/>
|
|
<div class="my-3 p-3 bg-white rounded shadow">
|
|
<label class="m-2"><input id="mqttEnable" type="checkbox" name="mqtt" value="true" ${config.mqtt}/> Enable</label>
|
|
<div class="row">
|
|
<div class="col-xl-4 col-lg-5 col-md-6">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Host</span>
|
|
</div>
|
|
<input type="text" class="form-control mqtt-config" name="mqttHost" value="${config.mqttHost}" maxlength="128"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-2 col-lg-3 col-md-3 col-sm-4">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Port</span>
|
|
</div>
|
|
<input type="number" class="form-control mqtt-config" name="mqttPort" value="${config.mqttPort}" min="1024" max="65535" placeholder="1883"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-3 col-lg-4 col-md-6 col-sm-8">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Client ID</span>
|
|
</div>
|
|
<input type="text" class="form-control mqtt-config" name="mqttClientId" value="${config.mqttClientId}" maxlength="32"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-3 col-lg-4 col-md-6">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Topic</span>
|
|
</div>
|
|
<input type="text" class="form-control mqtt-config" name="mqttPublishTopic" value="${config.mqttPublishTopic}" maxlength="64"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-3 col-lg-4 col-md-6 col-sm-6">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Username</span>
|
|
</div>
|
|
<input type="text" class="form-control mqtt-config" name="mqttUser" value="${config.mqttUser}" maxlength="64"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-3 col-lg-4 col-md-6 col-sm-6">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Password</span>
|
|
</div>
|
|
<input type="password" class="form-control mqtt-config" name="mqttPassword" value="${config.mqttPassword}" maxlength="64"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3 col-md-4 col-sm-6">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Payload</span>
|
|
</div>
|
|
<select id="mqttPayloadFormat" class="form-control mqtt-config" name="mqttPayloadFormat">
|
|
<option value="0" ${config.mqttPayloadFormat0}>JSON</option>
|
|
<option value="1" ${config.mqttPayloadFormat1}>Raw (minimal)</option>
|
|
<option value="2" ${config.mqttPayloadFormat2}>Raw (full)</option>
|
|
<option value="3" ${config.mqttPayloadFormat3}>Domoticz</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 col-sm-6 format-type-domoticz">
|
|
<div class="m-2">
|
|
<a href="/config-domoticz" class="btn btn-sm btn-outline-secondary">Configuration</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="my-3 p-3 bg-white rounded shadow">
|
|
<div class="row">
|
|
<div class="col-md-2">
|
|
<label class="m-2"><input id="mqttSsl" type="checkbox" name="mqttSsl" value="true" ${config.mqttSsl}/> SSL</label>
|
|
</div>
|
|
<div class="col-lg-2 col-md-3">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">CA</span>
|
|
</div>
|
|
<div class="input-group-append">
|
|
<span style="display: ${display.ca.upload};">
|
|
<a href="/mqtt-ca" class="btn btn-sm btn-outline-secondary">Upload</a>
|
|
</span>
|
|
<span style="display: ${display.ca.file};">
|
|
<a href="/mqtt-ca" class="btn btn-sm btn-danger">Delete</a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-2 col-md-3">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Certificate</span>
|
|
</div>
|
|
<div class="input-group-append">
|
|
<span style="display: ${display.cert.upload};">
|
|
<a href="/mqtt-cert" class="btn btn-sm btn-outline-secondary">Upload</a>
|
|
</span>
|
|
<span style="display: ${display.cert.file};">
|
|
<a href="/mqtt-cert" class="btn btn-sm btn-danger">Delete</a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-xl-2 col-md-4">
|
|
<div class="m-2 input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">Private key</span>
|
|
</div>
|
|
<div class="input-group-append">
|
|
<span style="display: ${display.key.upload};">
|
|
<a href="/mqtt-key" class="btn btn-sm btn-outline-secondary">Upload</a>
|
|
</span>
|
|
<span style="display: ${display.key.file};">
|
|
<a href="/mqtt-key" class="btn btn-sm btn-danger">Delete</a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr/>
|
|
<div class="row form-group">
|
|
<div class="col-6">
|
|
<a href="/" class="btn btn-outline-secondary">Back</a>
|
|
</div>
|
|
<div class="col-6 text-right">
|
|
<button class="btn btn-primary">Save</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</main>
|
|
<script>
|
|
$('#mqttEnable').on('change', function() {
|
|
var inputs = $('.mqtt-config');
|
|
inputs.prop('disabled', !$(this).is(':checked'));
|
|
});
|
|
|
|
$('#mqttPayloadFormat').on('change', function() {
|
|
var val = parseInt($(this).val());
|
|
if(val == 3)
|
|
$('.format-type-domoticz').show();
|
|
else
|
|
$('.format-type-domoticz').hide();
|
|
});
|
|
$(function() {
|
|
$('#mqttEnable').trigger('change');
|
|
$('#mqttPayloadFormat').trigger('change');
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|