2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00

70_WINCONNECT: bugfixes

git-svn-id: https://svn.fhem.de/fhem/trunk@15003 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
michael.winkler 2017-09-04 21:22:16 +00:00
parent 959d944fbd
commit 8828ff3981

View File

@ -1,6 +1,11 @@
# $Id$
############################################################################
# 2017-08-31, v0.0.22
# 2017-09-04, v0.0.23
#
# v0.0.23
# - BUFIX: [FEHMModul] - Download gitlab GUI
# - CHANGE [FEHMModul] - Download Timeout WinControl.exe = 30
# - FEATURE: [WinWebGUI] - NotifyIcon - Kontextmenü
#
# v0.0.22
# - BUFIX: [FEHMModul] - Überreste Attribut "http-noshutdown" entfernt
@ -175,8 +180,9 @@ sub WINCONNECT_Define($$);
sub WINCONNECT_Undefine($$);
# Autoupdateinformationen
my $DownloadURL = "https://gitlab.com/michael.winkler/winconnect/raw/master/WinControl_0.0.22.exe";
my $DownloadVer = "0.0.22";
my $DownloadURL = "https://gitlab.com/michael.winkler/winconnect/raw/master/WinControl_0.0.23.exe";
my $DownloadVer = "0.0.23";
my $DownloadError = "";
###################################
sub WINCONNECT_Initialize($) {
@ -200,17 +206,19 @@ sub WINCONNECT_GetStatus($;$) {
my ($hash, $update ) = @_;
my $name = $hash->{NAME};
my $interval = $hash->{INTERVAL};
my $filemtime = "";
if ($DownloadError eq "") {$DownloadError = ReadingsVal( $name, "wincontrol_error", "Start WinControl....." );}
#RemoveInternalTimer($hash);
return if ( AttrVal( $name, "disable", 0 ) == 1 );
InternalTimer( gettimeofday() + $interval, "WINCONNECT_GetStatus", $hash, 0 );
my $filename = '././www/winconnect/WinControl.exe';
my $filedir = '././www/winconnect';
my $filemtime = (stat $filename)[9];
if ((-e $filename)) {$filemtime = (stat $filename)[9];}
Log3 $name, 5, "WINCONNECT $name: called function WINCONNECT_GetStatus()";
Log3 $name, 5, "WINCONNECT $name: filename = " . $filename . " filemtime = " . $filemtime;
@ -228,6 +236,9 @@ sub WINCONNECT_GetStatus($;$) {
readingsBulkUpdateIfChanged( $hash, "wincontrol_update", $filemtime );
readingsBulkUpdateIfChanged( $hash, "model", ReadingsVal( $name, "os_Name", "unbekannt" ) );
#WinControl Last Error
readingsBulkUpdateIfChanged( $hash, "wincontrol_error", $DownloadError);
readingsEndUpdate( $hash, 1 );
#Autoupdatefile von Gitlab herunterladen
@ -236,15 +247,19 @@ sub WINCONNECT_GetStatus($;$) {
#Verzeichnis anlegen
mkdir($filedir, 0777) unless(-d $filedir );
open (FILE, ">". $filename . "_" .$DownloadVer);
print FILE $name;
close (FILE);
#Delete old version
if ((-e $filename)) {unlink $filename}
Log3 $name, 0, "WINCONNECT [NEW] Download new version URL = $DownloadURL";
HttpUtils_NonblockingGet({url=>$DownloadURL, timeout=>5, hash=>$hash, service=>"autoupdate", callback=>\&WINCONNECT_GetNewVersion});
if(!open (FILE, ">". $filename . "_" .$DownloadVer)) {
$DownloadError = "WINCONNECT [NEW] Download ERROR Can't write = " .$filename . "_" .$DownloadVer . " Error=" .$!;
Log3 $name, 5, $DownloadError;
}else {
print FILE $name;
close (FILE);
#Delete old version
if ((-e $filename)) {unlink $filename}
HttpUtils_NonblockingGet({url=>$DownloadURL, timeout=>30, hash=>$hash, service=>"autoupdate", callback=>\&WINCONNECT_GetNewVersion});
}
}
if ( !$update ) {
@ -264,18 +279,28 @@ sub WINCONNECT_GetNewVersion($$$) {
my $CheckFile = $filename . "_" .$DownloadVer;
# Download neue Datei
open(FH, ">$filename");
print FH $data;
close(FH);
# Prüfen ob die Dateigröße passt!
if ((stat $filename)[7] < 600000) {
#Download fehlgeschlagen!
if (-e $CheckFile) {unlink ($CheckFile) or die $!;}
if(!open(FH, ">$filename")) {
$DownloadError = "Download ERROR Can't write = " .$filename . " Error=" .$!;
Log3 $name, 5, "WINCONNECT [NEW] " .$DownloadError;
Log3 $name, 0, "WINCONNECT [NEW] Download ERROR file to small. Filesize = " . (stat $filename)[7];
#Delete Version Flag
if ((-e $CheckFile)) {unlink $CheckFile}
}else{
Log3 $name, 0, "WINCONNECT [NEW] Download new version OK";
print FH $data;
close(FH);
# Prüfen ob die Dateigröße passt!
if ((stat $filename)[7] < 600000) {
#Download fehlgeschlagen!
if ((-e $CheckFile)) {unlink $CheckFile}
$DownloadError = "Download ERROR file to small. Filesize = " . (stat $filename)[7];
Log3 $name, 5, "WINCONNECT [NEW] " .$DownloadError;
}else{
Log3 $name, 0, "WINCONNECT [NEW] Download new version URL = $DownloadURL";
Log3 $name, 0, "WINCONNECT [NEW] Download new version OK";
$DownloadError = "Download new version = $DownloadVer";
}
}
}