diff --git a/FHEM/lib/AttrTemplate/httpmod.template b/FHEM/lib/AttrTemplate/httpmod.template index b2c138bb4..e554bedf0 100644 --- a/FHEM/lib/AttrTemplate/httpmod.template +++ b/FHEM/lib/AttrTemplate/httpmod.template @@ -415,8 +415,10 @@ attr DEVICE model C_01a_resol_solar name:X_01a_CUL_HM_firmware_update_downloader filter:TYPE=HTTPMOD desc: Check eQ3 homepage for available new firmware files; provides also links for direct downloads
Define a HTTPMOD device like
define eq3 HTTPMOD https://www.eq-3.de/ajax/downloads/downloads_eq3.php 604800
Source: Forum
Wiki +par:WHICHROOM;Room of the calling device; {AttrVal("DEVICE","room","CUL_HM" )} defmod DEVICE HTTPMOD https://www.eq-3.de/ajax/downloads/downloads_eq3.php 604800 attr DEVICE userattr enableControlSet event-on-change-reading event-on-update-reading reading01AutoNumLen reading01Format reading01Name reading01RegOpt reading01RegOpt:s,i,g reading01Regex readingMaxAge readingMaxAgeReplacementMode readingMaxAgeReplacementMode:text,expression,delete readingMaxAgeReplacementMode:text,reading,internal,expression,delete requestData.* showError showMatched stateFormat userReadings webCmd +attr DEVICE alignTime 00:45 attr DEVICE enableControlSet 1 attr DEVICE event-on-change-reading .* attr DEVICE event-on-update-reading LAST_ERROR,MATCHED_READINGS @@ -434,65 +436,52 @@ attr DEVICE reading02Regex (.{300}) no or wrong data from eq3-server!");; \ - if($check eq "no fw-updates needed!") {\ - $ret .= '| ';;\ - $ret .= '';;\ - $ret .= sprintf("%-80s",$check);;\ - $ret .= '';;\ - $ret .= ' |';;\ - } elsif($check eq "error => no or wrong data from eq3-server!") {\ - $ret .= '| ';;\ - $ret .= '';;\ - $ret .= sprintf("%-80s",$check);;\ - $ret .= '';;\ - $ret .= ' |';;\ - } else { \ - my @devices = split(',',$check);; \ - foreach my $devStr (@devices) { \ - my ($dev,$md,$ofw,$idx_fw,$nfw,$date) = $devStr =~ m/^([^\s]+)\s\(([^\s]+)\s\|\sfw_(\d+\.\d+)\s=>\sfw(\d\d)_([\d\.]+)\s\|\s([^\)]+)\)$/;;\ - my $fw_link = ReadingsVal($name,"fw_link-".$idx_fw,"???");; \ - my $cl_link = ReadingsVal($name,"changeLog_link-".$idx_fw,"???");; \ - $ret .= '| ';; \ - $ret .= '';; \ - $ret .= sprintf("%-23s",$dev);; \ - $ret .= '';; \ - $ret .= " | ";; \ - $ret .= '';; \ - $ret .= sprintf("%-23s",$md);; \ - $ret .= '';; \ - $ret .= " | ";; \ - $ret .= '';; \ - $ret .= sprintf("%6s",$ofw);; \ - $ret .= '';; \ - $ret .= " | ";; \ - $ret .= '';; \ - $ret .= '';; \ - $ret .= sprintf("%6s",$nfw);; \ - $ret .= '';; \ - $ret .= '';; \ - $ret .= " | ";; \ - $ret .= '' if($cl_link ne "none");; \ - $ret .= sprintf("%-10s",$date);; \ - $ret .= '' if($cl_link ne "none");; \ - $ret .= " |
";; \ - } \ - } \ - $ret .= '';; \ - $ret .= '';; \ - return $ret;; \ +attr DEVICE stateFormat { my $ret ="";;\ + my $lastCheck = ReadingsTimestamp($name,"MATCHED_READINGS","???");;\ + $ret .= '
';;\ + $ret .= 'last homematic-fw-check => '.$lastCheck;;\ + $ret .= '

';;\
+    $ret .= "| device                  | model                   | cur_fw | new_fw | release    |
";;\ + $ret .= "------------------------------------------------------------------------------------
";;\ + my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");;\ + if($check eq "no fw-updates needed!") {\ + $ret .= '| ';;\ + $ret .= sprintf("%-80s",$check);;\ + $ret .= ' |';;\ + } elsif($check eq "error => no or wrong data from eq3-server!") {\ + $ret .= '| ';;\ + $ret .= sprintf("%-80s",$check);;\ + $ret .= ' |';;\ + } else {\ + my @devices = split(',',$check);;\ + foreach my $devStr (@devices) {\ + my ($dev,$md,$ofw,$idx_fw,$nfw,$date) = $devStr =~ m/^([^\s]+)\s\(([^\s]+)\s\|\sfw_(\d+\.\d+)\s=>\sfw(\d\d)_([\d\.]+)\s\|\s([^\)]+)\)$/;;\ + my $fw_link = ReadingsVal($name,"fw_link-".$idx_fw,"???");;\ + my $cl_link = ReadingsVal($name,"changeLog_link-".$idx_fw,"???");;\ + $ret .= '| ';;\ + $ret .= sprintf("%-23s",$dev);;\ + $ret .= ' | ';;\ + $ret .= '';;\ + $ret .= sprintf("%-23s",$md);;\ + $ret .= ' | ';;\ + $ret .= '';;\ + $ret .= sprintf("%6s",$ofw);;\ + $ret .= ' | ';;\ + $ret .= '';;\ + $ret .= '';;\ + $ret .= sprintf("%6s",$nfw);;\ + $ret .= ' | ';;\ + $ret .= '' if($cl_link ne "none");;\ + $ret .= sprintf("%-10s",$date);;\ + $ret .= '' if($cl_link ne "none");;\ + $ret .= " |
";;\ + }\ + }\ + $ret .= '
';;\ + return $ret;;\ } attr DEVICE userReadings newFwForDevices:MATCHED_READINGS.* {\ my $ret = "";;\