diff --git a/fhem/contrib/DS_Starter/76_SMAPortal.pm b/fhem/contrib/DS_Starter/76_SMAPortal.pm
index 92d9d49c8..790fb9733 100644
--- a/fhem/contrib/DS_Starter/76_SMAPortal.pm
+++ b/fhem/contrib/DS_Starter/76_SMAPortal.pm
@@ -161,6 +161,7 @@ use vars qw($FW_ME); # webname (default is fh
# Versions History intern
our %vNotesIntern = (
+ "2.4.0" => "26.06.2019 support for FTUI-Widget ",
"2.3.7" => "24.06.2019 replace suggestIcon by consumerAdviceIcon ",
"2.3.6" => "21.06.2019 revise commandref ",
"2.3.5" => "20.06.2019 subroutine consinject added to pv, pvco style ",
@@ -1823,10 +1824,10 @@ return($txt);
###############################################################################
# Subroutine für Portalgrafik
###############################################################################
-sub PortalAsHtml ($$) {
- my ($name,$wlname) = @_;
- my $hash = $defs{$name};
- my $ret = "";
+sub PortalAsHtml ($$;$) {
+ my ($name,$wlname,$ftui) = @_;
+ my $hash = $defs{$name};
+ my $ret = "";
my ($i,$icon,$colorv,$colorc,$maxhours,$hourstyle,$header,$legend,$legend_txt,$legend_style);
my ($val,$height,$fsize,$html_start,$html_end,$wlalias,$weather,$colorw,$maxVal,$show_night,$type,$kw);
@@ -1879,6 +1880,12 @@ sub PortalAsHtml ($$) {
my $cmdoff = "\"FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name $txt off')\"";
my $cmdauto = "\"FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name $txt auto')\"";
+ if ($ftui && $ftui eq "ftui") {
+ $cmdon = "\"ftui.setFhemStatus('set $name $txt on')\"";
+ $cmdoff = "\"ftui.setFhemStatus('set $name $txt off')\"";
+ $cmdauto = "\"ftui.setFhemStatus('set $name $txt auto')\"";
+ }
+
my $swstate = ReadingsVal($name,"L3_".$txt."_Switch", "undef");
my $swicon = "
";
if($swstate eq "off") {
diff --git a/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm b/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm
index 09524ae88..fabdde0d2 100644
--- a/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm
+++ b/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm
@@ -34,12 +34,15 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1;
# Versions History intern
our %SMAPortalSPG_vNotesIntern = (
+ "1.4.0" => "26.06.2019 support for FTUI-Widget ",
"1.3.0" => "24.06.2019 replace suggestIcon by consumerAdviceIcon ",
"1.2.0" => "21.06.2019 GetFn -> get html ",
"1.1.0" => "13.06.2019 commandRef revised, changed attribute W/kW to Wh/kWh ",
"1.0.0" => "03.06.2019 initial Version "
);
+sub SMAPortalSPG_AsHtml($;$$);
+
################################################################
sub SMAPortalSPG_Initialize($) {
my ($hash) = @_;
@@ -127,6 +130,10 @@ sub SMAPortalSPG_Get($@) {
return SMAPortalSPG_AsHtml($hash);
}
+ if ($cmd eq "ftui") {
+ return SMAPortalSPG_AsHtml($hash,"ftui");
+ }
+
return undef;
return "Unknown argument $cmd, choose one of html:noArg";
}
@@ -284,11 +291,17 @@ return;
################################################################
# Grafik als HTML zurück liefern (z.B. für Widget)
################################################################
-sub SMAPortalSPG_AsHtml($) {
- my ($hash) = @_;
- my $name = $hash->{NAME};
- my $link = $hash->{LINK};
+sub SMAPortalSPG_AsHtml($;$) {
+ my ($hash,$ftui) = @_;
+ my $name = $hash->{NAME};
+ my $link = $hash->{LINK};
my $height;
+
+ if ($ftui && $ftui eq "ftui") {
+ # Aufruf aus TabletUI -> FW_cmd ersetzen gemäß FTUI Syntax
+ my $s = substr($link,0,length($link)-2);
+ $link = $s.",'$ftui')}";
+ }
$link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s);
diff --git a/fhem/contrib/DS_Starter/widget_smaportalspg.js b/fhem/contrib/DS_Starter/widget_smaportalspg.js
index 3f93b40f6..66fef081f 100644
--- a/fhem/contrib/DS_Starter/widget_smaportalspg.js
+++ b/fhem/contrib/DS_Starter/widget_smaportalspg.js
@@ -3,6 +3,16 @@
* originally created by Thomas Nesges,
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
+
+/* Einbindung:
+ *
+ *
+ *
+ *
+ *
+*/
/* global ftui:true, Modul_widget:true */
@@ -11,8 +21,8 @@
var Modul_smaportalspg = function () {
function init_attr(elem) {
- elem.initData('get', 'STATE');
- elem.initData('max-update', 60);
+ elem.initData('get', 'parentState');
+ elem.initData('max-update', 2);
me.addReading(elem, 'get');
}
@@ -25,7 +35,7 @@ var Modul_smaportalspg = function () {
.each(function (index) {
var elem = $(this);
var value = elem.getReading('get').val;
- //console.log('readingsgroup:',value);
+ //console.log('smaportalspg:',value);
if (ftui.isValid(value)) {
var dNow = new Date();
@@ -34,14 +44,14 @@ var Modul_smaportalspg = function () {
if (isNaN(lMaxUpdate) || (lMaxUpdate < 1))
lMaxUpdate = 10;
- //console.log('readingsgroup update time stamp diff : ', dNow - lUpdate, ' param maxUPdate :' + lMaxUpdate + ' : ' + $(this).data('max-update') );
+ //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('readingsgroup DO update' );
+ //console.log('smaportalspg DO update' );
elem.data('lastUpdate', dNow);
- var cmd = [ 'get', elem.data('device'), "html" ].join(' ');
- ftui.log('readingsgroup update', dev, ' - ', cmd);
+ var cmd = [ 'get', elem.data('device'), "ftui" ].join(' ');
+ ftui.log('smaportalspg update', dev, ' - ', cmd);
ftui.sendFhemCommand(cmd)
.done(function (data, dev) {