IPSWatering - eine Bewässerungssteuerung

IPSWatering ist jetzt auch in die Library integriert und liegt auf meinem Developer Repository zu Download bereit. Installation wie gewohnt:

Download:


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSWatering', 'https://raw.github.com/brownson/IPSLibrary/Development/');
	$moduleManager->LoadModule();

Konfiguration:
Anpassung der Bewässerungskreise im File IPSWatering_Configuration.inc.php

Installation:


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

Meine Developer Docu ist auf folgendem Server zu finden:
IP-Symcon Module Library: Übersicht IPS Modul Library

Hallo,

habe beim Installieren folgende(n): Fehler:

IPSModuleManager-Log-IPSVariableVersionHa2012-03-27 15:41:56.24  Set Version IPSWatering=2.50.0..Installing

Fatal error:  Uncaught exception 'IPSVersionHandlerException' with message 'Required Version 2.50.1 is lower current Version 2.50.0..Installing' in C:\IP-Symcon\Scripts\IPSLibrary\install\IPSModuleManager\IPSVersionHandler\IPSVariableVersionHandler.class.php:124
Stack trace:
#0 C:\IP-Symcon\Scripts\IPSLibrary\install\InstallationScripts\IPSWatering_Installation.ips.php(81): IPSVariableVersionHandler->CheckModuleVersion('IPSLogger', '2.50.1')
#1 C:\IP-Symcon\Scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(518): include('C:\IP-Symcon\Sc...')
#2 C:\IP-Symcon\Scripts\19474.ips.php(5): IPSModuleManager->InstallModule()
#3 {main}
  thrown in C:\IP-Symcon\Scripts\IPSLibrary\install\IPSModuleManager\IPSVersionHandler\IPSVariableVersionHandler.class.php on line 124
 Abort Processing during Error: Uncaught exception 'IPSVersionHandlerException' with message 'Required Version 2.50.1 is lower current Version 2.50.0..Installing' in C:\IP-Symcon\Scripts\IPSLibrary\install\IPSModuleManager\IPSVersionHandler\IPSVariableVersionHandler.class.php:124
Stack trace:
#0 C:\IP-Symcon\Scripts\IPSLibrary\install\InstallationScripts\IPSWatering_Installation.ips.php(81): IPSVariableVersionHandler->CheckModuleVersion('IPSLogger', '2.50.1')
#1 C:\IP-Symcon\Scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(518): include('C:\IP-Symcon\Sc...')
#2 C:\IP-Symcon\Scripts\19474.ips.php(5): IPSModuleManager->InstallModule()
#3 {main}
  thrown
   Error in Script C:\IP-Symcon\Scripts\IPSLibrary\install\IPSModuleManager\IPSVersionHandler\IPSVariableVersionHandler.class.php on Line 124

Gruß Proxima

Zuerst IPSModuleManager auf den neuesten Stand bringen,

Update auf neuesten Stand mit:


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSModuleManager', 'https://raw.github.com/brownson/IPSLibrary/Development/');
	$moduleManager->LoadModule('', true);
	$moduleManager->InstallModule();

Folgender Code erledigt lädt alle core Module neu und ersetzt auch die User Files mit denen aus dem Default Verzeichnis:


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSLogger', 'https://raw.github.com/brownson/IPSLibrary/Development/');
	$moduleManager->LoadModule('',true);
	$moduleManager->InstallModule();
	$moduleManager = new IPSModuleManager('IPSComponent', 'https://raw.github.com/brownson/IPSLibrary/Development/');
	$moduleManager->UpdateModule('',true);
	$moduleManager = new IPSModuleManager('IPSMessageHandler', 'https://raw.github.com/brownson/IPSLibrary/Development/');
	$moduleManager->UpdateModule('',true);

Danach kannst Du das Module IPSWatering wie beschrieben installieren…

Habe gerade genau nach Anleitung zuerst den Modul Manager auf den neuesten Stand gebracht und danach „Folgender Code erledigt lädt alle core Module neu und ersetzt auch die User Files mit denen aus dem Default Verzeichnis:“ aus Deinem letzten Posting ausgeführt.

Danach habe ich den ersten Teil des Watering Systems problemlos nach Anleitung geladen.
Die Konfiguration ist wie folgt :

	function get_WateringConfiguration() {
		return array(
			c_WateringCircle_1  =>	array(
				c_Property_Name           =>   'Front Garden',
				c_Property_Component      =>   'IPSComponentSwitch_Homematic,16519',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_2  =>	array(
				c_Property_Name           =>   'Lawn Back',
				c_Property_Component      =>   'IPSComponentSwitch_Homematic,18443',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_3  =>	array(
				c_Property_Name           =>   'Lawn Front',
				c_Property_Component      =>   'IPSComponentSwitch_Homematic,47432',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_4  =>	array(
				c_Property_Name           =>   'Lawn Middle',
				c_Property_Component      =>   'IPSComponentSwitch_Homematic,54311',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_5  =>	array(
				c_Property_Name           =>   'Main Garden Left and Back',
				c_Property_Component      =>   'IPSComponentSwitch_Homematic,45308',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_6  =>	array(
				c_Property_Name           =>   'Main Garden Right and Back',
				c_Property_Component      =>   'IPSComponentSwitch_Homematic,31526',
				c_Property_Sensor         =>   '',
			),
		);
	}
	
	/**
	 * Definiert die Anzahl der Meldungen, die im Applikation Logging Window angezeigt werden.
	 */
	define ("c_LogMessage_Count",			9);

	/** @}*/

Danach habe ich den Teil 2 (install) ausgeführt der mit der folgenden Fehlermeldung abgebrochen hat :

Fatal error:  Uncaught exception 'IPSConfigurationException' with message 'Configuration Value with Key=Path could NOT be found (Section="WFC10")' in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php:70
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(196): IPSConfigHandler->GetValue('Path', 'WFC10')
#1 C:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSWatering_Installation.ips.php(91): IPSModuleManager->GetConfigValue('Path', 'WFC10')
#2 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(674): include('C:\IP-Symcon\sc...')
#3 C:\IP-Symcon\scripts\31162.ips.php(4): IPSModuleManager->InstallModule()
#4 {main}
  thrown in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php on line 70
 Abort Processing during Error: Uncaught exception 'IPSConfigurationException' with message 'Configuration Value with Key=Path could NOT be found (Section="WFC10")' in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php:70
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(196): IPSConfigHandler->GetValue('Path', 'WFC10')
#1 C:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSWatering_Installation.ips.php(91): IPSModuleManager->GetConfigValue('Path', 'WFC10')
#2 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(674): include('C:\IP-Symcon\sc...')
#3 C:\IP-Symcon\scripts\31162.ips.php(4): IPSModuleManager->InstallModule()
#4 {main}
  thrown
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php on Line 70?>

Hab ich etwas falsch konfiguriert ???

Hallo,

bin ebenfalls nach Anleitung vorgegangen, jedoch habe ich beim manuellen Testen die Fehlermeldung im Anhang erhalten.

Gruß Proxima

@BestEx

Wirf mal einen Blick auf die IPSWatering.ini Datei und kopiere das original auf dem Default Verzeichnis nochmal über Dein User File …

@Proxima

Update von IPSComponent sollte Dein Problem beheben…

Guter Tip :slight_smile: Meine user file war leer (Hatte vor 1 Woche eine Installation versucht die fehlerhaft abbrach) Nachdem ich die Default Datei habe laufen lassen funktionierte die Installation ohne Fehlermeldung.

Ich habe dann versucht einen Kreis Manuell einzuschalten. Das führte dann zu der folgenden Fehlermeldung (sieht so aus als wenn der Homatic SW Adapter (Wrapper ?) nicht funktioniert)

Ich sehe gerade das ist die gleiche Fehlermeldung wie bei Proxima… Was muss ich tuen um IPSComponent auf den aktuellen Stand zu bringen ??

Hi,

hatte auch den Fehler von Proxima und BestEx.
Einfach IPSComponent updaten und geht.

Hier der Code. Steht auch weiter oben.

    IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager('IPSComponent', 'https://raw.github.com/brownson/IPSLibrary/Development/');
    $moduleManager->UpdateModule('',true);

Gruß MCS-51

@MCS-51 Danke für den Hinweis, hat funktioniert.

@Brownson Super Programm, Deine SW ist um Klassen besser als meine Timer gesteuerte Lösung die ich händisch in der IPS Verwaltung parametrisiert habe.

Wie schon früher gesagt, die Library ist ein tolles Konzept für IPS und die Umsetzung sehr professionell

Im Bewässerungsprogram gibt es zumindest noch ein Anzeigefehler (unter Umständen auch ein Ausführungsfehler)
Nachdem ich de Kreisläufe eingerichtet habe (jeder Kreislauf an jedem Tag zu verschiedenen Zeitpunkten) zeigt das Status Fenster verschiedene Tage an. Das müssten allerdings für jeden Kreislauf der heutige Mittwoch sein

Hi,

habe den Code aus Post #63 ausgeführt und danach IPSWatering mit ebenfalls weiter oben stehendem Code heruntergeladen, konfiguriert und installiert. Alles ohne Fehler. WebFront wird erstellt … erst beim Testen reagiert die Hardware nicht???

Werde auf jeden Fall mal IPSComponent nochmals updaten.

Gruß Proxima

Scheint auch zu einem Ausführungsfehler zu führen. Die Variablen sind falsch gesetzt (siehe Bilde)

Der Fehler scheint darin zu liegen das die Automatik immer mit dem nächsten Tag beginnt. Manuell kann ich natürlich am gleichen Tag das Programm laufen lassen.

Es wäre besser wenn die Automatik für den gleichen Tag aktiviert wird. Manchmal möchte ich manuell bewässern aber trotzdem nicht auf die Automatik am gleichen Tag verzichten.

Hallo,

zuerst mal ein riesen Kompliment an Andreas für die Entwicklung der Library, der Module und das Erstellen der Dokumentation.
Da ich selber in der Software Entwicklung tätig bin, habe ich eine gewisse Vorstellung vom Aufwand und kann mich daher nur vor dieser professionellen Arbeit verneigen :).

Ich habe heute erstmalig mit der Installation der Library angefangen und es hat für die Basis alles gut funktioniert.

Als erstes „Zusatz“-Modul wollte ich IPSWatering installieren.
Das Laden des Moduls ging ohne Probleme. Das Configfile war da und das habe ich auf meine Bedürfnisse angepasst. Der Inhalt von IPSWatering.ini sieht ebenfalls gut aus. Die Basismodule sollten auf dem aktuellen Stand sein.

Trotzdem kommt bei der Installation des Moduls folgendes Fehler (auch bei weiteren Installationsversuchen).

    IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager('IPSWatering');
    $moduleManager->InstallModule();
IPSModuleManager-Log-IPSVariableVersionHa2012-03-28 17:28:38.79  Set Version IPSWatering=2.50.0..Installing

Fatal error:  Call to undefined method IPSModuleManager::GetModuleCategoryID() in [Program\IPSLibrary\install\InstallationScripts\IPSWatering_Installation] on line 108
 Abort Processing during Error: Call to undefined method IPSModuleManager::GetModuleCategoryID()
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSWatering_Installation.ips.php on Line 108

Irgendwie scheint eine Funktion „GetModuleCategoryID“ nicht vorhanden zu sein.

Wo könnte ich sie denn finden :confused:?

Danke & Gruß
Thorsten

Irgendwas erscheint mir hier komisch (aber das liegt wohl eher an meinem fehlenden Verständnis als am Produkt :D).

Laut Doku (IP-Symcon Module Library: IPSModuleManager Klassenreferenz) sollte die Funktion „GetModuleCategoryID“ in der Datei IPSModuleManager.class.php in Zeile 343 definiert sein (IP-Symcon Module Library: C:/ab/IPS/GIT/IPSLibrary/IPSLibrary/install/IPSModuleManager/IPSModuleManager.class.php Quellcode).

Die Datei gibt es bei mir, allerdings steht da in Zeile 343 „private function GetModuleInitializationFile($moduleName)“. Also irgendwie passt da meine Version nicht zur Doku oder umgekehrt :o.

Sicherheitshalber habe ich noch folgendes versucht.

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

Da kam am Ende des Outputs folgender Hinweis:

Module IPSModuleManager is already at Version 2.50.1.Beta

Gruß
Thorsten

Hallo,

ich glaube in den Installations Routinen ist ein Bug.

Wenn ich in der IPSModuleManager.ini in der Rubrik WFC10 mehrere ID für die Webfront Instanzen eintrage, funktioniert nur die letzte einwandfrei.
Alle anderen haben in der Webfront Instanz zwar das Gerüst, weisen aber auf Instanzen die es nicht gibt.

WFC Instanz 46956 ist korrekt
WFC Instanz 13921,40679 ist nur das Grüst da.
Siehe Anhänge.

Bei den anderen Modulen IPSTwilight und IPSLogger werden alle WebFronten korrekt eingerichtet.

IPSModuleManager.ini:

SourceRepository="https://raw.github.com/brownson/IPSLibrary/Development/"

RegisterDefaultFiles=false
RegisterExampleFiles=false
RegisterInstallFiles=false

[WFC10]
Enabled=true
ID=13921 
ID=40679
ID=46956


[Mobile]
Enabled=true
ID=39046


Oder mache ich da was falsch?

@Thorsten

Update von meinem Developer Repository macht die hoffentlich glücklich (siehe auch Post 63).

@BestEx

Ja das ist so, die Beregnungszeiten werden immer auf den nächsten Tag berechnet. Bin damit eigentlich immer recht gut „gefahren“, Änderung ist allerdings auch nicht ganz trivial …

@MCS-51

Mehrere WebFronts werden so nicht unterstützt, wenn dann mußt Du im IPSWatering.ini File die jeweilige ID eintragen und auch den Path anpassen und dann die Installation für jedes WebFront starten (habs noch nicht versucht, sollte aber funktionieren):


Path=Visualization.WebFront_13921.IPSWatering
ID=13921  

Au Mann - das Update hatte ich gemacht, aber leider nur den zweiten Teil. Den ersten habe ich irgendwie unterschlagen (genaues Lesen bildet :rolleyes:).
Alle Schritte nochmal durchgeführt und jetzt klappt alles :D.

Btw.: Umlaute in der Konfigurations INI Datei (wie Übersicht oder Bewässerung) führen zu einem Fehler.

Danke & Gruß
Thorsten

Auch ich kann bestätigen: Es funzt mit meheren WFC.

Interessant nur, das Twilight und Logger mit meheren ID ind dem ModulManager zurecht kommen und Watering nicht.

Gruß
Andre

Kann ich verstehen, bei mir sind manuelle Bewässerungen allerdings immer additiv da ich eigentlich der automatic vertraue und nur im Sonderfall eingreife (etwas mehr Wasser ist nicht so schlimm wie zu wenig Wasser)

Mal schauen, man wächst ja mit den Aufgaben vielleicht gelingt es mir ja in den nächsten Monaten einen separaten Fork im Github aufzumachen (Müsste ich allerdings eine Menge dazulernen :slight_smile: )

Da hat wohl der Kopierteufel zugeschlagen :smiley:

IPSWatering

Konfiguration:
Im File IPSWatering_Configuration.inc.php muß neben dem Wohnort nur noch Längen und Breitengrad eingetragen werden.

Gruß
Bruno