Scripte zusammen hängen

Hallo zusammen

Versuche 2 Scripte zusammen zulegen, jedes einzelne geht, jedoch wenn ich beide zusammenlege geht das zweite nicht mehr. Das heisst, bei einer gewisschen Temperatur werden die Switch geschalten, diese sollten nach einer anderen Temperatur wieder abfallen.

Tun sie leider nicht, hier mein Script.

<?

// Holt den Temperaturwert von Sensor in Maische
$temperatur_maische = GetValueFloat(55135 /*[Temperaturfühler\Maische Temperatur]*/);

if ($temperatur_maische > 10)
{
TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, true);  // Brenner einschalten
TMEX_F3A_SetPin(39013 /*[Switch]*/, 1, true);  // Rührwerk einschalten
}
else

if ($temperatur_maische > 30)
{
TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, false);  // Brenner einschalten
TMEX_F3A_SetPin(39013 /*[Switch]*/, 1, false);  // Rührwerk einschalten
}

?>

was habe ich nicht berücksichtigt???

Merci und Gruss

Mach mal das „else“ vor dem 2. if-statement weg, sonst wird der 2. Block nie ausgeführt. :wink:

Hallo.

Darüber hinaus sollte bei der ersten Bedingung der Temperaturbereich auch nach oben eingegrenzt werden da sonst ab 10 Grad eingeschaltet wird um direkt danach wieder abzuschalten.

// Holt den Temperaturwert von Sensor in Maische
$temperatur_maische = GetValueFloat(55135 /*[Temperaturfühler\Maische Temperatur]*/);

if ($temperatur_maische > 10 and $temperatur_maische <=30)
{
TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, true);  // Brenner einschalten
TMEX_F3A_SetPin(39013 /*[Switch]*/, 1, true);  // Rührwerk einschalten
}

if ($temperatur_maische > 30)
{
TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, false);  // Brenner ausschalten
TMEX_F3A_SetPin(39013 /*[Switch]*/, 1, false);  // Rührwerk ausschalten
}

?>

Oder ganz anders:

[QUOTE]


<?
// Holt den Temperaturwert von Sensor in Maische
$temperatur_maische = GetValueFloat(55135 /*[Temperaturfühler\Maische Temperatur]*/);
$status = false;

if ($temperatur_maische > 10 and $temperatur_maische <=30)
{
$status = true;
}

TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, $status);  // Brenner schalten
TMEX_F3A_SetPin(39013 /*[Switch]*/, 1, $status);  // Rührwerk schalten
?>

Vielen dank für all die Tips…

else hab ich weg gelassen, schaltet bei 30°C nicht aus…
bei den anderen 2 Varianten, genau das gleiche…

Switch immer noch auf ON, trotz der Temperatur über 30° C…

Dieses Script sollte ja zwischen 10° und 30° C den Brenner sowie das Rührwerk einschalten, wenn die Temperatur erreicht, wieder abfallen.

Eigentlöich nee simple Aufgabe, ich muss das ansonsten anders mal probieren…

Trotzdem merci

Stimmt. Er schaltet aus z.b. bei 30.01 Grad.

Nein. leider schaltet gar nix aus…

Habe mal dieses probiert:

<?
tmex_F3A_SetPin(25864 /*[Brenner]*/, 0, True); //Gerät einschalten
tmex_F3A_SetPin(39013 /*[Switch]*/, 1, True); //Gerät einschalten


// Holt den Temperaturwert von Sensor in Maische
$temperatur_maische = GetValueFloat(55135 /*[Temperaturfühler\Maische Temperatur]*/);

if ($temperatur_maische > 30)
{
TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, false);  // Brenner einschalten
TMEX_F3A_SetPin(39013 /*[Switch]*/, 1, false);  // Rührwerk einschalten
}


?>

aber auch da, kein ausschalten…

bin verzweifelt… wenn ich das eine Script ausführe, schalten die Switch ein; wenn ich nachher das andere Script manuel ausführe, schalten sie wieder aus. Natürlich nur wenn die Temp. auch erreicht ist.

Fazit: da stimmt was nicht…

Liebe Leute, hat keiner eine zündende IDEE…

Hallo Urs,

bei Deiner Variante schaltest Du gleichzeitig ein und aus (bei über 30°) - das kann nicht gehen und ist sinnfrei.

Mach Dir bitte Testvariablen unter IPS, ändere diese per Hand und sieh was Dein Script macht.

Kronos Variante sieht aus meiner Sicht okay aus.

Es gibt viele Anleitungsseiten. Du tust Dir einen Gefallen mit der Anfängerseite (nicht böse gemeint - alle haben mal angefangen) z.B.PHP Lernen - PHP Tutorial, Anleitung
Um ein Schwingen um die 30° zu vermeiden würde ich noch eine Hysterese vorsehen - aber erst im zweiten Schritt

herbert

Ich vermute auch, dass da die Eingangswerte für die IF-Abfrage einen Hund drin haben.

Der zweite Weg von Kronos ist der beste. Den solltest du weiter verfolgen. Was passiert, wenn du in dem Beispiel testhalber im TMEX Aufruf false eingibst? Schaltet er denn dann aus?

Wartest du darauf, dass das Script das Rührwerk selbständig ausschaltet bei erreichen der Temp. > 30?

Dann musst du natürlich noch ein Ereignis anlegen, z.B. beim ändern der Temperatur aber das weisst du bestimmt.

Gruß Doc

Ich sage mal danke, bin da ein bisschen festgefahren…
Lege die ganze Sache für 24 Stunden auf Eis, das hilft meistens…

Gruss

So ich schreib mal zurück, vielleicht hilfts jemand anderem auch.

Habe das ganze einwenig frisiert und dies ist dabei herausgekommen.
Merci Doctor Snuggles für den Hint. mit dem Ereignis.

 <?
// Holt den Temperaturwert von Sensor in Maische
$temperatur_maische = GetValueFloat(55135 /*[Temperaturfühler\Maische Temperatur]*/);
$status = false;
if ($temperatur_maische > 20 and $temperatur_maische <=29)
{
$status = true;
}
TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, $status);  // Brenner schalten

IPS_SetScriptTimer($IPS_SELF, 10); //10 Sekunden aktiv lassen
//
//ende
//
if ($temperatur_maische >=29)
{
$status = false;
}

TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, $status);  // Brenner ausschalten

?>

wenn man jetzt am Ende noch ein
IPS_SetScriptTimer($IPS_SELF, 0); //Timer ausschalten
}

hinzufügt, sollte das ganze stimmen…

Grüsse aus der Schweiz und nochmals merci

Urs

… überlege mal genau. Dann wird das Script genau nur 1x ausgeführt, genau so, als wenn du den Scripttimer nicht gesetzt hättest.

Das Beste war eigentlich das Script von kronos, welches du nur zyklisch ausführen müsstest. Evtl. noch einen Stop einfügen, falls mal nix im Kessel ist.
Was ist eigentlich, wenn die Maische kleiner 20 Grad ist? Soll dann nix passieren?

Grüße,
Doc

Hallo Doc
Leider hat bei mir KRONOS Script nicht funktioniert, diese Variante schon…
Die Temperatur geht nicht unter diese 20 Grad, da in einem anderen Script über Nacht eingemaischt zuweilen die Geschmackstoffe oder Oele gelöst werden. Somit liegt die Temperatur schon beim umfüllen bei 25 Grad…

Da kommt noch eine Zuckerrast dazu, diese liegt bei 55 bis 65 Grad, da gehe ich ja immer mit der Temperatur nach oben.

Beispiel

  1. Rast bei 55 Grad, 20 Min.
  2. Radt bei 65 Grad 30 Min.
  3. Rast bei 72 Grad 20 Min.
    abfiltern bei 78 Grad…

Gruss

Huhu mal so ne doofe Frage … was machst du da eigentlich genau ? Bier ?

abfiltern bei 78 Grad… => Abmaischen heißt das xD

Hallo Flobo

ja genau, oder so…
eigentlich Sirup und Tee, jedoch das mit dem Bier haben wir auch schon ausprobiert, war lecker…

Doch das mit den Script frunzt noch nicht so ganz, die wollen einfach nicht so wie gerne hätte…

Jedes einzelne Script geht, jedoch wenn ich diese zusammen ausführen möchte (also nacheinander), habe ich immer ein Problem. Das mit den Pausen krieg ich einfach nicht hin…

Gruss

Sehr rätselhaft. Dann poste doch nochmal den aktuellen Stand deines Scriptes und zusätzlich Bilder deiner Konsole mit dem Script und dem/den Event(s).

Ha…
Das Script von Kronos habe ich jetzt weiterverfolgt, wenn man am Ende ein Set Script Timer einfügt, schaltet der Switch ab…

Hier…

<?
// Holt den Temperaturwert von Sensor in Maische
$temperatur_maische = GetValueFloat(55135 /*[Temperaturfühler\Maische Temperatur]*/);
$status = false;

if ($temperatur_maische > 10 and $temperatur_maische <=30)
{
$status = true;
}

TMEX_F3A_SetPin(25864 /*[Brenner]*/, 0, $status);  // Brenner schalten

IPS_SetScriptTimer ($IPS_SELF, 5); // 5 Sek. aktiv halten

?>

Nun noch eine zusätzliche Pause von 20 Minuten und dann den nächsten Temperaturstop… ???

Jedes einzelne Script geht, jedoch wenn ich diese zusammen ausführen möchte (also nacheinander), habe ich immer ein Problem. Das mit den Pausen krieg ich einfach nicht hin…

Ich bin zwar kein PHP-Programmierprofi, beim mitlesen kommt mir jedoch der Verdacht, dass du hier ein Script in das Forum stellst und erwartest dass deine Anforderungen über den kompletten Ablauf erfüllt werden.

Definiere doch erst mal wie das ganze ablaufen soll, in einzelnen, möglichst kleinen Schritten so wie du es auch manuell machst, dann wird dir auch ein PHP-Profi gezielt helfen können.
Bsp.:

[ul]
[li]Wenn Temperatur kleiner 30° dann Brenner einschalten[/li][li]Wenn Temperatur größer 30° dann Brenner ausschalten[/li][li]20 min. Pause einlegen[/li][li]Wenn Temperatur kleiner 50° dann Brener einschalten[/li][li]Wenn Temperatur größer 60° dann Brenner ausschalten[/li][li]30 min Pause einlegen[/li][li]usw.[/li][/ul]

Was noch interessant wäre: Handelt es sich um einen, bzw. immer den selben Brenner(Switch) der geschaltet werden muss oder mehrere, also wie sind die hardwaremäßigen Voraussetzungen?

Da haben wir was gemeinsam, ich bin auch kein PHP Profi… :slight_smile:

Ich erwarte nicht, dass mir jemand ein Script vor die Füsse knallt, das wäre ja am Ziel vorbei geschossen, ich lebe nach dem Motto „mach es selbst“, nur so lernt man etwas… " Kaufen kann jeder"

Ich bin doch schon so weit, dass dieses Script jetzt bei mir frunzt, prima… Haben sich doch die Stunden mit probieren, lesen und schreiben ausbezahlt.

Wie ich schon mal erwähnt habe, gehen alle meine kleinen Scripte, ist auch prima, so weiss ich, dass ich auf dem richtigen Weg bin.

Natürlich sollte die Steuerung einmal ein kompl. Script geben, bis an hin habe ich die einzelnen manuell geschalten. Das Ziel ist es Temperatur und Zeitgesteuert gewisse Abläufe auszuführen.

Aufheizen bis
Temperaturrast
Aufheizen bis
Temperaturrast
usw…

So genug gequatscht…
Ich stelle jetzt doch noch eine Frage, was muss ich berücksichtigen, wenn ich nach meinem obigen Script eine zeitliche, temperaturüberwachte Pause einlegen möchte. Diese sollte „sagen wir mal“ 45 Minuten dauern…

So wie es jetzt ist wird alle 5 Sekunden dass Script neu gestartet, den TimerEvent kann ich ja nicht verstellen, sonst wird ja nur alle 45 Minuten neu gestartet.
Wenn ich ein sleep einsetzte, dann schläft ja alles ein… ODER…

In diesem Sinne, hoffentlich bis bald, Gruss aus der kleinen Schweiz