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