eq3 firmware check funkioniert nicht mehr

Begonnen von slor, 25 Oktober 2017, 23:34:14

Vorheriges Thema - Nächstes Thema

Otto123

#30
Der File heisst im downloadlink
2019-09-03 12:42:37   fw_link-06      http://www.eq-3.de/downloads/software/firmware/hm-es-tx-wm_update_v1_2_160628.tgz

Daraus macht das Tool nach allen regeln der Kunst 1.2

Sie bieten im Service Bereich beide an. Und die 2.2 von Heute, vielleicht müssen wir warten bis sie von a nach b kommt? Vielleicht hat Frank dazu ne Idee - ich weiß nicht ganz wie er in den neuen Bereich gekommen ist :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Nobby1805

Sag ich ja ... Problem bei eq-3  ;)https://www.eq-3.de/downloads/software/firmware/HM-ES-TX-WM_update_V2_2_190619_1.tgz
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Otto123

Das heisst auch, wir sollten https verwenden:reading01Format https://www.eq-3.de%s ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

#33
1. fehlende readings

httpmod meldet jetzt bei dir schon mal "HTTP/1.1 200 OK". allerdings werden keine fw_link-readings generiert. aktuell müssten 19 solcher readings kommen. gestern abend gab es noch 20.

eventuell hattest du heute morgen pech, da gerade wieder am server gearbeitet wurde.
versuche mal ein "set eq3 reread" und schaue, ob die readings nun kommen.

wenn nicht, probiere erneut ein reread mit zusätzlichem attribut httpVersion, das bei mir gesetzt ist:
attr eq3 httpVersion 1.1


2. fw prüfung

damit die prüfung auf neue fw funktioniert, muss nun auch das attribut userreadings geändert werden. : 

newFwForDevices:MATCHED_READINGS.* {
my $ret = "";
my @data;
my @eq3FwList = map{@data = ReadingsVal("eq3","fw_link-".$_,"?") =~ m/firmware\/(.*?)_update_v([\d_]+)_(\d\d)(\d\d)(\d\d)/;
$data[0] =~ s/_/-/g;
sprintf("%s:%s:%s.%s.%s:%s",$data[0],$data[1],$data[4],$data[3],"20".$data[2],$_);
} ReadingsVal("eq3","MATCHED_READINGS","?") =~ m/fw_link-(\d\d)/g;

foreach my $dev (devspec2array("TYPE=CUL_HM:FILTER=DEF=......:FILTER=subType!=(virtual|)")) {
my $md = AttrVal($dev,"model","?");
my $v = AttrVal($dev,"firmware","0.0");
my ($h,$l) = split('\.',$v);
foreach my $newFw (grep m/^${md}:/i,@eq3FwList) {
my ($nh,$nl,$no,$date,$idx) = $newFw =~ m/^[^:]+:(\d+)_(\d+)_?(\d*):([^:]+):(\d\d)$/;
if(($nh > $h) || (($nh == $h) && ($nl > $l))) {
$ret .= "," if($ret ne "");
$ret .= $dev." (".$md." | fw_".$v." => fw".$idx."_".$nh.".".$nl.($no?sprintf(".%d",$no):"")." | ".$date.")";
}
}
}
return ($ret eq "")?"no fw-updates needed!":$ret;
}



da das userreading nun auch einen fehler meldet, falls der eq3-server keine oder falsche daten liefert, muss zusätzlich auch das attrttribut stateformat geändert werden. wer mit einer sub funktion in der 99_myUtils arbeitet, muss natürlich dort die sub ändern:

{
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,$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 .= '| ';
$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="eq3-firmware.tgz" href="'.$link.'">'; 
$ret .= '<b style="color:red">'; 
$ret .= sprintf("%6s",$nfw);
$ret .= '</b>'; 
$ret .= '</a>'; 
$ret .= " | "; 
$ret .= sprintf("%-10s",$date);
$ret .= " |<br>"; 
}
}
$ret .= '</pre>';
$ret .= '</div>';
return $ret;
}





edit:  na hier war ja was los. ihr habt ja fast schon alles gefunden.

mit dieser regex kommt auch die nagelneue fw 2.2 für den tx. somit sind es aktuell wieder 20 fw-files bei mir.
<a.href="(\/downloads\/software\/firmware\/[hH][mM][^"]+)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

ich habe gerade gesehen, dass das userreading noch mal geändert werden muss, da eq3 bei der neuen firmware das "v" im link nun auch wieder gross schreibt. was ist da bei denen bloss los.

newFwForDevices:MATCHED_READINGS.* {
my $ret = "";
my @data;
if (ReadingsVal($name,"UNMATCHED_READINGS","?") eq "") {
my @eq3FwList = map{@data = ReadingsVal($name,"fw_link-".$_,"?") =~ m/firmware\/(.*?)_update_[vV]([\d_]+)_(\d\d)(\d\d)(\d\d)/;
$data[0] =~ s/_/-/g;
sprintf("%s:%s:%s.%s.%s:%s",$data[0],$data[1],$data[4],$data[3],"20".$data[2],$_);
} ReadingsVal($name,"MATCHED_READINGS","?") =~ m/fw_link-(\d\d)/g;

foreach my $dev (devspec2array("TYPE=CUL_HM:FILTER=DEF=......:FILTER=subType!=(virtual|)")) {
my $md = AttrVal($dev,"model","?");
my $v = AttrVal($dev,"firmware","0.0");
my ($h,$l) = split('\.',$v);
foreach my $newFw (grep m/^${md}:/i,@eq3FwList) {
my ($nh,$nl,$no,$date,$idx) = $newFw =~ m/^[^:]+:(\d+)_(\d+)_?(\d*):([^:]+):(\d\d)$/;
if(($nh > $h) || (($nh == $h) && ($nl > $l))) {
$ret .= "," if($ret ne "");
$ret .= $dev." (".$md." | fw_".$v." => fw".$idx."_".$nh.".".$nl.($no?sprintf(".%d",$no):"")." | ".$date.")";
}
}
}
} else {
$ret = "error => no or wrong data from eq3-server!";
}
return ($ret eq "")?"no fw-updates needed!":$ret;
}


zu diesem userreading braucht man auch noch das stateformat aus meinem vorherigen post, damit die neue fehlermeldung angezeigt werden kann.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

"Gegenvorschlag":
m/Firmware\/(.*?)_update_V([\d_]+)_(\d\d)(\d\d)(\d\d)/i;
Zitati
Do case-insensitive pattern matching. For example, "A" will match "a" under /i .
Da könnten sie in Zukunft Update groß schreiben :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

mit "i" klappt es bei mir gerade nicht. ich hätte eigentlich 5 neue fw. nun nichts mehr.

warum funktioniert bei dir eigentlich das gross geschriebene "Firmware" am anfang der regex?

ausserdem habe ich noch im neuen fw link, hinter dem datum, ein "_1" gesehen. was ist das nun wieder?

jemand mit tx device und alter fw müsste das mal testen. also nobby?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

Zitat von: frank am 03 September 2019, 15:26:04
warum funktioniert bei dir eigentlich das gross geschriebene "Firmware" am anfang der regex?
Sorry für die Verwirrung, ich wollte dokumentieren mit /i brauchen wir nichts weiter im "Original" ändern.

Das klappt bei mir nur wenn ich /i anfüge. mmmh warum geht das bei Dir nicht? Ich hatte vorhin auch mal den Zustand auf einem anderen System, aber gerade nochmal getestet, das funktioniert.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

sorry, "i" funktioniert nun doch. ich hatte aus versehen, das "v" ganz rausgeschmissen.  :)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

"i" funktioniert so gut, dass ich die regex auch gleich noch geändert habe.

reading01RegOpt gi
reading01Regex <a.href="(\/downloads\/software\/firmware\/hm[^"]+)


jetzt müssen sie sich aber schon anstrengen, um uns zu ärgern.   8)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Nobby1805

Zitat von: frank am 03 September 2019, 15:26:04
jemand mit tx device und alter fw müsste das mal testen. also nobby?
Ich musste noch eine weitere Änderung machen   8)
Entweder kam nur die Neue Version vom TX und sonst nichts oder es kamen alle, bis auf die V2.2. des TX  ;D
Im Userreading habe ich jetzt [vV] eingebaut, dann klappt es ... wieso funktioniert die i-Option nicht innerhalb des Userreadings?
| HM_4D106F               | HM-ES-TX-WM             |    1.0 |    2.2 | 19.06.2019 |
| HM_4D106F               | HM-ES-TX-WM             |    1.0 |    1.2 | 28.06.2016 |
| Innen                   | HM-TC-IT-WM-W-EU        |    1.1 |  1.3.2 | 27.08.2015 |
| Innen2                  | HM-TC-IT-WM-W-EU        |    1.2 |  1.3.2 | 27.08.2015 |
| Innen3                  | HM-TC-IT-WM-W-EU        |    1.2 |  1.3.2 | 27.08.2015 |
| Innen4                  | HM-TC-IT-WM-W-EU        |    1.1 |  1.3.2 | 27.08.2015 |
| Innen5                  | HM-TC-IT-WM-W-EU        |    1.2 |  1.3.2
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

ms_steini

nur zur Info,

Ihr dürft keine SVG mit gleichem Namen wie der HTTPMOD haben, dann gib's ne ganz schlimme Anzeige!

Otto123

#42
Zitat von: frank am 03 September 2019, 15:26:04
ausserdem habe ich noch im neuen fw link, hinter dem datum, ein "_1" gesehen. was ist das nun wieder?
jemand mit tx device und alter fw müsste das mal testen. also nobby?
Aber im Tester funktioniert das einwandfrei:
https://regex101.com/r/9qZxph/1

Und bei mir auch bei allen Geräten wo ich testen kann.

Im Übrigen zum Testen von eq3 HTTPMOD, quasi jedes beliebige HM Gerät:)
define HM_test CUL_HM AAFFEE
attr HM_test firmware 1.0
attr HM_test modelForce HM-ES-TX-WM
attr HM_test room CUL_HM
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Nobby1805

Tja, ich habe mich auch gewundert ... er zeigte entweder 6 (mit kleinem v) oder 1 (mit großen V) Updates an ... erst mit [vV] waren es dann 7
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Otto123

Zitat von: ms_steini am 03 September 2019, 17:05:53
nur zur Info,

Ihr dürft keine SVG mit gleichem Namen wie der HTTPMOD haben, dann gib's ne ganz schlimme Anzeige!
Kannst Du da noch etwas ausholen? Wo gibt es ne schlimme Anzeige?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz