Diskussions Thread zur IPSLibrary

Beachtlich, dass du immer die Zeit findest, um dass alles immer so schön zu dokumentieren und zu erklären. Ich finde es auch gut, dass du dich dir Git nun angenommen hast. Da muss ich ja „nur noch“ meinen Code integrieren…

Zumindest mal wieder ein großes Lob von meiner Seite…

Coole Sache. Kümmere mich heute Nachmittag um die Log-Datei für dich…

Hallo Dominik,

Schön, dass Du auch mal einige Zeilen hier schreibst …

Was die Doku betrifft - ich nehm mir die Zeit immer, ansonsten müßte ich sie wahrscheinlich ohnehin im Nachhinein durch diverse Fragen hier im Forum schreiben (nur dann verstreut auf 100 kleine Postings).
Wenn man Teile der Doku gleich während der Implementierung macht ist es eigentlich halb so wild. Teilweise hab ich sie auch schon vorher geschrieben, als ich daran „getüfftelt“ hatte was das Ding eigentlich können soll.

Ich beobachte Deine Änderungen eh auch immer wieder mal (https://github.com/domizei385/IPS-Entertainment/tree/). Wäre toll, wenn wir hier das erste Gemeinschafts Projekt starten könnten.

Möchte die Entertainment Steuerung noch so erweitern, das man den IPSComponent Layer verwenden kann, dadurch sollte das Einbinden neuer Hardware in die Steuerung noch einfacher werden.

Hallo Andreas,
zwei Fragen, um den Gesamtüberblick nicht zu verlieren.

  1. Gehe ich Recht in der Annahme, daß IPSInstaller und IPSLogger jetzt in IPSLibrary integriert sind, und die älteren Threads dazu somit etwas überholt sind?
  2. Wie gehe ich mit dem IPSEdip Projekt um?
    Gruß Jens

Hallo Jens,

Ich werde alle meine Scripte nach und nach in die Library integrieren, überholt sind sie dahingehend noch nicht, als dass sich die Library in einem Beta Zustand befindet!

Installation von IPSEDIP funktioniert analog, ich habe die alte Installation einfach gelöscht und danach die EDIP Steuerung aus der Library installiert.

Bei IPSEDIP läuft die Installation in 3 Schritten ab:
1.) Download


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSEDIP');
	$moduleManager->LoadModule();

2.) Konfiguration
→ Anpassen des Konfigurations Files, da hat sich zur alten Version nicht sehr viel geändert.

3.) Installation


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSEDIP');
	$moduleManager->InstallModule();

Ich hab da ein Verstaendnissproblem mit der IPSMessageHandler_Configuration.inc.php.
Als Beispiel war angegeben :

52123 -> array('IPSComponentPlayer_MediaPlayer,36728', 'IPSModulePlayer_NetPlayer'),

Das → soll wohl => sein? Aber das ist nicht meine Frage.
Wenn ich jetzt die Antworten meiner Squeezebox einbinden will

27451 => array('?,36728', 'IPSComponentPlayer_Squeezebox')

27451 ist die Variable mit den Antworten der Box.
Was waere die Quelle und was ist die 36728 ?
Das Ziel ist ja wohl das Script ‚IPSComponentPlayer_Squeezebox‘ .

Danke Andreas,
hat geklappt, EDIP läuft wieder, allerdings mit meinem alten Problem.
Der Name des Webfront steht oben, aber die beiden Linien und links die Buttons erscheinen nur sporadisch.
Ich muß weiter forschen.
Gruß Jens

@1007


  27451 -> array('IPSComponentPlayer_Squeezebox,12345', 'IPSModulePlayer_NetPlayer'),  

Könnte bei Dir so ausehen, 27451 ist die ID der auslösenden Variable, 12345 ist die übergeordnete ID von 27451 und wird verwendet um ein IPSComponentPlayer_Squeezebox Object zu instanzieren (genauso wie beim Senden).

Wenn eine Änderung an der Variable 27451 erfolgt, wird die Methode HandleEvent in Deiner IPSComponentPlayer_Squeezebox Klasse aufgerufen und dort mußt Du dann die Werte entsprechend an den NetPlayer zurückgeben.

Sieh Dir zum Vergleich auch die Implementierung des MediaPlayers an:


		public function HandleEvent($variable, $value, IPSModulePlayer $module) {
			$name = IPS_GetName($variable);
			switch($name) {
				case 'Titel': // Sync current Titel of Player
					$module->SyncTitel($value);
					break;
				default:
					throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
			}
		}

Die Methode bekommt als Input Variable, Wert und Ziel Modul.

Hallo Brownson,

wenn ich das mal wieder sehe, dann bin ich echt sprachlos.

Ich hatte für mich mal angefangen alles rund um die Fritz!Box zusammen zu fassen, das würde ich dann beitragen können.

Hierbei sei gesagt, dass der ganze Kram auch hier aus dem Forum stammt.
Dann wäre es allerdings Bestandteil der IPSLibrary und genau da wo es hingehört.

Auch so allgemeine Homematic Funktionen wie die aktuellen Servicemeldungen oder das hm_Inventory sind eigentlich Kandidaten hierfür.

Thema Code Styling -> da sollte etwas beschlossen sein, bevor jetzt jeder anfängt Code zusammen zu tragen.

Schick!

Grüße
Marc

Thema Unittests: PHPUnit?

Chapter 4. Writing Tests for PHPUnit

Mfg
Marc

Hallo zusammen,

leider gab es bei dem laden/installieren des NetPlayers folgende Meldung

Fatal error: Uncaught exception ‚Exception‘ with message ‚script D:\Programme\IP-Symcon\scripts\IPSLibrary\app\core\IPSMessageHandler\IPSMessageHandler.class.php could NOT be found!‘ in D:\Programme\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php:40

was habe ich gemacht:

IPS-Lib gemäß Anleitung installiert
IPS-Logger u. MessagerHandler gemäß Anleitung installiert
und dann sollte der NetPlayer dran kommen.

any ideas?

für mich sieht das doppelte „\“ merkwürdig aus

Tilo

Hallo,
bekomme auch einen Fehler angezeigt beim Installieren vom NetPlayer.
muss ich die Category selber anlegen?

Gruß
Andi

IPSModuleManager-Log-IPSVariableVersionHa2012-02-20 07:27:20.12 Set Version NetPlayer=2.50.1.Beta.Installing
— Create NetPlayer -------------------------------------------------------------------
Created Category modules=31732
Created Category NetPlayer=25063
Created Category Hardware=57930
Created Category NetPlayer=11933
Created Instance CDPlayer=12494, ModuleID={485D0419-BE97-4548-AA9C-C083EB82E61E}
Abort Processing during Error: Profil mit Namen „NetPlayer_Category“ existiert nicht
Error in Script C:\IP-SYMCON\scripts\IPSLibrary\install\IPSInstaller\IPSInstaller.inc.php on Line 434

Hallo
Gibt es noch eine Alternative zum Downloaden und installieren?
Sitze hier vor einem Rechner der zwar Internet hat aber ueber
Proxy mit .pac File. Das mag CURL anscheinend nicht :frowning:

Bei mir kommt bei der Installation des Netplayers folgende Fehlermeldung

Fatal error:  Uncaught exception 'IPSConfigurationException' with message 
'Configuration Value with Key=Version could NOT be found (Section="")' 
in C:\Programme\IP-SYMCON2\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php:70

@1007

Keine Ahnung wie, aber aus irgend einem Grund ist auch bei Dir das DownloadList File leer. Ich hab jetzt im IPSModuleManager was korrigiert, dass das Problem nicht mehr auf tritt.

also Update ModuleManager


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSModuleManager');
	$moduleManager->UpdateModule();

und danach den NetPlayer nochmals downloaden und installieren:


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('NetPlayer');
	$moduleManager->LoadModule();
	$moduleManager->InstallModule();

ps: Du kannst den Code auch manuell downloaden (ZIP oder Git Client) und dann von lokal installieren:


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('NetPlayer');
	$moduleManager->LoadModule('C:\IPS\GIT\IPSLibrary (Test)');

@Heinzzuhaus

war ein Bug, Update hab ich bereits in Repository commited.
–> Load + Install behebt das Problem:


   IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager('NetPlayer');
    $moduleManager->LoadModule();
    $moduleManager->InstallModule(); 

@wago-pdm

Es sieht trotzdem so aus, als ob der MessageHandler fehlen würde, mach nochmals ein komplettes Update

zuerst ModuleManager:


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSModuleManager');
	$moduleManager->UpdateModule();

und dann von IPSComponent und IPSMessageHandler


 	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSComponent');
	$moduleManager->LoadModule();
	$moduleManager->InstallModule();
	$moduleManager = new IPSModuleManager('IPSMessageHandler');
	$moduleManager->LoadModule();
	$moduleManager->InstallModule();

Hallo Andreas,

also noch einmal alles installiert, nach Deiner Anleitung. Und siehe da: „NetPlayer ist sauber durchgelaufen“.

vielen Dank

Tilo

Bei mir auch, danke.

Installation von Netplayer geht bei mir jetzt auch.
Aber der obige Eintrag in die Konfiguration bringt bei mir folgenden
Fehler

Abort Processing during Error: Undefined offset: 2
   Error in Script C:\Programme\IP-SYMCON2\scripts\IPSLibrary\app\core\IPSMessageHandler\IPSMessageHandler.class.php on Line 139

Hab mir mal das Array anzeigen lassen

Array
(
    [22051] => Array
        (
            [0] => IPSComponentPlayer_Squeezebox,37460
            [1] => IPSModulePlayer_NetPlayer
        )

    [33181] => Array
        (
            [0] => OnChange
            [1] => IPSComponentPlayer_MediaPlayer,41282
            [2] => IPSModulePlayer_NetPlayer
        )

)

Muesste der Eintrag nicht so aussehen?

22051 => array('OnChange','IPSComponentPlayer_Squeezebox,37460', 'IPSModulePlayer_NetPlayer')

Dann kommt kein Fehler mehr.
Event wird zwar noch immer nicht hinzugefuegt aber das such ich noch.