IPSWatering - eine Bewässerungssteuerung

2 Möglichkeiten fallen mir da auf die Schnelle ein:

[ol]
[li]Einen eigenen Bewässerungskreis für die zusätzlich erforderliche Uhrzeit anlegen
[/li][li]Eigenes Script + Timer für die zusätzliche Ansteuerung
[/li][/ol]

Der Timer ist klar, das Script sieht dann zB so aus, wobei die ID 12345 der Variable „Active“ des Bewässerungskreises entspricht:


	IPSUtils_Include ("IPSWatering.inc.php", "IPSLibrary::app::modules::IPSWatering");
	IPSWatering_SetActive(12345, true, c_Mode_StartManual);

Hallo,

mache meine ersten Schritte mit IPSWatering. Ich versuche meine Magnetventile über meine Wut-Output zu schalten. Nun tut ich mich aber mit der integration von Wut-Switches in IPSComponents schwer. Ich habs Schritt für Schritt nach dem Wiki (http://www.ip-symcon.de/wiki/Erweiterung_von_IPSComponent%27s) versucht bekomme am Ende aber im IPSLogger nur die Meldung: „Error: Error: Class ‚IPScomponentSwitch_Wut‘ not found in Scrip … IPScomponent.class.php on line 62“,

Kann mir jemand nochmal ne schritt für schritt anleitung geben oder hat jemand wut schon entsprechend integriert?

Dank
hardlog

Alternativ zum Erstellen einer neuen IPSComponente soll es auch mit einem dummy_modul (callback) gehen, doofe Frage: wie gehe ich dann vor. Im Script „IPSWatering_Configuration“ sind beispielhaft mehrere vorgeben:

	function get_WateringConfiguration() {
		return array(
			c_WateringCircle_1  =>	array(
				c_Property_Name           =>   'Microdrop oben',
				c_Property_Component      =>   'IPSComponentSwitch_WuT,29795',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_2  =>	array(
				c_Property_Name           =>   'Rasen vor Keller',
				c_Property_Component      =>   'IPSComponentSwitch_Dummy,19824',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_3  =>	array(
				c_Property_Name           =>   'Rasen Eiche',
				c_Property_Component      =>   'IPSComponentSwitch_Dummy,12345',
				c_Property_Sensor         =>   '',
			),
			c_WateringCircle_4  =>	array(
				c_Property_Name           =>   'Gartenanschluss / Gewürzgarten',
				c_Property_Component      =>   'IPSComponentSwitch_Dummy,12345',
				c_Property_Sensor         =>   '',
			),
		);

Kann ich „'IPSComponentSwitch_Dummy“ nutzen um eines meiner eigenen Scipte aufzurufen (hier ID 19824)?

Irgendwie stehe ich (in diesem Fall wohl wortwörtlich) auf dem Schlauch!!!..

Gruß
hardlog

Hallo hardog,

zur Ansteuerung über die Callback Funktion verwendet man zB das Dummy Modul - das macht dann gar nichts. Die eigentliche Ansteuerung machst Du dann in der Callback, als Parameter hast Du dort die CircleID zur Verfügung, mit der kannst Du entscheiden welchen Switch Du schalten musst.

Die Fehlermeldung bei der Component bedeutet, dass das entsprechende File nicht gefunden wurde.Das File muss sich im selben Verzeichnis wie IPSComponentSwitch befinden und mit class.php enden (also IPSComponentSwitch_Wut.class.php)
In Deinem Fall stimmt auch die Groß/Kleinschreibung nicht ganz …

Hallo Andreas,

danke für die Antwort.
Die Datei „IPSComponentSwitch_WuT.class.php“ liegt im selben Verzeichnis wir IPSComponentSwitch.class.php!!

Das mit dem Callback, da brauch ich nochmal ne Anleitung für dummies.

Gruß
hardlog

Hallo Andreas,

leider wieder einmal ein alter Hut für dich, es wäre wegen IPS Watering. Ich hätte gerne mehr als drei Wasserkreise und ich möchte einzelne Kreise auch gerne zweimal am Tag schalten können. Vielleicht gibt es irgendwo bereits eine Anleitung. Ich habe leider nichts gefunden. Da ich ein absoluter Programmier Laie bin, ersuche ich um Nachsicht für meine Fragen. Ich will es aber dennoch selbst Versuchen es hinzubringen. Zu aller erst eine allgemeine Frage, wäre es ein gangbarer Weg zwei Wasserkreise für ein und den selben Akktor anzulegen. Einen zum Beispiel für Bewässern-früh und einen für Bewässern-spät ? Dann hätte ich die Möglichkeit mehrmals zu schalten, oder? Prinzipiell habe ich das alles schon probiert, leider bekomme ich bei den von mir angelegten neuen Kreisen folgende Fehlermeldung:
Fehler.JPG

Fast Vergessen, manuell Schalten geht. Zeitvorgabe per Webfront stellen, Fehler.

Mehrere Bewässerungskreise mit dem selben Aktor anzulegen ist derzeit sicher die beste Wahl und sollte funktionieren.

Hast Du nachträglich noch was in der Config geändert und die Installation nicht laufen lassen?
Eventuell auch mal eine Neuinstallation versuchen.

wie habt ihr das mit ein 1-Wire Modul gelöst, denn 1-wire geht ja bei true aus und false an, also wenn ich bei c_Property_Component mein 1-Wire befehl angebe geht mein Regner bei „Regner-an“ aus und bei „Regner-Aus“ an :confused:

Hallo Jimmyrakete,

Ich kann es dir nicht sicher sagen aber ich denke es wird in der Instanz ein Häckchen geben mit Status Invertieren!

Gruß Bernd

Wenn ich die Zeit für den Automatik-Start anpasse (bei bereits aktiver Automatik für einen späteren Zeitpunkt heute) wird der nächste Startzeitpunkt immer auf morgen gelegt.
Ändere ich den Rhythmus auf „alle 2 Tage“ findet der erste Start heute statt, beim Zurückändern auf „jeden Tag“ ist wieder morgen der erste Starttermin. Ist das so vorgesehen oder ein Glitch?

Beste Grüße
/Jens

Die Berechnung basiert auf der letzten Ausführungszeit:


			case c_ProgramId_EveryDay:
				$date = get_DateTime($ControlIdLastDate, c_Format_LastDate,
				                     $ControlIdNextTime, c_Format_NextTime)+1*24*60*60;
				break;
			case c_ProgramId_Every2Day:
				$date = get_DateTime($ControlIdLastDate, c_Format_LastDate,
				                     $ControlIdNextTime, c_Format_NextTime)+2*24*60*60;
				break;

sollte das was da rauskommt in der Vergangenheit liegen, wird es auf den nächsten Tag korrigiert:


		if ($date<=time()) {
			$date = strtotime('next day');
		}

Hm … ist nicht ganz das was ich als Ergebnis sehe.

Chronologisches Praxisbeispiel:

  • Automatik ist seit mehreren Tagen in Betrieb um 23:00h für 20 min „täglich“
  • Änderung der Uhrzeit um 13:00h mittags, von 23:00h auf 23:30h für den gleichen Tag verschiebt die nächste Beregnung auf morgen 23:30h
  • Änderung des Intervalls auf „alle 2 Tage“ verschiebt die nächste Beregnung zurück auf heute, 23:30h
  • Änderung des Intervalls zurück auf „täglich“ verschiebt die nächste Beregnung wieder auf morgen 23:30h

Ich habe also keine Möglichkeit bei täglichem Intervall per Webfront nur die Uhrzeit für den aktuellen Tag zu ändern, da die Beregnung bei täglichem Intervall sonst für heute flach fällt.
Bei der Analyse des Codes ist mir bis jetzt aber auch kein Licht aufgegangen wo der Knackpunkt ist. Eigentlich müsste es so funktionieren wie Du es beschreibst :confused:

Beste Grüße
/Jens

Erstmal vielen Dank für das tolle Skript.
Ist es möglich die Bewässerung mehrmals am Tag auszuführen?
Zur Zeit bekommt mein Rasen beispielsweise 2x am Tag für 15 min Wasser. Dies würde ich gerne beibehalten.

schöne Grüße

Deine Frage wurde bereits ein paar Beiträge früher beantwortet -> HIER :wink:

Beste Grüße
/Jens

Hallo,
ich habe unter Ubuntu 14.04.3 LTS Serverversion mit aktueller Beta-Version nach dem Aktivieren des Buttons Automatik „ON“ folgende Fehlermeldung:
Wrong parameter count for IPS_SetEventCyclicTimeTo() in …/IPSLibrary/app/modules/IPSWatering/IPSWatering.inc.php on line 136

Kann mir jemand Hilfestellung geben?

IPSWatering Version2.50.5

Hallo zusammen,

ich habe seit IPS 4.0 ein großes Problem mit der IPS Library bzw. den Modulen IPSWatering und IPSPowerControl. Nach Änderungen in der Konfiguration und dem Versuch die Module neu zu installieren erhalte ich immer folgenden Fehler:

Error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 281783 bytes)
Error in Script C:\IP-Symcon\scripts\IPSLibrary\install\IPSInstaller\IPSInstaller.inc.php on Line 932
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
33 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
121 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler) in IPSLogger_PhpFatalErrorHandler

Ich hatte bereits die php.ini angepasst: memory_limit=64M.

Jemand eine Idee dazu oder ähnliche Schwierigkeiten?

Grüße

Welches Betriebssystem? Ggfls. ist unter Linux die php.ini im PHP Pfad aktiv und du änderst an der falschen Stelle?

Hallo wupperi,

ich hatte die php.ini bereits von 32 Mb auf 64 Mb angepasst. Das hatte er auch geschluckt. Allerdings kommt der Fehler trotzdem. Vor der Migration auf 4.0 hatte ich auch nie Probleme mit den Modulen.

Der IPS Server ist ein normaler Windows PC mit Win10 64bit.

Grüße

Hmmm…bei mir läuft das gleiche Skript mit 32M in der PHP.ini.
Hattest Du PHP noch einzeln installiert, ausserhalb von IPS? Ggfls. irgendein andere PHP.ini im PATH oder so?