Aktuell bin ich daran meine Heizung mithilfe von 1-Wire zu automatisieren.
Folgendes wird automatisiert:
- Kreislaufpumpen (AN / AUS)
- Kreislaufmischer
Aktuell steuere ich die zwei Pumpen über jeweils 1 x Script.
Pro Pumpe ein Script mit an + aus. Das funktioniert auch super ohne Probleme.
Jetzt habe ich mir noch einen Button programmiert der heist „Heizperiode“ dort habe ich zur Auswahl „Sommer“ und „Winter“ wenn ich jetzt auf „Winter“ klicke, dann sollen sich beide Pumpen einschalten und laufen.
Bei diesem Schritt laufen mehrer 1-Wire-Befehle ab, ich habe folgendes Problem:
- Das Skript läuft durch, aber sporadisch hab ich das Problem das ein Befehl nicht ausgeführt wird.
- Das wäre fatal beim Steuern des Mischers, da wenn er den Stop-Befehl nicht annimmt, der Mischer bzw. der Ausgang dadurch nicht ausgeschalten wird, ich den Mischer quasi in „beide Richtungen“ fahren lassen würde, was ihn dann zerstört.
Folgendes habe ich versucht:
Ich habe versucht zwischen den Befehlen eine Pause einzubauen, sodass zwischen dem einzelnen absenden der Befehle eine Pause ist, ich dachte mir vielleicht kommt der Bus nicht so schnell hinterher, leider hat das nicht geholfen.
Mein aktuelles Skript sieht wie folgt aus:
<?
$ist_vorlauf_heizkoerper = GetValueFloat(28162 /*[Devices\Heizungsraum\Heizkörper\Ist-Vorlauf]*/ );
$soll_vorlauf_heizkoerper = GetValueInteger(55714 /*[Devices\Heizungsraum\Heizkörper\Soll-Vorlauf]*/ );
$soll_vorlauf_nachtabsenkung = GetValueInteger(14609 /*[Devices\Heizungsraum\Nachtabsenkung\Soll-Vorlauf]*/ );
#echo $soll_vorlauf_heizkoerper;
#echo("
");
#echo $ist_vorlauf_heizkoerper;
#echo("
");
#echo $soll_vorlauf_nachtabsenkung;
if ($ist_vorlauf_heizkoerper > $soll_vorlauf_heizkoerper)
{
RegVar_SendText(57132 /*[1-Wire Controller E-Service Online\RegisterVariable 1-Wire Controller]*/, "set,owd,out,4,7,1" . chr(13));
IPS_Sleep(5000);
RegVar_SendText(57132 /*[1-Wire Controller E-Service Online\RegisterVariable 1-Wire Controller]*/, "set,owd,out,4,7,0" . chr(13));
}
elseif ($ist_vorlauf_heizkoerper == $soll_vorlauf_heizkoerper)
{
RegVar_SendText(57132 /*[1-Wire Controller E-Service Online\RegisterVariable 1-Wire Controller]*/, "set,owd,out,4,7,0" . chr(13));
}
else
{
// RegVar_SendText(57132 /*[1-Wire Controller E-Service Online\RegisterVariable 1-Wire Controller]*/, "set,owd,out,4,7,0" . chr(13));
echo "an2";
IPS_Sleep(2000);
echo "aus2";
}
?>
Hat jemand vielleicht schon ein ähnliches Problem gehabt, oder hat eine Idee an was es liegen könnte?