Pumpe für eine bestimmte Zeit schalten

Hallo Zusammen,
ich habe einen Homematic 8-fach Schalter. An dem habe ich unter anderem unsere Garten Tiefbrunnenpumpe. An einer anderen Stelle habe ich einen Homematic Funkschalter/Taster.

Mein Vorhaben:

Ich möchte gerne, dass die Pumpe für 2 Stunden Strom bekommt, sobald ich den Schalter betätige. Nach 2 Stunden soll dann die Pumpe wieder stromlos gesetzt werden. Wie kann ich das mit Hilfe eines Skripts realisieren?

Besten Dank im Voraus,
Dirk

Ganz einfach:

Du übergibst dem Aktor erst die Zeit für den nächsten Befehl und dann den Befahl selbst.
Das hat den Vorteil, dass du keinen Ausschaltbefehl benötigst der evtl. Verloren gehen könnte.
Steht auch als Bsp. So in der Doku.


HM_WriteValueFloat($id, "ON_TIME",  60*120); // x Minuten AN
HM_WriteValueBoolean($id, "STATE",  true); // AN

super, vielen Dank!!!

Moin Dirk,
wie nutzt du die Tiefbrunnenpumpe ?
Ist da ein Druckschalter, Trockenlaufschutz mit dran ?

Moin Thomas,
so ist es. Ich schalte im Prinzip nicht die Pumpe direkt sondern den Druckschalter. Ich weiss das die Pumpe nicht unter Strom steht wenn der Druckschalter nicht auslöst, ABER: eine Leitung die von der Pumpe aus zur anderen Seite des Hauses geht, geht einmal durch den Keller.Sollte mal was an der Leitung sein und dadurch der Druckschalter auslösen möchte ich nicht das mir 6000 Liter pro Stunde in den Keller laufen:-)

Moin Dirk,
dann ist ja alles gut.:slight_smile:
Ich habe bei meiner Pumpe den Druckschalter abgefragt und wenn der länger Zeit x läuft(bei mir nur einige Minuten), schalte ich die Pumpe ab.

Jetzt habe ich gedacht ich könnte den Befehl für ein zwave Gerät übernehemen aber das scheint nicht zu gehen. Wie kann ich denn die Zeit einem zwave Gerät (ZW_switchMode) übergeben? Wie würde ein Quellcode dann aussehen? Ich glaube ich mache nur eine Kleinigkeit falsch…

Das das nur eine Kleinigkeit ist glaube ich nicht, das ist eine Homematic befehl. Ich kenn mich mit Z-Wave nicht aus, aber aus der Doku geht nichts vergleichbares hervor.

Das passt auch nicht zu Z-Wave, man versucht doch dort möglichst wenig Energie zu verbrauchen, bzw. ohne Akkus, Stromversorgung auszukommen, wenn ich das richtig im Kopf habe.

Einfach den Timer in IPS Abbilden.
Wie kann ich…? — IP-Symcon :: Automatisierungssoftware

Hallo Dirk,

da du auch „Fibaro Switch“ in deiner Signatur stehen hast, könntest du mal schauen ob dein Gerät „Auto OFF“ beherrscht.
Der FGS-213/223 FW3.2 beschreibt in den Parametern 10-12 so etwas. Und das kannst du ja dann fest einstellen.

2019-04-20 09_44_47-FGS-2x3-EN-T-v1.2 FW3.2 - PDF-XChange Viewer.png
Nur so eine Idee…

Frohe Ostern
lueralba

geht denn eine Zeitabfrag mit einem Script? Es muss nicht genau sein von den Stunden aber wenn man jetzt alle 10 Minuten ein Script starten welches prüft wie lange Variable X geschaltet ist und wenn dies grösser 2 Stunden ist, dann schalte aus? Jemand einen Tip für solch eine Codezeile?

Besten Dank
Dirk

bissi abwegig: ich nehme das native Treppenhauslicht-Modul aus Misc für meine Pumpen

Hallo Axel,
Das klingt interessant aber ich verstehe es nicht ganz. Bei dem Modul kann man doch nur Sensor, Zeit und Ziel angeben. Das heisst du nimmst als Sensor einen Zwave Taster wenn sein Status sich ändert und als Ziel deinen zwave Schaltaktor für die Pumpe oder wie muss ich mir das vorstellen?
LG dirk

In PHP bekommst du per PHP: time - Manual den aktuellen Zeitstempel. Den kannst du dann mit den Werten für VariableUpdated oder VariableChanged vergleichen um die Dauer zu bestimmen.

Hallo Dr. Niels,

vielen Dank für Deine Antwort. Ich vermute mal Du meinst das ich dann zb alle 10 Minuten ein PHP Script starten lasse welches die Zeit der Variable der Gartenpumpe abfragt und sollte diese >2 Stunden sein, ZW_SwitchMode FALSE setzt. Habe ich dich so richtig verstanden? Wenn ja, habe ich das Problem das ich nicht weiss wie so ein PHP Script aussehen könnte, da habe ich leider zu wenig Peilung von:-). Sollte das simple sein, kannst Du mir ein paar Zeilen Code rüber „werfen“? :wink:

<?php

$time = time();
$Variable = IPS_GetVariable (12345); //VariableID von der zu überwachenden Variable


if (($time - $Variable['VariableChanged']) > (60*60*2))
	{
	//Hier steht das, was ausgeführt wird wenn die Variable "$Variable" länger als 2 Stunden nicht geändert wurde
	}

so in etwa, nicht getestet und nur als Denkanstoss. Ggf „VariableChanged“ durch „Updatet“ ersetzen usw. siehe Doku mit den Begriffen aus Dr.Nils seinem Post.

Gruß

Julian

super Julian! Probiere ich gleich mal mit rum, 1000 Dank