Warmwasser Bereitung für 30min

Hi, ich möchte eine relativ einfach Automation erstellen und ich habe es auch hinbekommen, aber ich finde meine Lösung etwas unsauber und sie ist vermutlich auch zu kompliziert, da ich manches noch nicht ganz verstanden habe. Vielleicht kann hier nochmal jemand drüber schauen und mir sagen, wie man das einfacher lösen kann. Das würde mir bei zukünftigen Aufgabenstellungen sicher helfen.

Was ich machen möchte ist, das über einen Button in der Visu die Temperatur für die WW-Bereitung für 30min erhöht wird und dann wieder auf den vorherigen Wert zurückgestellt wird. Dann sollen die Erhöhung auch innerhalb der 30min über den selben Taster abgebrochen werden.

Dafür habe eine Dummy-Instanz mit einer Statusvariable erstellt, welche ein Aktionsskript aufruft. Da ich das mit den 30min in PHP nicht hinbekomme, mache ich das mit einem Ablaufplan. Nun wüsste ich mal gerne, ob das auch nur mit einem Ablaufplan gehen würde. Wenn ich aber über die Variablenaktion direkt den Ablaufplan statt des Aktionsskriptes als Ziel auswähle, dann bekomme ich die Fehlermeldung Ablaufpläne können nicht mit Wait aufgerufen werden

Hier mal wie ich es nun gelöst habe. Was ich bei mir noch unschön finde ist, dass wenn ich nach den 30min Status WW auf false setze, dann das Aktionsskript nicht zu ende läuft sondern wegen der Änderung abgebrochen und nochmal aufgerufen wird. Aber wie gesagt, ich denke das müsste auch einfacher gehen.


<?php

//$variable_WW_Temp = 57114;
$Set_WW = 47752;
$value_Status = GetValueBoolean($Set_WW);

if ($value_Status === false) 
{
    // Aktion ausführen, wenn die Variable auf false stand
    SetValue($Set_WW, true);
} 
else
{
    // Aktion ausführen, wenn die Variable auf true stand    
    SetValue($Set_WW, false);   
}

Also ich würde in diesem Fall 3 php scripte machen:

  1. Das action script, dass die Variable gem. Tastendruck auf true oder false stellt (Hast Du im Prinzip ja auch so gemacht)
  2. Ein script, dass jede Minute startet und prüft, ob die Variable true ist und die letzte Änderung schon länger als 30min her ist, wenn ja, dann false setzen
  3. Ein Script, dass bei Änderung der Variablen auf true die eine Aktion und bei false die andere Aktion durchführt.

Geht bestimmt auch anders, aber ich mag einfache php-scripte.

Hi,
ich mag Scripte auch sehr würde aber nur ein Script machen. Mit $_IPS[‚SENDER‘] kann man in eine switch-Konstruktion schön alle 3 Fälle abbilden.

Ralf

Ah, das wäre sehr gut! Aber ich hab keine Ahnung, wie ich $_IPS[‚SENDER‘] anwenden muss? Macht das nicht das gleiche, wie meine Abfrage der Variable? Vielleicht kannst du mir mal eine Zeilen als Beispiel nennen?

Ich bräuchte mal so ein Symcon PHP-Skripting Tutorial das mir die grundlegenden Befehle einfach erklärt. Hab da schon viel gesucht, aber bisher nichts passendes gefunden. Hier gibt es ja auch ein paar Beispiele wie kann ich aber das hilft mir auch nicht so sehr weiter :frowning:

An dem würde ich mich glatt mit dranhängen. :slight_smile:

1 „Gefällt mir“

Ich gebe dir bescheid, wenn ich was passendes gefunden habe :wink:

Moin,

<PHP?
switch ($_IPS['SENDER']){
// im Webfront gewählt
case 'WebFront':
break;
// per RequestAction
case 'Action':
break
// von Alexa
case 'VoiceControl':
break;
// direkt in der Konsole ausgeführt
case 'Execute':
break;
// Wenn Timer
case 'TimerEvent':
break;
//usw.
}

Siehe hier System Variables — IP-Symcon :: Automation Software

Bei Variable und Timer kann man mit $_IPS[‚EVENT‘] noch unterscheiden welches Event es war.

Ralf

1 „Gefällt mir“

… und so wie weiter oben vorgeschlagen „… alle Minuten starten und schauen ob die Zeit abgelaufen ist…“ ist auch nicht wirklich schön.
Besser einen Timer aufsetzen und von diesem das Script triggern lassen. Dann im obigen Script im "case ‚Timer Event‘ den Code um Abschalten rein, nicht vergessen den Timer zu disablen.
greez
bb

Falls ein Temperaturwert vorliegt, bietet es sich an, diesen einzubinden. 30Minuten fix hat doch eher wenig mit Automation zu tun.

LG

Da ist natürlich auch etwas dran. Konkret geht es mir darum den WW-Speicher 30min bevor die Kinder baden gehen auf einen höheren Wert aufzuheizen. Das braucht dann je nach Ausgangs Temperatur 10-20min und wird daher mit den 30min gut funktionieren. Sollten sie doch schon früher in die Wanne gehen, dann könnte es bei einem Deaktivieren durch erreichen der 52° Schwelle auch sein, dass das Wasser nochmal unnötig auf 52° aufgeheizt wird, obwohl die Wanne schon voll ist.

Aber prinzipiell gebe ich dir da schon Recht, dass man es auch machen könnte.

1 „Gefällt mir“

Du darfst auch das Thema Legionellen nicht aus den Augen verlieren. Es ist nicht ohne Risiko, wenn man das warme Wasser nicht ausreichend aufheizt. Ich hatte beruflich ein paar Mal mit dem Thema zu tun. Das war kein Spaß und ein riesiger Aufwand, die Leitungen befallfrei zu bekommen.

LG

1 „Gefällt mir“

Guter Hinweis! Irgendwie verdränge ich das Thema immer :see_no_evil:

Ich will demnächst noch 2 Shelly Addon Temperatursensoren an die WW und Zirkulation hängen. Dann kann sehen, wie der Temperaturverlauf ist.

Ich bin durch einen Vorfall sensibilisiert, obwohl das in einem Eigenheim nicht ganz so tragisch ist, weil dort immer Wasser in Bewegung ist.
Leider findet mal aber auch immer stillgelegte Stränge, die den Nährboden für Probleme darstellen.

Wir mussten mal in einem größeren Wohngebäude die komplette Leitungsinstallation ersetzen, weil selbst wochenlanges Spülen durch eine Fachfirma mit allen möglichen Mitteln das Problem nicht beseitigen konnte. Ich saß in vielen Besprechungen zum Thema und alles war mehr oder weniger neu für mich.
In den Rohrablagerungen und Verbindungen finden diese Erreger (es waren später nicht nur Legionellen) wohl ideale Versteckmöglichkeiten.

Zusätzlich hatten wir uns auch die rechtliche Bewertung eingeholt und im öffentlichen Raum stehst Du schnell vor der Staatsanwaltschaft.

Das mach einen sensibel bei dem Thema.

Duschen ist das große Problem. Die Aerosole atmest Du ein.
Trinken kannst Du das Wasser gefahrlos.