2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-24 09:09:19 +00:00

httpmod.template: update eq3 fw check; mqtt2.template: bugfix in zigbee2mqtt bridge

git-svn-id: https://svn.fhem.de/fhem/trunk@20144 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Beta-User 2019-09-11 05:51:25 +00:00
parent 7a9765cf00
commit aaf1100c72
2 changed files with 61 additions and 40 deletions

View File

@ -1,5 +1,5 @@
###########################################
# $Id: mqtt2.template 18592 2019-02-14 06:27:39Z Beta-User $
# $Id: httpmod.template $
#
# Comments start with #. Empty lines are ignored.
# Syntax of one entry: name: line, one optional filter: line, zero or more par: lines, FHEM-Commands
@ -426,50 +426,71 @@ attr DEVICE reading01Format https://www.eq-3.de%s
attr DEVICE reading01Name fw_link
attr DEVICE reading01RegOpt gi
attr DEVICE reading01Regex <a.href="(\/downloads\/software\/firmware\/hm[^"]+)
attr DEVICE reading02OExpr $val=~m/(\/downloads\/software\/firmware\/[^"]+)/?"https://www.eq-3.de".$1:"none"
attr DEVICE reading02RegOpt gis
attr DEVICE reading02Regex (.{300})<a.href="\/downloads\/software\/firmware\/hm[^"]+
attr DEVICE readingMaxAge 10
attr DEVICE readingMaxAgeReplacementMode delete
attr DEVICE requestData.* suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1
attr DEVICE room CUL_HM
attr DEVICE showError 1
attr DEVICE showMatched 1
attr DEVICE stateFormat { my $ret ="";; \
my $lastCheck = ReadingsTimestamp($name,"MATCHED_READINGS","");; \
$ret .= '<div style="text-align:left">last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => '.$lastCheck;; \
$ret .= '<br><br><pre>';; \
$ret .= "| device | model | cur_fw | new_fw | release |<br>";; \
$ret .= "------------------------------------------------------------------------------------<br>";; \
my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");; \
if($check eq "no fw-updates needed!") {\
$ret .= '| ';;\
$ret .= '<b style="color:green">';;\
$ret .= sprintf("%-80s",$check);;\
$ret .= '</b>';;\
$ret .= ' |';;\
} elsif($check eq "error => no or wrong data from eq3-server!") {\
$ret .= '| <b style="color:red">';;\
$ret .= sprintf("%-80s",$check);;\
$ret .= '</b> |';;\
} else { \
my @devices = split(',',$check);;\
foreach my $devStr (@devices) {\
my ($dev,$md,$ofw,$idx,$nfw,$date) = $devStr =~ m/^([^\s]+)\s\(([^\s]+)\s\|\sfw_(\d+\.\d+)\s=>\sfw(\d\d)_([\d\.]+)\s\|\s([^\)]+)\)$/;;\
my $link = ReadingsVal($name,"fw_link-".$idx,"");;\
$ret .= '| <a href="/fhem?detail='.$dev.'">';;\
$ret .= sprintf("%-23s",$dev);;\
$ret .= '</a> | <b';;\
$ret .= (($md eq "?")?' title="missing attribute model => set device in teach mode to receive missing data" style="color:yellow"':' style="color:lightgray"').'>';;\
$ret .= sprintf("%-23s",$md);;\
$ret .= '</b> | <b'.(($ofw eq "0.0")?' title="missing attribute firmware => set device in teach mode to receive missing data" style="color:yellow"':' style="color:lightgray"').'>';;\
$ret .= sprintf("%6s",$ofw);;\
$ret .= '</b> | <a title="eq3-firmware.tgz" href="'.$link.'"><b style="color:red">';;\
$ret .= sprintf("%6s",$nfw);;\
$ret .= '</b></a> | ';;\
$ret .= sprintf("%-10s",$date);;\
$ret .= " |<br>";;\
}\
}\
$ret .= '</pre></div>';;\
return $ret;;\
attr DEVICE stateFormat {\
my $ret ="";; \
my $lastCheck = ReadingsTimestamp($name,"MATCHED_READINGS","???");; \
$ret .= '<div style="text-align:left">';; \
$ret .= 'last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => '.$lastCheck;; \
$ret .= '<br><br>';; \
$ret .= '<pre>';; \
$ret .= "| device | model | cur_fw | new_fw | release |<br>";; \
$ret .= "------------------------------------------------------------------------------------<br>";; \
my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");; \
if($check eq "no fw-updates needed!") {\
$ret .= '| ';;\
$ret .= '<b style="color:green">';;\
$ret .= sprintf("%-80s",$check);;\
$ret .= '</b>';;\
$ret .= ' |';;\
} elsif($check eq "error => no or wrong data from eq3-server!") {\
$ret .= '| ';;\
$ret .= '<b style="color:red">';;\
$ret .= sprintf("%-80s",$check);;\
$ret .= '</b>';;\
$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 .= '<a href="/fhem?detail='.$dev.'">';; \
$ret .= sprintf("%-23s",$dev);; \
$ret .= '</a>';; \
$ret .= " | ";; \
$ret .= '<b'.(($md eq "?")?' title="missing attribute model => set device in teach mode to receive missing data" style="color:yellow"':' style="color:lightgray"').'>';; \
$ret .= sprintf("%-23s",$md);; \
$ret .= '</b>';; \
$ret .= " | ";; \
$ret .= '<b'.(($ofw eq "0.0")?' title="missing attribute firmware => set device in teach mode to receive missing data" style="color:yellow"':' style="color:lightgray"').'>';; \
$ret .= sprintf("%6s",$ofw);; \
$ret .= '</b>';; \
$ret .= " | ";; \
$ret .= '<a title="download firmware file" href="'.$fw_link.'">';; \
$ret .= '<b style="color:red">';; \
$ret .= sprintf("%6s",$nfw);; \
$ret .= '</b>';; \
$ret .= '</a>';; \
$ret .= " | ";; \
$ret .= '<a title="open changeLog file" href="'.$cl_link.'"><b style="color:red">' if($cl_link ne "none");; \
$ret .= sprintf("%-10s",$date);; \
$ret .= '</b></a>' if($cl_link ne "none");; \
$ret .= " |<br>";; \
} \
} \
$ret .= '</pre>';; \
$ret .= '</div>';; \
return $ret;; \
}
attr DEVICE userReadings newFwForDevices:MATCHED_READINGS.* {\
my $ret = "";;\

View File

@ -71,7 +71,7 @@ attr DEVICE setList\
log_level:debug,info,warn,error BASE_TOPIC/bridge/config/log_level $EVTPART1\
permit_join:true,false BASE_TOPIC/bridge/config/permit_join $EVTPART1\
remove:textField BASE_TOPIC/bridge/config/remove $EVTPART1\
y_device_setting:textField zigbee2mqtt/$EVTPART1/set {"$EVTPART2": "$EVTPART3"}\
y_device_setting:textField BASE_TOPIC/$EVTPART1/set {"$EVTPART2": "$EVTPART3"}\
x_bind:textField BASE_TOPIC/bridge/bind/$EVTPART1 $EVTPART2\
x_bind_unbind:textField BASE_TOPIC/bridge/unbind/$EVTPART1 $EVTPART2\
x_device_options:textField BASE_TOPIC/bridge/config/device_options {"friendly_name":"$EVTPART1",""options": {"$EVTPART2": "$EVTPART3"}}\