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

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@20144 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Beta-User 2019-09-11 05:51:25 +00:00
parent be7e1b585b
commit 082372eff5
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. # Comments start with #. Empty lines are ignored.
# Syntax of one entry: name: line, one optional filter: line, zero or more par: lines, FHEM-Commands # 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 reading01Name fw_link
attr DEVICE reading01RegOpt gi attr DEVICE reading01RegOpt gi
attr DEVICE reading01Regex <a.href="(\/downloads\/software\/firmware\/hm[^"]+) 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 readingMaxAge 10
attr DEVICE readingMaxAgeReplacementMode delete attr DEVICE readingMaxAgeReplacementMode delete
attr DEVICE requestData.* suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1 attr DEVICE requestData.* suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1
attr DEVICE room CUL_HM attr DEVICE room CUL_HM
attr DEVICE showError 1 attr DEVICE showError 1
attr DEVICE showMatched 1 attr DEVICE showMatched 1
attr DEVICE stateFormat { my $ret ="";; \ attr DEVICE stateFormat {\
my $lastCheck = ReadingsTimestamp($name,"MATCHED_READINGS","");; \ my $ret ="";; \
$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;; \ my $lastCheck = ReadingsTimestamp($name,"MATCHED_READINGS","???");; \
$ret .= '<br><br><pre>';; \ $ret .= '<div style="text-align:left">';; \
$ret .= "| device | model | cur_fw | new_fw | release |<br>";; \ $ret .= 'last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => '.$lastCheck;; \
$ret .= "------------------------------------------------------------------------------------<br>";; \ $ret .= '<br><br>';; \
my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");; \ $ret .= '<pre>';; \
if($check eq "no fw-updates needed!") {\ $ret .= "| device | model | cur_fw | new_fw | release |<br>";; \
$ret .= '| ';;\ $ret .= "------------------------------------------------------------------------------------<br>";; \
$ret .= '<b style="color:green">';;\ my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");; \
$ret .= sprintf("%-80s",$check);;\ if($check eq "no fw-updates needed!") {\
$ret .= '</b>';;\ $ret .= '| ';;\
$ret .= ' |';;\ $ret .= '<b style="color:green">';;\
} elsif($check eq "error => no or wrong data from eq3-server!") {\ $ret .= sprintf("%-80s",$check);;\
$ret .= '| <b style="color:red">';;\ $ret .= '</b>';;\
$ret .= sprintf("%-80s",$check);;\ $ret .= ' |';;\
$ret .= '</b> |';;\ } elsif($check eq "error => no or wrong data from eq3-server!") {\
} else { \ $ret .= '| ';;\
my @devices = split(',',$check);;\ $ret .= '<b style="color:red">';;\
foreach my $devStr (@devices) {\ $ret .= sprintf("%-80s",$check);;\
my ($dev,$md,$ofw,$idx,$nfw,$date) = $devStr =~ m/^([^\s]+)\s\(([^\s]+)\s\|\sfw_(\d+\.\d+)\s=>\sfw(\d\d)_([\d\.]+)\s\|\s([^\)]+)\)$/;;\ $ret .= '</b>';;\
my $link = ReadingsVal($name,"fw_link-".$idx,"");;\ $ret .= ' |';;\
$ret .= '| <a href="/fhem?detail='.$dev.'">';;\ } else { \
$ret .= sprintf("%-23s",$dev);;\ my @devices = split(',',$check);; \
$ret .= '</a> | <b';;\ foreach my $devStr (@devices) { \
$ret .= (($md eq "?")?' title="missing attribute model => set device in teach mode to receive missing data" style="color:yellow"':' style="color:lightgray"').'>';;\ my ($dev,$md,$ofw,$idx_fw,$nfw,$date) = $devStr =~ m/^([^\s]+)\s\(([^\s]+)\s\|\sfw_(\d+\.\d+)\s=>\sfw(\d\d)_([\d\.]+)\s\|\s([^\)]+)\)$/;;\
$ret .= sprintf("%-23s",$md);;\ my $fw_link = ReadingsVal($name,"fw_link-".$idx_fw,"???");; \
$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"').'>';;\ my $cl_link = ReadingsVal($name,"changeLog_link-".$idx_fw,"???");; \
$ret .= sprintf("%6s",$ofw);;\ $ret .= '| ';; \
$ret .= '</b> | <a title="eq3-firmware.tgz" href="'.$link.'"><b style="color:red">';;\ $ret .= '<a href="/fhem?detail='.$dev.'">';; \
$ret .= sprintf("%6s",$nfw);;\ $ret .= sprintf("%-23s",$dev);; \
$ret .= '</b></a> | ';;\ $ret .= '</a>';; \
$ret .= sprintf("%-10s",$date);;\ $ret .= " | ";; \
$ret .= " |<br>";;\ $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 .= '</pre></div>';;\ $ret .= " | ";; \
return $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.* {\ attr DEVICE userReadings newFwForDevices:MATCHED_READINGS.* {\
my $ret = "";;\ my $ret = "";;\

View File

@ -71,7 +71,7 @@ attr DEVICE setList\
log_level:debug,info,warn,error BASE_TOPIC/bridge/config/log_level $EVTPART1\ log_level:debug,info,warn,error BASE_TOPIC/bridge/config/log_level $EVTPART1\
permit_join:true,false BASE_TOPIC/bridge/config/permit_join $EVTPART1\ permit_join:true,false BASE_TOPIC/bridge/config/permit_join $EVTPART1\
remove:textField BASE_TOPIC/bridge/config/remove $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:textField BASE_TOPIC/bridge/bind/$EVTPART1 $EVTPART2\
x_bind_unbind:textField BASE_TOPIC/bridge/unbind/$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"}}\ x_device_options:textField BASE_TOPIC/bridge/config/device_options {"friendly_name":"$EVTPART1",""options": {"$EVTPART2": "$EVTPART3"}}\