Funktionsanfrage: hminfo erweiterungen firmware Versionsprüfung

Begonnen von no_Legend, 18 Januar 2016, 11:44:07

Vorheriges Thema - Nächstes Thema

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

no_Legend

Irgend etwas scheint bei mir aber nicht zu stimmen.
Ich bekomme bei einem Device die V1.3 angezeigt als neue aber der Link sagt es ist die Version 1.2
Siehe Screenshot
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

frank

bei mir funktioniert der mod-re-8. 
da es keine fw1.3 bei eq3 gibt, hast du wohl ein attr nicht umgestellt. stateformat, userreadings, reading01regex, ...
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

ph1959de

@no_Legend: Hast Du das Device eq3 gelöscht und danach neu angelegt? Ich habe den Eindruck dass bei der Vorgehensweise "kompletten Block in fhem.cfg ersetzen" Leichen(?) von der Vorversion übrig bleiben.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

no_Legend

Ich hab die Readings wie in den Post zuvorbeschrieben per Hand angepasst.

Komplett einkopiert habe ich nicht.

Gruß Robert
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

ph1959de

@frank: ich habe die Wiki-Seite HomeMatic Firmware Update mal ergänzt um Deine "Versionsprüfung". Dabei habe ich folgende Änderungen / Korrekturen (gegenüber Deiner Code-Version aus Post #58) vorgenommen:

  • (minor) zweimal recieved auf received korrigiert
  • (ok?) aus dem Attribut userattr sämtliche reading0[2|3|4|5]* Einträge entfernt; die müssten noch zur "alten" Version des Codes gehören und jetzt entbehrlich sein

Die Formatierung ist zumindest für's Wiki etwas problematisch. Da überlege ich gerade, ob sich zumindest der doch recht umfangreiche Code von stateFormat und userReadings irgendwie in 99_xxxUtils auslagern lassen - siehst Du damit Probleme?

Frage/Anregung zum gewählten "Interval": mit 86400 wird ja jetzt einmal täglich aktualisiert; ich denke, häufiger sollte die Abfrage nicht erfolgen? Bin mir nicht sicher, wie eQ-3 reagieren würde, wenn plötzlich eine relativ hohe Abrufrate direkt auf die Download-Seite zu verzeichnen ist. Daher würde ich im Wiki noch die Empfehlung einfügen, diesen Wert zumindest nicht kleiner zu wählen. Meinungen?

Gruß, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

no_Legend

Ich mache es einmal die Woche.
Sonntags auf Montags nachts.

Ich will auch nicht so oft Firmware updates machen müssen.  ;)
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

frank

Zitat von: ph1959de am 17 März 2016, 12:50:00
@frank: ich habe die Wiki-Seite HomeMatic Firmware Update mal ergänzt um Deine "Versionsprüfung". Dabei habe ich folgende Änderungen / Korrekturen (gegenüber Deiner Code-Version aus Post #58) vorgenommen:

  • (minor) zweimal recieved auf received korrigiert
  • (ok?) aus dem Attribut userattr sämtliche reading0[2|3|4|5]* Einträge entfernt; die müssten noch zur "alten" Version des Codes gehören und jetzt entbehrlich sein
das wiki ist ja ziehmlich bunt geworden.  :)
userattr habe ich noch nie angefasst, das erzeugt httpmod immer von selber. wird vielleicht erst nach einem restart erneuert?


ZitatDie Formatierung ist zumindest für's Wiki etwas problematisch. Da überlege ich gerade, ob sich zumindest der doch recht umfangreiche Code von stateFormat und userReadings irgendwie in 99_xxxUtils auslagern lassen - siehst Du damit Probleme?
das sollte funktionieren.
stateformat ist besonders hässlich, da hier bei der eingabe leider kein editor geöffnet wird. ich editiere hier immer in notepad und kopiere es rüber, wodurch die formatierung verloren geht und die lange zeile entsteht.


ZitatFrage/Anregung zum gewählten "Interval": mit 86400 wird ja jetzt einmal täglich aktualisiert; ich denke, häufiger sollte die Abfrage nicht erfolgen? Bin mir nicht sicher, wie eQ-3 reagieren würde, wenn plötzlich eine relativ hohe Abrufrate direkt auf die Download-Seite zu verzeichnen ist. Daher würde ich im Wiki noch die Empfehlung einfügen, diesen Wert zumindest nicht kleiner zu wählen. Meinungen?
macht sinn, oder auch "7*86400". man kann ja auch nur oder zusätzlich manuell mit reread arbeiten.
seit einführung des tools, hat es noch keine neuen updates gegeben. somit reicht eigentlich auch monatlich und wenn einem neue devices zulaufen, macht man nach dem einbinden in fhem einen manuellen check.
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

stromer-12

Zitat von: frank am 17 März 2016, 19:01:25
stateformat ist besonders hässlich, da hier bei der eingabe leider kein editor geöffnet wird. ich editiere hier immer in notepad und kopiere es rüber, wodurch die formatierung verloren geht und die lange zeile entsteht.
Mit
widgetOverride stateFormat:textField-long
einfach ein grosses Eingabefeld erzeugen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

ph1959de

Zitat von: stromer-12 am 17 März 2016, 22:24:18
Mit
widgetOverride stateFormat:textField-long
einfach ein grosses Eingabefeld erzeugen.
Danke, werde ich mir (morgen) anschauen und in der Beschreibung "verarbeiten".

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

ph1959de

Zitat von: stromer-12 am 17 März 2016, 22:24:18
Mit
widgetOverride stateFormat:textField-long
einfach ein grosses Eingabefeld erzeugen.
Damit erreicht man zwar die Anzeige eines großen Eingabefensters für das Attribut, leider ist das Attribut aber innerhalb Fhem nicht "multi-line-fähig", sobald man also Zeilenumbrüche einfügt oder die Semikolon-Verdopplung entfernt, funktioniert der Code nicht mehr.

Daher habe ich für die Beschreibung im Wiki den Code für stateFormat in 99_my[xxx]Utils.pm ausgelagert und die entsprechende "sub" ins stateFormat Attribut eingetragen.

@frank: wenn Du noch mal die Wiki-Seite überfliegst , wäre ich Dir dankbar; ich wäre damit vorerst durch.

Die Geschichte mit den "alten" reading[...]* Einträgen in userattr habe ich noch nicht weiterverfolgt, habe aber den Eindruck, dass HTTPMOD diese im Zweifel zwar erzeugt, aber überflüssige nicht wieder entfernt.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

stromer-12

Hatte ich heute morgen auch festgestellt und die stateFormat Funktion in ein userReading ausgelagert welches state erzeugt.

stromer on tour

FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

frank

prima, jetzt sieht stateformat ja schon viel besser aus.  :)

ZitatDamit erreicht man zwar die Anzeige eines großen Eingabefensters für das Attribut, leider ist das Attribut aber innerhalb Fhem nicht "multi-line-fähig", sobald man also Zeilenumbrüche einfügt oder die Semikolon-Verdopplung entfernt, funktioniert der Code nicht mehr.
bei mir ist zusätzlich codemirror aktiv und die jeweilige formatierung bleibt damit erhalten, wie bei userreadings. das widget konnte natürlich den einzeiler nicht umgestalten. hier nochmal mein original aus dem widget:

{
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;
}


das wiki ist ok.
den hinweis zum löschen der alten version kann ich nicht nachvollziehen. ich habe alle veränderungen immer über die eingabeelemente der detailseite vorgenommen und nie probleme gehabt. es war auch weder restart noch rereadcfg nötig.
eventuell noch ein hinweis auf gelbe warnungen, die auftauchen, wenn attr model oder attr firmware der eigenen devices fehlen. dann muss man das device in den anlernmodus versetzen, um die entsprechenden daten zu bekommen. vielleicht ein link zur textpassage weiter oben auf der wikiseite.

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

ph1959de

Zitat von: frank am 18 März 2016, 11:58:51
den hinweis zum löschen der alten version kann ich nicht nachvollziehen. ich habe alle veränderungen immer über die eingabeelemente der detailseite vorgenommen und nie probleme gehabt. es war auch weder restart noch rereadcfg nötig.
Ich hatte der Einfachheit halber den kompletten Codeblock über "edit files" ersetzt und das hat irgendwie nicht funktioniert (gleiches Fehlerbild wie bei no_legend). Nach "delete eq3" und komplett neu Anlegen (wieder über fhem.cfg) hat dann alles gestimmt (bis auf die überflüssigen Einträge in userattr - aber die hattest Du ja in Deinen Vorgaben drin - also gibt's zumindest da noch ein kleines Problem mit Deiner Vorgehensweise).

Wie dem auch sei - jetzt scheint soweit alles zu funktionieren - bis zur nächsten Änderung auf eQ-3 Seite  :-\
Zitat von: frank am 18 März 2016, 11:58:51
eventuell noch ein hinweis auf gelbe warnungen, die auftauchen, wenn attr model oder attr firmware der eigenen devices fehlen. dann muss man das device in den anlernmodus versetzen, um die entsprechenden daten zu bekommen. vielleicht ein link zur textpassage weiter oben auf der wikiseite.
Da hast Du natürlich recht ... aber nachdem ich die Meldungen bisher nie bekommen habe, war mir das nicht bewusst. Nachdem man den stateFormat Code jetzt besser überschauen kann, hole ich das noch nach.

Danke noch mal für den Code und die geduldige Unterstützung.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

frank

seltsam, nach einem restart funktioniert widgetOverride nicht mehr.

Zitat... aber nachdem ich die Meldungen bisher nie bekommen habe, war mir das nicht bewusst.
einfach mal bei einem device, für das es bei eq3 ein update gibt, zb auf attr firmware 0.0 setzen. 
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