Diskussions Thread zur IPSLibrary

Hallo,

welche config soll ich senden?

aus welchem Script kommt die Fehlermeldung, die Du gepostet hast?
bzw. welchen Befehl hast Du abgesetzt, der die Fehlermeldung ausgelöst hat?

Hallo,

die Fehlermeldungen kommen wenn ich die Skripte Ausführe, oder kann man die Skripte nicht so Ausführen?

Hallo Rene,

war ein Fehler, bei direkten Ausführen des Scriptes hat ein Include gefehlt.

Verwenden kann man die Components zB so:


	IPSUtils_Include ('IPSComponentSwitch_Homematic.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentSwitch');
	$component = new IPSComponentSwitch_Homematic(12345);
	$component->SetState(true);

alternativ auch so:


	IPSUtils_Include ("IPSComponent.class.php",             "IPSLibrary::app::core::IPSComponent");
	$component = IPSComponent::CreateObjectByParams('IPSComponentSwitch_Homematic,12345');
	$component->SetState(true);

Hallo,

Danke ich dacht schon ich habe etwas Falsch verstanden.:slight_smile: War das jetzt beim Update mit bei ?

Vielen Dank

Hallo Andreas,

ich habe noch folgende Fehlermeldungen in einigen Skripten.

Kannst nochmal nachschauen wenn Zeit dafür ist ? Oder habe ich einen Fehler gemacht ?

Vielen Dank

Hallo Andreas,

seit dem Updaten von IPSComponent auf die 2.50.21 kommt folgende Fehlermeldung:

29.04.2013 22:49:02.794 |     0 | CUSTOM  | PHP                  | Error: Compile Error: Declaration of IPSComponentSwitch_Homematic::SetState() must be compatible with IPSComponentSwitch::SetState($value, $onTime = false)
   Error in Script E:\Tools\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentSwitch\IPSComponentSwitch_Homematic.class.php on Line 24
  133 in IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   55 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  120 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler
29.04.2013 22:49:02.796 | 22724 | ERROR   | ExecuteThreadID #9   | [Program\IPSLibrary\app\core\IPSMessageHandler\IPSMessageHandler_Event] = 
Fatal error:  Declaration of IPSComponentSwitch_Homematic::SetState() must be compatible with IPSComponentSwitch::SetState($value, $onTime = false) in [Program\IPSLibrary\app\core\IPSComponent\IPSComponentSwitch\IPSComponentSwitch_Homematic] on line 24
IPS-Err-PHP                  2013-04-29 22:49:02.795  Compile Error: Declaration of IPSComponentSwitch_Homematic::SetState() must be compatible with IPSComponentSwitch::SetState($value, $onTime = false)     Error in Script E:\Tools\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentSwitch\IPSComponentSwitch_Homematic.class.php on Line 24    133 in IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)     55 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)    120 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)        in IPSLogger_PhpFatalErrorHandler
Abort Processing during Fatal-Error: Declaration of IPSComponentSwitch_Homematic::SetState() must be compatible with IPSComponentSwitch::SetState($value, $onTime = false)
   Error in Script E:\Tools\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentSwitch\IPSComponentSwitch_Homematic.class.php on Line 24

Was muss ich ändern ?

Danke und Gruß

Bruno

Sorry, mein Fehler, sollte beim nächsten Update wieder passen …

Geht wieder, danke

Hallo Andreas,

ich habe die IPSLibrary mit dem BaseLoader-Script aus dem WIKI installiert.
(http://www.ip-symcon.de/wiki/BaseLoader)

Soweit so gut, es gab auch keine erkennbaren Probleme.

Folgende Frage stellt sich aber, warum werden die Module aus dem Development Entwicklungszweig und nicht aus dem Master-Zweig runtergeladen?


     // Repository
     $repository = 'https://raw.github.com/brownson/IPSLibrary/Development/';

In der Config Datei „KnownRepositories.ini“ ist auch jeweils nicht der Master-Zweig angegeben.

Gruß,
Philip

Mir ist noch etwas aufgefallen:

Nach der Installation wollte ich unter dem Punkt „Neues Modul“ direkt das Modul „IPSTwilight“ laden+installieren.

Lieder war die Liste der verfügbaren Module aber leer.
Erst nach dem aufruf von „IPSModuleManagerGUI_SearchUpdates“ ist nun die Liste der verfügbaren Module gefüllt.

Ist das korrekt und gewollt oder sollte man nach dem BaseLoader villeicht an geeigneter Stelle diese Aktion durchführen?

Gruß,
Philip

Hallo Philip,

ja das ist gewollt, sonst würde der komplette Download noch länger dauern und man läuft Gefahr, dass die maximale Script Laufzeit überschritten wird.

Eventuell kannst Du ja das Wiki dahingehend erweitern…

Der Master Branch war ursprünglich mal als „Stable Release“ gedacht, hab das aber nie so richtig in der Praxis umgesetzt.

Eventuell werde ich den Master Branch mal auf die core Module reduzieren (Logger, ModuleManager und GUI)

Der Grund für meinen Post war ja erstmal nur, um zu klären, dass nicht die falsche URL in die INI-Datei geraten ist.
Aus deiner Antwort entnehme ich ja, dass es zwar nicht so geplant war aber korrekt ist.

Ich würde zwecks Übersicht in einem Zweig bleiben und es dort vernünftig trennen.
Dann kannst Du den nicht gepflegten Zweig entsorgen.
Vom Grundsatz ist es ja schon in die einzelnen Module unterteilt.

Hallo Andreas,

in der Firma läuft alles über einen Proxy, so dass ich das Baseloaderscript nicht verwenden kann. Ich habe das so geändert das mir der Baseloader die Daten über unseren Proxy holt.

Folgendes habe ich im Baseloader geändert! Ohne diese Änderung holt der Baseloader gar keine Daten ab und bricht mit einem Fatalen Fehler ab.

	function LoadFile($sourceFile, $destinationFile) {
$proxyServer="xxx.xxx.xxx.xxx";
$proxyPort="8080";
$proxyUsername='xxxxNET\xxxx';
$proxyPassword="xxxxxx";

		if (strpos($sourceFile, 'https')===0) {
      	$sourceFile = str_replace('\\','/',$sourceFile);
			echo 'Load File '.$sourceFile."
";
			$curl_handle=curl_init();
			curl_setopt($curl_handle, CURLOPT_URL,$sourceFile);
			curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,10);
        curl_setopt($curl_handle, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
        curl_setopt($curl_handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
        curl_setopt($curl_handle, CURLOPT_PROXY, "$proxyServer:$proxyPort");
        curl_setopt($curl_handle, CURLOPT_PROXYUSERPWD, "$proxyUsername:$proxyPassword");

			curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,true);
			curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($curl_handle, CURLOPT_FAILONERROR, true);
			$fileContent = curl_exec($curl_handle);

			if ($fileContent===false) {
				throw new Exception('Download of File '.$sourceFile.' failed !!!');
			}
			//echo 'Loaded '.str_replace(chr(13),'',str_replace(chr(10),'',substr($fileContent,1,200))).'...'.PHP_EOL;
			curl_close($curl_handle);


Ich erhalte dann folgende Meldungen

Download of ModuleManager
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSModuleManager.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSVersionHandler/IPSVersionHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSVersionHandler/IPSFileVersionHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSScriptHandler/IPSScriptHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSFileHandler/IPSFileHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSLogHandler/IPSLogHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSModuleManager/IPSBackupHandler/IPSBackupHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/app/core/IPSConfigHandler/IPSConfigHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/app/core/IPSConfigHandler/IPSIniConfigHandler.class.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/config/KnownRepositories.ini
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/config/AvailableModules.ini
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/InstallationScripts/IPSModuleManager_Installation.ips.php
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/InitializationFiles/Default/IPSModuleManager.ini
Load File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/DownloadListFiles/IPSModuleManager_FileList.ini
Installation of ModuleManager
IPSModuleManager-Log-IPSFileHandler      2013-11-07 18:23:18.52  Create Directory D:\Daten	ommy\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2013-11-07_1823\IPSLibrary\install\DownloadListFiles
IPSModuleManager-Log-IPSFileHandler      2013-11-07 18:23:18.54  Copy D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSModuleManager_FileList.ini --> D:\Daten	ommy\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2013-11-07_1823\IPSLibrary\install\DownloadListFiles\IPSModuleManager_FileList.ini
IPSModuleManager-Log-IPSFileHandler      2013-11-07 18:23:18.54  Copy https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/DownloadListFiles/IPSModuleManager_FileList.ini ---> D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSModuleManager_FileList.ini
IPSModuleManager-Log-IPSFileHandler      2013-11-07 18:23:19.64  Download Destination File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/DownloadListFiles/IPSModuleManager_FileList.ini failed --> Retry ...
IPSModuleManager-Log-IPSFileHandler      2013-11-07 18:23:20.65  Download Destination File https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/DownloadListFiles/IPSModuleManager_FileList.ini failed --> Retry ...

Fatal error:  Uncaught exception 'IPSFileHandlerException' with message 'File D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSModuleManager_FileList.ini could NOT be found on the Server !!!' in D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php:167
Stack trace:
#0 D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php(229): IPSFileHandler->CopyFile('https://raw.git...', 'D:\Daten	ommy\...', true)
#1 D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php(247): IPSFileHandler->CopyFiles(Array, Array)
#2 D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(604): IPSFileHandler->LoadFiles(Array, Array)
#3 D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(625): IPSModuleManager->LoadModuleFiles('DownloadFiles', 'Install', 'https://raw.git...', true)
#4 in D:\Daten	ommy\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php on line 167

In der „IPSModuleManager_FileList.ini“ steht etwas von PROXY Support! Wo muß ich die Proxydaten eintragen oder geht das so nicht?

Viele Grüße
Thomas Unger

Hallo
Ich hab meinen Proxy in der Datei IPSModuleManager.ini so eingetragen.

Proxy="xxx.xxx.xxx.xxx:xxxx"

Hallo,

Mein Proxy braucht aber auch noch die Authentifizierung. Das geht vermutlich so nicht, oder?

Gruß
Tommy

Meiner auch.
Ich mach die Authentifizierung ueber meinen Browser. Solange ich dann im Internet bin gilt diese
auch fuer andere Programme. Erst bei laengerer Zeit ohne Aktivitaet muss ich mich wieder anmelden.
Da sich bei uns regelmaessig das Passwort aendert hab ich es nicht fest eingetragen.
Schau dir mal die Datei IPSFileHandler.class.php an , so an Zeile 141 sollte folgendes stehen.

				$curl_handle=curl_init();
				global $_IPS;
				if (array_key_exists('PROXY', $_IPS)) {
					$proxy = $_IPS['PROXY'];
					if ( $proxy != '' ) {
						curl_setopt($curl_handle, CURLOPT_HTTPPROXYTUNNEL, 1);
						curl_setopt($curl_handle, CURLOPT_PROXY, $proxy);
					}
				}

Wenn dann muesste man da etwas dazuschreiben.

der Proxy sollte auch mit dem Befehl „Netsh winhttp“ in einer DOS-BOX fest zu hinterlegen gehen.
Mal die Hilfe anschauen, da geht auch ein Proxy mit Anmeldung

Mache ich bei einem Kunden so damit die Updates von MS funktionieren.

Gruß Udo

@1007

Die Authentifizierung ueber den Browser funktioniert hier leider nicht:( Die Änderung in den Files würde schon funktionieren nur lädt der Modulemager diese Files immer neu, so dass meine Änderungen immer überschrieben werden. Ich müßte die gesamte Konfiguration und den Download manuell und Einzeln machen. Das ist mir aber zur Kompliziert, weil ich dann ja die ganze Library verstehen müsste. Da fehlt mir einfach das Wissen.
Schön wäre es man kann die Proxydaten in einer Ini hinterlegen, die wird aber vermutlich auch beim laden überschrieben, so dass dies im Repository geändert werden müßte!

@bohrers
Befehl Kontext „winhttp“ gibt es unter XP leider nicht:( Und „proxycfg -u“ setzt zwar die IP und den Port, macht aber keine Auth!

Gruß Tommy