2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00
fhem-mirror/fhem/contrib/DS_Starter/widget_smaportalspg.js
nasseeder1 7573e11887 76_SMAPortal: contrib ftui_smaportalspg.css
git-svn-id: https://svn.fhem.de/fhem/trunk@19764 2b470e98-0d58-463d-a4d8-8e2adae1ed80
2019-07-02 21:47:01 +00:00

94 lines
3.0 KiB
JavaScript

/* FTUI Plugin
* Copyright (c) 2016 Mario Stephan <mstephan@shared-files.de>
* originally created by Thomas Nesges,
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
/* Einbindung:
*
* <li data-row="1" data-col="1" data-sizey="3" data-sizex="4">
* <header>SMA Grafik</header>
* <div class="cell">
* <div data-type="smaportalspg" data-device="SPG1.Sonnenstrom" data-get="parentState" ></div>
* </div>
* </li>
*/
/* Versionen:
*
* 1.0.0 02.07.2019 initial version
*/
/* global ftui:true, Modul_widget:true */
"use strict";
function depends_smaportalspg (){
var deps = [];
var userCSS = $('head').find("[href$='css/fhem-tablet-ui.css']");
if (userCSS.length)
userCSS.before('<link rel="stylesheet" href="'+ ftui.config.basedir + 'css/ftui_smaportalspg.css" type="text/css" />')
else
$('head').append('<link rel="stylesheet" href="'+ ftui.config.basedir + 'css/ftui_smaportalspg.css" type="text/css" />');
return deps;
};
var Modul_smaportalspg = function () {
function init_attr(elem) {
elem.initData('get', 'parentState');
elem.initData('max-update', 2);
me.addReading(elem, 'get');
}
//usage of "function init()" from Modul_widget()
function update(dev, par) {
me.elements.filterDeviceReading('get', dev, par)
.each(function (index) {
var elem = $(this);
var value = elem.getReading('get').val;
//console.log('smaportalspg:',value);
if (ftui.isValid(value)) {
var dNow = new Date();
var lUpdate = elem.data('lastUpdate') || null;
var lMaxUpdate = parseInt(elem.data('max-update'));
if (isNaN(lMaxUpdate) || (lMaxUpdate < 1))
lMaxUpdate = 10;
//console.log('smaportalspg update time stamp diff : ', dNow - lUpdate, ' param maxUPdate :' + lMaxUpdate + ' : ' + $(this).data('max-update') );
lUpdate = (((dNow - lUpdate) / 1000) > lMaxUpdate) ? null : lUpdate;
if (lUpdate === null) {
//console.log('smaportalspg DO update' );
elem.data('lastUpdate', dNow);
var cmd = [ 'get', elem.data('device'), "ftui" ].join(' ');
ftui.log('smaportalspg update', dev, ' - ', cmd);
ftui.sendFhemCommand(cmd)
.done(function (data, dev) {
//console.log('received update for dynamic html : ', $(this) );
elem.html(data);
});
}
}
});
}
// public
// inherit all public members from base class
var me = $.extend(new Modul_widget(), {
//override or own public members
widgetname: 'smaportalspg',
init_attr: init_attr,
update: update,
});
return me;
};