Anwendungsbeispiel JsonMod #6: eq3 / homematic firmware check

Begonnen von yersinia, 16 April 2020, 13:08:51

Vorheriges Thema - Nächstes Thema

yersinia

Hallo zusammen,

es gibt bereits einen eq-3 firmware check basierend auf HTTPMOD (auch als httmod template). Da eq-3 einen JsonP String der Firmware-Versionen liefert, warum dann nicht JsonMod nutzen?

Vorbedingung ist die JsonMod.pm Version ab heute morgen heute morgen (Rev. 22651).

Anbei die RAW Definition (Dank an @mcp für den HmIP Input & Dank an @dennisk für die HMCCUCHN-Erweiterung):
defmod homematic_fw_check JsonMod https://update.homematic.com/firmware/api/firmware/search/DEVICE
attr homematic_fw_check userattr updatableDevicesMode:onlyUpdatable,all useFwAliasMode:normal,convert2Alias
attr homematic_fw_check interval 0 12 * * *
attr homematic_fw_check readingList multi(jsonPath('$[*]'), uc(property('type')), property('version'));;
attr homematic_fw_check stateFormat { my $ret = "";;\
my $highlightcolor = "DarkSlateGray";;\
my $lastCheck = ReadingsTimestamp($name,".computedReadings",0);;\
my $nextCheck = InternalVal($name,"NEXT","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 => ';;\
$ret .= $lastCheck;;\
$ret .= '</div>';;\
if(AttrVal($name,"updatableDevicesMode","") eq "all") {\
$ret .= "<div>Attribute <font style=\"color:yellow;;\">updatableDevicesMode</font> is set to <font style=\"color:yellow;;font-weight:bold;;\">all</font> = <font style=\"font-style:italic;;\">all found Devices</font> will be displayed.</div>";;\
}\
if(AttrVal($name,"useFwAliasMode","") eq "convert2Alias") {\
$ret .= "<div>Attribute <font style=\"color:yellow;;\">useFwAliasMode</font> is set to <font style=\"color:yellow;;font-weight:bold;;\">convert2Alias</font> = Device model is replaced where applicable.</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 .= '<br /><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,$readingStr) = $devStr =~ m/([^\s]+)[(]([^\s]+)[)]/;;\
        #my $md = AttrVal($dev,"model","?");;\
my $md = $readingStr;;\
        my $ofw = InternalVal($dev,"firmware",ReadingsVal($dev,"D-firmware",AttrVal($dev,"firmware","0.0")));;\
        my $nfw = ReadingsVal($name,$md,"none");;\
my $fw_link = "https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=".$md;;\
$ret .= '<div style="display:table-row;;" onmouseover="this.style.background=\''.$highlightcolor.'\';;" onmouseout="this.style.background=\'transparent\';;">';;\
$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:40%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $md;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:5%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $ofw;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:5%;;font-weight:bold;;">';;\
        $ret .= '<a title="download firmware file" href="'.$fw_link.'" rel="noopener noreferrer" target="_blank"';;\
if($nfw ne "none") {\
        my ($oh, $ol, $op) = split('\.',$ofw);;\
$op //= "0";;\
        my ($nh, $nl, $np) = split('\.',$nfw);;\
if(($nh > $oh) || (($nh == $oh) && ($nl > $ol)) || (($nh == $oh) && ($nl == $ol) && ($np > $op))) {\
  $ret .= ' style="color:red !important;;"';;\
            }\
}\
        $ret .= '>'.$nfw;;\
        $ret .= '</a></div>';;\
$ret .= '</div>';; #row\
      }\
  $ret .= '</div><br \/>';; #table\
    }\
$ret .= "<div style=\"text-align:left;;\">(next check: ".$nextCheck.")</div>";;\
$ret .= '</div>';;\
  return $ret;;\
}
attr homematic_fw_check updatableDevicesMode onlyUpdatable
attr homematic_fw_check update-on-start 0
attr homematic_fw_check useFwAliasMode normal
attr homematic_fw_check userReadings newFwForDevices {\
  my $ret = "";;\
  my $newfwonly = AttrVal($name,"updatableDevicesMode","");;\
  my $fwaliasmode = AttrVal($name,"useFwAliasMode","");;\
  my %modelalias = qw(HM-LC-JAPBU-FM HM-LC-BL1PBU-FM\
  HM-LC-SW2PBU-FM HM-LC-BL1PBU-FM\
  HM-LC-SW1-DR HM-LC-BL1PBU-FM);; #cur_model fw_alias\
  if (ReadingsVal($name,".computedReadings","none") ne "none") {\
  my @devices = split(',',ReadingsVal($name,".computedReadings","none"));;\
foreach my $dev (devspec2array("TYPE=CUL_HM|HMCCUDEV|HMCCUCHN:FILTER=DEF=(......|..............|................):FILTER=subType!=virtual")) {\
  my $md = uc(InternalVal($dev,"ccutype",AttrVal($dev,"model","?")));;\
  if(($fwaliasmode eq "convert2Alias") && (exists($modelalias{$md}))) {\
  $md = $modelalias{$md};;\
  }\
  my $v = InternalVal($dev,"firmware",ReadingsVal($dev,"D-firmware",AttrVal($dev,"firmware","0.0")));;\
  my ($h,$l) = split('\.',$v);;\
  if ((ReadingsVal($name,$md,"none") ne "none") || ($newfwonly eq "all")) {\
my $fwv = ReadingsVal($name,$md,"0.0");;\
my ($fwh, $fwl) = split('\.',$fwv);;\
if(($newfwonly eq "all") || (($fwh > $h) || (($fwh == $h) && ($fwl > $l)))) {\
  $ret .= $dev."(".$md.") ";;\
}\
  }\
}\
  } else {\
$ret = "error => no or wrong data from eq3-server!";;\
  }\
  return ($ret eq "")?"no fw-updates needed!":$ret;;\
}
attr homematic_fw_check verbose 3
attr homematic_fw_check webCmd reread


Die Funktion entspricht grundsätzlich dem Httpmod template. Es gibt auch hier ein user Attribute updatableDevicesMode - beim Standard onlyUpdatable werden nur solche Devices, für die eine neue firmware gefunden worden ist, angezeigt; bei all werden alle HM-Devices im FHEM mit der gefundenen Firmware Version angezeigt. Dadurch können auch Devices auftauchen, für die es idR keine Updates geben würde (zB HM-SEC-SCO). Mit dem Update vom 25.11.'20 werden sowohl HM als auch HmIP Devices angezeigt.

Das user Attribut useFwAliasMode bewirkt ein Ersetzen des Device models bei der Prüfung - dazu muss der Wert vom Standard normal auf convert2Alias geändert werden. Folgende Alias sind in dem Template derzeit definiert:
HM-LC-JAPBU-FM -> HM-LC-BL1PBU-FM
HM-LC-SW2PBU-FM -> HM-LC-BL1PBU-FM
HM-LC-SW1-DR -> HM-LC-BL1PBU-FM

Die Änderung greift erst nach einem erneuten Update.

Das Interval ist auf täglich, 12 Uhr gesetzt und kann/sollte nach Bedarf angepasst werden:
attr homematic_fw_check interval 0 12 * * *

Bei der Erstausführung des Devices kann es zu einer Fehlermeldung kommen. Über die WebCmd Funktion reread können die Daten neu eingelesen werden. Ein reload über temporäres anpassen des Intervals ist möglich, zB für alle zwei Minuten. Zurückstellen nicht vergessen.

Die Versionsprüfung basiert bei den HM-Devices auf zwei Attributen: model und firmware (bei HmIP sind es die Internals ccutype und firmware). Hier kommt es in einem -mir bekannten- Fall zu einem Missmatch weil eq-3 HM-LC-Bl1PBU-FM definiert, das entsprechende HM Device aber HM-LC-BL1PBU-FM beinhaltet.
Die Firmware des FHEM Devices hat nur zwei Positionen: x.y; eq-3 liefert allerdings drei Positionen: x.y.z. Dadurch kann es zu Ungenauigkeiten kommen.

Das Device kann auch nur solche Geräte anzeigen, die in der Quelle zur Verfügung gestellt werden. So gibt es zB für den HM-ES-PMSW1-PL (oder den oben erwähnten HM-SEC-SCO) keine Firmware Einträge.

EDIT 2020-04-16: fixed typo im interval
EDIT 2020-04-19: weg vom <pre> zu mehr responsive design (<div>-Tabelle); typo in der 'doku'
EDIT 2020-04-24: row-highlighting bei onmouseover hinzugefügt; die Farbe ist DodgerBlue; kann im stateFormat Attribut angepasst/ersetzt werden
EDIT 2020-04-30: Attribute showNewFWOnly durch updatableDevicesMode; uppercase Model-Bezeichnung Konflikt gelöst
EDIT 2020-08-24: mit der Revision 22651 und neuen JsonMod Funktionen, konnte ich den Code etwas optimieren; neue Funktion/user Attribut useFwAliasMode hinzugefügt
EDIT 2020-11-26: Vielen Dank an @mcp für den HmIP Input sowie Test
EDIT 2020-12-03: Änderung der Datum-/Zeitanzeige (Letzte Aktualisierung, nächste Aktualisierung) zurück auf FHEM Standard: YYYY-MM-DD hh:mm:ss
EDIT 2021-07-18: Vielen Dank an @dennisk für die HMCCUCHN-Erweiterung sowie Test
EDIT 2022-11-01: Aufnahme des readings D-firmware für die Firmware-Version
EDIT 2022-11-02: fix Perl-Warnings
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

wendeling

Hallo,
bin auf Zufall , da ich ein Update für Homatic Geräte gesucht habe hier gelandet.

Habe Dein letzte Skript eingespielt.
Bekomme folgende Meldung :

Zur Info, habe zuvor ein komplettes Update von FHEM und Raspberry durchgeführt.
Was mache ich falsch ?

mfg
Wendelin



yersinia

Wenn das Device angelegt worden ist, dauert es ein paar Sekunden bis das Device das JsonP verarbeitet hat.
Einfach nochmal in das Device schauen, ob sich was getan hat.
(du siehst es zB an dem
Zitatlast homeatic-fw-check => 01.01. 00:00
-> da sollte Datum und Uhrzeit des letzten Laufs stehen)

Wenn sich immernoch nichts tut, benötige ich ein list des Devices
list homematic_fw_check
und die version von JsonMod
version JsonMod
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

wendeling

Hallo,
hier das homatic list :


Internals:
   CFGFN     
   DEF        https://update.homematic.com/firmware/api/firmware/search/DEVICE
   FUUID      5e9fe73f-f33f-d27b-0d21-611d5bee33eb6cd8
   NAME       homematic_fw_check
   NEXT       2020-04-22 12:00:00
   NOTIFYDEV  global
   NR         1820
   NTFY_ORDER 50-homematic_fw_check
   STATE      <div style="text-align:left;">last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html" rel="noopener noreferrer" target="_blank">homematic</a>-fw-check => 01.01. 00:00<br /><br /><div style="color:red;font-weight:bold;">error => no or wrong data from eq3-server!</div><br /><div style="text-align:left;">(next check: 22.04. 12:00)</div></div>
   SVN        21711 2020-04-17 23:29:22 UTC
   TYPE       JsonMod
   .userReadings:
     HASH(0x5555b58)
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://update.homematic.com/firmware/api/firmware/search/DEVICE
     SECRET:
   READINGS:
Attributes:
   icon       hm_ccu
   interval   0 12 */1 * *
   readingList multi(jsonPath('$[*]'), property('type'), property('version'));
   room       Z_WHICHROOM
   showNewFWOnly yes
   stateFormat { my $ret = "";
my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,".computedReadings","2000-01-01 00:00:00"))));
my $nextCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(InternalVal($name,"NEXT","2000-01-01 00:00:00"))));
my $cellstyle = "padding:3pt;border-bottom:1px dotted lightgray;";
$ret .= '<div style="text-align:left;">';
$ret .= 'last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html" rel="noopener noreferrer" target="_blank">homematic</a>-fw-check => ';
$ret .= $lastCheck;
$ret .= '<br />';
if(AttrVal($name,"showNewFWOnly","yes") eq "no") {
$ret .= "Attribute <font style=\"color:yellow;\">showNewFWOnly</font> is set to <font style=\"color:yellow;font-weight:bold;\">no</font> = <font style=\"font-style:italic;\">all found Devices</font> will be displayed.";
}
$ret .= '<br />';
    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 .= '<br /><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:30%;font-weight:bold;">model</div>';
  $ret .= '<div style="display:table-cell;'.$cellstyle.'width:10%;font-weight:bold;">current</div>';
  $ret .= '<div style="display:table-cell;'.$cellstyle.'width:10%;font-weight:bold;">new</div>';
$ret .= '</div>'; #header
      my @devices = split(' ',$check);
      foreach my $dev (@devices) {
        my $md = AttrVal($dev,"model","?");
        my $ofw = AttrVal($dev,"firmware","0.0");
        my $nfw = ReadingsVal($name,$md,"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;;
}
   update-on-start 1
   userReadings newFwForDevices {
  my $ret = "";;
  my $newfwonly = AttrVal($name,"showNewFWOnly","yes");;
  if (ReadingsVal($name,".computedReadings","none") ne "none") {
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);;
  if ((ReadingsVal($name,$md,"none") ne "none") || ($newfwonly eq "no")) {
my $fwv = ReadingsVal($name,$md,"0.0");;
my ($fwh, $fwl) = split('\.',$fwv);;
if(($newfwonly eq "no") || (($fwh > $h) || (($fwh == $h) && ($fwl > $l)))) {
  $ret .= $dev." ";;
}
  }
}
  } else {
$ret = "error => no or wrong data from eq3-server!";;
  }
  return ($ret eq "")?"no fw-updates needed!":$ret;;
}
   userattr   showNewFWOnly:yes,no


und die Version .

es hat sich nichts verändert !




Otto123

#4
Moin,
Zitatdauert es ein paar Sekunden bis das Device das JsonP verarbeitet hat.
kann ich bestätigen, nach ein paar Minuten war dann alles da. Danke!

Aber jetzt die Frage: meine HM-TC-IT-WM-W-EU  zeigen mir jetzt an es gäbe eine neue Firmware 1.3 -> 1.4.2
Aber wo bekomme ich die her? siehe weiter unten
auf der Seite wo das JsonMod jetzt sucht bin ich zu doof zum finden  ::)

Hast Du da noch einen Tipp

Gruß Otto
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

carlos

Also bei mir funktioniert der Tasmota check auch nicht.
Der ESPEasy check geht seit heute. Da war es genau so
Irgendwas mit dem Datum bzw. Zeit stimmt wohl ncht.
Siehe screen shot.
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

wendeling

Hallo,
also doch jetzt mit dieser Anzeige:

Wie bekomme ich die große Ansicht ?


MadMax-FHEM

Zitat von: Otto123 am 22 April 2020, 09:22:47
Moin,kann ich bestätigen, nach ein paar Minuten war dann alles da. Danke!

Aber jetzt die Frage: meine HM-TC-IT-WM-W-EU  zeigen mir jetzt an es gäbe eine neue Firmware 1.3 -> 1.4.2
Aber wo bekomme ich die her? auf der Seite wo das JsonMod jetzt sucht bin ich zu doof zum finden  ::)

Hast Du da noch einen Tipp

Gruß Otto

Wenn du sie nicht findest, kann ich sie später mal hier einstellen...
...die gibt es schon lange.

Ich hab sie mir "damals" noch von der "alten" Seite runtergeladen...

EDIT: oder das mal probieren https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=HM-TC-IT-WM-W-EU stammt aus "meinem" HTTPMOD-FW-Check...

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)

Otto123

#8
Hallo Joachim,

ja das ist sicher eine Lösung, aber generell: Wie kann man denn mit dem JsonMod Tool die Firmware Unterschiede finden wenn die Firmware selbst scheinbar gar nicht da ist? Was haben die da für ne Seite gebastelt? Oder muss man hier einfach noch einen Anderen Link propagieren? Das Tool hier aus dem Thread zeigt den Link in der letzten Spalte  ;D
Im HTTPMOD Tool haben wir ja sogar die Links zur Firmware mit reingebaut.

Edit: Ja genau, jetzt hat sich unsere Editiererei überschnitten :)

Gruß Otto
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

herrmannj

JsonMod hat ein attribut bekommen "update-on-start". Wenn man das auf '1' setzt dann werden die Daten beim "starten" bereits das erste mal gelesen, sonst das erste mal wenn das intervall erreicht ist. Das Verhalten ist "neu" / etwa eine Woche.

Dies: "meine HM-TC-IT-WM-W-EU  zeigen mir jetzt an es gäbe eine neue Firmware 1.3 -> 1.4.2" steht bei EQ3 tatsächlich so in der Datei. Da steht drin 1.4.2

Otto123

Daran hab ich nicht gezweifelt. Ich glaube das HTTPMOD Tool hat mir die letzte Zeit (Jahre?) da nie was gezeigt. Wahrscheinlich war es schon in irgendeiner Art "kaputt".
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

yersinia

#11
Zitat von: Otto123 am 22 April 2020, 09:22:47Aber jetzt die Frage: meine HM-TC-IT-WM-W-EU  zeigen mir jetzt an es gäbe eine neue Firmware 1.3 -> 1.4.2
Aber wo bekomme ich die her? auf der Seite wo das JsonMod jetzt sucht bin ich zu doof zum finden  ::)
Entweder wie MadMax-FHEM schreibt direkt aufrufen oder du klickst auf den Link der neuen, rot eingefärbten firmware Version (letzte Spalte).

Zitat von: carlos am 22 April 2020, 09:42:58Also bei mir funktioniert der Tasmota check auch nicht.
Der ESPEasy check geht seit heute. Da war es genau so
Irgendwas mit dem Datum bzw. Zeit stimmt wohl ncht.
JsonMod muss anscheinend einmal richtig laden. Man könnte das Interval temporär auf */2 * * * * (alle zwei Minuten) setzen. Für ESPEasy und tasmota fw check gibt es einen eigenen Thread:
Anwendungsfall JsonMod #7: github api für firmware update checks nutzen

Zitat von: wendeling am 22 April 2020, 09:45:23Wie bekomme ich die große Ansicht ?
siehe post #1:
Zitat von: yersinia am 16 April 2020, 13:08:51Es gibt auch hier ein user Attribute showNewFWOnly - beim Standard yes werden nur solche Devices, für die eine neue firmware gefunden worden ist, angezeigt; bei no werden alle HM-Devices im FHEM mit der gefundenen Firmware Version angezeigt.
Setze das Attribut showNewFWOnly auf no

Zitat von: Otto123 am 22 April 2020, 09:58:58ja das ist sicher eine Lösung, aber generell: Wie kann man denn mit dem JsonMod Tool die Firmware Unterschiede finden wenn die Firmware selbst scheinbar gar nicht da ist? Was haben die da für ne Seite gebastelt? Oder muss man hier einfach noch einen Anderen Link propagieren? Im HTTPMOD Tool haben wir ja sogar die Links zur Firmware mit reingebaut.
In der rechten Spalte gibt es den Link direkt auf die neue, rot eingefärbte firmware Version (letzte Spalte). ;)

Zitat von: herrmannj am 22 April 2020, 10:16:57
JsonMod hat ein attribut bekommen "update-on-start". Wenn man das auf '1' setzt dann werden die Daten beim "starten" bereits das erste mal gelesen, sonst das erste mal wenn das intervall erreicht ist. Das Verhalten ist "neu" / etwa eine Woche.
ist im Template enthalten:
attr homematic_fw_check update-on-start 1

Ich möchte noch auf eine kleine Diskrepanz hinweisen:
Zitat von: yersinia am 16 April 2020, 13:08:51Die Versionsprüfung basiert bei den HM-Devices auf zwei Attributen: model und firmware. Hier kommt es in einem -mir bekannten- Fall zu einem Missmatch weil eq-3 HM-LC-Bl1PBU-FM definiert, das entsprechende HM Device aber HM-LC-BL1PBU-FM beinhaltet.
Das ist noch nicht gefixt im JsonMod; kann aber temporär mit dem Attribut showNewFWOnly no umschifft werden.

Zitat von: Otto123 am 22 April 2020, 10:20:24Daran hab ich nicht gezweifelt. Ich glaube das HTTPMOD Tool hat mir die letzte Zeit (Jahre?) da nie was gezeigt. Wahrscheinlich war es schon in irgendeiner Art "kaputt".
Nicht wirklich, die model Bezeichnungen von FHEM und eq-3 sind unterschiedlich. Ich hatte das im httmod eq3-fw check Thread aktualisiert
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

Otto123

ZitatEntweder wie MadMax-FHEM weiter unten schreibt direkt aufrufen oder du klickst auf den Link der neuen, rot eingefärbten firmware Version (letzte Spalte).
Ach komm, so einfach ? Der war doch gestern noch nicht da  :P
Danke!

Sonnige Grüße
Otto
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

yersinia

Zitat von: Otto123 am 22 April 2020, 10:35:23Ach komm, so einfach ? Der war doch gestern noch nicht da  :P
Neee, das haben wir auch Wellenartig implentiert, Leibzsch war letzte Nacht dran afaik. ;D
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

wendeling

Hallo,
habe jetzt noch das Problem , dass meine Schaltsteckdose(n)  HM-ES-PMSW1-PL in der Abfrage nicht erscheint !?
Model steht so in FHEM !

Gruß
Wendelin