iobroker.wm-bus
Version:
Wireless M-Bus Adapter
286 lines (253 loc) • 9.94 kB
HTML
<html>
<link rel="stylesheet" type="text/css" href="../../lib/css/themes/jquery-ui/redmond/jquery-ui.min.css"/>
<link rel="stylesheet" type="text/css" href="../../lib/css/jqGrid/ui.jqgrid-4.5.4.css"/>
<script type="text/javascript" src="../../lib/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="../../socket.io/socket.io.js"></script>
<script type="text/javascript" src="../../lib/js/jquery-ui-1.10.3.full.min.js"></script>
<script type="text/javascript" src="../../lib/js/jqGrid/jquery.jqGrid-4.5.4.min.js"></script>
<script type="text/javascript" src="../../lib/js/jqGrid/grid.locale-all.js"></script>
<link rel="stylesheet" type="text/css" href="../../css/adapter.css"/>
<script type="text/javascript" src="../../js/translate.js"></script>
<script type="text/javascript" src="../../js/adapter-settings.js"></script>
<script type="text/javascript">
systemDictionary = {
"WM-Bus adapter settings": {
"de": "WM-Bus Einstellungen",
"ru": "Пример"
},
"Settings": {
"de": "Einstellungen",
"ru": "Settings"
},
"Manufacturer ID": {
"de": "Manufacturer ID",
"en": "Manufacturer ID"
},
"AES Key": {
"de": "AES Key",
"en": "AES Key"
},
"Select a COM port": {
"de": "COM Port auswählen",
"en": "Select a COM Port"
},
"Cannot find any device": {
"de": "Kein neues Gerät gefunden",
"en": "Cannot find new devices"
},
"Please wait, looking for devices...": {
"de": "Bitte warten...",
"en": "Please wait..."
},
"Enable adapter first": {
"de": "Adapter #namespace ist nicht gestartet, bitte starten bzw. aktivieren!",
"en": "Enable adapter #namespace first"
},
"looking for device": {
"de": "Suche Geräte",
"en": "Looking for devices"
},
"on save adapter restarts with new config immediately": {
"de": "Beim Speichern der Einstellungen wird der Adapter automatisch neu gestartet.",
"ru": "Сразу после сохранения настроек драйвер перезапуститься с новыми значениями"
},
"comPort": {
"de": "COM Port",
"ru": "Settings"
},
"manufacturerId": {
"de": "Manufacturer ID",
"en": "Manufacturer ID"
},
"aesKey": {
"de": "AES Key",
"en": "AES Key"
},
"version": {
"de": "Version",
"en": "Version"
},
"type": {
"de": "Typ",
"en": "Type"
},
"devices": {
"de": "Geräte-liste",
"en": "Dives list"
},
"AddDevice": {
"de": "Zum Hinzufügen +-Button betätigen",
"en": "Add #-Button to add device"
}
};
var devices = [];
var active = false;
var namespace ='n/a';
function load(settings, onChange) {
if (!settings) return;
namespace = adapter + '.' + instance;
$("#dialog-search").dialog({
autoOpen: false,
modal: true,
width: 500,
height: 300
});
socket.emit('getState', 'system.adapter.' + namespace + '.alive', function (err, state) {
active = common.enabled || (state && state.val);
//active = true;
});
g_onChange = onChange;
changed = true;
for (var key in settings) {
if ($('#' + key + '.value').attr('type') == 'checkbox') {
$('#' + key + '.value').prop('checked', settings[key]).change(function() {
if ($('#auth').prop('checked')) {
$('#secure').prop('checked', true);
}
onChange();
showHideSettings();
});
} else {
$('#' + key + '.value').val(settings[key]).change(function() {
onChange();
}).keyup(function() {
onChange();
});
}
}
if (!settings.language) {
settings.language = systemLang || 'en';
$('#language').val(settings.language).trigger('change');
}
devices = settings.devices; // || [ {comPort: 'COM3', manufacturerId: "man", aesKey: "aes"}];
editTable({
tabId: 'devices',
cols: [{name: 'manufacturerId', width: '50'}, {name: 'version', width: 30}, {name: 'type', width: 30}, {name: 'aesKey', width: '120'}],
values: devices,
top: 400,
title: 'Devices'
});
changed = true;
onChange(false);
}
function save(callback) {
var obj = {};
changed = true;
$('.value').each(function () {
var $this = $(this);
if ($this.attr('type') == 'checkbox') {
obj[$this.attr('id')] = $this.prop('checked');
} else {
obj[$this.attr('id')] = $this.val();
}
});
obj.devices = getTableResult('devices', ['manufacturerId', 'version', 'type', 'aesKey']);
changed = true;
callback(obj);
}
$(document).ready(function () {
$('#find').button().click(function () {
if (!active) {
var msg = translateWord('Enable adapter first').replace('#namespace', namespace)
//$("#dialog-search").dialog('option', 'title', msg);
//$("#dialog-search").html(msg);
//$("#dialog-search").dialog("open");
showMessage(_(msg), 'Warning', 'info');
return;
}
$("#dialog-search").html(translateWord('Please wait, looking for devices...'));
$("#dialog-search").dialog('option', 'title', translateWord("looking for device"));
$("#dialog-search").dialog("open");
sendTo(namespace, 'discovery', 5000, function (result) {
try {
var arr = JSON.parse(result);
if (!arr.length) {
var popup = '<table class="msgTable"><tr><td>' + translateWord('Cannot find any device') + '</span></td></tr></table>';
} else {
$("#dialog-search").dialog('option', 'title', translateWord("Select a COM port"));
var popup = '<table class="hoverTable"><tr><th>Port</th><th>Manufacturer</th></tr>';
arr.forEach(function (element, index, array) {
popup = popup + '<tr href="#" onclick=' +
'"$(\'#comPort.value\').val(\''+element.comName+'\').trigger(\'change\');' +
'$(\'#dialog-search\').dialog(\'close\');' +
'"><td>' + element.comName + '</td><td>' + element.manufacturer + '</td></tr>';
});
popup += '</table>';
}
$("#dialog-search").html(popup);
} catch (e) {
alert("error finding a device");
}
});
});
});
</script>
<style>
td {
font-size: 14px;
padding-left:1px;
padding-right: 4px;
padding-top: 3px;
padding-bottom: 3px;
}
input {
font-size: 14px;
}
h1 {
font-size: 11px;
color: #505050;
font-weight: bold;
width: 100%;
padding-left:6px;
padding-right: 5px;
padding-top: 5px;
padding-bottom: 5px;
background-color: #e0e0e0;
/*background-image: linear-gradient(to right, #e0e0e0, rgba(224,224,224,0.0));*/
/*background-image: linear-gradient(to right, #e0e0e0, #e8e8e8 50%, #e0e0e0);*/
}
.msgTable{
width:100%;
border-collapse:collapse;
}
.msgTable td{
padding:7px; border:#4e95f4 1px solid;
}
.msgTable tr{
background: #b8d1f3;
}
.hoverTable{
width:100%;
border-collapse:collapse;
}
.hoverTable td{
padding:7px; border:#4e95f4 1px solid; cursor: hand;
}
.hoverTable th{
padding:7px; border:#4e95f4 1px solid; background-color: #b8d1f3;
}
.hoverTable th:hover{
padding:7px; border:#4e95f4 1px solid; background-color: #b8d1f3;
}
.hoverTable tr{
background: #b8d1f3;
}
.hoverTable tr:hover {
background-color: #ffff99;
}
</style>
<div id="adapter-container" style="padding-left: 6px; padding-right: 0px; width: 97%;">
<table>
<td><img src="wm-bus.png" height="48" width="48" /></td>
<td style="padding-top: 20px;padding-left: 10px"><h3 class="translate">WM-Bus adapter settings</h3></td>
</table>
<h1 class="translate">Swrial Port</h1>
<table>
<tr><td class="translate">COM Port Name</td><td><input class="value" id="comPort" type="input" size="15" /></td><td></td><td><button id="find"><span class="translate">Select a COM port</span></button></td></td></tr>
</table>
<!--div style="padding: 10px"></div-->
<h1 class="translate">AddDevice</h1>
<table id="devices"></table><div id="pager-devices"></div>
<div id="dialog-search" title="Select a COM port"></div>
</div>
</html>