eq3 firmware check funkioniert nicht mehr

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

Vorheriges Thema - Nächstes Thema

enno

Zitat von: Kiter1988 am 18 September 2022, 12:22:55
Hallo,

könnte mir jemand die Firmware 1.4 für die Thermostate HM-CC-RT-DN zusenden ?
Finde sie nirgends im Internet.
hilft dies?

https://forum.fhem.de/index.php/topic,93074.msg1022259.html#msg1022259

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

desmoloch

Da ich auch leider nach den Firmwares gesucht hab. Hier gibt es eine gute Anleitung wie man an die Firmware kommt: https://github.com/alexreinert/debmatic/issues/222
Für den RT-DN wäre es dann: https://ccu3-update.homematic.com:8443/firmware/download?cmd=download&serial=0&product=HM-CC-RT-DN

Gruß

kamp

geht das nicht mehr? error => no or wrong data from eq3-server!

yersinia

Zitat von: kamp am 02 Juni 2023, 19:45:12geht das nicht mehr? error => no or wrong data from eq3-server!
Doch, funktioniert. Mehr Details hast du nicht?
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

kamp

wenn du mir sagst, wie ich mehr details aus dieser fehlermeldung vom device bekomme, dann gerne :)

yersinia

Fangen wir doch mal mit einem List des Devices an!?

Darüber hinaus - hast du dies mal probiert => https://forum.fhem.de/index.php?topic=110271.0
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

kamp

#231
Hallo, nein ein anderes Device habe ich nicht probiert, die Frage hier bezieht sich ja auf das httpmod hm_fw_check_v2 template, welches bei mir nicht mehr funktioniert.

Internals:
   BUSY       0
   CFGFN     
   DEF        https://update.homematic.com/firmware/api/firmware/search/DEVICE 86400
   FUUID      6480b4b3-f33f-1b7d-306b-e0b11888038af228
   Interval   86400
   MainURL    https://update.homematic.com/firmware/api/firmware/search/DEVICE
   ModuleVersion 4.1.15 - 17.12.2022
   NAME       hm_fw_check
   NOTIFYDEV  global
   NR         6502
   NTFY_ORDER 50-hm_fw_check
   STATE      <div style="text-align:left;"><div>last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html" rel="noopener noreferrer" target="_blank">homematic</a>-fw-check => 2023-06-07 18:47:47</div><div style="color:red;font-weight:bold;">error => no or wrong data from eq3-server!</div><br /><div style="text-align:left;">(next check: 2023-06-08 18:47:47)</div></div>
   TYPE       HTTPMOD
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://update.homematic.com:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://update.homematic.com/firmware/api/firmware/search/DEVICE
     header     
     host       update.homematic.com
     httpheader HTTP/1.1 200 OK
Server: nginx
Date: Wed, 07 Jun 2023 16:47:47 GMT
Content-Type: text/plain
Content-Length: 1288
Connection: close
content-encoding: gzip
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: upgrade-insecure-requests
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /firmware/api/firmware/search/DEVICE
     protocol   https
     redirects  0
     timeout    2
     url        https://update.homematic.com/firmware/api/firmware/search/DEVICE
     sslargs:
   QUEUE:
   READINGS:
     2023-06-07 18:48:20   attrTemplateVersion 20201206
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://update.homematic.com/firmware/api/firmware/search/DEVICE
Attributes:
   do_not_notify 1
   enableControlSet 1
   icon       hm_ccu
   model      hm_fw_check_v2
   reading01AutoNumLen 3
   reading01Name hmfw-type
   reading01RegOpt g
   reading01Regex (?i)"type":"((?:\w+[-]*){1,})
   reading02AutoNumLen 3
   reading02Name hmfw-version
   reading02RegOpt g
   reading02Regex (?si)"version":"(\d+[.]\d+[.]\d+)
   readingMaxAge 10
   readingMaxAgeReplacementMode delete
   room       HTTPMOD
   showError  1
   showMatched 1
   showNewFWOnly yes
   stateFormat {   my $ret ="";
my $lastCheck = FmtDateTime(InternalVal($name,".LastUpdate",0));
my $nextCheck = FmtDateTime(InternalVal($name,".TRIGGERTIME",0));
my $cellstyle = "padding:3pt;border-bottom:1px dotted lightgray;";
    $ret .= '<div style="text-align:left;">';
    $ret .= '<div>last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html" rel="noopener noreferrer" target="_blank">homematic</a>-fw-check => '.$lastCheck;
    $ret .= '</div>';
    my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");
    if($check eq "no fw-updates needed!") {
      $ret .= '<div style="color:limegreen;font-weight:bold;">';
      $ret .= $check;
      $ret .= '</div>';
    } elsif($check eq "error => no or wrong data from eq3-server!") {
      $ret .= '<div style="color:red;font-weight:bold;">';
      $ret .= $check;
      $ret .= '</div>';
    } else {
$ret .= '<div style="display:table;width:100%;">';
$ret .= '<div style="display:table-row;">';
      $ret .= '<div style="display:table-cell;'.$cellstyle.'width:50%;font-weight:bold;">device</div>';
  $ret .= '<div style="display:table-cell;'.$cellstyle.'width:40%;font-weight:bold;">model</div>';
  $ret .= '<div style="display:table-cell;'.$cellstyle.'width:5%;font-weight:bold;">current</div>';
  $ret .= '<div style="display:table-cell;'.$cellstyle.'width:5%;font-weight:bold;">new</div>';
$ret .= '</div>'; #header
      my @devices = split(',',$check);
      foreach my $devStr (@devices) {
my ($dev,$idx) = $devStr =~ m/([^\s]+)\s[(](\d+)[)]/;
my $md = ReadingsVal($name,("hmfw-type-".$idx),"?");
my $ofw = InternalVal($dev,"firmware",AttrVal($dev,"firmware","0.0"));
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 .= '<div style="display:table-row;">';
$ret .= '<div style="display:table-cell;'.$cellstyle.'width:50%;">';
        $ret .= '<a href="/fhem?detail='.$dev.'" target="_blank">';
$ret .= AttrVal($dev,"alias",$dev);
        $ret .= '</a></div>';
$ret .= '<div style="display:table-cell;'.$cellstyle.'width:30%;font-weight:bold;color:lightgrey;">';
        $ret .= $md;
        $ret .= '</div>';
$ret .= '<div style="display:table-cell;'.$cellstyle.'width:10%;font-weight:bold;color:lightgrey;">';
        $ret .= $ofw;
        $ret .= '</div>';
$ret .= '<div style="display:table-cell;'.$cellstyle.'width:10%;font-weight:bold;color:red;">';
        $ret .= '<a title="download firmware file" href="'.$fw_link.'" rel="noopener noreferrer" target="_blank" style="color:red;">';
        $ret .= $nfw;
        $ret .= '</a></div>';
        $ret .= '</div>'; #row
      }
  $ret .= '</div>'; #table
    }
$ret .= "<br \/><div style=\"text-align:left;\">(next check: ".$nextCheck.")</div>";
    $ret .= '</div>';
  return $ret;
}
   userReadings newFwForDevices:MATCHED_READINGS.* {
  my $ret = "";
  my $newfwonly = AttrVal($name,"showNewFWOnly","yes");
  if (ReadingsVal($name,"UNMATCHED_READINGS","?") eq "") {
    my @eq3FwList = map {
sprintf(uc(ReadingsVal($name,"hmfw-type-".$_,"?")).":".ReadingsVal($name,"hmfw-version-".$_,"?").":".$_);
} ReadingsVal($name,"MATCHED_READINGS","?")=~ m/hmfw-version-(\d\d\d)/g;

foreach my $dev (devspec2array("TYPE=CUL_HM|HMCCUDEV:FILTER=DEF=(......|..............):FILTER=subType!=virtual")) {
my $md = uc(InternalVal($dev,"ccutype",AttrVal($dev,"model","?")));
my $v = InternalVal($dev,"firmware",AttrVal($dev,"firmware","0.0"));
        my ($h,$l) = split('\.',$v);
        foreach my $newFW (grep m/^${md}:/i,@eq3FwList) {
my ($fwmd, $fwv, $idx) = $newFW =~ m/([^:]+):(\d+[.]\d+[.]\d+):(\d+)$/;
my ($fwh, $fwl) = split('\.',$fwv);
if(($newfwonly eq "no") || (($fwh > $h) || (($fwh == $h) && ($fwl > $l)))) {
  $ret .= "," if($ret ne "");
  $ret .= $dev." (".$idx.")";
        }
      }
    }
  } else {
    $ret = "error => no or wrong data from eq3-server!";
  }
  return ($ret eq "")?"no fw-updates needed!":$ret;
}
   userattr   showNewFWOnly:yes,no
   webCmd     reread

Ich würde gerne herausfinden, ob das httpmod template defekt ist und ggf. angepasst werden muss, damit es wieder läuft. Wenn das nichts wird, kann man ja nach alternativen weiter schauen :)

yersinia

Mmh, soweit sieht dein List aus - bis auf, dass dir einige readings (LAST_REQUEST, MATCHED_READINGS) fehlen. Ich kann den Fehler auch nicht nachvollziehen. Ein neues Device mit dem Template liefert Daten nach einem reread.
Was wird dir angezeigt, wenn du
https://update.homematic.com/firmware/api/firmware/search/DEVICEmal direkt aufrufst?

Möglicherweise ist dies ein Problem deines FHEMs - veraltete SSL, OS oder HTTPMOD Version?
Auf welchem OS läuft denn dein FHEM? Und welche FHEM Revision (Ausgabe von version in der FHEM Kommandozeile) hast du?
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

kamp

#233
Die fehlenden Readings kann daran liegen, dass ich das Device kurz zuvor gelöscht und neu erstellt hatte, nur um sicher zu gehen. Wenn ich die URL in Edge auf meinem PC aufrufe, bekomme ich ein JSON. Auch mittels wget via ssh auf der FHEM-Maschine.

FHEM läuft auf einem proxmox-LXC mit Ubuntu 20.04, regelmäßige updates.
Latest Revision: 27642

File                      Rev   Last Change

fhem.pl                   27498 2023-04-30 08:50:41Z rudolfkoenig
98_HTTPMOD.pm             27065 2023-01-15 17:33:44Z StefanStrobel

yersinia

Tja, da bin ich nun von hier aus ratlos. ::) Evtl weiss ein anderer Forist noch weiter.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

betateilchen

#235
Naja, es kommt ja ein HTTP 200 zurück, also ist der Aufruf erstmal ok.

Für eine Fehlersuche würde ich zuerst das Attribut showBody 1 setzen, damit man sehen kann, WAS da bei einem reread zurückkommt.

Edit: die Rückgabe scheint ok zu sein, bei mir kommt die gleiche content-length zurück:

httpheader HTTP/1.1 200 OK
Server: nginx
Date: Thu, 08 Jun 2023 21:28:30 GMT
Content-Type: text/plain
Content-Length: 1288
Connection: close
content-encoding: gzip
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: upgrade-insecure-requests
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /firmware/api/firmware/search/DEVICE
     protocol   https
     redirects  0
     timeout    2
     url        https://update.homematic.com/firmware/api/firmware/search/DEVICE
     sslargs:

Das heißt, das Problem liegt wohl im Auswertungsteil selbst.
Bei mir funktioniert das device wie gehabt unauffällig.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 09 Juni 2023, 18:24:36Das heißt, das Problem liegt wohl im Auswertungsteil selbst.
Bei mir funktioniert das device wie gehabt unauffällig.

Nachtrag: ich verwende allerdings nicht attrTemplate, sondern habe das selbst eingepflegt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!