From f3f8f52449ea110d3a2b93fc1aef034d7237bf8a Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Fri, 21 Jun 2019 12:32:46 +0000 Subject: [PATCH] 76_SMAPortalSPG: contrib 1.2.0 git-svn-id: https://svn.fhem.de/fhem/trunk@19677 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SMAPortalSPG.pm | 56 +++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm b/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm index c91f1e7f6..d4848f682 100644 --- a/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm +++ b/fhem/contrib/DS_Starter/76_SMAPortalSPG.pm @@ -34,6 +34,7 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1; # Versions History intern our %SMAPortalSPG_vNotesIntern = ( + "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 " ); @@ -45,6 +46,7 @@ sub SMAPortalSPG_Initialize($) { my $fwd = join(",",devspec2array("TYPE=FHEMWEB:FILTER=STATE=Initialized")); $hash->{DefFn} = "SMAPortalSPG_Define"; + $hash->{GetFn} = "SMAPortalSPG_Get"; $hash->{AttrList} = "autoRefresh:selectnumbers,120,0.2,1800,0,log10 ". "autoRefreshFW:$fwd ". "beamColor:colorpicker,RGB ". @@ -86,7 +88,9 @@ sub SMAPortalSPG_Initialize($) { return; } -################################################################ +############################################################### +# SMAPortalSPG Define +############################################################### sub SMAPortalSPG_Define($$) { my ($hash, $def) = @_; my ($name, $type, $link) = split("[ \t]+", $def, 3); @@ -109,6 +113,23 @@ sub SMAPortalSPG_Define($$) { return undef; } +############################################################### +# SMAPortalSPG Get +############################################################### +sub SMAPortalSPG_Get($@) { + my ($hash, @a) = @_; + return "\"get X\" needs at least an argument" if ( @a < 2 ); + my $name = shift @a; + my $cmd = shift @a; + + if ($cmd eq "html") { + return SMAPortalSPG_AsHtml($hash); + } + +return undef; +return "Unknown argument $cmd, choose one of html:noArg"; +} + ################################################################ sub SMAPortalSPG_Rename($$) { my ($new_name,$old_name) = @_; @@ -259,6 +280,39 @@ sub SMAPortalSPG_setVersionInfo($) { 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}; + my $height; + + $link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s); + + my $alias = AttrVal($name, "alias", $name); # Linktext als Aliasname oder Devicename setzen + my $dlink = "$alias"; + + my $ret = ""; + if(IsDisabled($name)) { + $height = AttrNum($name, 'beamHeight', 200); + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= "
"; + $ret .= "SMA Portal graphic device $name is disabled"; + $ret .= "
"; + } else { + $ret .= "$dlink
" if(AttrVal($name,"showLink",0)); + $ret .= $link; + } + $ret .= ""; + +return $ret; +} + 1; =pod