do
Kaminbefüllung Deckel = TRUE
35 Sekunden warten
Sauganlage = TRUE für 35sek, dann FALSE
Kaminbefüllung Deckel = FALSE für 30sek
until 10Mal durchgeführt
Als auslösendes Ereigniss bei diesem Script die Kaminbefüllung zentral bei Variablenänderung nehmen.
Das einzige Problem an diesem Script ist das es dir einen PHP Thread blockt (wegen den 35 sec. sleep) um das zu verbessern bräuchte man ein paar mehr Infos über die verwendeten Geräte und was sich da genau tun soll.
Auszug aus der Doku
Da sich die Laufzeit des Skripts um Wartezeit verlängert, ist darauf zu achten, dass die in der Datei “php.ini“ definierte maximale Laufzeit nicht überschritten wird. Andernfalls wird das Skript mit einer Fehlermeldung abgebrochen. Längere Wartezeiten im Bereich von mehreren Sekunden und länger sollten mit anderen Methoden realisiert werden.
if($_IPS['VALUE'] == true ){
for ($i = 1; $i <= 10; $i++){
HM_WriteValueBoolean(12345, "STATE", true); //ID von Kaminbefüllung Deckel eintragen
IPS_Sleep(35000);
HM_WriteValueBoolean(23456, "STATE", true); // ID von Sauganlage
IPS_Sleep(35000);
HM_WriteValueBoolean(23456, "STATE", false); // ID von Sauganlage
HM_WriteValueBoolean(12345, "STATE", false); //ID von Kaminbefüllung Deckel eintragen
IPS_Sleep(30000);
HM_WriteValueBoolean(12345, "STATE", true); //ID von Kaminbefüllung Deckel eintragen
};
SetValueBoolean($_IPS['VARIABLE'], false); //ID von Kaminbefüllung zentral steht im $_IPS Array
};
Das Script ist ungetested und aus dem Kopf geschrieben…
@Soundman33: Vielen Dank für deine Mühe … vom Ablauf her genau das was ich suche
Das Problem ist die 35Sek-Begrenzung …
Eigentlich habe ich 2 Homeatic-Geräte zu steuern.
Gerät 1: Saugturbine mit Spindel
Gerät 2: Öffnung Vorratsbehälter
Zuerst wird Gerät 2 geschlossen damit die Saugturbine über Unterdruck Pellets ansaugen kann (Spindel dient nur dazu, dass sich nichts verlegen kann). Dann wird Gerät 2 geöffnet und die Pellets laufen in den Ofentank hinein.
Sicherheitshalber habe ich einen Ultraschallsensor, der die Saugturbine ausschaltet wenn genug Pellets im Ofentank sind (über Relais gesteuert und nicht in Homeatic realisiert).
S1: Gerät 2: AN -> Öffnung wird geschlossen (falls offen war - damit habe ich einen definierten Zustand)
nach 25Sek
S2: Gerät 1: AN -> Pellets werden angesaugt
nach 25Sek
S3: Gerät 1: AUS
S4: Gerät 2 AUS -> Öffnung wird aufgemacht
nach 25Sek
Gehe 10 Mal zu S1
Eigentlich sehr einfach, wenn nicht das Problem mit dem Timer wäre …
Danke für die Hilfe !
Nach deinen letzten Angaben 25 Sekunden statt vorher 35 … habe ich mal etwas ohne Gewähr gebastelt, worauf du aufbauen könntest.
Aber teste es erstmal „soft“, ob du damit das erreichst, was du wolltest… kann ja sein ich habe noch einen Denkfehler, oder die Frage nicht korrekt verstanden bzw. kenne andere Einflüsse nicht…
Hatte ich so vermerkt;) … im Script. (Lese mal kurz die Hinweise und Anmerkungen die ich eingebettet habe)
Deine Variablen musst du allgemein „einfügen“… ist kein PnP-Script!
Tja, habe ich gelesen und die 2 CounterIDs als Integer angelegt. Alle anderen Variablen sind ja lokal und muss ich nicht anlegen. Trotzdem bekomme ich den Fehler …
Sind selbstverständlich Dummys, die du durch deine ID’s ersetzen musst.
Das Script ist nur ein Beispiel, wie es funktionieren sollte(halbfertig). Aber anpassen und verfeinern musst du es selbst!
Ich habe meine Ids eingetragen, aber vorher schon das Problem mit den Ablauf und Durchlauf-Variablen.
Angelegt habe ich nur die Counter1ID und Counter2Id - variablen als Integer.
Die Bezeichnung $Counter1ID und 2ID musst du mit der fünfstelligen Variablen-ID (xxxxx) deiner tatsächlich manuell angelegten Int-Var ersetzen!
Ich dachte, dass muss ich nicht erst erklären… :rolleyes:
Denk’s nochmal durch
Die unterschiedliche Vorgehensweise innerhalb eines Skripts macht es natürlich nicht unbedingt einfacher, aber ist halt so passiert. Freut euch wenn das Ergebnis jetzt passt.
PS: Hängt der „Senior Member“ von der Zeit seit der Anmeldung ab oder von der Zahl der veröffentlichten Beiträge ?
@quicksim: Sei doch mal etwas selbstkritisch. Ich mußte schmunzeln, als ich diesen Thread verfolgte und ja, ich erinnere mich genau an Deine ersten Zeit im Forum und ehrlich, das zieht sich bis heute wie ein roter Faden durch. Ich erkenne da kaum Entwicklung oder ein Interesse, dies zu ändern. Darf man so etwas nicht nach fast 2 Jahren und >220 Beiträgen erwarten? :rolleyes:
@Boui: Ja, hatte ein Brett vorm Kopf und nicht die Geduld - danke, dass du meinen roten Faden verfolgst - dann müßte dir auch bekannt sein, dass es wenige Beiträge zu Programmen, sondern mehr Richtung Hardware (Server, Wetterstation, …) bzw. Graphen waren … Ich möchte einfach in der wenigen Freizeit zu viele verschiedene Sachen ausprobieren - vielleicht spielt da auch schon digitale Demenz eine Rolle :rolleyes:
@Nancilla: Danke nochmals für die Geduld - trotz Basisfehler … werde das finale Skript posten … Beim Schalten fehlt das „STATE“ im HM_WriteValueBoolean. - Powerfreddys Hinweis wird ergänzt.