From 09e91b9fd9bcc55573411c3f5fef87b95b07d5f2 Mon Sep 17 00:00:00 2001
From: Beta-User <>
Date: Thu, 23 Apr 2020 08:15:56 +0000
Subject: [PATCH] httpmod.template: changes to hm-firmware-check and heizoel
git-svn-id: https://svn.fhem.de/fhem/trunk@21760 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/lib/AttrTemplate/httpmod.template | 136 ++++++++++++--------
1 file changed, 83 insertions(+), 53 deletions(-)
diff --git a/fhem/FHEM/lib/AttrTemplate/httpmod.template b/fhem/FHEM/lib/AttrTemplate/httpmod.template
index 2cd5f2730..cbcf7346e 100644
--- a/fhem/FHEM/lib/AttrTemplate/httpmod.template
+++ b/fhem/FHEM/lib/AttrTemplate/httpmod.template
@@ -72,15 +72,17 @@ desc: checks fuel oil prices via easyoil.com
Define a HTTPMOD device like
order:order: 100005
par:WHICHROOM;Actual room of the device, defaults to HTTPMOD; {AttrVal("DEVICE","room","HTTPMOD" )}
par:INTERVAL;Actual interval for updating, defaults to hourly (3600s); {InternalVal("DEVICE","Interval",3600)}
-defmod Heizoelpreis HTTPMOD https://www.esyoil.com/preisausgabe.php?pr-unloading-points=%%ENTLADESTELLEN%%&pr-product=8&pr-payment-type=2&%%ANHAENGER%%&pr-hose-length=%%SCHLAUCHLAENGE%%&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit= INTERVAL
+defmod DEVICE HTTPMOD https://www.esyoil.com/preisausgabe.php?pr-unloading-points=%%ENTLADESTELLEN%%&pr-product=8&pr-payment-type=2&%%ANHAENGER%%&pr-hose-length=%%SCHLAUCHLAENGE%%&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit= INTERVAL
attr DEVICE userattr reading010Name reading010OExpr reading010Regex replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value replacement03Mode:reading,internal,text,expression,key replacement03Regex replacement03Value replacement04Mode:reading,internal,text,expression,key replacement04Regex replacement04Value replacement05Mode:reading,internal,text,expression,key replacement05Regex replacement05Value
+attr DEVICE DbLogExclude .*
attr DEVICE enableControlSet 1
+attr DEVICE group Spritpeise
attr DEVICE reading010Name Heizoelpreis
attr DEVICE reading010OExpr $val =~ s/,/\./;; $val;;
attr DEVICE reading010Regex ([\d\,]+)[\s]+€
attr DEVICE replacement01Mode text
attr DEVICE replacement01Regex %%PLZ%%
-attr DEVICE replacement01Value 40764
+attr DEVICE replacement01Value 12345
attr DEVICE replacement02Mode text
attr DEVICE replacement02Regex %%MENGE%%
attr DEVICE replacement02Value 3000
@@ -89,13 +91,22 @@ attr DEVICE replacement03Regex %%ENTLADESTELLEN%%
attr DEVICE replacement03Value 1
attr DEVICE replacement04Mode text
attr DEVICE replacement04Regex %%SCHLAUCHLAENGE%%
-attr DEVICE replacement04Value 40
+attr DEVICE replacement04Value 40m
attr DEVICE replacement05Mode text
attr DEVICE replacement05Regex %%ANHAENGER%%
attr DEVICE replacement05Value pr-truck-type=short_vehicle
attr DEVICE room WHICHROOM
-attr DEVICE stateFormat {"
';;;;\ - $ret .= "| device | model | cur_fw | new_fw |
";;;;\ - $ret .= "------------------------------------------------------------------------------
";;;;\ - my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");;;;\ +attr DEVICE stateFormat { my $ret ="";;\ + my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"MATCHED_READINGS","2000-01-01 00:00:00"))));;\ + my $nextCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(InternalVal($name,"TRIGGERTIME_FMT","2000-01-01 00:00:00"))));;\ + my $cellstyle = "padding:3pt;;border-bottom:1px dotted lightgray;;";;\ + $ret .= '';;;;\ + $ret .= 'last homematic-fw-check => '.$lastCheck;;\ + $ret .= '';;;;\ - return $ret;;;;\ + $ret .= "
';;\ + my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");;\ if($check eq "no fw-updates needed!") {\ - $ret .= '| ';;;;\ - $ret .= sprintf("%-74s",$check);;;;\ - $ret .= ' |';;;;\ + $ret .= '';;\ + $ret .= $check;;\ + $ret .= '';;\ } elsif($check eq "error => no or wrong data from eq3-server!") {\ - $ret .= '| ';;;;\ - $ret .= sprintf("%-74s",$check);;;;\ - $ret .= ' |';;;;\ + $ret .= '';;\ + $ret .= $check;;\ + $ret .= '';;\ } else {\ - my @devices = split(',',$check);;;;\ + $ret .= '';;\ + $ret .= '';; #table\ }\ - $ret .= '';;\ + $ret .= '';; #header\ + my @devices = split(',',$check);;\ foreach my $devStr (@devices) {\ - my ($dev,$md,$idx,$ofw,$nfw) = $devStr =~ m/([^\s]+)\s[(]([^\s]+)\s[(](\d+)[)]\sofw_([\d\.]+)\s=>\snfw_([\d\.]+)/;;;;\ - my $fw_link = "https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=".$md;;;;\ - $ret .= '| ';;;;\ - $ret .= sprintf("%-30s",$dev);;;;\ - $ret .= ' | ';;;;\ - $ret .= '';;;;\ - $ret .= sprintf("%-23s",$md);;;;\ - $ret .= ' | ';;;;\ - $ret .= '';;;;\ - $ret .= sprintf("%6s",$ofw);;;;\ - $ret .= ' | ';;;;\ - $ret .= '';;;;\ - $ret .= sprintf("%6s",$nfw);;;;\ - $ret .= ' | ';;;;\ - $ret .= "device';;\ + $ret .= 'model';;\ + $ret .= 'current';;\ + $ret .= 'new';;\ + $ret .= '
";;;;\ + #my ($dev,$md,$idx,$ofw,$nfw) = $devStr =~ m/([^\s]+)\s[(]([^\s]+)\s[(](\d+)[)]\sofw_([\d\.]+)\s=>\snfw_([\d\.]+)/;;\ + my ($dev,$idx) = $devStr =~ m/([^\s]+)\s[(](\d+)[)]/;;\ + my $md = ReadingsVal($name,("hmfw-type-".$idx),"?");;\ + my $ofw = AttrVal($dev,"firmware","?");;\ + my $nfw = ReadingsVal($name,("hmfw-version-".$idx),"none");;\ + my $fw_link = "https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=".$md;;\ + $ret .= '';;\ + $ret .= '';; #row\ }\ + $ret .= '';;\ + $ret .= '';;\ + $ret .= AttrVal($dev,"alias",$dev);;\ + $ret .= '';;\ + $ret .= '';;\ + $ret .= $md;;\ + $ret .= '';;\ + $ret .= '';;\ + $ret .= $ofw;;\ + $ret .= '';;\ + $ret .= '';;\ + $ret .= '';;\ + $ret .= $nfw;;\ + $ret .= '';;\ + $ret .= '(next check: ".$nextCheck.")";;\ + $ret .= '