mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-25 09:55:38 +00:00
SolarForecast: contrib/SolarForecast added
git-svn-id: https://svn.fhem.de/fhem/trunk@28245 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
04976eafdf
commit
e2473ef712
@ -640,7 +640,6 @@ FHEM/lib/UPnP/* Reinerlein Multimedia
|
|||||||
lib/FHEM/Core/Timer/Helper.pm sidey79 FHEM Development
|
lib/FHEM/Core/Timer/Helper.pm sidey79 FHEM Development
|
||||||
lib/FHEM/Core/Timer/Register.pm Beta-User FHEM Development
|
lib/FHEM/Core/Timer/Register.pm Beta-User FHEM Development
|
||||||
lib/FHEM/SynoModules/* DS_Starter Sonstiges
|
lib/FHEM/SynoModules/* DS_Starter Sonstiges
|
||||||
lib/FHEM/SolarForecast/* DS_Starter Solaranlagen
|
|
||||||
lib/FHEM/Text/Unicode.pm Adimarantis FHEM Development
|
lib/FHEM/Text/Unicode.pm Adimarantis FHEM Development
|
||||||
lib/FHEM/Utility/CTZ.pm DS_Starter Sonstiges
|
lib/FHEM/Utility/CTZ.pm DS_Starter Sonstiges
|
||||||
|
|
||||||
@ -670,6 +669,7 @@ contrib/PRESENCE markusbloch/orphan Unterstützende Dienste
|
|||||||
contrib/PRESENCE/lepresenced PatrickR Unterstützende Dienste
|
contrib/PRESENCE/lepresenced PatrickR Unterstützende Dienste
|
||||||
contrib/RHASSPY/* drhirn/Beta-User Frontends/Sprachsteuerung
|
contrib/RHASSPY/* drhirn/Beta-User Frontends/Sprachsteuerung
|
||||||
contrib/SIP/* Wzut Sonstiges
|
contrib/SIP/* Wzut Sonstiges
|
||||||
|
contrib/SolarForecast/* DS_Starter Solaranlagen
|
||||||
contrib/WebViewControl/* Dirk Mobile Devices
|
contrib/WebViewControl/* Dirk Mobile Devices
|
||||||
contrib/Widgets/DateTimePicker* Matscher Frontends
|
contrib/Widgets/DateTimePicker* Matscher Frontends
|
||||||
contrib/Wzut/* Wzut MAX
|
contrib/Wzut/* Wzut MAX
|
||||||
|
5
fhem/contrib/SolarForecast/ftui_forecast_28241.css
Normal file
5
fhem/contrib/SolarForecast/ftui_forecast_28241.css
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[data-type="forecast"] svg {
|
||||||
|
height: 2em;
|
||||||
|
width: 2em;
|
||||||
|
}
|
||||||
|
|
98
fhem/contrib/SolarForecast/widget_forecast_28241.js
Normal file
98
fhem/contrib/SolarForecast/widget_forecast_28241.js
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/* FTUI Plugin
|
||||||
|
*
|
||||||
|
* This widget "widget_forecast.js" was created to make use of the get html functionality of the
|
||||||
|
* SolarForecast Module by DS_Starter, see:
|
||||||
|
* https://wiki.fhem.de/wiki/SolarForecast_-_Solare_Prognose_(PV_Erzeugung)_und_Verbrauchersteuerung
|
||||||
|
*
|
||||||
|
* It was adapted from widget_smaportalspg.js which had:
|
||||||
|
* 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)
|
||||||
|
*
|
||||||
|
* Usage Example:
|
||||||
|
*
|
||||||
|
* <li data-row="1" data-col="1" data-sizey="3" data-sizex="4">
|
||||||
|
* <header>PV Forecast</header>
|
||||||
|
* <div class="cell">
|
||||||
|
* <div data-type="forecast" data-device="ForecastDevice" data-get="state" data-html="both"></div>
|
||||||
|
* </div>
|
||||||
|
* </li>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Versions:
|
||||||
|
*
|
||||||
|
* 1.0.0 30.11.2023 initial version stefanru
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function depends_forecast (){
|
||||||
|
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_forecast.css" type="text/css" />')
|
||||||
|
else
|
||||||
|
$('head').append('<link rel="stylesheet" href="'+ ftui.config.basedir + 'css/ftui_forecast.css" type="text/css" />');
|
||||||
|
|
||||||
|
return deps;
|
||||||
|
};
|
||||||
|
|
||||||
|
var Modul_forecast = function () {
|
||||||
|
|
||||||
|
function init_attr(elem) {
|
||||||
|
elem.initData('get', 'parentState');
|
||||||
|
elem.initData('html', elem.data('html'));
|
||||||
|
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('forecast:',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('forecast 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('forecast DO update' );
|
||||||
|
elem.data('lastUpdate', dNow);
|
||||||
|
var cmd = [ 'get', elem.data('device'), "html " + elem.data('html') ].join(' ');
|
||||||
|
ftui.log('forecast update', dev, ' - ', cmd);
|
||||||
|
|
||||||
|
ftui.sendFhemCommand(cmd)
|
||||||
|
.done(function (data, dev) {
|
||||||
|
//console.log('forecast 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: 'forecast',
|
||||||
|
init_attr: init_attr,
|
||||||
|
update: update,
|
||||||
|
});
|
||||||
|
|
||||||
|
return me;
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user