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: + * + *
  • + *
    SMA Grafik
    + *
    + *
    + *
    + *
  • +*/ /* 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) {