eq3 firmware check funkioniert nicht mehr

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

Vorheriges Thema - Nächstes Thema

slor

Hallo zusammen,

irgendwie zeigt der Firmwarecheck nichts mehr an. (siehe angehänger screenshot)
Hab dem mit dem Wiki abgeglichen und sieht gleich aus. Es werden auch Readings aktualisiert.

Hier ein List des Geräts.  Ohne den riesen HTML Block. Der hat nicht in den Beitrag gepasst.

Internals:
   BUSY       0
   DEF        http://www.eq-3.de/service/downloads.html 86400
   Interval   86400
   LASTSEND   1508965913.82958
   MainURL    http://www.eq-3.de/service/downloads.html
   MaxAgeEnabled 1
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       HM_Firmwarecheck
   NR         398
   STATE      <div style="text-align:left">last <a title="eq3-downloads" href="http://www.eq-3.de/downloads.html">homematic</a>-fw-check => ???<br><br><pre>| device                  | model                   | old_fw | new_fw | release    |
------------------------------------------------------------------------------------
| <a href="/fhem?detail=">                       </a> | <b style="color:lightgray">                       </b> | <b style="color:lightgray">      </b> | <a title="eq3-firmware.tgz" href="???"><b style="color:red">      </b></a> |            |
</pre></div>
   TRIGGERTIME 1509051576.8372
   TRIGGERTIME_FMT 2017-10-26 22:59:36
   TYPE       HTTPMOD
   addr       http://www.eq-3.de:80
   buf        HTTP/1.1 200 OK

Date: Wed, 25 Oct 2017 21:11:53 GMT

Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_fcgid/2.3.9

X-Powered-By: PHP/5.6.5

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Expires: Fri, 06 Jun 1975 15:10:00 GMT

Vary: User-Agent

Set-Cookie: PHPSESSID=9g3v2cqpn5fc4tql9lhgov8ed6; path=/; HttpOnly

Set-Cookie: BE_USER_AUTH=8ad9b796f6aeacba7ac2ab52acdf7577bd5e02c6; expires=Tue, 24-Oct-2017 21:11:53 GMT; Max-Age=-86400; path=/; httponly

Set-Cookie: FE_USER_AUTH=8ac0cf168eeb0bb45e0cdfac9e5409010c47b81e; expires=Tue, 24-Oct-2017 21:11:53 GMT; Max-Age=-86400; path=/; httponly

Last-Modified: Wed, 25 Oct 2017 21:11:54 GMT

   QUEUE:
   READINGS:
     2017-10-24 21:41:33   LAST_ERROR      read from http://www.eq-3.de:80 timed out
     2017-10-25 23:11:54   LAST_REQUEST    update
     2017-10-25 23:11:54   MATCHED_READINGS fw_link-01 fw_link-02 fw_link-03 fw_link-04 fw_link-05 fw_link-06 fw_link-07 fw_link-08 fw_link-09 fw_link-10 fw_link-11 fw_link-12 fw_link-13 fw_link-14 fw_link-15 fw_link-16 fw_link-17 fw_link-18 fw_link-19 fw_link-20
     2017-10-25 23:11:54   UNMATCHED_READINGS
     2017-10-25 23:11:54   fw_link-01      http://www.eq-3.de/Downloads/Software/Firmware/hm-mod-re-8_update_V1_2_150911.tgz
     2017-10-25 23:11:54   fw_link-02      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Bl1PBU-FM_update_V2_11_1_161212.tgz
     2017-10-25 23:11:54   fw_link-03      http://www.eq-3.de/Downloads/Software/Firmware/hm_dis_ep_wm55_update_V1_2_170129.tgz
     2017-10-25 23:11:54   fw_link-04      http://www.eq-3.de/Downloads/Software/Firmware/HM-ES-PMSw1-Pl-DN-R1_update_V2_5_0009_150217.tgz
     2017-10-25 23:11:54   fw_link-05      http://www.eq-3.de/Downloads/Software/Firmware/HM-Sen-MDIR-WM55_update_V1_2_0_160825.tgz
     2017-10-25 23:11:54   fw_link-06      http://www.eq-3.de/Downloads/Software/Firmware/HM-ES-TX-WM_update_V1_2_160628.tgz
     2017-10-25 23:11:54   fw_link-07      http://www.eq-3.de/Downloads/Software/Firmware/hm-ou-cfm-tw_update_V1_3_160620.tgz
     2017-10-25 23:11:54   fw_link-08      http://www.eq-3.de/Downloads/Software/Firmware/HM-ES-TX-WM_update_V1_1_160318.tgz
     2017-10-25 23:11:54   fw_link-09      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Dim1PWM-CV_update_V2_9_0005_150730.tar.gz
     2017-10-25 23:11:54   fw_link-10      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Dim1L-Pl-3_update_V2_9_0007_150803.tar.gz
     2017-10-25 23:11:54   fw_link-11      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Dim1TPBU-FM_update_V2_9_0005_150730.tar.gz
     2017-10-25 23:11:54   fw_link-12      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Dim1T-Pl-3_update_V2_9_0005_150730.tar.gz
     2017-10-25 23:11:54   fw_link-13      http://www.eq-3.de/Downloads/Software/Firmware/hm-mod-re-8_update_V1_2_150911.tgz
     2017-10-25 23:11:54   fw_link-14      http://www.eq-3.de/Downloads/Software/Firmware/hm_tc_it_wm_w_eu_update_V1_3_002_150827.tgz
     2017-10-25 23:11:54   fw_link-15      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Sw1PBU-FM_update_V2_8_2_150713.tgz
     2017-10-25 23:11:54   fw_link-16      http://www.eq-3.de/Downloads/Software/Firmware/HM-Sen-MDIR-WM55_update_V1_1_2_150413.tgz
     2017-10-25 23:11:54   fw_link-17      http://www.eq-3.de/Downloads/Software/Firmware/HM-ES-PMSw1-Pl_update_V2_5_0009_150217.tgz
     2017-10-25 23:11:54   fw_link-18      http://www.eq-3.de/Downloads/Software/Firmware/hm_cc_rt_dn_update_V1_4_001_141020.tgz
     2017-10-25 23:11:54   fw_link-19      http://www.eq-3.de/Downloads/Software/Firmware/hm-sen-rd-o_update_V1_4_003_130930.tgz
     2017-10-25 23:11:54   fw_link-20      http://www.eq-3.de/Downloads/Software/Firmware/HM-LC-Bl1PBU-FM_update_V2_3_0002_131204.tgz
     2017-10-25 23:11:54   newFwForDevices no fw-updates needed!
   REQUEST:
     data       suchtext=&suche_in=2&downloadart=11
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://www.eq-3.de/service/downloads.html
     value      0
   defptr:
     readingBase:
       fw_link-01 reading
       fw_link-02 reading
       fw_link-03 reading
       fw_link-04 reading
       fw_link-05 reading
       fw_link-06 reading
       fw_link-07 reading
       fw_link-08 reading
       fw_link-09 reading
       fw_link-10 reading
       fw_link-11 reading
       fw_link-12 reading
       fw_link-13 reading
       fw_link-14 reading
       fw_link-15 reading
       fw_link-16 reading
       fw_link-17 reading
       fw_link-18 reading
       fw_link-19 reading
       fw_link-20 reading
     readingNum:
       fw_link-01 01
       fw_link-02 01
       fw_link-03 01
       fw_link-04 01
       fw_link-05 01
       fw_link-06 01
       fw_link-07 01
       fw_link-08 01
       fw_link-09 01
       fw_link-10 01
       fw_link-11 01
       fw_link-12 01
       fw_link-13 01
       fw_link-14 01
       fw_link-15 01
       fw_link-16 01
       fw_link-17 01
       fw_link-18 01
       fw_link-19 01
       fw_link-20 01
     readingOutdated:
     readingSubNum:
       fw_link-01 -1
       fw_link-02 -2
       fw_link-03 -3
       fw_link-04 -4
       fw_link-05 -5
       fw_link-06 -6
       fw_link-07 -7
       fw_link-08 -8
       fw_link-09 -9
       fw_link-10 -10
       fw_link-11 -11
       fw_link-12 -12
       fw_link-13 -13
       fw_link-14 -14
       fw_link-15 -15
       fw_link-16 -16
       fw_link-17 -17
       fw_link-18 -18
       fw_link-19 -19
       fw_link-20 -20
     requestReadings:
       update:
         fw_link-01 reading 01-1
         fw_link-02 reading 01-2
         fw_link-03 reading 01-3
         fw_link-04 reading 01-4
         fw_link-05 reading 01-5
         fw_link-06 reading 01-6
         fw_link-07 reading 01-7
         fw_link-08 reading 01-8
         fw_link-09 reading 01-9
         fw_link-10 reading 01-10
         fw_link-11 reading 01-11
         fw_link-12 reading 01-12
         fw_link-13 reading 01-13
         fw_link-14 reading 01-14
         fw_link-15 reading 01-15
         fw_link-16 reading 01-16
         fw_link-17 reading 01-17
         fw_link-18 reading 01-18
         fw_link-19 reading 01-19
         fw_link-20 reading 01-20
   sslargs:
Attributes:
   enableControlSet 1
   event-on-change-reading .*
   event-on-update-reading LAST_ERROR,MATCHED_READINGS
   reading01AutoNumLen 2
   reading01Format http://www.eq-3.de/%s
   reading01Name fw_link
   reading01RegOpt g
   reading01Regex <a.href="(Downloads\/Software\/Firmware\/[^"]+)
   readingMaxAge 10
   readingMaxAgeReplacementMode delete
   requestData.* suchtext=&suche_in=2&downloadart=11
   room       System
   showError  1
   showMatched 1
   stateFormat {eq3StateFormat()}
   userReadings 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;
}
   userattr   enableControlSet event-on-change-reading event-on-update-reading reading01AutoNumLen reading01Format reading01Name reading01RegOpt reading01RegOpt:s,i,g reading01Regex readingMaxAge readingMaxAgeReplacementMode readingMaxAgeReplacementMode:text,expression,delete readingMaxAgeReplacementMode:text,reading,internal,expression,delete requestData.* showError showMatched stateFormat userReadings webCmd
   webCmd     reread


Fheler im fhem Log:
2017.10.25 23:09:36 1: PERL WARNING: Subroutine eq3StateFormat redefined at ./FHEM/99_myUtilseq3StateFormat.pm line 20.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $idx in concatenation (.) or string at ./FHEM/99_myUtilseq3StateFormat.pm line 38.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $dev in concatenation (.) or string at ./FHEM/99_myUtilseq3StateFormat.pm line 40.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $dev in sprintf at ./FHEM/99_myUtilseq3StateFormat.pm line 41.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $md in string eq at ./FHEM/99_myUtilseq3StateFormat.pm line 44.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $md in sprintf at ./FHEM/99_myUtilseq3StateFormat.pm line 45.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $ofw in string eq at ./FHEM/99_myUtilseq3StateFormat.pm line 48.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $ofw in sprintf at ./FHEM/99_myUtilseq3StateFormat.pm line 49.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $nfw in sprintf at ./FHEM/99_myUtilseq3StateFormat.pm line 54.
2017.10.25 23:09:52 1: PERL WARNING: Use of uninitialized value $date in sprintf at ./FHEM/99_myUtilseq3StateFormat.pm line 58.


99_myUtilseq3StateFormat
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
sub eq3StateFormat() {
  my $name = "eq3";

  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/downloads.html">homematic</a>-fw-check => '.$lastCheck;   
  $ret .= '<br><br>';   
  $ret .= '<pre>';   
  $ret .= "| device                  | model                   | old_fw | new_fw | release    |\n"; 
  $ret .= "------------------------------------------------------------------------------------\n"; 
  my $check = ReadingsVal($name,"newFwForDevices","???");   
  if($check eq "no fw-updates needed!") {       
    $ret .= '| '.$check.'                                                            |';     
  } 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 .= " |\n";       
    }   
  } 
  $ret .= '</pre>'; 
  $ret .= '</div>'; 
  return $ret;
}
1;
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

MadMax-FHEM

Hast du denn Geräte mit "alter" FW?

Bei mir wird (auch) nur angezeigt, wenn eine neue(re) FW für ein verwendetes Gerät da ist...

Dachte auch zunächst es wär "kaputt" aber ich hab für mich beschlossen, dass es so gedacht ist/war...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

zap

Der Firmware check ist abhängig von der Struktur der Download Seite bei eq3. Wenn sich die ändert, muss auch der Check angepasst werden. Das könnte nun der Fall sein (ohne das jetzt geprüft zu haben).
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

MadMax-FHEM

Bei mir zeigt er noch Geräte an...

Grad getestet...

Aber nur welche für die es aktuellere FWs gibt...

Das genügt mir...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CoolTux

@slor

Du solltest mal Dein Devicenamen anpassen.
Dein HTTPMOD Device heist HM_Firmwarecheck. Du gibst aber über all an des er Readings und Co aus dem Device eq3 lesen soll.

sub eq3StateFormat() {
  my $name = "eq3";


userReadings 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)/;
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

slor

das war es.
in eq3 umbenannt und es läuft wieder. Danke!
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

ms_steini

Hallo zusammen, darf ich diesen Beitrag mal aus der Versenkung holen ?

Ich habe genau das gleiche Problem, allerdings heißt mein HTTPMOD "eq3"
Und ich bin mir sicher das min. 1 Gerät "HM-SEN-MDIR-WM55" ein Firmwareupdate benötigt. Wurde auch bis vor kurzem angezeigt. Firmware alt = 1.1 / Firmware neu = 1.2

Ich habe insgesamt 4 von den "HM-SEN-MDIR-WM55", 3 hatte ich bereits mit Firmwareupdates versehen, den 4ten wollte ich irgendwann nachholen.

get hm param -d D-firmware:
    OG.Bewegungsmelder.Diele.1 : 1.2           
    OG.Bewegungsmelder.Diele.2 : 1.2           
    OG.Bewegungsmelder.Diele.3 : 1.2           
    OG.Bewegungsmelder.Treppe.1 : 1.1


hier mal ein paar listings.....
list OG.Bewegungsmelder.Treppe.1:


Internals:
   DEF        4A1DDC
   FUUID      5c5ecff4-f33f-c561-e609-d9c456f049db9601
   HM_LAN_TCP_MSGCNT 18
   HM_LAN_TCP_RAWMSG 050000339BA4414A1DDC460586039B9050
   HM_LAN_TCP_RSSI -51
   HM_LAN_TCP_TIME 2019-09-02 17:36:13
   IODev      HM_LAN_TCP
   LASTInputDev HM_LAN_TCP
   MSGCNT     18
   NAME       OG.Bewegungsmelder.Treppe.1
   NOTIFYDEV  global
   NR         210
   NTFY_ORDER 50-OG.Bewegungsmelder.Treppe.1
   STATE      CMDs_pending
   TYPE       CUL_HM
   channel_01 OG.Bewegungsmelder.Treppe.1_Btn_01
   channel_02 OG.Bewegungsmelder.Treppe.1_Btn_02
   channel_03 OG.Bewegungsmelder.Treppe.1_Motion
   lastMsg    No:9B - t:41 s:4A1DDC d:460586 039B9050
   protCmdPend 7 CMDs_pending
   protLastRcv 2019-09-02 17:36:13
   protRcv    18 last_at:2019-09-02 17:36:13
   protState  CMDs_pending
   rssi_at_HM_LAN_TCP cnt:18 min:-56 max:-50 avg:-52.44 lst:-51
   READINGS:
     2018-10-11 16:25:40   CommandAccepted yes
     2018-10-11 16:25:56   D-firmware      1.1
     2018-10-11 16:25:56   D-serialNr      MEQ1849962
     2018-10-11 16:17:19   PairedTo        0x071267
     2018-10-11 15:02:02   R-pairCentral   0x071267
     2019-09-02 17:36:13   battery         ok
     2018-10-11 17:13:15   brightness      120
     2018-10-11 17:13:15   cover           closed
     2019-09-02 12:39:34   motion          off
     2018-10-11 17:13:15   powerOn         2018-10-11 17:13:15
     2018-10-11 17:13:15   recentStateType info
     2019-09-02 17:35:29   state           CMDs_pending
   cmdStack:
     ++A0010712674A1DDC00040000000000
     ++A0010712674A1DDC01040000000001
     ++A0010712674A1DDC0103
     ++A0010712674A1DDC02040000000001
     ++A0010712674A1DDC0203
     ++A0010712674A1DDC03040000000001
     ++A0010712674A1DDC0303
   helper:
     HM_CMDNR   155
     mId        00DB
     peerFriend
     peerOpt    -:motionAndBtn
     regLst     0
     rxType     28
     supp_Pair_Rep 0
     ack:
     expert:
       def        1
       det        1
       raw        0
       tpl        0
     io:
       newChn     +4A1DDC,02,00,00
       nextSend   1567438573.33525
       rxt        2
       vccu       VCCU
       p:
         4A1DDC
         00
         00
         00
       prefIO:
         HM_LAN_TCP
     mRssi:
       mNo        9B
       io:
         HM_LAN_TCP:
           -45
           -45
     prt:
       bErr       0
       sProc      2
       sleeping   1
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
     rssi:
       at_HM_LAN_TCP:
         avg        -52.4444444444444
         cnt        18
         lst        -51
         max        -50
         min        -56
     tmpl:
Attributes:
   DbLogExclude .*
   IODev      HM_LAN_TCP
   IOgrp      VCCU:HM_LAN_TCP
   autoReadReg 4_reqStatus
   expert     1_allReg
   firmware   1.1
   group      Bewegungsmelder
   icon       hm-sen-mdir-wm55
   model      HM-SEN-MDIR-WM55
   room       Extras
   serialNr   MEQ1849962
   subType    motionAndBtn
   webCmd     getConfig:clear msgEvents


list eq3:
Internals:
   BUSY       0
   DEF        http://www.eq-3.de/service/downloads.html 86400
   FUUID      5c5ecff2-f33f-c561-6617-3f10011a61e8713b
   Interval   86400
   LASTSEND   1567439444.45883
   MainURL    http://www.eq-3.de/service/downloads.html
   MaxAgeEnabled 1
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       eq3
   NOTIFYDEV  global
   NR         36
   NTFY_ORDER 50-eq3
   STATE      <div style="text-align:left">last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => 2019-09-02 17:50:44<br><br><pre>| device                  | model                   | old_fw | new_fw | release    |
------------------------------------------------------------------------------------
| no fw-updates needed!                                                            |</pre></div>
   TRIGGERTIME 1567525812.1355
   TRIGGERTIME_FMT 2019-09-03 17:50:12
   TYPE       HTTPMOD
   addr       https://www.eq-3.de:443
   auth       0
   code       500
   compress   1
   conn       
   data       suchtext=&suche_in=2&downloadart=11
   displayurl https://www.eq-3.de/service/downloads.html
   header     
   host       www.eq-3.de
   httpheader HTTP/1.1 500 Internal Server Error
Date: Mon, 02 Sep 2019 15:50:44 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9
Cache-Control: private, must-revalidate
x-powered-by: PHP/7.1.15
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer-when-downgrade, strict-origin-when-cross-origin
pragma: no-cache
expires: -1
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Set-Cookie: PHPSESSID=lf623isplhsemst4t52v51vkbo; path=/; HttpOnly
Strict-Transport-Security: max-age=15768000
Connection: close
Content-Type: text/html; charset=UTF-8
   httpversion 1.0
   hu_blocking 0
   hu_filecount 8
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /service/downloads.html
   protocol   https
   redirects  1
   timeout    2
   url        https://www.eq-3.de/service/downloads.html
   value      0
   QUEUE:
   READINGS:
     2019-06-29 11:17:24   LAST_ERROR      read from https://www.eq-3.de:443 timed out
     2019-09-02 17:50:44   LAST_REQUEST    update
     2019-09-02 17:50:44   MATCHED_READINGS
     2019-09-02 17:50:44   UNMATCHED_READINGS fw_link
     2019-09-02 17:50:44   newFwForDevices no fw-updates needed!
   REQUEST:
     data       suchtext=&suche_in=2&downloadart=11
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://www.eq-3.de/service/downloads.html
     value      0
   defptr:
     readingBase:
     readingOutdated:
   sslargs:
Attributes:
   DbLogExclude .*
   enableControlSet 1
   event-on-change-reading .*
   event-on-update-reading LAST_ERROR,MATCHED_READINGS
   icon       audio_repeat
   reading01AutoNumLen 2
   reading01Format http://www.eq-3.de/%s
   reading01Name fw_link
   reading01RegOpt g
   reading01Regex <a.href="(Downloads\/Software\/Firmware\/[^"]+)
   readingMaxAge 10
   readingMaxAgeReplacementMode delete
   requestData.* suchtext=&suche_in=2&downloadart=11
   room       System
   showError  1
   showMatched 1
   stateFormat {eq3StateFormat}
   userReadings 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;
}
   userattr   enableControlSet event-on-change-reading event-on-update-reading reading01AutoNumLen reading01Format reading01Name reading01RegOpt reading01RegOpt:s,i,g reading01Regex readingMaxAge readingMaxAgeReplacementMode readingMaxAgeReplacementMode:text,expression,delete readingMaxAgeReplacementMode:text,reading,internal,expression,delete requestData.* showError showMatched stateFormat userReadings webCmd
   webCmd     reread



sub eq3StateFormat: (in 99_myUtils.pm)
sub eq3StateFormat() {
  my $name = "eq3";

  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                   | old_fw | new_fw | release    |\n"; 
  $ret .= "------------------------------------------------------------------------------------\n"; 
  my $check = ReadingsVal($name,"newFwForDevices","???");   
  if($check eq "no fw-updates needed!") {       
    $ret .= '| '.$check.'                                                            |';     
  } 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 .= " |\n";       
    }   
  } 
  $ret .= '</pre>'; 
  $ret .= '</div>'; 
  return $ret;
}


Könnt Ihr evtl. hier einen Fehler finden?

Besten Dank

frank

eq3 hat einiges umgebaut.
ich schau mir das mal an.
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

probier mal folgende änderungen im httpmod device:

1. url in der DEF ändern:
https://www.eq-3.de/ajax/downloads/downloads_eq3.php

2. folgende 3 attribute ändern:
reading01Format http://www.eq-3.de%s
reading01Regex <a.href="(\/downloads\/software\/firmware\/hm[^"]+)
requestData.* suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1
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

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

Zitat von: Otto123 am 02 September 2019, 22:03:25
funktioniert bei mir
Soll ich das ins Wiki übernehmen?
https://wiki.fhem.de/wiki/HomeMatic_Firmware_Update#Basis-Definitionen_f.C3.BCr_Device_eq3

Gruß Otto
ja, das wäre gut.
das interval könntest du auch gleich auf zb eine woche (604800) verlängern. dann nerven wir eq3 deutlich weniger.

gruss frank
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

Hab ich gemacht. Ist aber jetzt schon ein bisschen Flickenteppich. Könnte man mal noch etwas polieren :)
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

ms_steini

Zitat von: frank am 02 September 2019, 20:36:54
probier mal folgende änderungen im httpmod device:

1. url in der DEF ändern:
https://www.eq-3.de/ajax/downloads/downloads_eq3.php

2. folgende 3 attribute ändern:
reading01Format http://www.eq-3.de%s
reading01Regex <a.href="(\/downloads\/software\/firmware\/hm[^"]+)
requestData.* suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1


hab ich gemacht, aber leider nein, funktioniert nicht.

frank

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

ms_steini

list eq3:
Internals:
   BUSY       0
   DEF        https://www.eq-3.de/ajax/downloads/downloads_eq3.php 86400
   FUUID      5c5ecff2-f33f-c561-6617-3f10011a61e8713b
   Interval   86400
   LASTSEND   1567492138.83758
   MainURL    https://www.eq-3.de/ajax/downloads/downloads_eq3.php
   MaxAgeEnabled 1
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       eq3
   NOTIFYDEV  global
   NR         36
   NTFY_ORDER 50-eq3
   STATE      <div style="text-align:left">last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => 2019-09-03 08:28:59<br><br><pre>| device                  | model                   | old_fw | new_fw | release    |
-----------------------------------------------------------------------------------
| no fw-updates needed!                                                            |</pre></div>
   TRIGGERTIME 1567577634.35381
   TRIGGERTIME_FMT 2019-09-04 08:13:54
   TYPE       HTTPMOD
   addr       https://www.eq-3.de:443
   auth       0
   code       200
   compress   1
   conn       
   data       suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1
   displayurl https://www.eq-3.de/ajax/downloads/downloads_eq3.php
   header     
   host       www.eq-3.de
   httpheader HTTP/1.1 200 OK
Date: Tue, 03 Sep 2019 06:28:58 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9
X-Powered-By: PHP/7.1.15
Strict-Transport-Security: max-age=15768000
Connection: close
Content-Type: text/html; charset=UTF-8
   httpversion 1.0
   hu_blocking 0
   hu_filecount 13
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /ajax/downloads/downloads_eq3.php
   protocol   https
   redirects  0
   timeout    2
   url        https://www.eq-3.de/ajax/downloads/downloads_eq3.php
   value      0
   QUEUE:
   READINGS:
     2019-06-29 11:17:24   LAST_ERROR      read from https://www.eq-3.de:443 timed out
     2019-09-03 08:28:59   LAST_REQUEST    update
     2019-09-03 08:28:59   MATCHED_READINGS
     2019-09-03 08:28:59   UNMATCHED_READINGS fw_link
     2019-09-03 08:28:59   newFwForDevices no fw-updates needed!
   REQUEST:
     data       suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.eq-3.de/ajax/downloads/downloads_eq3.php
     value      0
   defptr:
     readingBase:
     readingOutdated:
   sslargs:
Attributes:
   DbLogExclude .*
   enableControlSet 1
   event-on-change-reading .*
   event-on-update-reading LAST_ERROR,MATCHED_READINGS
   icon       audio_repeat
   reading01AutoNumLen 2
   reading01Format http://www.eq-3.de%s
   reading01Name fw_link
   reading01RegOpt g
   reading01Regex reading01Regex <a.href="(\/downloads\/software\/firmware\/hm[^"]+)
   readingMaxAge 10
   readingMaxAgeReplacementMode delete
   requestData.* suchbegriff=&quelle=29&suchkategorie=3&themenbereich=1
   room       System
   showError  1
   showMatched 1
   stateFormat {eq3StateFormat}
   userReadings 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;
}
   userattr   enableControlSet event-on-change-reading event-on-update-reading reading01AutoNumLen reading01Format reading01Name reading01RegOpt reading01RegOpt:s,i,g reading01Regex readingMaxAge readingMaxAgeReplacementMode readingMaxAgeReplacementMode:text,expression,delete readingMaxAgeReplacementMode:text,reading,internal,expression,delete requestData.* showError showMatched stateFormat userReadings webCmd
   webCmd     reread