Was muss ich bei dieser Fehlermeldung eq3: Read callback: Error: read from http://www.eq-3.de:80 timed out ändern?
Internals:
BUSY 0
CFGFN /media/hdd/fhem/mycfg/HM/hm_rasp01.cfg
DEF http://www.eq-3.de/service/downloads.html 86400
Interval 86400
LASTSEND 1514712964.83361
MainURL http://www.eq-3.de/service/downloads.html
MaxAgeEnabled 1
ModuleVersion 3.4.0 - 9.9.2017
NAME eq3
NR 2300
STATE <div style="text-align:left">last <a title="eq3-downloads" href="http://www.eq-3.de/downloads.html">homematic</a>-fw-check => 2017-12-31 10:11:28<br><br><pre>| device | model | old_fw | new_fw | release |
------------------------------------------------------------------------------------
| no fw-updates needed! |</pre></div>
TRIGGERTIME 1514799364.83107
TRIGGERTIME_FMT 2018-01-01 10:36:04
TYPE HTTPMOD
addr http://www.eq-3.de:80
auth 0
buf
data suchtext=&suche_in=2&downloadart=11
displayurl http://www.eq-3.de/service/downloads.html
header
host www.eq-3.de
httpversion 1.0
ignoreredirects 0
loglevel 4
path /service/downloads.html
protocol http
redirects 0
timeout 2
url http://www.eq-3.de/service/downloads.html
value 0
QUEUE:
READINGS:
2017-12-31 10:36:10 LAST_ERROR connect to http://www.eq-3.de:80 timed out
2017-12-31 10:36:10 LAST_REQUEST update
2017-12-31 10:11:28 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-12-31 10:11:28 UNMATCHED_READINGS
2017-12-31 10:11:28 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:
readingNum:
readingOutdated:
readingSubNum:
requestReadings:
update:
sslargs:
Attributes:
alias eq3
enableControlSet 1
event-on-change-reading .*
event-on-update-reading LAST_ERROR,MATCHED_READINGS
eventMap reread:Neuanfrage
group .Firmware Updates
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 _HM
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 Neuanfrage
Man sollte einen Downloadserver nicht mit automatischen requests befeuern, solange man nicht das OK des Serverbetreibers dazu hat.
Und was heißt das im Klartext?
Klartext? Ok, Du hast es so gewollt: Das was Du da tun willst, ist absoluter bullshit. Lass es.
Und warum diese Unfreundlichkeit?
Was ist daran falsch?
Ich bin nicht unfreundlich. Du wolltest Klartext und hast Klartext bekommen.
Übrigens: wir hatten vor kurzem schonmal Streß mit einem Dienstanbieter im Internet, bei dem FHEM Anwender kurz davor waren, den Server mit HTTPMOD Abfragen lahmzulegen. Sowas muss einfach nicht sein.
Habe auch nicht vor irgendwelche Server lam zu legen.
Diese Form der Firmware Updateüberprüfung ist eine gute Idee die ich übernommen habe, nur habe ich noch einen Fehler in der Überprüfung wo ich leider mit meiner Weisheit anstehe.
Das solltest Du denjenigen Fragen von dem Du es übernommen hast.
hallo chris,
nach deinem list hat das tool um 10:11:28 erfolgreich einen check durchgeführt, mit 20 gefundenen dateien.
für dich war nichts dabei.
warum hast du kurz danach erneut versucht?
da eq3 ziehmlich sparsam mit neuen updates ist, habe ich ein interval von 10 tagen eingestellt.
mit dem attr alignTime lege ich den check zudem auf die nachtzeit, um timeouts möglichst aus dem weg zugehen. war sicherlich gerade viel betrieb auf dem server.
@frank
Danke für die Infos.
Habe jetzt die Suche auf 20 Tage und der Abfrage auf 00:15 geändert.
Läst sich auch die Meldung eq3: Read callback: Error: read from http://www.eq-3.de:80 timed out beinflussen?
meinst du LAST_ERROR?
da bleibt immer der letzte fehler, siehe timestamp.
Alles klar.
Dann belasse ich es bei diesen Änderungen.